Editing Portal:InItalian/Formati dei file di Blood Omen

Jump to: navigation, search

Warning: You are not logged in.

Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 2: Line 2:
 
Questa pagina è dedicata alle specifiche per i formati dei file usati in Blood Omen. Include il lavoro di esplorazione fatto dalla community da quando Blood Omen è uscito.  
 
Questa pagina è dedicata alle specifiche per i formati dei file usati in Blood Omen. Include il lavoro di esplorazione fatto dalla community da quando Blood Omen è uscito.  
  
La maggior parte dei formati semplici (come la struttura del file BIG, le specifiche del TIM) sono stati resi esplorabili anni fa, ma altri (il formato della mappa, gli sprite) soltanto di recente, durante lo sviluppo di [[Portal:InItalian/Blood Pill|Blood Pill]].
+
La maggior parte dei formati semplici (come la struttura del file BIG, le specifiche del TIM) sono stati resi esplorabili anni fa, ma altri (il formato della mappa, gli sprite) soltanto di recente, durante lo sviluppo di [[Blood Pill]].
  
 
==File BIG==
 
==File BIG==
 
Questo è un file generale che contiene tutte le risorse di gioco. La sua struttura è molto semplice:
 
Questo è un file generale che contiene tutte le risorse di gioco. La sua struttura è molto semplice:
  
  '''uint32''' - numero di entries
+
  '''uint32''' - numero di voci
  <span style="color:green">Array delle entries:</span>
+
  <span style="color:green">Array delle voci:</span>
 
   '''uint32''' - Nome hash del file
 
   '''uint32''' - Nome hash del file
 
   '''uint32''' - Dimensione del file
 
   '''uint32''' - Dimensione del file
 
   '''uint32''' - Offset del file
 
   '''uint32''' - Offset del file
  <span style="color:green">Array dei dati della entry:</span>
+
  <span style="color:green">Array dei dati della voce:</span>
 
   '''bytes''' - Contenuti del file
 
   '''bytes''' - Contenuti del file
  
{{tip|Può esserci dello spazio tra i file}}
+
{{tip|Possono esserci degli spazi tra i file}}
  
 
==Immagine TIM==
 
==Immagine TIM==
Immagini per PlayStation. Usate per contenere gli elementi grafici e i componenti della mappa. Le specifiche dei TIM sono ben conosciute, quindi non verranno elencate qui. Riferimenti per decodificare e codificare sono disponibili nel codice sorgente di [[Portal:InItalian/Blood Pill|Blood Pill]].
+
Immagini per PlayStation. Usate per contenere gli elementi grafici e i componenti della mappa. Le specifiche dei TIM sono ben conosciute, quindi non verranno elencate qui. Decodifiche e codifiche di riferimento sono disponibili nel codice sorgente di [[Blood Pill]].
  
 
'''Consigli''':
 
'''Consigli''':
* Alcune entries del pill.big possono contenere più file TIM fusi insieme.
+
* Alcune voci del pill.big possono contenere più file TIM fusi insieme.
* Alcuni file TIM di Blood Omen possono terminare con dei null.
+
* Alcuni file TIM di Blood Omen possono contenere code con dei null.
  
 
==Suoni==
 
==Suoni==
  
 
===VAG===
 
===VAG===
I file "Very-Audio-Good" per PlayStation (variazione ADPCM di 4-bit) usati nella versione PlayStation di Blood Omen e dal preview di gioco. Non sono usati nella versione PC. Riferimenti per decodificare e codificare sono disponibili nel codice sorgente di [[Portal:InItalian/Blood Pill|Blood Pill]].
+
I file "Very-Audio-Good" per Playstation (variazione ADPCM di 4-bit) usati nella versione PlayStation di Blood Omen e dal preview di gioco. Non sono usati nella versione pc. Decodifiche e codifiche di riferimento sono disponibili nel codice sorgente di [[Blood Pill]].
  
 
'''Consigli''':
 
