<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="/xsl/rss.xsl" type="text/xsl" media="screen"?>
<!--åå®¢åå«æ¥å¿ï¼æ¯äºèç½ä¸ä¸ç§ä¸ªäººä¹¦ååäººéäº¤æµçå·¥å·ãéè¿åå®¢è®°å½ä¸å·¥ä½ãå­¦ä¹ ãçæ´»åå¨±ä¹çç¹æ»´ï¼çè³è§ç¹åè¯è®ºï¼ä»èå¨ç½ä¸å»ºç«ä¸ä¸ªå®å¨å±äºèªå·±çä¸ªäººå¤©å°ãå»ºç«åå®¢ï¼æå©äºä»äººå¨äºèç½ä¸æ´å¥½å°è®¤è¯æ¨ï¼ä¹æå©äºæ¨æ´å¥½çåå«äººäº¤æµãåå®¢ä¸çæ¯ä¸ä¸ªå¼æ¾åå±äº«çä¸çãæçåå®¢ç±æçå¬å¸å¼åï¼ç®åæ¯åè´¹æå¡ã--> 
<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:ppp="http://blog.sohu.com/ppp/"
	>

	<channel>
		<title>大拿的地盘</title>
		<link>http://dnasdw.blog.sohu.com/</link>
		<description><![CDATA[在我地盘这 你就得比我DER]]></description>
		<pubDate>Fri, 31 Oct 2008 22:03:03 +0800</pubDate>
		<ppp:ebi>1029e73792</ppp:ebi>
		<generator>搜狐博客</generator>
		<image>
			<title>http://blog.sohu.com</title>
			<url>http://js.pp.sohu.com/ppp/blog/images/common/logo_150_60.gif</url>
			<link>http://blog.sohu.com/</link>
			<width>100</width>
			<height>43</height>
			<description>搜狐博客</description>
		</image>
		<item>
			<title>生活中的DER人 之 沈阳出租车司机</title>
			<link>http://dnasdw.blog.sohu.com/103360467.html</link>
			<comments>http://dnasdw.blog.sohu.com/103360467.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Fri, 31 Oct 2008 22:03:03 +0800</pubDate>
			<category>《生活中的DER人》系列</category>
			<guid>http://dnasdw.blog.sohu.com/103360467.html</guid>
			<description><![CDATA[<p>10月31日,晚上打车收到5张10元的假币.其中有4张还是两两重号的.</p>
<p>沈阳的出租车司机真DER,除了这个还绕远路.</p>
<p>你们瞧瞧吉林市的的哥,学学人家.</p>]]></description>
		</item>
		    
		
		<item>
			<title>PSP 3.90M33-3 愚人节被愚</title>
			<link>http://dnasdw.blog.sohu.com/83541324.html</link>
			<comments>http://dnasdw.blog.sohu.com/83541324.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Wed, 2 Apr 2008 09:57:38 +0800</pubDate>
			<category>随笔</category>
			<guid>http://dnasdw.blog.sohu.com/83541324.html</guid>
			<description><![CDATA[<p>我的小P中招了,哈哈,早上起床才发现的.<br />发作的时间为4月2日00:00,半夜玩数独到2:00+都没发现...</p>]]></description>
		</item>
		    
		
		<item>
			<title>公元2008年3月1日,google.cn变样了</title>
			<link>http://dnasdw.blog.sohu.com/80591698.html</link>
			<comments>http://dnasdw.blog.sohu.com/80591698.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Sat, 1 Mar 2008 22:02:15 +0800</pubDate>
			<category>随笔</category>
			<guid>http://dnasdw.blog.sohu.com/80591698.html</guid>
			<description><![CDATA[<p><a href="http://www.google.cn">http://www.google.cn</a><br />一个经常去的站点,搜索功能强大,发现变了,多出很多东西,和以前简洁的界面相比,感觉很不适应.</p>]]></description>
		</item>
		    
		
		<item>
			<title>PSP无双大蛇,09变07这个补丁方法很DER</title>
			<link>http://dnasdw.blog.sohu.com/79697374.html</link>
			<comments>http://dnasdw.blog.sohu.com/79697374.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Thu, 21 Feb 2008 02:24:52 +0800</pubDate>
			<category>随笔</category>
			<guid>http://dnasdw.blog.sohu.com/79697374.html</guid>
			<description><![CDATA[<p>如题.<br />很DER,很TMDER!<br />睡觉...</p>]]></description>
		</item>
		    
		
		<item>
			<title>NDS 0339 大航海時代IV evstill 导出工具源代码</title>
			<link>http://dnasdw.blog.sohu.com/78833957.html</link>
			<comments>http://dnasdw.blog.sohu.com/78833957.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Sun, 10 Feb 2008 23:49:57 +0800</pubDate>
			<category>汉化</category>
			<guid>http://dnasdw.blog.sohu.com/78833957.html</guid>
			<description><![CDATA[<p>#include &lt;stdio.h&gt;<br />#include &lt;windows.h&gt;<br /><br />struct PXLHEADER {<br />&nbsp;UINT unk0;<br />&nbsp;UINT halfwidth;<br />&nbsp;UINT height;<br />&nbsp;UINT palptr;<br />&nbsp;UINT bitptr;<br />};<br /><br />int pxl2bmp(char *pxl)<br />{<br />&nbsp;FILE *ppxl, *ppal, *pbmp;<br />&nbsp;if (fopen_s(&amp;ppxl, pxl, &quot;rb&quot;)) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;char *pal = new char[strlen(pxl) + 5];<br />&nbsp;memset(pal, 0, strlen(pxl) + 5);<br />&nbsp;sprintf_s(pal, strlen(pxl) + 5, &quot;%s.pal&quot;, pxl);<br />&nbsp;pal[strlen(pxl) + 4] = 0;<br />&nbsp;if (fopen_s(&amp;ppal, pal, &quot;wb&quot;)) {<br />&nbsp;&nbsp;delete [] pal;<br />&nbsp;&nbsp;pal = 0;<br />&nbsp;&nbsp;fclose(ppxl);<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;delete [] pal;<br />&nbsp;pal = 0;<br />&nbsp;char *bmp = new char[strlen(pxl) + 5];<br />&nbsp;memset(bmp, 0, strlen(pxl) + 5);<br />&nbsp;sprintf_s(bmp, strlen(pxl) + 5, &quot;%s.bmp&quot;, pxl);<br />&nbsp;bmp[strlen(pxl) + 4] = 0;<br />&nbsp;if (fopen_s(&amp;pbmp, bmp, &quot;wb&quot;)) {<br />&nbsp;&nbsp;delete [] bmp;<br />&nbsp;&nbsp;bmp = 0;<br />&nbsp;&nbsp;fclose(ppal);<br />&nbsp;&nbsp;fclose(ppxl);<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;delete [] bmp;<br />&nbsp;bmp = 0;<br />&nbsp;fseek(ppxl, 0, 2);<br />&nbsp;long pxllength = ftell(ppxl);<br />&nbsp;if (pxllength != 0xC214) {<br />&nbsp;&nbsp;fclose(pbmp);<br />&nbsp;&nbsp;fclose(ppal);<br />&nbsp;&nbsp;fclose(ppxl);<br />&nbsp;&nbsp;printf(&quot;pxl文件长度错误!\n&quot;);<br />&nbsp;&nbsp;system(&quot;pause&quot;);<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;fseek(ppxl, 0, 0);<br />&nbsp;PXLHEADER ph;<br />&nbsp;fread(&amp;ph, sizeof(PXLHEADER), 1, ppxl);<br />&nbsp;if ((ph.unk0 != 0x108) || (ph.halfwidth != 0x80) || (ph.height != 0xC0) || (ph.palptr != 0x14) || (ph.bitptr != 0x214)) {<br />&nbsp;&nbsp;fclose(pbmp);<br />&nbsp;&nbsp;fclose(ppal);<br />&nbsp;&nbsp;fclose(ppxl);<br />&nbsp;&nbsp;printf(&quot;pxl文件头错误!\n&quot;);<br />&nbsp;&nbsp;system(&quot;pause&quot;);<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;USHORT RGB16[256];<br />&nbsp;UINT RGB32[256];<br />&nbsp;fread(RGB16, 2, 256, ppxl);<br />&nbsp;for (UINT i = 0; i &lt; 256; i++) {<br />&nbsp;&nbsp;RGB32[i] = (((RGB16[i] &amp; 0x1F) * 8) | (((RGB16[i] &gt;&gt; 5 &amp; 0x1F) * 8) &lt;&lt; 8) | (((RGB16[i] &gt;&gt; 10 &amp; 0x1F) * 8) &lt;&lt; 16)) &amp; 0xFFFFFF;<br />&nbsp;}<br />&nbsp;fprintf(ppal, &quot;RIFF%c%c%c%cPAL data%c%c%c%c%c%c%c%c&quot;, 0x10, 0x04, 0x00, 0x00, 0x04, 0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01);<br />&nbsp;fwrite(RGB32, 4, 256, ppal);<br />&nbsp;fclose(ppal);<br />&nbsp;BITMAPFILEHEADER bfh;<br />&nbsp;bfh.bfType = 0x4D42;<br />&nbsp;bfh.bfSize = 0xC436;<br />&nbsp;bfh.bfReserved1 = 0;<br />&nbsp;bfh.bfReserved2 = 0;<br />&nbsp;bfh.bfOffBits = 0x436;<br />&nbsp;BITMAPINFOHEADER bih;<br />&nbsp;bih.biSize = 0x28;<br />&nbsp;bih.biWidth = 0x100;<br />&nbsp;bih.biHeight = 0xC0;<br />&nbsp;bih.biPlanes = 1;<br />&nbsp;bih.biBitCount = 8;<br />&nbsp;bih.biCompression = 0;<br />&nbsp;bih.biSizeImage = 0xC000;<br />&nbsp;bih.biXPelsPerMeter = 0;<br />&nbsp;bih.biYPelsPerMeter = 0;<br />&nbsp;bih.biClrUsed = 0;<br />&nbsp;bih.biClrImportant = 0;<br />&nbsp;for (UINT i = 0; i &lt; 256; i++) {<br />&nbsp;&nbsp;RGB32[i] = ((((RGB16[i] &amp; 0x1F) * 8) &lt;&lt; 16) | (((RGB16[i] &gt;&gt; 5 &amp; 0x1F) * 8) &lt;&lt; 8) | ((RGB16[i] &gt;&gt; 10 &amp; 0x1F) * 8)) &amp; 0xFFFFFF;<br />&nbsp;}<br />&nbsp;BYTE bits[0xC000];<br />&nbsp;fread(bits, 1, 0xC000, ppxl);<br />&nbsp;fwrite(&amp;bfh, sizeof(BITMAPFILEHEADER), 1, pbmp);<br />&nbsp;fwrite(&amp;bih, sizeof(BITMAPINFOHEADER), 1, pbmp);<br />&nbsp;fwrite(RGB32, 4, 256, pbmp);<br />&nbsp;for (int i = 191; i &gt;= 0; i--) {<br />&nbsp;&nbsp;fwrite(bits + i * 256, 256, 1, pbmp);<br />&nbsp;}<br />&nbsp;fclose(pbmp);<br />&nbsp;fclose(ppxl);<br />&nbsp;return 0;<br />}<br /><br />int main(int argc, char *argv[])<br />{<br />&nbsp;if (argc != 2) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;return pxl2bmp(argv[1]);<br />}</p>]]></description>
		</item>
		    
		
		<item>
			<title>NDS 1981 放課後少年 文件解密/加密C++源代码</title>
			<link>http://dnasdw.blog.sohu.com/78517338.html</link>
			<comments>http://dnasdw.blog.sohu.com/78517338.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Tue, 5 Feb 2008 22:02:45 +0800</pubDate>
			<category>汉化</category>
			<guid>http://dnasdw.blog.sohu.com/78517338.html</guid>
			<description><![CDATA[<p>// 1981 - Houkago Shounen (JP) 文件解密/加密源代码<br />// 2008年02月05日 孙道文</p>
<p>#include &lt;stdio.h&gt;<br />#include &lt;windows.h&gt;</p>
<p>int main(int argc, char *argv[])<br />{<br />&nbsp;if (argc != 2) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;const BYTE key[14] = {'W', 'I', 'L', 'L', ' ', 'C', 'O', '.', ',', 'L', 'T', 'D', '.', 0};<br />&nbsp;FILE *p;<br />&nbsp;if (fopen_s(&amp;p, argv[1], &quot;rb+&quot;)) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;fseek(p, 0, 2);<br />&nbsp;long filelength = ftell(p);<br />&nbsp;BYTE *data = new BYTE[filelength];<br />&nbsp;fseek(p, 0, 0);<br />&nbsp;fread(data, filelength, 1, p);<br />&nbsp;if (*(UINT*)(data + 8) == 0) {<br />&nbsp;&nbsp;delete [] data;<br />&nbsp;&nbsp;data = 0;<br />&nbsp;&nbsp;fclose(p);<br />&nbsp;&nbsp;return 0;<br />&nbsp;}<br />&nbsp;UINT length = *(UINT*)(data + 4);<br />&nbsp;UINT noofkey = 0;<br />&nbsp;UINT xor0, xor1;<br />&nbsp;for (UINT i = 0x10; i &lt; length + 0x10; i++) {<br />&nbsp;&nbsp;xor0 = data[i];<br />&nbsp;&nbsp;if (xor0 &gt;&gt; 7 &amp; 1) {<br />&nbsp;&nbsp;&nbsp;xor0 |= 0xFFFFFF00;<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;xor0 &amp;= 0x000000FF;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;xor1 = key[noofkey++] + i - 0x10;<br />&nbsp;&nbsp;if (xor1 &gt;&gt; 7 &amp; 1) {<br />&nbsp;&nbsp;&nbsp;xor1 |= 0xFFFFFF00;<br />&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;xor1 &amp;= 0x000000FF;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;data[i] = xor0 ^ xor1;<br />&nbsp;&nbsp;if (noofkey &gt; 13) {<br />&nbsp;&nbsp;&nbsp;noofkey = 0;<br />&nbsp;&nbsp;}<br />&nbsp;}<br />&nbsp;fseek(p, 0, 0);<br />&nbsp;fwrite(data, filelength, 1, p);<br />&nbsp;delete [] data;<br />&nbsp;data = 0;<br />&nbsp;fclose(p);<br />&nbsp;return 0;<br />}</p>]]></description>
		</item>
		    
		
		<item>
			<title>PSP 1321 - Star Ocean SLZ2 压缩代码</title>
			<link>http://dnasdw.blog.sohu.com/78379789.html</link>
			<comments>http://dnasdw.blog.sohu.com/78379789.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Mon, 4 Feb 2008 00:01:40 +0800</pubDate>
			<category>汉化</category>
			<guid>http://dnasdw.blog.sohu.com/78379789.html</guid>
			<description><![CDATA[<p>// PSP 1321 - Star Ocean - The First Departure (JP) SLZ2 压缩代码<br />// 使用时需事先开辟dst所占用的内存,大小和未压缩的大小srcsize一样基本就可以了<br />// 不过也有可能出现压缩比未压缩还大的情况<br />// 使用前还要定义dst的大小dstsize,和dst一起做参数<br />// 写入文件的时候直接 fwrite(dst, dstsize, 1, pfile); 即可</p>
<p>void slz2Compress(BYTE *src, ULONG srcsize, BYTE *&amp;dst, ULONG &amp;dstsize)<br />{<br />&nbsp;bool brk;&nbsp;// 判断是否压缩完毕<br />&nbsp;ULONG pscur = 0, pdcur = 0;&nbsp;// 当前原数据和压缩数据的位置<br />&nbsp;ULONG lzMroff = min(pscur, 0xFFF);&nbsp;// LZ方法中最大向前偏移<br />&nbsp;ULONG lzMrlen = min(0x11, srcsize - pscur);&nbsp;// LZ方法中最大长度<br />&nbsp;ULONG rleMlen = min(0x112, srcsize - pscur);&nbsp;// RLE方法中最大长度<br />&nbsp;ULONG flags, flag, lzf, rlef;&nbsp;// 压缩标记<br />&nbsp;ULONG cl,&nbsp;// 小段长度<br />&nbsp;&nbsp;lzroff,&nbsp;// LZ方法中向前偏移<br />&nbsp;&nbsp;lzrlen,&nbsp;// LZ方法中长度<br />&nbsp;&nbsp;lzbroff,&nbsp;// LZ方法中之前最大长度对应的偏移<br />&nbsp;&nbsp;lzbrlen,&nbsp;// LZ方法中之前最大长度<br />&nbsp;&nbsp;rlelen;&nbsp;// RLE方法中重复次数<br />&nbsp;BYTE rledat;&nbsp;// RLE方法中重复的数据<br />&nbsp;do {<br />&nbsp;&nbsp;brk = false;<br />&nbsp;&nbsp;flags = 0;<br />&nbsp;&nbsp;cl = 1;<br />&nbsp;&nbsp;pdcur++;<br />&nbsp;&nbsp;for (int i = 0; i &lt; 8; i++) {<br />&nbsp;&nbsp;&nbsp;if (lzMrlen &lt; 3) {&nbsp;// 剩余未压缩字节少于3时,不使用压缩,此判断也可以用rleMlen<br />&nbsp;&nbsp;&nbsp;&nbsp;flag = 1;<br />&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = src[pscur++];<br />&nbsp;&nbsp;&nbsp;&nbsp;cl++;<br />&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;// LZ方法寻找匹配<br />&nbsp;&nbsp;&nbsp;&nbsp;lzf = 1;<br />&nbsp;&nbsp;&nbsp;&nbsp;lzbrlen = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;for (lzroff = pscur - lzMroff; lzroff &lt; pscur; lzroff++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (src[lzroff] == src[pscur]) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (lzrlen = 0; lzrlen &lt; lzMrlen; lzrlen++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (src[lzroff + lzrlen] != src[pscur + lzrlen]) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (lzrlen &lt; 3) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lzrlen = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lzf = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (lzf == 0 &amp;&amp; lzbrlen &lt; lzrlen) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lzbroff = pscur - lzroff;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lzbrlen = lzrlen;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;// RLE方法寻找匹配<br />&nbsp;&nbsp;&nbsp;&nbsp;for (rlelen = 0; rlelen &lt; rleMlen; rlelen++) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (src[pscur + rlelen] != src[pscur]) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;if (rlelen &lt; 4) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rlelen = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rlef = 1;<br />&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rledat = src[pscur];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rlef = 0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;flag = lzf &amp; rlef;<br />&nbsp;&nbsp;&nbsp;&nbsp;if (flag == 1) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = src[pscur++];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cl++;<br />&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (lzrlen &gt;= rlelen) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = lzbroff &amp; 0xFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = ((lzbrlen - 3) &lt;&lt; 4 &amp; 0xF0) | (lzbroff &gt;&gt; 8 &amp; 0xF);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cl += 2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pscur += lzbrlen;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else if (rlelen &lt; 0x13) {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = rledat;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = (rlelen - 3) | 0xF0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cl += 2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pscur += rlelen;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = rlelen - 0x13;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = 0xF0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dst[pdcur++] = rledat;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cl += 3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pscur += rlelen;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;flag = flag &lt;&lt; 7 &amp; 0x80;<br />&nbsp;&nbsp;&nbsp;flags = (flags &gt;&gt; 1) | flag;<br />&nbsp;&nbsp;&nbsp;lzMroff = min(pscur, 0xFFF);<br />&nbsp;&nbsp;&nbsp;lzMrlen = min(0x11, srcsize - pscur);<br />&nbsp;&nbsp;&nbsp;rleMlen = min(0x112, srcsize - pscur);<br />&nbsp;&nbsp;&nbsp;if (lzMrlen == 0) {<br />&nbsp;&nbsp;&nbsp;&nbsp;flags &gt;&gt;= (7 - i);<br />&nbsp;&nbsp;&nbsp;&nbsp;brk = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;dst[pdcur - cl] = flags;<br />&nbsp;} while (!brk);<br />&nbsp;dstsize = pdcur;<br />}<br /></p>]]></description>
		</item>
		    
		
		<item>
			<title>某PSP游戏字库程序,BMP格式化</title>
			<link>http://dnasdw.blog.sohu.com/78300319.html</link>
			<comments>http://dnasdw.blog.sohu.com/78300319.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Mon, 4 Feb 2008 00:02:50 +0800</pubDate>
			<category>汉化</category>
			<guid>http://dnasdw.blog.sohu.com/78300319.html</guid>
			<description><![CDATA[<p>#include &lt;stdio.h&gt;<br />#include &lt;windows.h&gt;</p>
<p>int main(int argc, char *argv[])<br />{<br />&nbsp;FILE *p;<br />&nbsp;if (argc != 2) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;if (fopen_s(&amp;p, argv[1], &quot;rb&quot;)) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;fseek(p, 0, 2);<br />&nbsp;long length = ftell(p);<br />&nbsp;BYTE *data = new BYTE[length];<br />&nbsp;fseek(p, 0, 0);<br />&nbsp;fread(data, length, 1, p);<br />&nbsp;fclose(p);<br />&nbsp;char *file = new char[strlen(argv[1]) + 5];<br />&nbsp;for (int i = 0; i &lt; strlen(argv[1]) + 5; i++) {<br />&nbsp;&nbsp;file[i] = 0;<br />&nbsp;}<br />&nbsp;sprintf_s(file, strlen(argv[1]) + 5, &quot;%s.bmp&quot;, argv[1]);<br />&nbsp;file[strlen(argv[1]) + 4] = 0;<br />&nbsp;if (fopen_s(&amp;p, file, &quot;wb+&quot;)) {<br />&nbsp;&nbsp;delete [] file;<br />&nbsp;&nbsp;file = 0;<br />&nbsp;&nbsp;delete [] data;<br />&nbsp;&nbsp;data = 0;<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;delete [] file;<br />&nbsp;file = 0;<br />&nbsp;ULONG l, w, h, s;<br />&nbsp;l = length - 2;<br />&nbsp;w = data[0x14] + data[0x15] * 0x100 + data[0x16] * 0x10000 + data[0x17] * 0x1000000;<br />&nbsp;h = data[0x18] + data[0x19] * 0x100 + data[0x1A] * 0x10000 + data[0x1B] * 0x1000000;<br />&nbsp;s = w * h / 2;<br />&nbsp;data[4] = l &amp; 0xFF;<br />&nbsp;data[5] = l &gt;&gt; 8 &amp; 0xFF;<br />&nbsp;data[6] = l &gt;&gt; 16 &amp; 0xFF;<br />&nbsp;data[7] = l &gt;&gt; 24 &amp; 0xFF;<br />&nbsp;data[0x0C] = 0x3E;<br />&nbsp;data[0x0D] = 0;<br />&nbsp;data[0x0E] = 0;<br />&nbsp;data[0x0F] = 0;<br />&nbsp;data[0x14] = w &amp; 0xFF;<br />&nbsp;data[0x15] = w &gt;&gt; 8 &amp; 0xFF;<br />&nbsp;data[0x16] = w &gt;&gt; 16 &amp; 0xFF;<br />&nbsp;data[0x17] = w &gt;&gt; 24 &amp; 0xFF;<br />&nbsp;data[0x18] = h &amp; 0xFF;<br />&nbsp;data[0x19] = h &gt;&gt; 8 &amp; 0xFF;<br />&nbsp;data[0x1A] = h &gt;&gt; 16 &amp; 0xFF;<br />&nbsp;data[0x1B] = h &gt;&gt; 24 &amp; 0xFF;<br />&nbsp;data[0x24] = s &amp; 0xFF;<br />&nbsp;data[0x25] = s &gt;&gt; 8 &amp; 0xFF;<br />&nbsp;data[0x26] = s &gt;&gt; 16 &amp; 0xFF;<br />&nbsp;data[0x27] = s &gt;&gt; 24 &amp; 0xFF;<br />&nbsp;putc(data[0], p);<br />&nbsp;putc(data[1], p);<br />&nbsp;for (long i = 0x04; i &lt; 0x40; i++) {<br />&nbsp;&nbsp;putc(data[i], p);<br />&nbsp;}<br />&nbsp;for (long i = 0x40; i &lt; length; i++) {<br />&nbsp;&nbsp;putc((data[i] &gt;&gt; 4 &amp; 0x0F | data[i] &lt;&lt; 4 &amp; 0xF0), p);<br />&nbsp;}<br />&nbsp;fclose(p);<br />&nbsp;delete [] data;<br />&nbsp;data = 0;<br />&nbsp;return 0;<br />}</p>]]></description>
		</item>
		    
		
		<item>
			<title>DQ IV</title>
			<link>http://dnasdw.blog.sohu.com/71296821.html</link>
			<comments>http://dnasdw.blog.sohu.com/71296821.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Fri, 23 Nov 2007 07:10:45 +0800</pubDate>
			<category>汉化</category>
			<guid>http://dnasdw.blog.sohu.com/71296821.html</guid>
			<description><![CDATA[这东西貌似不错，有时间先写程序。]]></description>
		</item>
		    
		
		<item>
			<title>NDS 0615 Contact FILEDATA 拆包源代码</title>
			<link>http://dnasdw.blog.sohu.com/65015457.html</link>
			<comments>http://dnasdw.blog.sohu.com/65015457.html#comment</comments>
			<dc:creator>大拿的地盘</dc:creator>
			<pubDate>Mon, 24 Sep 2007 18:59:47 +0800</pubDate>
			<category>汉化</category>
			<guid>http://dnasdw.blog.sohu.com/65015457.html</guid>
			<description><![CDATA[<p>// DS 0615 Contact (US) FILEDATA.BIN Dump<br />// 孙道文</p>
<p>#include &lt;stdio.h&gt;<br />#include &lt;windows.h&gt;</p>
<p>FILE *pfd, *pbin, *plog;<br />ULONG count;<br />UCHAR temp[4] = {0};</p>
<p>class OL {<br />public:<br />&nbsp;ULONG offset;<br />&nbsp;ULONG length;<br />};</p>
<p>int FDDump()<br />{<br />&nbsp;if (fopen_s(&amp;pfd, &quot;FILEDATA.BIN&quot;, &quot;rb&quot;)) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;if (fopen_s(&amp;plog, &quot;log.txt&quot;, &quot;wb&quot;)) {<br />&nbsp;&nbsp;fclose(pfd);<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;fseek(pfd, 8, 0);<br />&nbsp;fread(&amp;count, 4, 1, pfd);<br />&nbsp;fseek(pfd, 16, 0);<br />&nbsp;OL *offlen = new OL[count];<br />&nbsp;for (long i = 0; i &lt; count; i++) {<br />&nbsp;&nbsp;fread(&amp;offlen[i], sizeof(OL), 1, pfd);<br />&nbsp;}<br />&nbsp;::CreateDirectory(&quot;DATA&quot;, NULL);<br />&nbsp;char file[15] = {0};<br />&nbsp;for (long i = 0; i &lt; count; i++) {<br />&nbsp;&nbsp;if (offlen[i].length == 0) {<br />&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;sprintf_s(file, 15, &quot;DATA\\%05u.bin&quot;, i);<br />&nbsp;&nbsp;file[14] = 0;<br />&nbsp;&nbsp;if (fopen_s(&amp;pbin, file, &quot;wb&quot;)) {<br />&nbsp;&nbsp;&nbsp;delete [] offlen;<br />&nbsp;&nbsp;&nbsp;offlen = 0;<br />&nbsp;&nbsp;&nbsp;fclose(plog);<br />&nbsp;&nbsp;&nbsp;fclose(pfd);<br />&nbsp;&nbsp;&nbsp;return 1;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;fseek(pfd, offlen[i].offset * 4, 0);<br />&nbsp;&nbsp;fprintf(plog, &quot;%05u&nbsp;&quot;, i);<br />&nbsp;&nbsp;if (offlen[i].length &gt;= 4) {<br />&nbsp;&nbsp;&nbsp;temp[0] = getc(pfd);<br />&nbsp;&nbsp;&nbsp;temp[1] = getc(pfd);<br />&nbsp;&nbsp;&nbsp;temp[2] = getc(pfd);<br />&nbsp;&nbsp;&nbsp;temp[3] = getc(pfd);<br />&nbsp;&nbsp;&nbsp;if (temp[0] == 0x10) {<br />&nbsp;&nbsp;&nbsp;&nbsp;fprintf(plog, &quot;%02X %02X %02X %02X\r\n&quot;, temp[0], temp[1], temp[2], temp[3]);<br />&nbsp;&nbsp;&nbsp;} else {<br />&nbsp;&nbsp;&nbsp;&nbsp;fprintf(plog, &quot;%c%c%c%c\r\n&quot;, temp[3], temp[2], temp[1], temp[0]);<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;fseek(pfd, offlen[i].offset * 4, 0);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;for (long j = 0; j &lt; offlen[i].length; j++) {<br />&nbsp;&nbsp;&nbsp;putc(getc(pfd), pbin);<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;fclose(pbin);<br />&nbsp;}<br />&nbsp;delete [] offlen;<br />&nbsp;offlen = 0;<br />&nbsp;fclose(plog);<br />&nbsp;fclose(pfd);<br />&nbsp;return 0;<br />}</p>
<p>int main(int argc, char *argv[])<br />{<br />&nbsp;if (argc != 2) {<br />&nbsp;&nbsp;return 1;<br />&nbsp;}<br />&nbsp;if (strlen(argv[1]) == 1 &amp;&amp; (*argv[1] == 'd' || *argv[1] == 'D')) {<br />&nbsp;&nbsp;return FDDump();<br />&nbsp;}<br />&nbsp;//if (strlen(argv[1]) == 1 &amp;&amp; (*argv[1] == 'p' || *argv[1] == 'P')) {<br />&nbsp;//&nbsp;return 0/*FDPack()*/;<br />&nbsp;//}<br />&nbsp;return 1;<br />}</p>]]></description>
		</item>
		    
		
	</channel>
</rss>
