<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Brisma.NET &#187; Hacking</title>
	<atom:link href="http://www.brisma.net/category/hacking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brisma.net</link>
	<description>L'angolo dell'hacking</description>
	<lastBuildDate>Tue, 16 Feb 2010 11:42:26 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Crimson Gem Saga Unpacker</title>
		<link>http://www.brisma.net/2010/02/16/126/</link>
		<comments>http://www.brisma.net/2010/02/16/126/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 11:28:02 +0000</pubDate>
		<dc:creator>Vash</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=126</guid>
		<description><![CDATA[Un altro rapido articoletto.
Tempo fa scrissi questo estrattore per l&#8217;archivione di Crimson Gem Saga e già che ci sono perché non piazzarlo qui?
Da notare che in giro per la rete trovai già degli altri programmi per questo archivio ma, non so per quale motivo, sono tutti incompleti. Il sistema di archiviazione è semplice e i [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://playoverdrive.files.wordpress.com/2009/10/10d93f49574b08268153aeac44ab7fc4.jpg" alt="" width="173" height="300" />Un altro rapido articoletto.</p>
<p>Tempo fa scrissi questo estrattore per l&#8217;archivione di Crimson Gem Saga e già che ci sono perché non piazzarlo qui?</p>
<p>Da notare che in giro per la rete trovai già degli altri programmi per questo archivio ma, non so per quale motivo, sono tutti incompleti. Il sistema di archiviazione è semplice e i file sono compressi con Zlib a chunk per cui basta decomprimere ogni chunk e poi rinuire il tutto nel file unico finale&#8230;indi per cui se avete un estrattore che vi fa crea dei file xxx.001 xxx.002 xxx.003 etc sapiate che è errato e che sono semplicemente pezzi di un unico file.</p>
<p>Ad ogni modo, l&#8217;utilizzo è molto semplice, estraete la iso, posizionate il tool  insieme al file Asto2.dat e doppiocliccate il programmino.</p>
<p>Per il download cliccate <a title="qui" href="http://www.tbhreloaded.it/Vash/Crimson_Gem_Saga_Extractor.rar" target="_self">qui</a></p>
<p>Alla prossima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2010/02/16/126/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kingdom Hearts Chain Of Memories Uncomplete Toolset</title>
		<link>http://www.brisma.net/2010/02/16/kingdom-hearts-chain-of-memories-uncomplete-toolset/</link>
		<comments>http://www.brisma.net/2010/02/16/kingdom-hearts-chain-of-memories-uncomplete-toolset/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 09:05:58 +0000</pubDate>
		<dc:creator>Vash</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=115</guid>
		<description><![CDATA[ Buongiorno a tutti, ecco come promesso un altro rapido aggiornamento a questo blog.
Qualche tempo fa (credo ormai un anno) mi misi a giochicchiare con la versione NTSC/US di Kingdom Hearts Chain Of Memories e si rivelò più tosto del previsto. I maledetti alla square non si smentiscono mai e qui hanno usato una custom [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://member.square-enix.com/na/blog/khrecom_front.jpg"><img class="alignleft" src="http://member.square-enix.com/na/blog/khrecom_front.jpg" alt="Cover" width="173" height="300" /></a> Buongiorno a tutti, ecco come promesso un altro rapido aggiornamento a questo blog.</p>
<p>Qualche tempo fa (credo ormai un anno) mi misi a giochicchiare con la versione NTSC/US di Kingdom Hearts Chain Of Memories e si rivelò più tosto del previsto. I maledetti alla square non si smentiscono mai e qui hanno usato una custom TOC (ovvero, se si apre la iso normalmente non si vede nulla a parte l&#8217;eseguibile e un altro paio di file inutili ai nostri scopi) ma fortunatamente quella non è stata particolarmente un problema quanto invece il formato degli archivi che contenevano il testo.</p>
<p>Beh, a farla breve dopo una settimana riuscii a scrivere 4 programmi che ora vi lascerò:</p>
<p>-<strong>isoextr</strong></p>
<p>Vi permette di estrarre i file veri dalla iso</p>
<p><em>isoextr file.iso</em></p>
<p><em>- </em><strong>datextr</strong></p>
<p>Vi permette di estrarre i file dat</p>
<p><em>datextr file.dat</em></p>
<p><em>-</em><strong>bindumper &amp; ctddumper</strong></p>
<p>Vi permettono di estrarre il testo in formato intelleggibile. Consiglio <a title="Notepad++" href="http://notepad-plus.sourceforge.net/it/site.htm" target="_blank">Notepad++</a></p>
<p><em>bindumper file.bin </em></p>
<p><em>ctddumper file.ctd</em></p>
<p>Detto questo, passo e chiudo, alla prossima.</p>
<p>Per il download cliccate <a title="qui" href="http://www.tbhreloaded.it/Vash/Kingdom.Hearts.COM.Incomplete.Toolset.By.Vash.rar">qui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2010/02/16/kingdom-hearts-chain-of-memories-uncomplete-toolset/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Shiren The Wanderer Unpacker</title>
		<link>http://www.brisma.net/2010/02/15/shiren-the-wanderer-unpacker/</link>
		<comments>http://www.brisma.net/2010/02/15/shiren-the-wanderer-unpacker/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 12:21:00 +0000</pubDate>
		<dc:creator>Vash</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=111</guid>
		<description><![CDATA[ Dopo quasi un anno preciso, torno a ripopolare un po&#8217; questo Blog (ripromettendomi di farlo più spesso) con un programmino che ho scritto questa mattina in un&#8217;oretta di libertà. Questo gioco per WII  è una specie di RPG&#8230;credo..ok, non ho la minima idea di cosa sia sto gioco ma mi piaceva la copertina. Fatto [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-103" src="http://www.blogcdn.com/nintendo.joystiq.com/media/2007/11/shiren111907.jpg" alt="" width="173" height="300" /> Dopo quasi un anno preciso, torno a ripopolare un po&#8217; questo Blog (ripromettendomi di farlo più spesso) con un programmino che ho scritto questa mattina in un&#8217;oretta di libertà. Questo gioco per WII  è una specie di RPG&#8230;credo..ok, non ho la minima idea di cosa sia sto gioco ma mi piaceva la copertina. Fatto sta che dando una rapida occhiata al formato dell&#8217;archivio l&#8217;ho trovato abbastanza semplice e ispirante perciò, ecco a voi un simpatico unpacker.</p>
<p>Da notare che dentro ci sono dei file&#8230;come dire&#8230;curiosi come enckey.key da 16 byte e signkey.pub da 256 byte. Adoro quando crittano tutto e forniscono la chiave <img src='http://www.brisma.net/wp-includes/images/smilies/icon_mrgreen.gif' alt=':D' class='wp-smiley' /> </p>
<p>Dubito seriamente di continuare l&#8217;hacking di questo gioco, se servissero altre informazioni però, potete contattarmi senza problemi.</p>
<p>Per il download, cliccate <a href="http://www.tbhreloaded.it/Vash/STW_Unpacker.0.9.by.Vash.rar">qui</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2010/02/15/shiren-the-wanderer-unpacker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Star Ocean: First Departure Unpacker</title>
		<link>http://www.brisma.net/2009/02/17/star-ocean-first-departure-unpacker/</link>
		<comments>http://www.brisma.net/2009/02/17/star-ocean-first-departure-unpacker/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 12:17:04 +0000</pubDate>
		<dc:creator>Brisma</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=105</guid>
		<description><![CDATA[Uhuh, ma guarda un po&#8217; cosa sono andato a ripescare dall&#8217;hard disk oggi 
Non si tratta di nulla di particolare, semplicemente un paio di mesi fa (Ottobre) avevo iniziato ad analizzare questo gioco, giusto per vedere com&#8217;era strutturato (per giunta la versione USA, in quanto la PAL non era ancora uscita in commercio.
Per capire l&#8217;archivio [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-103" title="Star Ocean FD PSP" src="http://www.brisma.net/wp-content/uploads/2009/02/psp-star-ocean-173x300.jpg" alt="Star Ocean FD PSP" width="173" height="300" />Uhuh, ma guarda un po&#8217; cosa sono andato a ripescare dall&#8217;hard disk oggi <img src='http://www.brisma.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
Non si tratta di nulla di particolare, semplicemente un paio di mesi fa (Ottobre) avevo iniziato ad analizzare questo gioco, giusto per vedere com&#8217;era strutturato (per giunta la versione USA, in quanto la PAL non era ancora uscita in commercio.<br />
Per capire l&#8217;archivio ci è voluto ben poco, una delle tanti varianti di casa Square, nulla di nuovo insomma. Invece la cosa curiosa sono proprio i file contenuti in esso: si tratta niente di meno che&#8230; di file compressi!<br />
Beh, anche qui non c&#8217;è nulla di nuovo penserete&#8230; ed invece c&#8217;è una piccola curiosità: utilizzano la stessa identica compressione di <strong>Valkyrie Profile PSX/PSP</strong>, difatti sono tranquillamente de/comprimibili utilizzando il decompressore di VP <img src='http://www.brisma.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sfortunatamente, tale decompressore non è ad opera mia, ma bensì di <strong>Scorpio</strong>, indi per cui non posso pubblicarlo senza il suo consenso, ma tuttosommato nessuno mi vieta di pubblicare uno dei miei tanti dearchiviatore brutti, mal ottimizzati, senza nessun controllo etc etc ma che funzionano sempre, e perciò ecco il dearchiviatore, non si sa mai che a qualcuno può tornare utile <img src='http://www.brisma.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio .h&gt;</span>
&nbsp;
<span style="color: #993333;">unsigned</span> <span style="color: #993333;">long</span> <span style="color: #993333;">int</span> num_file<span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> offset<span style="color: #339933;">,</span> dimensione<span style="color: #339933;">,</span> indice<span style="color: #339933;">;</span>
<span style="color: #993333;">unsigned</span> <span style="color: #993333;">char</span> buffer<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">209715200</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> stringa<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">32</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// 200Mb - &gt; W lo spreco XD</span>
FILE <span style="color: #339933;">*</span>input<span style="color: #339933;">,</span> <span style="color: #339933;">*</span>output<span style="color: #339933;">;;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
  <span style="color: #009900;">&#123;</span>
  input<span style="color: #339933;">=</span>fopen<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;so1pack.bin&quot;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  mkdir<span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;SO1_UNPACK&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>num_file<span style="color: #339933;">,</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> input<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  fseek<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span> <span style="color: #208080;">0x08</span><span style="color: #339933;">,</span> SEEK_SET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>indice<span style="color: #339933;">,</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> input<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  fseek<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span> <span style="color: #208080;">0x10</span><span style="color: #339933;">,</span> SEEK_SET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> num_file <span style="color: #339933;">-</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #666666; font-style: italic;">// Esclude l'indice delle dimensioni</span>
    <span style="color: #009900;">&#123;</span>
    fseek<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span> <span style="color: #208080;">0x10</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">*</span> <span style="color: #0000dd;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> SEEK_SET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>offset<span style="color: #339933;">,</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> input<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fseek<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span> indice <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>i <span style="color: #339933;">*</span> <span style="color: #0000dd;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> SEEK_SET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>dimensione<span style="color: #339933;">,</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> input<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fseek<span style="color: #009900;">&#40;</span>input<span style="color: #339933;">,</span> offset<span style="color: #339933;">,</span> SEEK_SET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;File so1pack.%d Offset: %X Dimensione: %d byte<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> i<span style="color: #339933;">,</span> offset<span style="color: #339933;">,</span> dimensione<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>buffer<span style="color: #339933;">,</span> dimensione<span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> input<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    sprintf<span style="color: #009900;">&#40;</span>stringa<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;SO1_UNPACK\\so1pack.%d&quot;</span><span style="color: #339933;">,</span> i<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    output<span style="color: #339933;">=</span>fopen<span style="color: #009900;">&#40;</span>stringa<span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;wb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fwrite<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>buffer<span style="color: #339933;">,</span> dimensione<span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> output<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fclose<span style="color: #009900;">&#40;</span>output<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
  <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Download <a href="http://www.brisma.net/wp-content/uploads/2009/02/so1unpacker.zip">Star Ocean FD Unpacker 0.1</a> (Eseguibile Win32/Sorgenti C).</stdio></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2009/02/17/star-ocean-first-departure-unpacker/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zelda: Ocarina Of Time &#8211; VC Wii</title>
		<link>http://www.brisma.net/2009/02/09/zelda-oot-vc-wii/</link>
		<comments>http://www.brisma.net/2009/02/09/zelda-oot-vc-wii/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 13:36:29 +0000</pubDate>
		<dc:creator>Brisma</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=92</guid>
		<description><![CDATA[Avevo accennato qualche giorno fa di un certo Zelda: Ocarina Of Time e di come mi stessi occupando non della normale rom PAL/USA, ma bensì della versione emulata su Virtual Console del Wii. Dunque mi son detto: perché non mostrare cosa sto realmente facendo  ?
Partiamo dalle basi: come prima cosa è bene precisare che [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="size-thumbnail wp-image-89 alignleft" title="Logo Zelda OOT" src="http://www.brisma.net/wp-content/uploads/2009/02/zlogo-150x150.jpg" alt="Logo Zelda OOT" width="150" height="150" />Avevo accennato qualche giorno fa di un certo Zelda: Ocarina Of Time e di come mi stessi occupando non della normale rom PAL/USA, ma bensì della versione emulata su Virtual Console del Wii. Dunque mi son detto: perché non mostrare cosa sto realmente facendo <img src='http://www.brisma.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ?<br />
Partiamo dalle basi: come prima cosa è bene precisare che i giochi per VC non sono altro che rom nude e crude &#8220;incapsulate&#8221; in un canale con apposito manuale/trailer relativo al gioco. Ne consegue che, una volta estratti i dati del canale, è stato facile estrarre la rom di OOT che funziona perfettamente su qualsiasi emulatore di Nintendo64. Per la precisione, quella proposta per VC è sostanzialmente un aggiornamento della stessa rom apparsa qualche anno fa su un Bonus Disc per GameCube. Per chi avesse avuto modo di provarla al tempo, saprà che si tratta semplicemente di una rom Multi3 (Inglese, Tedesco, Francese) con qualche censura e qualche testo rivisto qua e là. I più attenti alla scena del romhacking italiano sapranno anche che già da diversi anni esiste una traduzione per OOT ad opera di xxcentury che rappresenta un&#8217;ottima localizzazione del gioco, ma sfortunatamente è priva di ogni qual forma di hack grafico (al tempo era irrealizzabile) e sprovvista anche di un font accentato (sebbene il gioco USA contenesse comunque un font già accentato). Il mio lavoro è stato in primo luogo quello di cercare di importare la traduzione di OOT USA in OOT VC: è stato un processo non proprio facilissimo in quanto molti blocchi erano diversi, ma comunque è stato possibile attuarlo in una sola giornata. Tecnicamente ora il testo del gioco è tutto in italiano e funziona perfettamente ma&#8230; dato che i tempi ora sono maturi, perché fermarsi al semplice testo se è possibile de/comprimere la grafica e modificarla ad opera d&#8217;arte ed inserire un font accentato come si deve?<br />
Per il font non è stato un problema, dovrò solamente revisionare un 200Kb di script alla ricerca di tutti gli accenti e modificarli con le rispettive corrispondenze secondo il font di OOT VC, ma è facilmente fattibile come nello screen seguente:
</p>
<p style="text-align: center;"><img class="size-full wp-image-91 aligncenter" title="Zelda OOT M3 Beta02" src="http://www.brisma.net/wp-content/uploads/2009/02/zelda2.jpg" alt="Zelda OOT M3 Beta02" width="336" height="319" /></p>
<p style="text-align: left;">Per quanto riguarda la grafica non è un&#8217;operazione così semplice: in primo luogo perché c&#8217;è comunque moltissimo testo grafico nel gioco (come ad esempio tutti i luoghi che si visitano, tutti i boss, tutti gli oggetti e via dicendo) ed in secondo luogo per via della compressione/palette utilizzata che richiedono una manualità un po&#8217; particolare, ma tutto sommato fattibile:</p>
<p style="text-align: center;"><img class="size-full wp-image-90 aligncenter" title="Zelda OOT M3 Beta01" src="http://www.brisma.net/wp-content/uploads/2009/02/zelda.jpg" alt="Zelda OOT M3 Beta01" width="336" height="319" /></p>
<p style="text-align: left;">Come si nota in quest&#8217;ultimo screen in special modo sulla scritta &#8220;Seleziona la tua Lingua&#8221; c&#8217;è uno strano alternarsi di colori chiari e scuri, il tutto è normale, ho utilizzato il semplice Paint per tradurre la scritta con conseguenza &#8220;perdita&#8221; della palette originale nelle zone editate: ma il tutto è facilmente risolvibile con qualche click di Photoshop <img src='http://www.brisma.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: left;">Beh, per ora è tutto, alla prossima!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2009/02/09/zelda-oot-vc-wii/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>WAD, certificati e Wii</title>
		<link>http://www.brisma.net/2009/02/07/wad-certificati-e-wii/</link>
		<comments>http://www.brisma.net/2009/02/07/wad-certificati-e-wii/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 11:59:05 +0000</pubDate>
		<dc:creator>Brisma</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=77</guid>
		<description><![CDATA[Ultimamente, passando gli ultimi giorni di vacanza a giochicchiare con l&#8217;hacking dei fantomatici file WAD, che per chi non lo sapesse non sono altro che il dump dei canali del Wii, mi sono imbattuto in un simpatico argomento: può esistere un modo alternativo per sapere cosa contiene un WAD senza passare per l&#8217;ID, e di [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente, passando gli ultimi giorni di vacanza a giochicchiare con l&#8217;hacking dei fantomatici file WAD, che per chi non lo sapesse non sono altro che il dump dei canali del Wii, mi sono imbattuto in un simpatico argomento: può esistere un modo alternativo per sapere cosa contiene un WAD senza passare per l&#8217;ID, e di conseguenza la relativa ricerca in rete di cosa corrisponda? Ebbene, anche questa volta, la mia curiosità ha trovato la sua risposta, ovvero Sì. Il tutto andando ad analizzare l&#8217;header (non poi troppo diverso da quello dei classici giochi NDS/PSP) ho scoperto che è possibile arrivare con pochi calcoli all&#8217;offset assoluto del file certificato, dove è presente niente popò di meno che il titolo che compare sotto l&#8217;icona del canale nella dashboard del Wii quando ci si passa sopra con il Wiimote <img src='http://www.brisma.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /><br />
Ed ecco dunque che ho scritto al volo un semplice programmino che dandogli in pasto un file Wad, restituisce il suo titolo <img src='http://www.brisma.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
</pre></td><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*
&nbsp;
Ottenere il titolo di un WAD dal certificato :P
06/02/2009 - by Brisma
&nbsp;
- - -
&nbsp;
Inutile spiegare tutta la struttura dell'header dei file WAD,
scriverò giusto come arrivare al certificato da cui ottenere
il titolo del WAD (ovvero l'offset assoluto del file .cert).
&nbsp;
Si ottiene con:
&nbsp;
DimensioneWAD - (64 - (DimensioneCERT % 64)) - DimesnioneCERT
                |
                --&gt;  solo se (DimensioneCERT % 64) &gt; 0
&nbsp;
Arrivati fin qua facciamo un semplice controllo se effettivamente
il certificato può in linea teorica contenere il titolo dell'app
con il semplice calcolo di 240 + (84 * 6) = 744 byte, quindi
se è più piccolo di questa dimensione (che dovrebbe esser la minima
teorica) il file .cert non contiere nulla :P
A questo punto si aggiunge il valore 240 che ci porterà
all'inizio esatto del titolo del WAD e leggiamo 84 byte che
sono codificati a 16bit, quindi in realtà vi sarà una stringa di
42 lettere (caratteri nulli inclusi).
&nbsp;
Ovviamente nella parte della disinstallazione non è necessario andare
a ricalcolare l'offset etc etc, basterà aprire il file .cert (con un
semplice strstr() per controllarne il nome), e spostarsi nuovamente
di 240 byte qual'ora la dimensione sia superiore a 744.
&nbsp;
*/</span>
&nbsp;
<span style="color: #339933;">#include &lt;stdio .h&gt;</span>
&nbsp;
<span style="color: #993333;">unsigned</span> <span style="color: #993333;">long</span> <span style="color: #993333;">int</span> dimensionewad<span style="color: #339933;">,</span> dimensionecert<span style="color: #339933;">,</span> offsetcert<span style="color: #339933;">;</span>
<span style="color: #993333;">char</span> nomeApp<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">84</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
FILE <span style="color: #339933;">*</span>filewad<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Conversione da Little Endian a Big Endian</span>
<span style="color: #993333;">int</span> litte2big<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">return</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">&amp;</span><span style="color: #208080;">0xff</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;</span> <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #0000dd;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">&amp;</span><span style="color: #208080;">0xff00</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&lt;&amp;</span>lt<span style="color: #339933;">;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">&amp;</span><span style="color: #208080;">0xff0000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&gt;&gt;</span><span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">&gt;&gt;</span><span style="color: #0000dd;">24</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">&amp;</span><span style="color: #208080;">0xff</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> argc<span style="color: #339933;">,</span> <span style="color: #993333;">char</span> <span style="color: #339933;">*</span>argv<span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    filewad<span style="color: #339933;">=</span>fopen<span style="color: #009900;">&#40;</span>argv<span style="color: #009900;">&#91;</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #ff0000;">&quot;rb&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fseek<span style="color: #009900;">&#40;</span>filewad<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> SEEK_END<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    dimensionewad <span style="color: #339933;">=</span> ftell<span style="color: #009900;">&#40;</span>filewad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fseek<span style="color: #009900;">&#40;</span>filewad<span style="color: #339933;">,</span> <span style="color: #208080;">0x1C</span><span style="color: #339933;">,</span> SEEK_SET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>dimensionecert<span style="color: #339933;">,</span> <span style="color: #0000dd;">4</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> filewad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    dimensionecert <span style="color: #339933;">=</span> litte2big<span style="color: #009900;">&#40;</span>dimensionecert<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>dimensionecert <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">744</span><span style="color: #009900;">&#41;</span>
      <span style="color: #009900;">&#123;</span>
      <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;Il file .cert non contiene informazioni.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
      getch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Cancellare</span>
      <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
      <span style="color: #009900;">&#125;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>dimensionecert <span style="color: #339933;">%</span> <span style="color: #0000dd;">64</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #0000dd;">0</span><span style="color: #009900;">&#41;</span> offsetcert <span style="color: #339933;">=</span> dimensionewad <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span><span style="color: #0000dd;">64</span> <span style="color: #339933;">-</span> <span style="color: #009900;">&#40;</span>dimensionecert <span style="color: #339933;">%</span> <span style="color: #0000dd;">64</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">-</span> dimensionecert<span style="color: #339933;">;</span>
    <span style="color: #b1b100;">else</span> offsetcert <span style="color: #339933;">=</span> dimensionewad <span style="color: #339933;">-</span> dimensionecert<span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">//</span>
    <span style="color: #666666; font-style: italic;">// offsetcert contiene l'offset del wad dov'e' presente il file .cert</span>
    <span style="color: #666666; font-style: italic;">// Ora non resta che aggiungere 240, leggere 84 byte, e mostrare il titolo</span>
    <span style="color: #666666; font-style: italic;">// alternando i byte (è a 16bit) :P</span>
    <span style="color: #666666; font-style: italic;">//</span>
    offsetcert<span style="color: #339933;">+=</span><span style="color: #0000dd;">240</span><span style="color: #339933;">;</span>
    fseek<span style="color: #009900;">&#40;</span>filewad<span style="color: #339933;">,</span> offsetcert<span style="color: #339933;">,</span> SEEK_SET<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    fread<span style="color: #009900;">&#40;</span><span style="color: #339933;">&amp;</span>nomeApp<span style="color: #339933;">,</span> <span style="color: #0000dd;">84</span><span style="color: #339933;">,</span> <span style="color: #0000dd;">1</span><span style="color: #339933;">,</span> filewad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #993333;">int</span> i <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>i <span style="color: #339933;">=</span> <span style="color: #0000dd;">1</span> <span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">42</span><span style="color: #339933;">;</span> i<span style="color: #339933;">+=</span><span style="color: #0000dd;">2</span><span style="color: #009900;">&#41;</span> <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span>nomeApp<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span> <span style="color: #339933;">!=</span> <span style="color: #208080;">0x00</span><span style="color: #009900;">&#41;</span> <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%c&quot;</span><span style="color: #339933;">,</span> nomeApp<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    getch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Cancellare</span>
    <span style="color: #b1b100;">return</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
    fclose<span style="color: #009900;">&#40;</span>filewad<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Download <a href="http://www.brisma.net/wp-content/uploads/2009/02/wad_title.zip">WAD_Title</a> (Eseguibile Win32/Sorgenti C).</stdio></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2009/02/07/wad-certificati-e-wii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tales Of Vesperia Hacking Parte 1</title>
		<link>http://www.brisma.net/2008/09/15/tales-of-vesperia-hacking-parte-1/</link>
		<comments>http://www.brisma.net/2008/09/15/tales-of-vesperia-hacking-parte-1/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 22:46:03 +0000</pubDate>
		<dc:creator>Vash</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=69</guid>
		<description><![CDATA[
Nonostante non sia ancora chiaro quando uscirà una versione PAL (europea) del gioco e se verrà localizzato ufficialmente in italiano, ho deciso di studiarne lo stesso la struttura.
Appena estratta la iso si nota subito la presenza di archivi in quanto, oltre ad audio e filmati, sono presenti solo file SVO. Da lì a capirne la [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.games4all.it/wp-galleryo/tales-of-vesperia/vesperia_10170608.jpg" alt="" width="450" height="252" /></p>
<p>Nonostante non sia ancora chiaro quando uscirà una versione PAL (europea) del gioco e se verrà localizzato ufficialmente in italiano, ho deciso di studiarne lo stesso la struttura.</p>
<p>Appena estratta la iso si nota subito la presenza di archivi in quanto, oltre ad audio e filmati, sono presenti solo file SVO. Da lì a capirne la struttura il passo fortunatamente è stato breve, e ancora più breve è stata la stesura del codice che ha portato alla creazione di un estrattore che potete scaricare <a href="http://www.tbhreloaded.it/Vash/VsoEx.rar">qui</a>.</p>
<p>A presto per un nuovo aggiornamento  <img src='http://www.brisma.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2008/09/15/tales-of-vesperia-hacking-parte-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Penny Arcade: On the Rain-Slick Precipice of Darkness Episode 1</title>
		<link>http://www.brisma.net/2008/06/20/penny-arcade-on-the-rain-slick-precipice-of-darkness-episode-1/</link>
		<comments>http://www.brisma.net/2008/06/20/penny-arcade-on-the-rain-slick-precipice-of-darkness-episode-1/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 12:09:59 +0000</pubDate>
		<dc:creator>Vash</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=51</guid>
		<description><![CDATA[Titolo infinito per un giochetto di nicchia da poco uscito che certo farà scalpore solo fra gli afecionados del noto(?) fumetto Penny Arcade.
Ieri sera, finito di studiare per uno schifossimo esame di Database ho acceso Steam per fare una partitina a Audiosurf e ho visto nelle news questo giochetto di cui avevo letto su GMC [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" src="http://www.hyattart.com/2/images/pennyarcade.jpg" alt="" width="300" height="225" />Titolo infinito per un giochetto di nicchia da poco uscito che certo farà scalpore solo fra gli afecionados del noto(?) fumetto Penny Arcade.</p>
<p>Ieri sera, finito di studiare per uno schifossimo esame di Database ho acceso Steam per fare una partitina a Audiosurf e ho visto nelle news questo giochetto di cui avevo letto su GMC qualche tempo prima, così ho scaricato la demo e ho visto che era il gioco intero solo a tempo, così, dopo essermi assicurato che non esistesse in italiano, mi sono dedicato un po&#8217; all&#8217;hacking e in poco ne sono venuto a capo. Il testo è dentro degli archivi hha che non sto a descrivere troppo in quanto non li ho hackati io ma per fortuna ho trovato un de/compressore già pronto in <a href="http://forum.playgreenhouse.com/jforum/posts/listByUser/2184.page" target="_blank">questo</a> forum (versione 0.3 per Win32 o Linux). Estratti quei file ho subito individuato il file incriminato (English.lso dentro la cartella Language :P) ma ho visto che non era un semplice txt ma un formato, fortunatamente, semplicissimo:</p>
<p>1 byte = Totale lunghezza frase<br />
x byte = Frase</p>
<p>e così fino alle fine..</p>
<p>in pochi minuti era pronto un bel tool per l&#8217;estrazione e il reinserimento del testo. La versione 1.0 la trovate <a href="http://www.tbhreloaded.it/Vash/LsoTM.rar" target="_self">qui</a> completa di codice sorgente.</p>
<p>Un problema un po&#8217; più gravoso sono i filmati che sono in SWF, cioè in flash, ma armati di un decompilatore e di molta pazienza volendo si possono tradurre pure quelli.</p>
<p>Saluti, alla prossima</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2008/06/20/penny-arcade-on-the-rain-slick-precipice-of-darkness-episode-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Patch Final Fantasy IX [Pal-Ita]</title>
		<link>http://www.brisma.net/2008/05/03/patch-final-fantasy-ix-pal-ita/</link>
		<comments>http://www.brisma.net/2008/05/03/patch-final-fantasy-ix-pal-ita/#comments</comments>
		<pubDate>Sat, 03 May 2008 14:19:28 +0000</pubDate>
		<dc:creator>Brisma</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=42</guid>
		<description><![CDATA[Se qualcuno se lo fosse perso, quasi un anno fa, rilasciai una patch per Final Fantasy IX per inalibire la protezione che affliggeva la versione Pal del gioco, rendendolo di sorta inemulabile (se non tramite particolare plugin/sub) su pc o su altre console. Basandomi sul lavoro svolto dagli altri team, in special modo tedeschi/francesi, ed [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-49" title="Final Fantasy IX - Logo" src="http://www.brisma.net/wp-content/uploads/2008/05/ff9logo-300x225.jpg" alt="" width="300" height="225" />Se qualcuno se lo fosse perso, quasi un anno fa, rilasciai una patch per Final Fantasy IX per inalibire la protezione che affliggeva la versione Pal del gioco, rendendolo di sorta inemulabile (se non tramite particolare plugin/sub) su pc o su altre console. Basandomi sul lavoro svolto dagli altri team, in special modo tedeschi/francesi, ed armato di tanta pazienza e pochissime nozioni di assembly, mi sono messo al lavoro su questo gioco e nel giro di una settimana circa sono riuscito ad ottenere i risultati prefissati <img src='http://www.brisma.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Infatti, applicando le dovute patch, è possibile emulare il gioco in versione italiana anche su PSP e su Xbox senza nessun problema <img src='http://www.brisma.net/wp-includes/images/smilies/icon_mrgreen.gif' alt=':D' class='wp-smiley' /> </p>
<p>Dato che la rete a volte è un po&#8217; infame, ho deciso di pubblicare la patch anche sul mio sito, prima che scompaia e diventi introvabile <img src='http://www.brisma.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>Download <a href="http://www.brisma.net/wp-content/uploads/2008/05/crk-ff9ita.zip">Patch Final Fantasy IX [Pal-Ita]</a> (PPF/PSX).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2008/05/03/patch-final-fantasy-ix-pal-ita/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Nuovo Hacker, Nuove Inutilità</title>
		<link>http://www.brisma.net/2008/04/29/nuovo-hacker-nuove-inutilita/</link>
		<comments>http://www.brisma.net/2008/04/29/nuovo-hacker-nuove-inutilita/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 12:38:35 +0000</pubDate>
		<dc:creator>Vash</dc:creator>
				<category><![CDATA[Hacking]]></category>

		<guid isPermaLink="false">http://www.brisma.net/?p=37</guid>
		<description><![CDATA[Salve a tutti, sono Vash.
Il buon Brusba mi ha gentilmente concesso questo spazio (graaaaaaaazie brusba) per poter dare in pasto al web le mie inutilità che, come lui, programmo o studio nel tempo libero.
La mia prima inutilità riguarda un j-rpg (Japanese Role Play Game per i profani) per PSX, Hoshigami.
Potrei scopiazzarvi un breve riassunto da [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-38" src="http://www.brisma.net/wp-content/uploads/2008/04/hoshigami.jpg" alt="" width="194" height="181" />Salve a tutti, sono <strong>Vash</strong>.</p>
<p>Il buon Brusba mi ha gentilmente concesso questo spazio (graaaaaaaazie brusba) per poter dare in pasto al web le mie inutilità che, come lui, programmo o studio nel tempo libero.</p>
<p>La mia prima inutilità riguarda un j-rpg (Japanese Role Play Game per i profani) per PSX, Hoshigami.<br />
Potrei scopiazzarvi un breve riassunto da qualche sito per farvi capire di cosa parla questo gioco e per farvene un&#8217;idea, ma la verità è che non ne ho la minima idea manco io per cui se non lo so io, che vi frega a voi? Qualcuno dirà:&#8221;Ma perché ti metti a sfacchinare su un gioco che manco conosci?&#8221; e io risponderò:&#8221;Bella domanda, ogni tanto me la pongo anche io&#8221;.</p>
<p>Vabbè&#8230; chiudiamo l&#8217;angolo dell&#8217;ilarità e torniamo alle cose serie.  Ho programmato un bel Dumper (sempre per i profani, estrattore di testo) per i dialoghi (NB SOLO i dialoghi) di, appunto, Hoshigami.  Prima che chiediate il codice sorgente per analizzarlo e capacitarvi del mio genio sappiate che questo programma merita il premio di Dumper più vago del secolo. Mi spiego meglio.  Il testo del gioco sta tutto in un file chiamato Demo.DAT (emo scriviamolo in minuscolo, va..) che, presumo, è un archivio. Non trovando i puntatori di questo archivio dopo una rapida ricerca stavo per abbandonare tutto quando ho visto che il testo era in un formato  molto strano e aveva delle costanti alla fine e all&#8217;inizio del testo, così basandomi su una intuizione e affidandomi alla fortuna ho scritto questo bel dumper.</p>
<p>Qualcuno schifato dirà:&#8221;Bhè bravo, ma ora non si può nemmeno espandere&#8230;&#8221; e io, facendomi grasse risate dirò:&#8221;Buah buah buah (le grasse risate ndV), il mio culo non ha limiti, in questi dump metà spazio è occupato da commenti in giapponese (quindi unicode ndV) assolutamente inutili, per cui una volta tradotto il testo basterà riportare il file al suo peso originale e reinserirlo.&#8221;</p>
<p>Ora un esempio pratico su come, eventualmente, tradurre.<br />
Ecco un Dump:</p>
<blockquote><p><em>(! =============================================<br />
ƒfƒBƒ\[ƒ‹Š×—Ž<br />
=============================================<br />
&#8212;- MAP &#8212;-<br />
‚È‚µ:ƒAƒhƒxƒ“ƒ`ƒƒƒp[ƒg<br />
&#8212;- Character ID &#8212;-<br />
1:ƒtƒ@ƒY<br />
4:ƒVƒ‹ƒtƒ@ƒgƒX<br />
7:ƒŒƒCƒ}ƒŠ[<br />
&#8212;- Global Flags &#8212;-<br />
nothing<br />
&#8212;- Temporary Flags &#8212;-<br />
nothing<br />
&#8212;- Special Animation &#8212;-<br />
nothing<br />
&#8212;- Face in Window &#8212;-<br />
0:04ƒtƒ@ƒY ‹Á‚«<br />
1:32ƒVƒ‹ƒtƒ@ƒgƒX ‰ö‚µ‚Þ<br />
============================================= )</em></p>
<p><em>(!&#8211;BGM&#8211;)(ply -1)<br />
(!&#8211;”wŒi&#8211;)(%bp 0)</em></p>
<p><em>(wtm 60)</em></p>
<p><em>(%fp 1)(wtm 20)(win 2)<br />
(say &#8220;Silphatos\n\&#8221;I have some disturbing news&#8230;\&#8221;")(wfg 127)<br />
(win 0)(wtm 5)</em></p>
<p><em>(%fp 0)(wtm 10)(win 2)<br />
(say &#8220;\h\n\&#8221;What&#8217;s wrong?\&#8221;")(wfg 127)<br />
(win 0)(wtm 5)</em></p>
<p><em>(%fp 1)(wtm 10)(win 2)<br />
(say &#8220;Silphatos\n\&#8221;I just received word that the town of\n Dissoal was attacked by the Valaimian\n army.\&#8221;")(wfg 127)<br />
(win 0)(wtm 5)</em></p>
<p><em>(end)</em><em></em></p></blockquote>
<p>Le parti da tradurre sono tutte quelle precedute da <em>(say &#8221; </em>e, la prima parola (a meno che non sia la continuazione delle frasi precedenti) è il nome di chi parla, <em>Silphatos</em> in questo caso.  Quel /n vuol dire che la frase va a capo per cui usatelo saggiamente (non avrete spazio infinito a schermo).  Se vorrete aggiungere una finestra potrete farlo ma dovrete stare attenti a rispettare certi parametri,  prendiamo come esempio questa frase, presa da un altro dump:</p>
<blockquote><p><em>((win 1)<br />
(say &#8220;\f01Zelstan\n\&#8221;If you knew that much&#8230;&#8221;)(wfg 127)<br />
(say &#8220;\f01 If you knew that Vugtis is\n intent on destroying\n everything, why do you still&#8221;)(wfg 127)<br />
(say &#8220;\f01 want him to return to\n Mardias?\&#8221;")(wfg 127)<br />
(win 0)<br />
</em><br />
potrete aggiungere una frase così:<br />
<em><br />
(win 1)<br />
(say &#8220;\f01Zelstan\n\&#8221;If you knew that much&#8230;&#8221;)(wfg 127)<br />
(say &#8220;\f01 If you knew that Vugtis is\n intent on destroying\n everything, why do you still&#8221;)(wfg 127)</em><em> </em> <em><br />
(say &#8220;\f01 want him to return to\n Mardias?\&#8221;)(wfg 127)</em> <em><br />
(say &#8220;\f01 frase nuova\&#8221;")(wfg 127)</em><br />
<em> (win 0)</em></p></blockquote>
<p>Come vedete ho aggiunto una frase finale, rispettando la sintassi comune del gruppo di frasi, togliendo le doppie virgolette alla ex-ultima frase e aggiungendole all&#8217;ultima creata da me.  Superfluo dire che questa cosa è inutile perché volendo basta continuare a scrivere sulla stessa riga aggiungendo /n vari, ma sta a voi decidere.  Passiamo alla fase di pulizia. I commenti da, eventualmente,  cancellare&#8230;quali sono? Facile, è tutto ciò che è compreso fra <em>(!</em> e<em> )</em> ovvero se per esempio trovate:</p>
<blockquote><p><em>(! =============================================<br />
ƒfƒBƒ\[ƒ‹Š×—Ž<br />
=============================================<br />
&#8212;- MAP &#8212;-<br />
‚È‚µ:ƒAƒhƒxƒ“ƒ`ƒƒƒp[ƒg<br />
&#8212;- Character ID &#8212;-<br />
1:ƒtƒ@ƒY<br />
4:ƒVƒ‹ƒtƒ@ƒgƒX<br />
7:ƒŒƒCƒ}ƒŠ[<br />
&#8212;- Global Flags &#8212;-<br />
nothing<br />
&#8212;- Temporary Flags &#8212;-<br />
nothing<br />
&#8212;- Special Animation &#8212;-<br />
nothing<br />
&#8212;- Face in Window &#8212;-<br />
0:04ƒtƒ@ƒY ‹Á‚«<br />
1:32ƒVƒ‹ƒtƒ@ƒgƒX ‰ö‚µ‚Þ<br />
=============================================)</em></p></blockquote>
<p>Questo è tutto un commento e potrete usarlo. Occhio a non cancellare l&#8217;apertura o la chiusura del commento altrimenti mandate tutto in vacca&#8230;  Per ora questo è tutto, se mi verrà in mente altro o ci saranno domande scriverò qualcosa di nuovo.</p>
<p>Download <a href="http://www.brisma.net/wp-content/uploads/2008/05/hoshigami_dumper.rar">Hoshigami Dumper 0.9</a> (Eseguibile Win32).<a href="http://www.tbhreloaded.it/Vash/Hoshigami_Dumper.rar"></a></p>
<p>A presto per il reinseritore!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.brisma.net/2008/04/29/nuovo-hacker-nuove-inutilita/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
