diff system/file.cc @ 65:4416cfac86ae

Convert EUC-JP files to UTF8
author Thibaut Girka <thib@sitedethib.com>
date Fri, 26 Nov 2010 10:53:15 +0100
parents ddbcbd000206
children
line wrap: on
line diff
--- a/system/file.cc
+++ b/system/file.cc
@@ -1,9 +1,9 @@
 bool init_end=false;
-/*  file.cc  : KANON の圧縮ファイル・PDT ファイル(画像ファイル)の展開の
- *            ためのメソッド
- *     class ARCFILE : 書庫ファイル全体を扱うクラス
- *     class ARCINFO : 書庫ファイルの中の1つのファイルを扱うクラス
- *     class PDTCONV : PDT ファイルの展開を行う。
+/*  file.cc  : KANON х軒<ゃPDT <ゃ鐚糸<ゃ鐚絮
+ *            <純
+ *     class ARCFILE : 後昆<ゃ篏宴
+ *     class ARCINFO : 後昆<ゃ筝鐚ゃ<ゃ宴
+ *     class PDTCONV : PDT <ゃ絮茵
  *
  */
 
@@ -85,7 +85,7 @@ using namespace std;
 
 // #define delete fprintf(stderr,"file.cc: %d.",__LINE__), delete
 