'''Consigli''':
Line 34: Line 34:
  
 
===IMA ADPCM grezzi===
 
===IMA ADPCM grezzi===
Dei file senza header che contengono flussi grezzi IMA ADPCM che servono a sostituire i file VAG nella versione PC. Usano esattamente gli stessi nomi dei file VAG per la PlayStation.
+
Dei file senza header che contengono flussi grezzi IMA ADPCM che servono a sostituire i file VAG nella versione pc. Usano esattamente gli stessi nomi dei file VAG per la PlayStation.
  
{{tip|I file non hanno alcun header}}
+
{{tip|Files have no header at all}}
  
 
===File audio WAV===
 
===File audio WAV===
Blood Omen per PC ha alcuni effetti sonori in formato WAV (La PlayStation li ha in VAG). Questo formato è largamente conosciuto e non c'è bisogno di spiegarlo.
+
Blood Omen per pc ha alcuni effetti sonori in formato WAV (La PlayStation li ha in VAG). Questo formato è largamente conosciuto e non c'è bisogno di spiegarlo.
  
 
{{tip|Sembra che il gioco non usi gli header dei WAV; alcuni file hanno un play rate alterato e devono essere aggiustati manualmente per poterli eseguire come si sentono in gioco}}
 
{{tip|Sembra che il gioco non usi gli header dei WAV; alcuni file hanno un play rate alterato e devono essere aggiustati manualmente per poterli eseguire come si sentono in gioco}}
Line 49: Line 49:
  
 
===Video JAM===
 
===Video JAM===
JAM è un formato di compressione video scadente sviluppato da Semilogic Entertainment e usato nella versione PC di Blood Omen. Il formato usa una tavolozza in comune con più frame e un tipo di compressione dinamica. La specifica e la decodifica dei JAM sono state scoperte nel 2011 da MisterGrim. Il JAM può solo contenere video, l'audio era contenuto in un file VAG separato (che era, in effetti, un IMA ADPCM grezzo).
+
JAM è un formato di compressione video scadente sviluppato da Semilogic Entertainment e usato nella versione pc di Blood Omen. Il formato usa una tavolozza in comune con più frame e un tipo di compressione dinamica. La specifica e la decodifica dei JAM sono state scoperte nel 2011 da MisterGrim. Il JAM può solo contenere video, l'audio era contenuto in un file VAG separato (che era, in effetti, un IMA ADPCM grezzo).
  
 
I video JAM hanno molte più alterazioni dei STR, e la traccia audio è in mono (gli STR hanno una stereo).
 
I video JAM hanno molte più alterazioni dei STR, e la traccia audio è in mono (gli STR hanno una stereo).
  
Il codice per decomprimere i JAM è disponibile nel codice sorgente di [[Portal:InItalian/Blood Pill|Blood Pill]].
+
Il codice per decomprimere i JAM è disponibile nel codice sorgente di [[Blood Pill]].
  
 
==Gli sprite==
 
==Gli sprite==
Line 184: Line 184:
 
                               <span style="color:green">//  - numero del discorso (TRIGGER_INFOMARK, TRIGGER_IMAGEMARK)</span>
 
                               <span style="color:green">//  - numero del discorso (TRIGGER_INFOMARK, TRIGGER_IMAGEMARK)</span>
 
       '''unsigned short''' parm2;    <span style="color:green">// secondo parm:</span>
 
       '''unsigned short''' parm2;    <span style="color:green">// secondo parm:</span>
                               <span style="color:green">//  - numero del pulsante (TRIGGER_BUTTON)</span>
+
                               <span style="color:green">//  - numero del bottone (TRIGGER_BUTTON)</span>
 
                               <span style="color:green">//  - numero dell'immagine (TRIGGER_IMAGEMARK)</span>
 
                               <span style="color:green">//  - numero dell'immagine (TRIGGER_IMAGEMARK)</span>
 
       '''byte'''          parm3;    <span style="color:green">// sezione della mappa di destinazione/origine (TRIGGER_EXIT, TRIGGER_ENTRANCE, TRIGGER_TELEPORT)</span>
 
       '''byte'''          parm3;    <span style="color:green">// sezione della mappa di destinazione/origine (TRIGGER_EXIT, TRIGGER_ENTRANCE, TRIGGER_TELEPORT)</span>
Line 192: Line 192:
 
       '''byte'''          u2<span style="color:darkblue">'''['''</span>3<span style="color:darkblue">''']'''</span>;    <span style="color:green">// ?</span>
 
       '''byte'''          u2<span style="color:darkblue">'''['''</span>3<span style="color:darkblue">''']'''</span>;    <span style="color:green">// ?</span>
 
       '''byte'''          x;        <span style="color:green">// posizione</span>
 
       '''byte'''          x;        <span style="color:green">// posizione</span>
       '''byte'''          y;        <span style="color:green">// posizione</span>
+
       '''byte'''          y;        <span style="color:green">// posizione/span>
 
       '''byte'''          u3<span style="color:darkblue">'''['''</span>3<span style="color:darkblue">''']'''</span>;    <span style="color:green">// ?</span>
 
       '''byte'''          u3<span style="color:darkblue">'''['''</span>3<span style="color:darkblue">''']'''</span>;    <span style="color:green">// ?</span>
 
  <span style="color:darkblue">'''}'''</span>'''bo_trigger_t''';
 
  <span style="color:darkblue">'''}'''</span>'''bo_trigger_t''';
Line 223: Line 223:
 
  <span style="color:darkblue">'''}'''</span>'''bo_atile_t''';
 
  <span style="color:darkblue">'''}'''</span>'''bo_atile_t''';
 
   
 
   
  <span style="color:green">// controller del pulsante</span>
+
  <span style="color:green">// controller del bottone</span>
 
  <span style="color:darkblue">typedef struct</span>
 
  <span style="color:darkblue">typedef struct</span>
 
  <span style="color:darkblue">'''{'''</span>
 
  <span style="color:darkblue">'''{'''</span>
Line 248: Line 248:
 
       '''byte''' u1;                <span style="color:green">// ?</span>
 
       '''byte''' u1;                <span style="color:green">// ?</span>
 
       '''byte''' lightform;          <span style="color:green">// flag della forma della luce</span>
 
       '''byte''' lightform;          <span style="color:green">// flag della forma della luce</span>
       '''byte''' r;                  <span style="color:green">// quantità di rosso</span>
+
       '''byte''' r;                  <span style="color:green">// componente del rosso</span>
       '''byte''' g;                  <span style="color:green">// quantità di verde</span>
+
       '''byte''' g;                  <span style="color:green">// componente del verde</span>
       '''byte''' b;                  <span style="color:green">// quantità di blu</span>
+
       '''byte''' b;                  <span style="color:green">// componente del blu</span>
 
       '''unsigned short''' targetnum;<span style="color:green">// gruppo di attivatori</span>
 
       '''unsigned short''' targetnum;<span style="color:green">// gruppo di attivatori</span>
 
       '''byte''' start_on;          <span style="color:green">// 1 se l'effetto parte attivo, 0 se parte disattivo</span>
 
       '''byte''' start_on;          <span style="color:green">// 1 se l'effetto parte attivo, 0 se parte disattivo</span>
Line 349: Line 349:
 
       <span style="color:green">// le mattonelle animate hanno un gruppo di attivatori da eseguire con degli script</span>
 
       <span style="color:green">// le mattonelle animate hanno un gruppo di attivatori da eseguire con degli script</span>
 
       '''bo_atile_t'''      atiles<span style="color:darkblue">'''['''</span>100<span style="color:darkblue">''']'''</span>;
 
       '''bo_atile_t'''      atiles<span style="color:darkblue">'''['''</span>100<span style="color:darkblue">''']'''</span>;
       <span style="color:green">// l'array di un pulsante speciale controlla tutti i pulsanti usati nel livello</span>