-/* FileSearcher class の default の振る舞い */
+/* FileSearcher class  default  */
 FileSearcher *FileSearcher::_singleton = NULL;
 FileSearcher::ARCTYPE FileSearcher::default_is_archived[TYPEMAX] = {
 	ATYPE_DIR, ATYPE_DIR, ATYPE_DIR, ATYPE_DIR,
@@ -100,16 +100,16 @@ const char* FileSearcher::default_dirnam
 
 /*********************************************
 **  ARCFILE / DIRFILE:
-**	書庫ファイル、あるいはディレクトリの
-**	全体を管理するクラス
+**	後昆<ゃc
+**	篏膊∞
 **
-**	書庫ファイルからファイルの抜き出しはFind()
-**	Find したものをReadすると内容が得られる。
+**	後昆<ゃ<ゃ冴Find()
+**	Find Read絎鴻緇
 */
 
 ARCFILE::ARCFILE(const char* aname) {
 	struct stat sb;
-	/* 変数初期化 */
+	/* 紊医 */
 	arcname = NULL;
 	list_point = 0;
 	filenames_orig = NULL;
@@ -119,7 +119,7 @@ ARCFILE::ARCFILE(const char* aname) {
 		arcname[0]='\0';
 		return;
 	} // NULFILE
-	/* ディレクトリか否かのチェック */
+	/* cс */
 	if (stat(aname,&sb) == -1) { /* error */
 		perror("stat");
 	}
@@ -141,9 +141,9 @@ ARCFILE::ARCFILE(const char* aname) {
 void ARCFILE::Init(void) {
 	if (! arc_atom.empty()) return;
 	if (arcname == NULL) return;
-	/* ファイル数を得る */
+	/* <ゃ違緇 */
 	int slen = CheckFileDeal();
-	/* ファイル名のセット */
+	/* <ゃ祉 */
 	ListupFiles(slen);
 	if ( (!arc_atom.empty()) && arc_atom[0].filename) filenames_orig = arc_atom[0].filename;
 	sort(arc_atom.begin(), arc_atom.end());
@@ -160,16 +160,16 @@ ARCFILE::iterator ARCFILE::SearchName(co
 	Init();
 	if (f == NULL) return arc_atom.end();
 	if (arc_atom.empty()) return arc_atom.end();
-	/* エラーチェック */
+	/* 若с */
 	if (strlen(f)>500) return arc_atom.end();
 	if (ext && strlen(ext)>500) return arc_atom.end();
 
-	/* 検索 */
+	/* 罎膣 */
 	strncpy(buf, f, 1000);
 	buf[1000]=0;
 	it = lower_bound(arc_atom.begin(), arc_atom.end(), (char*)buf);
 	if (it != arc_atom.end() && strcmp(it->filename_lower, buf) == 0) return it;
-	// 拡張子をつけて検索
+	// ≦宍絖ゃ罎膣
 	if (ext) {
 		strcpy(buf_ext, buf);
 		char* ext_pt = strrchr(buf_ext, '.');
@@ -181,7 +181,7 @@ ARCFILE::iterator ARCFILE::SearchName(co
 		if (it != arc_atom.end() && strcmp(it->filename_lower, buf_ext) == 0) return it;
 	}
 
-	/* 小文字にして 検索 */
+	/* 絨絖 罎膣 */
 	int i; int l = strlen(f);
 	if (l > 500) l = 500;
 	for (i=0; i<l; i++)
@@ -190,13 +190,13 @@ ARCFILE::iterator ARCFILE::SearchName(co
 	it = lower_bound(arc_atom.begin(), arc_atom.end(), (char*)buf);
 	if (it != arc_atom.end() && strcmp(it->filename_lower, buf) == 0) return it;
 
-	// 拡張子をつけて検索
+	// ≦宍絖ゃ罎膣
 	if (ext == NULL) return arc_atom.end();
 	strcpy(buf_ext, buf);
 	char* ext_pt = strrchr(buf_ext, '.');
 	if (ext_pt == NULL || ext_pt == buf_ext) ext_pt = buf_ext + strlen(buf_ext);
 	*ext_pt++ = '.';
-	/* 拡張子の長さを得る */
+	/* ≦宍絖激緇 */
 	l = strlen(ext);
 	for (i=0; i<l; i++)
 		ext_pt[i] = tolower(*ext++);
@@ -218,7 +218,7 @@ ARCINFO* ARCFILE::Find(const char* fname
 ARCINFO* ARCFILE::MakeARCINFO(ARCFILE_ATOM& atom) {
 	if (atom.arcsize == atom.filesize)
 		return new ARCINFO(arcname, atom);
-	else // 圧縮付
+	else // х軒篁
 		return new ARCINFO_AVG32(arcname, atom);
 }
 ARCINFO* NULFILE::MakeARCINFO(ARCFILE_ATOM& atom) {
@@ -297,7 +297,7 @@ char* ARCFILE::ListItem(void) {
 
 int ARCFILE::CheckFileDeal(void) {
 	char buf[0x20];
-	/* ヘッダのチェック */
+	/* с */
 	FILE* stream = fopen(arcname, "rb");
 	if (stream == NULL) {
 		fprintf(stderr, "Cannot open archive file : %s\n",arcname);
@@ -386,7 +386,7 @@ void DIRFILE::ListupFiles(int fname_len)
 		fprintf(stderr, "Cannot open dir file : %s\n",arcname);
 		return;
 	}
-	/* 一時的に arcname のディレクトリに移動する */
+	/* 筝 arcname c腱糸 */
 	int old_dir_fd = open(".",O_RDONLY);
 	if (old_dir_fd < 0) {
 		closedir(dir);
@@ -427,7 +427,7 @@ void DIRFILE::ListupFiles(int fname_len)
 		arc_atom.push_back(atom);
 		buf += l*2+2; fname_len -= l*2+2;
 	}
-	/* chdir() したのを元に戻る */
+	/* chdir() 祉 */
 	closedir(dir);
 	fchdir(old_dir_fd); close(old_dir_fd);
 }
@@ -447,7 +447,7 @@ void NULFILE::ListupFiles(int fname_len)
 }
 
 int SCN2kFILE::CheckFileDeal(void) {
-	/* ヘッダのチェック */
+	/* с */
 	FILE* stream = fopen(arcname, "rb");
 	if (stream == NULL) {
 		fprintf(stderr, "Cannot open archive file : %s\n",arcname);
@@ -462,7 +462,7 @@ int SCN2kFILE::CheckFileDeal(void) {
 	}
 	char* buf = new char[10000*8];
 	fread(buf, 10000, 8, stream);
-	/* size == 0 のデータは存在しない */
+	/* size == 0 若帥絖 */
 	int count = 0;
 	int i; for (i=0; i<10000; i++) {
 		int tmp_offset = read_little_endian_int(buf+i*8);
@@ -472,7 +472,7 @@ int SCN2kFILE::CheckFileDeal(void) {
 	}
 	fclose(stream);
 	delete[] buf;
-	return count*13; /* ファイル名は seenXXXX.txt だから、一つ12文字+null */
+	return count*13; /* <ゃ seenXXXX.txt 筝12絖+null */
 }
 
 void SCN2kFILE::ListupFiles(int fname_len) {
@@ -492,23 +492,23 @@ void SCN2kFILE::ListupFiles(int fname_le
 		int tmp_offset = read_little_endian_int(buf+i*8);
 		int tmp_size = read_little_endian_int(buf+i*8+4);
 		if (tmp_size <= 0 || tmp_offset < 0 || tmp_offset+tmp_size > int(arc_size) ) continue;
-		/* header を得て圧縮形式などを調べる */
+		/* header 緇х軒綵√茯帥鴻 */
 		fseek(stream, tmp_offset, SEEK_SET);
 		fread(header, 0x200, 1, stream);
 		int header_top = read_little_endian_int(header+0);
 		int file_version = read_little_endian_int(header+4);
 
 		if (file_version == 0x1adb2) ; // Little Busters!
-		else if (file_version != 0x2712) continue; /* system version が違う */
+		else if (file_version != 0x2712) continue; /* system version  */
 
-		if (header_top == 0x1cc) { /* 古い形式 : avg2000 */
+		if (header_top == 0x1cc) { /* ゃ綵√ : avg2000 */
 			int header_size = read_little_endian_int(header+0)+read_little_endian_int(header+0x20)*4;
 			int data_size = read_little_endian_int(header+0x24);
 			atom.arcsize = data_size + header_size;
 			atom.filesize = data_size + header_size;
 			atom.private_data = header_size;
 
-		} else if (header_top == 0x1b8) { /* 初夜献上 */
+		} else if (header_top == 0x1b8) { /* 紊筝 */
 			int header_size = read_little_endian_int(header+0)+read_little_endian_int(header+0x08)*4;
 			int data_size = read_little_endian_int(header+0x0c);
 			int compdata_size = read_little_endian_int(header+0x10);
@@ -516,7 +516,7 @@ void SCN2kFILE::ListupFiles(int fname_le
 			atom.filesize = data_size + header_size;
 			atom.private_data = header_size;
 			
-		} else if (header_top == 0x1d0) { /* 新しい形式: reallive */
+		} else if (header_top == 0x1d0) { /* 違綵√鐚 reallive */
 			int header_size = read_little_endian_int(header+0x20);
 			int data_size = read_little_endian_int(header+0x24);
 			int compdata_size = read_little_endian_int(header+0x28);
@@ -525,7 +525,7 @@ void SCN2kFILE::ListupFiles(int fname_le
 			atom.private_data = header_size;
 		} else {
 			fprintf(stderr,"invalid header top; %x : not supported\n",header_top);
-			continue; /* サポートしない形式 */
+			continue; /* 泣若綵√ */
 		}
 
 		atom.offset = tmp_offset;
@@ -608,7 +608,7 @@ const char * KeyHolder::GetKey(void)
 }
 
 /********************************************************
-** FileSearcher クラスの実装
+** FileSearcher 鴻絎茖
 */
 
 FileSearcher* FileSearcher::GetInstance(void) {
@@ -647,7 +647,7 @@ FileSearcher::~FileSearcher(void) {
 }
 
 int FileSearcher::InitRoot(char* root) {
-	/* 必要に応じて ~/ を展開 */
+	/* 綽荀綽 ~/ 絮 */
 	if (root[0] == '~' && root[1] == '/') {
 		char* home = getenv("HOME");
 		if (home != NULL) {
@@ -657,7 +657,7 @@ int FileSearcher::InitRoot(char* root) {
 			root = new_root;
 		}
 	}
-	/* 古いデータを消す */
+	/* ゃ若帥羔 */
 	int i;
 	for (i=0; i<TYPEMAX; i++) {
 		if (searcher[i] != NULL &&
@@ -671,13 +671,13 @@ int FileSearcher::InitRoot(char* root) {
 	if (root_dir) delete root_dir;
 	dat_dir = NULL;
 
-	/* 新しいディレクトリのもとで初期化 */
+	/* 違cу */
 	root_dir = new DIRFILE(root);
 	root_dir->Init();
-	/* dat/ を検索 */
+	/* dat/ 罎膣 */
 	char* dat_path = root_dir->SearchFile("dat");
 	if (dat_path == NULL) {
-		/* 見つからなかったら root を dat の代わりにつかう */
+		/* 荀ゃc root  dat 篁cゃ */
 		dat_dir = root_dir;
 	} else {
 		dat_dir = new DIRFILE(dat_path);
@@ -693,7 +693,7 @@ void FileSearcher::SetFileInformation(FI
 	int type = tp;
 	if (type < 0 || type >= TYPEMAX) return;
 	ARCFILE* next_arc = NULL;
-	/* すでに searcher が存在すれば解放 */
+	/* с searcher 絖域В */
 	if (searcher[type] != NULL &&
 	  searcher[type] != root_dir &&
 	  searcher[type] != dat_dir) {
@@ -701,7 +701,7 @@ void FileSearcher::SetFileInformation(FI
 		delete searcher[type];
 	}
 	searcher[type] = NULL;
-	/* 適当に初期化 */
+	/* 綵 */
 	if (filenames[type] != NULL &&
 		filenames[type] != default_dirnames[type]) delete[] filenames[type];
 	filenames[type] = filename;
@@ -714,18 +714,18 @@ void FileSearcher::SetFileInformation(FI
 void FileSearcher::AppendFileInformation(FILETYPE tp, ARCTYPE is_arc, char* filename) {
 	int type = tp;
 	if (type < 0 || type >= TYPEMAX) return;
-	/* searcher がまだ割り当てられてない場合 */
+	/* searcher 障蚊綵翫 */
 	if (searcher[type] == NULL ||
 	  searcher[type] == root_dir ||
 	  searcher[type] == dat_dir) {
 		searcher[type] = MakeARCFILE(is_archived[type], filenames[type]);
-		if (searcher[type] == NULL) { /* 作成できなかった場合 */
-			/* この型情報を FileInformation とする */
+		if (searcher[type] == NULL) { /* 篏сc翫 */
+			/* 宴 FileInformation  */
 			SetFileInformation(tp, is_arc, filename);
 			return;
 		}
 	}
-	/* 初期化 */
+	/*  */
 	ARCFILE* arc = MakeARCFILE(is_arc, filename);
 	/* append */
 	ARCFILE* cur;
@@ -773,7 +773,7 @@ err:
 
 ARCINFO* FileSearcher::Find(FILETYPE type, const char* fname, const char* ext) {
 	if (searcher[type] == NULL) {
-		/* searcher 作成 */
+		/* searcher 篏 */
 		if (filenames[type] == NULL) {
 			searcher[type] = dat_dir;
 		} else {
@@ -788,10 +788,10 @@ ARCINFO* FileSearcher::Find(FILETYPE typ
 }
 
 char** FileSearcher::ListAll(FILETYPE type) {
-	/* とりあえず searcher を初期化 */
+	/*  searcher  */
 	Find(type, "THIS FILENAME MAY NOT EXIST IN THE FILE SYSTEM !!!");
 	if (searcher[type] == NULL) return NULL;
-	/* 全ファイルのリストアップ */
+	/* <ゃ鴻≪ */
 	int deal = 0;
 	ARCFILE* file;
 	for (file = searcher[type]; file != NULL; file = file->Next())
@@ -834,7 +834,7 @@ int ARCINFO::Size(void) const {
 	return info.filesize;
 }
 
-/* コピーを返す */
+/* 潟若菴 */
 char* ARCINFO::CopyRead(void) {
 	const char* d = Read();
 	if (d == NULL) return NULL;
@@ -845,13 +845,13 @@ char* ARCINFO::CopyRead(void) {
 }
 
 const char* ARCINFO::Path(void) const {
-	if (info.offset != 0) return NULL; /* archive file なのでパスを帰せない */
+	if (info.offset != 0) return NULL; /* archive file с鴻絽違 */
 	char* ret = new char[strlen(arcfile)+1];
 	strcpy(ret, arcfile);
 	return ret;
 }
 
-/* 互換性専用 */
+/* 篋у */
 FILE* ARCINFO::OpenFile(int* length) const {
 	FILE* f = fopen(arcfile, "rb");
 	if (info.offset) lseek(fileno(f), info.offset, SEEK_SET);
@@ -859,20 +859,20 @@ FILE* ARCINFO::OpenFile(int* length) con
 	return f;
 }
 
-// 展開処理はなし
+// 絮
 bool ARCINFO::ExecExtract(void) {
 	return true;
 }
 
-/* 読み込みを開始する */
+/* 茯粋昭帥紮 */
 const char* ARCINFO::Read(void) {
-	// すでにデータを読み込み済みなら何もしない
+	// с若帥茯粋昭炊帥篏
 	if (data != NULL) return data;
 
 	if (info.offset < 0 || info.arcsize <= 0) {
 		return NULL;
 	}
-	/* ファイルを開く */
+	/* <ゃ */
 	fd = open(arcfile, O_RDONLY);
 	if (fd < 0) {
 		return NULL;
@@ -882,7 +882,7 @@ const char* ARCINFO::Read(void) {
 		fd = -1;
 		return NULL;
 	}
-	/* mmap を試みる */
+	/* mmap 荅帥 */
 #ifdef HAVE_MMAP
 	mmapped_memory = (char*)mmap(NULL, info.arcsize, PROT_READ, MAP_SHARED, fd, info.offset);
 	if (mmapped_memory != MAP_FAILED) {
@@ -891,7 +891,7 @@ const char* ARCINFO::Read(void) {
 	} else
 #endif /* HAVE_MMAP */
 	{
-		/* 失敗:普通にファイルを読み込み */
+		/* 紊掩鐚<ゃ茯粋昭 */
 		char* d = new char[info.arcsize];
 		read(fd, d, info.arcsize);
 		close(fd);
@@ -899,9 +899,9 @@ const char* ARCINFO::Read(void) {
 		use_mmap = false;
 		data = d;
 	}
-	/* 展開する */
+	/* 絮 */
 	if (! ExecExtract()) {
-		// 失敗
+		// 紊掩
 #ifdef HAVE_MMAP
 		if (use_mmap) {
 			munmap(mmapped_memory, info.arcsize);
@@ -915,7 +915,7 @@ const char* ARCINFO::Read(void) {
 	}
 #ifdef HAVE_MMAP
 	if (use_mmap && data != (const char*)mmapped_memory) {
-		// すでに mmap は必要ない
+		// с mmap 綽荀
 		munmap(mmapped_memory, info.arcsize);
 		close(fd);
 		fd = -1;
@@ -927,7 +927,7 @@ const char* ARCINFO::Read(void) {
 
 /**********************************************
 **
-**	画像展開系クラスの定義、実装
+**	糸鎡膤祉鴻絎臂絎茖
 **
 ***********************************************
 */
@@ -1036,7 +1036,7 @@ class JPEGCONV : public GRPCONV {
 #endif
 
 GRPCONV* GRPCONV::AssignConverter(const char* inbuf, int inlen, const char* fname) {
-	/* ファイルの内容に応じたコンバーターを割り当てる */
+	/* <ゃ絎鴻綽潟潟若帥若蚊綵 */
 	GRPCONV* conv = NULL;
 	if (inlen < 10) return NULL; /* invalid file */
 	if (strncmp(inbuf, "PDT10", 5) == 0 || strncmp(inbuf, "PDT11", 5) == 0) { /* PDT10 or PDT11 */
@@ -1084,16 +1084,16 @@ GRPCONV* GRPCONV::AssignConverter(const 
 }
 
 PDTCONV::PDTCONV(const char* _inbuf, int _inlen,const char* filename) {
-//	PDT FILE のヘッダ
-//	+00 'PDT10'	(PDT11 は未対応)
-//	+08 ファイルサイズ (無視)
-//	+0C width (ほぼすべて、640)
-//	+10 height(ほぼすべて、480)
-//	+14 (mask の) x 座標 (実際は無視・・・全ファイルで 0 )
-//	+1c (mask の) y座標 (実際は無視 ・・・全ファイルで 0 )
-//	+20 mask が存在すれば、mask へのポインタ
+//	PDT FILE 
+//	+00 'PDT10'	(PDT11 絲上)
+//	+08 <ゃ泣ゃ (∴)
+//	+0C width (祉若鴻640)
+//	+10 height(祉若鴻480)
+//	+14 (mask ) x 綺ф (絎∴祉祉糸<ゃ 0 )
+//	+1c (mask ) y綺ф (絎∴ 祉祉糸<ゃ 0 )
+//	+20 mask 絖違mask 吾ゃ潟
 
-	/* ヘッダチェック */
+	/* с */
 	if (_inlen < 0x20) {
 		fprintf(stderr, "Invalid PDT file %s : size is too small\n",filename);
 		return;
@@ -1116,14 +1116,14 @@ PDTCONV::PDTCONV(const char* _inbuf, int
 
 
 G00CONV::G00CONV(const char* _inbuf, int _inlen, const char* filename) {
-//	G00 FILE のヘッダ
+//	G00 FILE 
 //	+00 type (1, 2)
 //	+01: width(word)
 //	+03: height(word)
-//	type 1: (color table 付き LZ 圧縮 ; PDT11 に対応)
-//		+05: 圧縮サイズ(dword) ; +5 するとデータ全体のサイズ
-//		+09: 展開後サイズ(dword)
-//	type 2: (マスク可、画像を矩形領域に分割してそれぞれ圧縮)
+//	type 1: (color table 篁 LZ х軒 ; PDT11 絲上)
+//		+05: х軒泣ゃ(dword) ; +5 若水篏泣ゃ
+//		+09: 絮緇泣ゃ(dword)
+//	type 2: (鴻糸綵∫蚊х軒)
 //		+05: index size
 //		+09: index table(each size is 0x18)
 //			+00
@@ -1133,14 +1133,14 @@ G00CONV::G00CONV(const char* _inbuf, int
 //		+09+0x18*size+08: (data top)
 //
 
-	/* データから情報読み込み */
+	/* 若帥沿粋昭 */
 	int type = *_inbuf;
 
 	int w = read_little_endian_short(_inbuf+1);
 	int h = read_little_endian_short(_inbuf+3);
 	if (w < 0 || h < 0) return;
 
-	if (type == 0 || type == 1) { // color table 付き圧縮
+	if (type == 0 || type == 1) { // color table 篁х軒
 		if (_inlen < 13) {
 			fprintf(stderr, "Invalid G00 file %s : size is too small\n",filename);
 			return;
@@ -1153,7 +1153,7 @@ G00CONV::G00CONV(const char* _inbuf, int
 			return;
 		}
 		Init(filename, _inbuf, _inlen, w, h, false);
-	} else if (type == 2) { // color table なし、マスク付き可の圧縮
+	} else if (type == 2) { // color table 鴻篁х軒
 
 		int head_size = read_little_endian_short(_inbuf+5);
 		if (head_size < 0 || head_size*24 > _inlen) return;
@@ -1172,17 +1172,17 @@ G00CONV::G00CONV(const char* _inbuf, int
 
 bool G00CONV::Read(char* image) {
 	if (data == NULL) return false;
-	/* header 識別 */
+	/* header 茘 */
 	int type = *data;
 	if (type == 0) return Read_Type0(image);
 	else if (type == 1) return Read_Type1(image);
 	else if (type == 2) return Read_Type2(image);
 }
 
-/* 一般的な LZ 圧縮の展開ルーチン */
-/* datasize はデータの大きさ、char / short / int を想定 */
-/* datatype は Copy1Pixel (1データのコピー)及び ExtractData(LZ 圧縮の情報を得る
-** というメソッドを実装したクラス */
+/* 筝 LZ х軒絮若 */
+/* datasize 若帥紊сchar / short / int 喝 */
+/* datatype  Copy1Pixel (1若帥潟) ExtractData(LZ х軒宴緇
+** <純絎茖 */
 static int bitrev_table[256] = {
 	0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0, 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
 	0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8, 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
@@ -1207,7 +1207,7 @@ template<class DataType, class DataSize>
 	const char* lsrc = src; char* ldest = dest;
 
 	if (lsrc+50 < lsrcend && ldest+1024 < ldestend) {
-		/* まず、範囲チェックを緩くして高速なルーチンを使う */
+		/* 障膀蚊с膩蕭若潟篏帥 */
 		lsrcend -= 50;
 		ldestend += 1024;
 		while (ldest < ldestend && lsrc < lsrcend) {
@@ -1233,7 +1233,7 @@ template<class DataType, class DataSize>
 		lsrcend += 50;
 		ldestend += 1024;
 	}
-	/* 残りを変換 */
+	/* 罧紊 */
 	while (ldest < ldestend && lsrc < lsrcend) {
 		count += 8;
 		int flag = int(*(unsigned char*)lsrc++);
@@ -1258,12 +1258,12 @@ template<class DataType, class DataSize>
 	return 0;
 }
 
-/* 引数を減らすためのwrapper */
+/* 綣違羝wrapper */
 template<class DataType, class DataSize> inline int lzExtract(DataType datatype, DataSize datasize ,const char*& src, char*& dest, const char* srcend, char* destend) {
 	return lzExtract<DataType, DataSize>(datatype,src,dest,srcend,destend);
 }
 
-/* 普通の PDT */
+/*  PDT */
 class Extract_DataType {
 	public:
 		static void ExtractData(const char*& lsrc, int& data, int& size) {
@@ -1286,7 +1286,7 @@ class Extract_DataType {
 		static int IsRev(void) { return 0; }
 };
 
-/* PDT11 の第一段階変換 */
+/* PDT11 膃筝罧級紊 */
 class Extract_DataType_PDT11 {
 	private:
 		int* index_table;
@@ -1305,7 +1305,7 @@ class Extract_DataType_PDT11 {
 		static int IsRev(void) { return 0; }
 };
 
-/* マスク用 */
+/* 鴻 */
 class Extract_DataType_Mask {
 	public:
 		void ExtractData(const char*& lsrc, int& data, int& size) {
@@ -1321,7 +1321,7 @@ class Extract_DataType_Mask {
 		static int IsRev(void) { return 0; }
 };
 
-/* 書庫用 */
+/* 後昆 */
 class Extract_DataType_ARC {
 	public:
 		void ExtractData(const char*& lsrc, int& data, int& size) {
@@ -1337,7 +1337,7 @@ class Extract_DataType_ARC {
 		static int IsRev(void) { return 0; }
 };
 
-/* avg2000 のシナリオ用 */
+/* avg2000 激 */
 class Extract_DataType_SCN2k {
 	public:
 		void ExtractData(const char*& lsrc, int& data, int& size) {
@@ -1353,7 +1353,7 @@ class Extract_DataType_SCN2k {
 		static int IsRev(void) { return 1; }
 };
 
-/* ReadLive の type0 */
+/* ReadLive  type0 */
 class Extract_DataType_G00Type0 {
 	public:
 		static void ExtractData(const char*& lsrc, int& data, int& size) {
@@ -1385,7 +1385,7 @@ bool PDTCONV::Read(char* image) {
 		if (! Read_PDT11(image)) return false;
 	}
 	if (! is_mask) return true;
-	// マスク読み込み
+	// 鴻茯粋昭
 	int mask_pt = read_little_endian_int(data + 0x1c);
 	char* buf = new char[width*height+1024];
 	const char* src = data + mask_pt;
@@ -1452,8 +1452,8 @@ bool PDTCONV::Read_PDT11(char* image) {
 	return true;
 }
 
-/* dest は dest_end よりも 256 byte 以上先まで
-** 書き込み可能であること。
+/* dest  dest_end  256 byte 篁ヤ障
+** 吾莨若水純с
 */
 void ARCINFO::Extract(char*& dest_start, char*& src_start, char* dest_end, char* src_end) {
 	const char* src = src_start;
@@ -1468,12 +1468,12 @@ void ARCINFO::Extract2k(char*& dest_star
 }
 
 bool ARCINFO_AVG32::ExecExtract(void) {
-	// ヘッダのチェック
+	// с
 	if (strncmp(data, "PACK", 4) != 0) return false;
 	if (read_little_endian_int(data+8) != info.filesize) return false;
 	if (read_little_endian_int(data+12) != info.arcsize) return false;
 
-	// ファイルを展開する
+	// <ゃ絮
 	char* ret_data = new char[info.filesize+1024];
 
 	const char* s = data + 0x10;
@@ -1510,10 +1510,10 @@ bool ARCINFO2k::ExecExtract(void) {
 	char* ret_data = new char[info.filesize + 1024];
 	char* decoded_data = new char[info.arcsize + 1024];
 	
-	/* header のコピー */
+	/* header 潟 */
 	memcpy(ret_data, data, info.private_data);
 
-	/* まず、xor の暗号化を解く */
+	/* 障xor 垸茹c */
 	const char* s; const char* send;
 	char* d; char* dend;
 
@@ -1528,7 +1528,7 @@ bool ARCINFO2k::ExecExtract(void) {
 	if (info.filesize == info.arcsize) {
 		memcpy(ret_data+info.private_data, decoded_data + info.private_data + 8, info.arcsize - info.private_data - 8);
 	} else {
-		/* 圧縮されているなら、それを展開 */
+		/* х軒絮 */
 		s = (const char*)(decoded_data + info.private_data + 8);
 		send = (const char*)(decoded_data + info.arcsize);
 		d = ret_data + info.private_data;
@@ -1552,13 +1552,13 @@ bool G00CONV::Read_Type0(char* image) {
 	int uncompress_size = read_little_endian_int(data+9);
 	char* uncompress_data = new char[uncompress_size+1024];
 
-	// まず展開
+	// 障絮
 	const char* src = data + 13;
 	const char* srcend = data + datalen;
 	char* dest = uncompress_data;
 	char* dstend = uncompress_data + uncompress_size;
 	while(lzExtract(Extract_DataType_G00Type0(), char(), src, dest, srcend, dstend)){};
-	// image にコピー
+	// image 潟
 	CopyRGB(image, uncompress_data);
 	delete[] uncompress_data;
 	return true;
@@ -1569,7 +1569,7 @@ bool G00CONV::Read_Type1(char* image) {
 	int uncompress_size = read_little_endian_int(data+9) + 1;
 	char* uncompress_data = new char[uncompress_size + 1024];
 
-	// まず、展開
+	// 障絮
 	const char* src = data + 13;
 	const char* srcend = data + datalen;
 	char* dest = uncompress_data;
@@ -1598,7 +1598,7 @@ bool G00CONV::Read_Type1(char* image) {
 
 bool G00CONV::Read_Type2(char* image) {
 	memset(image, 0, width*height*4);
-	/* 分割領域を得る */
+	/* 臥緇 */
 	int region_deal = read_little_endian_int(data+5);
 	REGION* region_table = new REGION[region_deal];
 
@@ -1612,7 +1612,7 @@ bool G00CONV::Read_Type2(char* image) {
 		head += 24;
 	}
 
-	// 展開
+	// 絮
 	int uncompress_size = read_little_endian_int(head+4);
 	char* uncompress_data = new char[uncompress_size + 1024];
 
@@ -1622,7 +1622,7 @@ bool G00CONV::Read_Type2(char* image) {
 	char* destend = uncompress_data + uncompress_size;
 	while(lzExtract(Extract_DataType_SCN2k(), char(), src, dest, srcend, destend)){};
 
-	/* region_deal2 == region_deal のはず……*/
+	/* region_deal2 == region_deal */
 	int region_deal2 = read_little_endian_int(uncompress_data);
 	if (region_deal > region_deal2) region_deal = region_deal2;
 
@@ -1633,7 +1633,7 @@ bool G00CONV::Read_Type2(char* image) {
 		srcend = (const char*)(uncompress_data + offset + length);
 		while(src < srcend) {
 			int x, y, w, h;
-			/* コピーする領域を得る */
+			/* 潟若緇 */
 			x = read_little_endian_short(src);
 			y = read_little_endian_short(src+2);
 			w = read_little_endian_short(src+6);
@@ -1670,7 +1670,7 @@ void G00CONV::Copy_32bpp(char* image, in
 
 void GRPCONV::CopyRGBA_rev(char* image, const char* buf) {
 	int mask = is_mask ? 0 : 0xff000000;
-	/* 色変換を行う */
+	/* 峨茵 */
 	int len = width * height;
 	int i;
 	unsigned char* s = (unsigned char*)buf;
@@ -1686,7 +1686,7 @@ void GRPCONV::CopyRGBA(char* image, cons
 		CopyRGB(image, buf);
 		return;
 	}
-	/* 色変換を行う */
+	/* 峨茵 */
 	int len = width * height;
 	int i;
 	int* outbuf = (int*)image;
@@ -1697,7 +1697,7 @@ void GRPCONV::CopyRGBA(char* image, cons
 }
 
 void GRPCONV::CopyRGB(char* image, const char* buf) {
-	/* 色変換を行う */
+	/* 峨茵 */
 	int len = width * height;
 	int i;
 	unsigned char* s = (unsigned char*)buf;
@@ -1914,7 +1914,7 @@ void JPEGCONV::SetupSrc(struct jpeg_deco
 
 #endif /* HAVE_LIBJPEG */
 BMPCONV::BMPCONV(const char* _inbuf, int _inlen, const char* _filename) {
-	/* データから情報読み込み */
+	/* 若帥沿粋昭 */
 	int w = read_little_endian_int(_inbuf + 0x12);
 	int h = read_little_endian_int(_inbuf + 0x16);
 	if (h < 0) h = -h;
@@ -1926,7 +1926,7 @@ BMPCONV::BMPCONV(const char* _inbuf, int
 bool BMPCONV::Read(char* image) {
 	if (data == NULL) return false;
 
-	/* マスクのチェック */
+	/* 鴻с */
 	int bpp = read_little_endian_short(data+0x1c);
 	int h = read_little_endian_int(data + 0x16);
 	int dsz = read_little_endian_int(data + 0x22);