+
       <span style="color:green">// l'array di un bottone speciale controlla tutti i bottoni usati nel livello</span>
 
       <span style="color:green">// molto simile alle mattonelle animate</span>
 
       <span style="color:green">// molto simile alle mattonelle animate</span>
       <span style="color:green">// i pulsanti hanno gruppi di attivatori da eseguire con degli script</span>
+
       <span style="color:green">// i bottoni hanno gruppi di attivatori da eseguire con degli script</span>
 
       '''bo_button_t'''    buttons<span style="color:darkblue">'''['''</span>20<span style="color:darkblue">''']'''</span>;
 
       '''bo_button_t'''    buttons<span style="color:darkblue">'''['''</span>20<span style="color:darkblue">''']'''</span>;
 
       <span style="color:green">// informazione #2 ancora ignota</span>
 
       <span style="color:green">// informazione #2 ancora ignota</span>
Line 423: Line 423:
 
  #define '''TRIGGER_IMAGEMARK'''      7
 
  #define '''TRIGGER_IMAGEMARK'''      7
 
   
 
   
  <span style="color:green">// flag dei pulsanti</span>
+
  <span style="color:green">// flag dei bottoni</span>
 
  #define '''BUTTONFLAG_TOGGLE'''      1
 
  #define '''BUTTONFLAG_TOGGLE'''      1
 
  #define '''BUTTONFLAG_SECRET'''      2
 
  #define '''BUTTONFLAG_SECRET'''      2
Line 494: Line 494:
 
''' Run Length Encoding (RLE) basato sull'indice'''
 
''' Run Length Encoding (RLE) basato sull'indice'''
  
Usato sui dati degli sprite per comprimere le zone nere che normalmente sono trasparenti. Questa tecnica altera il processo di lettura dei byte 0x0 e 0xFF. Se durante la lettura dei dati dell'immagine si ottiene questo byte, si dovrà leggere un byte in più che conterrà il numero di volte che quel byte va ripetuto. Blood Omen RLE è usato solo per valori di 0x00 o 0xFF.
+
Usato sui dati degli sprite per comprimere le zone nere che normalmente sono trasparenti. Questa tecnica altera il processo di lettura dei byte 0x0 e 0xFF. Se si ha questo byte mentre si leggono i dati dell'immagine, dovrebbe leggere 1 byte in più che indica quante volte va ripetuto quel byte. Blood Omen RLE usato solo per valori di 0x00 o 0xFF.
 
      
 
      
 
Esempio:  
 
Esempio:  
Line 519: Line 519:
 
Una variazione degli algoritmi di compressione dei dati del LZ77 (LZ1).
 
Una variazione degli algoritmi di compressione dei dati del LZ77 (LZ1).
  
Un decodificatore campione è disponibile a [http://www.thelostworlds.net/Software/Blood_Omen_Decompressor.html The Lost Worlds] e nel codice sorgente di [[Portal:InItalian/Blood Pill|Blood Pill]].
+
Un decodificatore campione è disponibile a [http://www.thelostworlds.net/Software/Blood_Omen_Decompressor.html The Lost Worlds] e nel codice sorgente di [[Blood Pill]].
  
 
==Ringraziamenti==
 
==Ringraziamenti==
Line 529: Line 529:
  
 
==Vedere anche==
 
==Vedere anche==
* [[Portal:InItalian/Blood Pill|Blood Pill]]
+
* [[Blood Pill]]
 
* [http://kenai.com/projects/jpsxdec/pages/Home jPsxDec homepage]
 
* [http://kenai.com/projects/jpsxdec/pages/Home jPsxDec homepage]
 
* [http://wiki.qhimm.com/PSX/TIM_file TIM specifications at QHimmWiki]
 
* [http://wiki.qhimm.com/PSX/TIM_file TIM specifications at QHimmWiki]

Please note that all contributions to Blood Wiki are considered to be released under the Creative Commons Attribution Share Alike (see BloodWiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)

This page is a member of 3 hidden categories:

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox