diff --git a/LunaHook/engine64/yuzusuyu.cpp b/LunaHook/engine64/yuzusuyu.cpp index 0b67138..7f9ada6 100644 --- a/LunaHook/engine64/yuzusuyu.cpp +++ b/LunaHook/engine64/yuzusuyu.cpp @@ -182,18 +182,90 @@ bool yuzusuyu::attach_function() }; return NewHook(hp,"YuzuDoJit"); } - +int readu8(BYTE* addr){ + int numBytes = 0; + auto firstByte=*addr; + if (firstByte <= 0x7F) { + numBytes = 1; + } else if ((firstByte & 0xE0) == 0xC0) { + numBytes = 2; + } else if ((firstByte & 0xF0) == 0xE0) { + numBytes = 3; + } else if ((firstByte & 0xF8) == 0xF0) { + numBytes = 4; + } + return numBytes; +} +void T010012A017F18000(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ + auto address=YUZU::emu_arg(stack)[2]; + std::string s,bottom;uint32_t c; + while (true) + { + c=*(BYTE*)(address); + if(c==0)break; + if(c>=0x20){ + auto l=readu8((BYTE*)address); + s+=std::string((char*)address,l); + address+=l; + } + else{ + address+=1; + if(c==1){ + bottom=""; + while(true){ + auto l=readu8((BYTE*)address); + auto ss=std::string((char*)address,l); + address+=l; + if(ss[0]<0xa)break; + bottom+=ss; + s+=ss; + } + } + else if(c==3){ + while (true) { + auto l=readu8((BYTE*)address); + auto ss=std::string((char*)address,l); + address+=l; + if(ss[0]<0xa)break; + } + } + else if(c==7){ + address+=1; + } + else if(c==0xa){ + return; + } + else if(c==0xd){ + c = *(uint32_t*)address; + auto count = c & 0xFF; + c = c & 0xFFFFFF00; + if (c == 0x0692c500) { + for(int _=0;_ -void ReadTextAndLen(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ +void ReadTextAndLenDW(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ auto address=YUZU::emu_arg(stack)[index]; *len=(*(DWORD*)(address+0x10))*2; *data=address+0x14; } - -void _0100978013276000(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ - auto s=mages::readString(YUZU::emu_arg(stack)[0],0); +template +void ReadTextAndLenW(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ + auto address=YUZU::emu_arg(stack)[index]; + *len=(*(WORD*)(address+0x10))*2; + *data=address+0x14; +} +template +void mages_readstring(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ + auto s=mages::readString(YUZU::emu_arg(stack)[0],idx); write_string_new(data,len,s); } @@ -245,12 +317,7 @@ bool F0100A1200CA3C000(void* data, size_t* len, HookParam* hp){ } return write_string_overwrite(data,len,s); } -bool F0100C29017106000(void* data, size_t* len, HookParam* hp){ - auto s = std::wstring((wchar_t*)data,*len/2); - std::wregex pattern(L"\\n+|(\\n)+"); - s = std::regex_replace(s, pattern, L" "); - return write_string_overwrite(data,len,s); -} + bool F01006590155AC000(void* data, size_t* len, HookParam* hp){ auto s = std::string((char*)data,*len); @@ -421,6 +488,17 @@ bool F0100EA001A626000(void* data, size_t* len, HookParam* hp){ auto u32=utf16_to_utf32(s.c_str(),s.size()); return write_string_overwrite(data,len,u32); } +bool F010093800DB1C000(void* data, size_t* len, HookParam* hp){ + auto s=utf32_to_utf16((uint32_t*)data,*len/4); + s = std::regex_replace(s, std::wregex(L"\\n+"), L" "); + s = std::regex_replace(s, std::wregex(L"\\$\\{FirstName\\}"), L"シリーン"); + if (startWith(s,L"#T")) { + s = std::regex_replace(s, std::wregex(L"\\#T2[^#]+"), L""); + s = std::regex_replace(s, std::wregex(L"\\#T\\d"), L""); + } + auto u32=utf16_to_utf32(s.c_str(),s.size()); + return write_string_overwrite(data,len,u32); +} bool F0100F7E00DFC8000(void* data, size_t* len, HookParam* hp){ auto s=utf32_to_utf16((uint32_t*)data,*len/4); s = std::regex_replace(s, std::wregex(L"[\\s]"), L" "); @@ -436,6 +514,11 @@ bool F0100982015606000(void* data, size_t* len, HookParam* hp){ s = std::regex_replace(s, std::wregex(L"\\n+|(\\\\n)+"), L" "); return write_string_overwrite(data,len,s); } +bool F0100C4E013E5E000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\\\n"), L" "); + return write_string_overwrite(data,len,s); +} bool F010001D015260000(void* data, size_t* len, HookParam* hp){ auto s=std::string((char*)data,*len); @@ -506,7 +589,10 @@ bool F01008C0016544000(void* data, size_t* len, HookParam* hp){ s = std::regex_replace(s, std::wregex(L"<[^>]+>"), L" "); return write_string_overwrite(data,len,s); } - +bool F0100FB7019ADE000(void* data, size_t* len, HookParam* hp){ + static int idx=0; + return ((++idx)%2==1); +} bool F01006F000B056000(void* data, size_t* len, HookParam* hp){ auto s=std::wstring((wchar_t*)data,*len/2); s = std::regex_replace(s, std::wregex(L"\\[.*?\\]"), L" "); @@ -561,6 +647,26 @@ bool F0100DA201E0DA000(void* data, size_t* len, HookParam* hp){ s = std::regex_replace(s, std::wregex(L"[\\s]"), L""); return write_string_overwrite(data,len,s); } +bool F01002C0008E52000(void* data, size_t* len, HookParam* hp){ + auto s = std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("(YUR)"), u8"ユーリ"); + s = std::regex_replace(s, std::regex("(FRE)"), u8"フレン"); + s = std::regex_replace(s, std::regex("(RAP)"), u8"ラピード"); + s = std::regex_replace(s, std::regex("(EST|ESU)"), u8"エステル"); + s = std::regex_replace(s, std::regex("(KAR)"), u8"カロル"); + s = std::regex_replace(s, std::regex("(RIT)"), u8"リタ"); + s = std::regex_replace(s, std::regex("(RAV|REI)"), u8"レイヴン"); + s = std::regex_replace(s, std::regex("(JUD)"), u8"ジュディス"); + s = std::regex_replace(s, std::regex("(PAT)"), u8"パティ"); + s = std::regex_replace(s, std::regex("(DUK|DYU)"), u8"デューク"); + s = std::regex_replace(s, std::regex("[A-Za-z0-9]"), ""); + s = std::regex_replace(s, std::regex("[,(-)_]"), ""); + s = std::regex_replace(s, std::regex("^\\s+"), ""); + while (std::regex_search(s, std::regex("^\\s*$"))) { + s = std::regex_replace(s, std::regex("^\\s*$"), ""); + } + return write_string_overwrite(data,len,s); +} bool F01005940182EC000(void* data, size_t* len, HookParam* hp){ auto s = std::wstring((wchar_t*)data,*len/2); @@ -593,7 +699,72 @@ bool F0100B0C016164000(void* data, size_t* len, HookParam* hp){ static std::wstring last; if(last==s)return false; last=s; - return true; + return write_string_overwrite(data,len,s); +} + +template +bool F010043B013C5C000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + std::wregex htmlTagsPattern(L"<[^>]*>"); + s = std::regex_replace(s, htmlTagsPattern, L""); + static std::wstring last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} +template +bool F010055D009F78000(void* data, size_t* len, HookParam* hp){ + auto s = std::string((char*)data,*len); + std::regex pattern3("\\d+"); + s = std::regex_replace(s, pattern3, ""); + static std::string last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} +template +bool F0100BD4014D8C000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"<[^>]*>"), L""); + s = std::regex_replace(s, std::wregex(L".*?_"), L""); + static std::wstring last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} +template +bool F0100C7400CFB4000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\d"), L""); + s = std::regex_replace(s, std::wregex(L"<[^>]*>"), L""); + while (std::regex_search(s, std::wregex(L"^\\s*$"))) { + s = std::regex_replace(s, std::wregex(L"^\\s*$"), L""); + } + static std::wstring last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} +bool F0100CB9018F5A000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"<[^>]*>"), L""); + s = std::regex_replace(s, std::wregex(L"\\{([^{}]+):[^{}]+\\}"), L"$1"); + return write_string_overwrite(data,len,s); +} + +bool F010028D0148E6000(void* data, size_t* len, HookParam* hp){ + auto s = std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("{|\\/.*?}|\\[.*?]", std::regex_constants::grep), ""); + s = std::regex_replace(s, std::regex("(\\\\\\\\c|\\\\\\\\n)+"), " "); + s = std::regex_replace(s, std::regex(",.*$"), " "); + return write_string_overwrite(data,len,s); +} + +bool F0100F4401940A000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"[\\r\\n]+"), L""); + s = std::regex_replace(s, std::wregex(L"<[^>]+>|\\[\\[[^]]+\\]\\]"), L""); + return write_string_overwrite(data,len,s); } bool F0100B5500CA0C000(void* data, size_t* len, HookParam* hp){ @@ -659,7 +830,39 @@ bool F0100D7800E9E0000(void* data, size_t* len, HookParam* hp){ last=s; return write_string_overwrite(data,len,s); } - +template +void T0100CF400F7CE000(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ + auto address=YUZU::emu_arg(stack)[idx]; + std::string s; + int i=0; + while(1){ + auto c=*(BYTE*)(address+i); + if(c==0)break; + if(c<0x20&&c>0x10){ + auto command=*(BYTE*)(address+i+1); + if(command==0x80) + i+=3; + else if(command==0xb8) + i+=4; + else{ + auto sz=*(BYTE*)(address+i+2); + i+=3+sz; + } + } + else if(c==0xaa){ + i+=1; + } + else if(c==0xff){ + i+=0x30; + } + else{ + auto l=1+IsDBCSLeadByteEx(932,c); + s+=std::string((char*)(address+i),l); + i+=l; + } + } + write_string_new(data,len,s); +} void T0100DB300B996000(hook_stack* stack, HookParam* hp, uintptr_t* data, uintptr_t* split, size_t* len){ auto address=YUZU::emu_arg(stack)[8]+1; std::string s; @@ -679,14 +882,335 @@ void T0100DB300B996000(hook_stack* stack, HookParam* hp, uintptr_t* data, uintpt } write_string_new(data,len,s); } +bool F0100CBA014014000(void* data, size_t* len, HookParam* hp){ + auto s = std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("《.*?》"), ""); + s = std::regex_replace(s, std::regex("<[^>]*>"), ""); + return write_string_overwrite(data,len,s); +} +template +bool F0100CC401A16C000(void* data, size_t* len, HookParam* hp){ + auto s = std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("<[^>]*>"), ""); + s = std::regex_replace(s, std::regex("\\d+"), ""); + if(s=="")return false; + static std::string last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} +bool F0100BDD01AAE4000(void* data, size_t* len, HookParam* hp){ + auto s = std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("(#Ruby\\[)([^,]+).([^\\]]+)."), "$2"); + s = std::regex_replace(s, std::regex("(#n)+"), " "); + s = std::regex_replace(s, std::regex("(#[A-Za-z]+[(\\d*[.])?\\d+])+"), ""); + return write_string_overwrite(data,len,s); +} +bool F0100C310110B4000(void* data, size_t* len, HookParam* hp){ + auto s = std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("(#Ruby\\[)([^,]+).([^\\]]+)."), "$2"); + s = std::regex_replace(s, std::regex("#Color\\[[\\d]+\\]"), ""); + s = std::regex_replace(s, std::regex("( #n)+"), "#n"); + s = std::regex_replace(s, std::regex("#n+"), " "); + return write_string_overwrite(data,len,s); +} +bool F010003F003A34000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"[\\s\\S]*$"), L""); + s = std::regex_replace(s, std::wregex(L"\n+"), L" "); + s = std::regex_replace(s, std::wregex(L"\\s"), L""); + s = std::regex_replace(s, std::wregex(L"[＀븅]"), L""); + return write_string_overwrite(data,len,s); +} + +bool F01007B601C608000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"<[^>]*>"), L""); + s = std::regex_replace(s, std::wregex(L"\\[.*?\\]"), L""); + std::vector lines = strSplit(s, L"\n"); + std::wstring result; + for (const std::wstring& line : lines) { + if(result.empty()==false)result+=L"\n"; + std::wregex commandRegex(L"^(?:メニュー|システム|Ver\\.)$(\\r?\\n|\\r)?"); + s = std::regex_replace(s, commandRegex, L""); + std::wregex emptyLineRegex(L"^\\s*$"); + s = std::regex_replace(s, emptyLineRegex, L""); + } + static std::wstring last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} + +bool F010046601125A000(void* data, size_t* len, HookParam* hp){ + auto s=utf32_to_utf16((uint32_t*)data,*len/4); + s = std::regex_replace(s, std::wregex(L"(.+?).+?"), L"$1"); + s = std::regex_replace(s, std::wregex(L"\n+"), L" "); + auto u32=utf16_to_utf32(s.c_str(),s.size()); + return write_string_overwrite(data,len,u32); +} +bool F0100771013FA8000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"
"), L"\n"); + s = std::regex_replace(s, std::wregex(L"^(\\s+)"), L""); + return write_string_overwrite(data,len,s); +} +bool F0100556015CCC000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + std::regex rubiRegex("\\[[^\\]]+."); + s = std::regex_replace(s, rubiRegex, ""); + s = std::regex_replace(s, std::regex("\\\\k|\\\\x|%C|%B|%p-1;"), ""); + std::regex colorRegex("#[0-9a-fA-F]+;([^%#]+)(%r)?"); + s = std::regex_replace(s, colorRegex, "$1"); + static std::setdump; + if(dump.find(s)!=dump.end())return false; + dump.insert(s); + return write_string_overwrite(data,len,s); +} +template +bool F0100CC80140F8000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"^(?:スキップ|メニュー|バックログ|ズームイン|ズームアウト|ガイド OFF|早送り|オート|人物情報|ユニット表示切替|カメラリセット|ガイド表示切替|ページ切替|閉じる|コマンド選択|詳細|シミュレーション|移動)$([\\r?\\n|\\r])?"), L""); + + s = std::regex_replace(s, std::wregex(L"[A-Za-z0-9]"), L""); + s = std::regex_replace(s, std::wregex(L"[().%,_!#©&:?/]"), L""); + while (std::regex_search(s, std::wregex(L"^\\s*$"))) { + s = std::regex_replace(s, std::wregex(L"^\\s*$"), L""); + } + static std::wstring last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} + +bool F0100D9A01BD86000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"[\\s]"), L""); + s = std::regex_replace(s, std::wregex(L"\\\\n"), L""); + return write_string_overwrite(data,len,s); +} +bool F010042300C4F6000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"[\\s]"), L""); + s = std::regex_replace(s, std::wregex(L"(.+?/)"), L""); + s = std::regex_replace(s, std::wregex(L"(\" .*)"), L""); + s = std::regex_replace(s, std::wregex(L"^(.+?\")"), L""); + return write_string_overwrite(data,len,s); +} +bool F010044800D2EC000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\n+"), L" "); + s = std::regex_replace(s, std::wregex(L"\\"), L"???"); + s = std::regex_replace(s, std::wregex(L"<.+?>"), L""); + return write_string_overwrite(data,len,s); +} +template +bool F010021300F69E000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\$[a-z]"), L""); + s = std::regex_replace(s, std::wregex(L"@"), L""); + static std::wstring last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} +bool F010050000705E000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("\\s"), ""); + s = std::regex_replace(s, std::regex("
"), "\n"); + s = std::regex_replace(s, std::regex("<([^:>]+):[^>]+>"), "$1"); + s = std::regex_replace(s, std::regex("<[^>]+>"), ""); + return write_string_overwrite(data,len,s); +} + +bool F0100874017BE2000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\n+|(\\\\n)+"), L" "); + s = std::regex_replace(s, std::wregex(L"#n"), L""); + return write_string_overwrite(data,len,s); +} +bool F010094601D910000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\<.*?\\>"), L""); + s = std::regex_replace(s, std::wregex(L"\\[.*?\\]"), L""); + s = std::regex_replace(s, std::wregex(L"\\s"), L""); + return write_string_overwrite(data,len,s); +} +bool F010079201BD88000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"[\\s]"), L""); + s = std::regex_replace(s, std::wregex(L"\\\\n"), L""); + return write_string_overwrite(data,len,s); +} +bool F010086C00AF7C000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("\\[([^\\]]+)\\/[^\\]]+\\]"), "$1"); + s = std::regex_replace(s, std::regex("\\s+"), " "); + s = std::regex_replace(s, std::regex("\\\\n"), " "); + s = std::regex_replace(s, std::regex("<[^>]+>|\\[[^\\]]+\\]"), ""); + return write_string_overwrite(data,len,s); +} +bool F010079C017B98000(void* data, size_t* len, HookParam* hp){ + auto s=utf32_to_utf16((uint32_t*)data,*len/4); + s = std::regex_replace(s, std::wregex(L"[\\s]"), L""); + s = std::regex_replace(s, std::wregex(L"#KW"), L""); + s = std::regex_replace(s, std::wregex(L"#C\\(TR,0xff0000ff\\)"), L""); + s = std::regex_replace(s, std::wregex(L"【SW】"), L""); + s = std::regex_replace(s, std::wregex(L"【SP】"), L""); + s = std::regex_replace(s, std::wregex(L"#P\\(.*\\)"), L""); + auto u32=utf16_to_utf32(s.c_str(),s.size()); + return write_string_overwrite(data,len,u32); +} +bool F010061A01C1CE000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"[\\s]"), L""); + s = std::regex_replace(s, std::wregex(L"sound"), L" "); + return write_string_overwrite(data,len,s); +} +bool F0100F7401AA74000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("[\\s]"), ""); + s = std::regex_replace(s, std::regex("@[a-z]"), ""); + s = std::regex_replace(s, std::regex("@[0-9]"), ""); + return write_string_overwrite(data,len,s); +} + +bool F0100FC2019346000(void* data, size_t* len, HookParam* hp){ + StringReplacer((char*)data,len,"#n",2," ",1); + return true; +} + +bool F0100FDB00AA80000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("\\[([^\\]]+)\\/[^\\]]+\\]"), "$1"); + s = std::regex_replace(s, std::regex("<[^>]*>"), ""); + return write_string_overwrite(data,len,s); +} +bool F0100FF500E34A000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("\\[.*?\\]"), ""); + s = std::regex_replace(s, std::regex("\\n+"), " "); + return write_string_overwrite(data,len,s); +} +bool F01005E9016BDE000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + std::regex patt("/\\/\\/ remove rubi\\n\\ss = s.replace\\(patt, ''\\);/"); + s = std::regex_replace(s, patt, ""); + s = std::regex_replace(s, std::regex("\\\\k|\\\\x|%C|%B|%p-1;"), ""); + s = std::regex_replace(s, std::regex("#[0-9a-fA-F]+;([^%#]+)(%r)?"), "$1"); + s = std::regex_replace(s, std::regex("\\\\n"), " "); + return write_string_overwrite(data,len,s); +} + +bool F010065301A2E0000(void* data, size_t* len, HookParam* hp){ + auto s=std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\d+"), L""); + s = std::regex_replace(s, std::wregex(L"<[^>]*>"), L""); + return write_string_overwrite(data,len,s); +} + +bool F0100CF400F7CE000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("\\n+"), " "); + return write_string_overwrite(data,len,s); +} +bool F01000AE01954A000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("[A-Za-z0-9]"), ""); + s = std::regex_replace(s, std::regex("[~^(-).%,!:#@$/*&;+_]"), ""); + return write_string_overwrite(data,len,s); +} +bool F01003BD013E30000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("{|\\/.*?}|\\[.*?]"), ""); + return write_string_overwrite(data,len,s); +} +bool F010074F013262000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("\\[.*?]"), ""); + return write_string_overwrite(data,len,s); +} +template +bool F010057E00AC56000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("<[^>]*>"), ""); + s = std::regex_replace(s, std::regex(u8"ズーム|回転|身長|体重"), ""); + s = std::regex_replace(s, std::regex("[A-Za-z0-9]"), ""); + s = std::regex_replace(s, std::regex("[().%,!#/]"), ""); + while (std::regex_search(s, std::regex("^\\s*$"))) { + s = std::regex_replace(s, std::regex("^\\s*$"), ""); + } + static std::string last; + if(last==s)return false; + last=s; + return write_string_overwrite(data,len,s); +} +bool F010051D010FC2000(void* data, size_t* len, HookParam* hp){ + auto s=std::string((char*)data,*len); + s = std::regex_replace(s, std::regex("\\[([^\\]]+)\\/[^\\]]+\\]"), "$1"); + s = std::regex_replace(s, std::regex("\\s+"), " "); + s = std::regex_replace(s, std::regex("\\\\n"), " "); + s = std::regex_replace(s, std::regex("<[^>]+>|\\[[^\\]]+\\]"), ""); + return write_string_overwrite(data,len,s); +} + +bool F01001EF017BE6000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + while (std::regex_search(s, std::wregex(L"^\\s*$"))) { + s = std::regex_replace(s, std::wregex(L"^\\s*$"), L""); + } + return write_string_overwrite(data,len,s); +} +bool F01000EA00D2EE000(void* data, size_t* len, HookParam* hp){ + auto s = std::wstring((wchar_t*)data,*len/2); + s = std::regex_replace(s, std::wregex(L"\\n+"), L" "); + s = std::regex_replace(s, std::wregex(L"\\"), L"???"); + s = std::regex_replace(s, std::wregex(L"\\"), L"chiaki_washa"); + s = std::regex_replace(s, std::wregex(L"<.+?>"), L""); + return write_string_overwrite(data,len,s); +} namespace{ auto _=[](){ emfunctionhooks={ //Memories Off - {0x8003eeac,{CODEC_UTF16,0,0,_0100978013276000,0,"0100978013276000","1.0.0"}}, - {0x8003eebc,{CODEC_UTF16,0,0,_0100978013276000,0,"0100978013276000","1.0.1"}}, - + {0x8003eeac,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100978013276000","1.0.0"}}, + {0x8003eebc,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100978013276000","1.0.1"}}, + //Memories Off ~Sorekara~ + {0x8003fb7c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100B4A01326E000","1.0.0"}}, + {0x8003fb8c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100B4A01326E000","1.0.1"}}, + //Famicom Tantei Club: Kieta Koukeisha + {0x80052a10,{CODEC_UTF16,0,0,mages_readstring<3>,0,"0100B4500F7AE000","1.0.0"}}, + //Famicom Tantei Club Part: Ushiro ni Tatsu Shoujo + {0x8004cb30,{CODEC_UTF16,0,0,mages_readstring<3>,0,"010078400F7B0000","1.0.0"}}, + //Memories Off 2nd + {0x8003ee0c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100D31013274000","1.0.0"}}, + {0x8003ee1c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100D31013274000","1.0.1"}}, + //Omoide ni Kawaru Kimi ~Memories Off~ + {0x8003ef6c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100FFA013272000","1.0.0"}}, + {0x8003ef7c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100FFA013272000","1.0.1"}}, + //Memories Off 6 ~T-Wave~ + {0x80043d7c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"010047A013268000","1.0.0"}}, + {0x80043d5c,{CODEC_UTF16,0,0,mages_readstring<0>,0,"010047A013268000","1.0.1"}}, + //Memories Off: Yubikiri no Kioku + {0x800440ec,{CODEC_UTF16,0,0,mages_readstring<0>,0,"010079C012896000","1.0.0"}}, + //Memories Off #5 Togireta Film + {0x8003f6ac,{CODEC_UTF16,0,0,mages_readstring<0>,0,"010073901326C000","1.0.0"}}, + {0x8003f5fc,{CODEC_UTF16,0,0,mages_readstring<0>,0,"010073901326C000","1.0.1"}}, + //SINce Memories: Hoshi no Sora no Shita de + {0x80048cc8,{CODEC_UTF16,0,0,mages_readstring<4>,0,"0100E94014792000",0}},//line + name => join + {0x8004f44c,{CODEC_UTF16,0,0,mages_readstring<4>,0,"0100E94014792000",0}},//fast trophy + {0x8004f474,{CODEC_UTF16,0,0,mages_readstring<4>,0,"0100E94014792000",0}},//prompt + {0x80039dc0,{CODEC_UTF16,0,0,mages_readstring<4>,0,"0100E94014792000",0}},//choice + + //Yahari Game demo Ore no Seishun Love Come wa Machigatteiru. + {0x8005DFB8,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100E0D0154BC000","1.0.0"}}, + //CHAOS;HEAD NOAH + {0x80046700,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100957016B90000","1.0.0"}}, + {0x8003A2c0,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100957016B90000","1.0.0"}},// choice + {0x8003EAB0,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100957016B90000","1.0.0"}},// TIPS list (menu) + {0x8004C648,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100957016B90000","1.0.0"}},// system message + {0x80050374,{CODEC_UTF16,0,0,mages_readstring<0>,0,"0100957016B90000","1.0.0"}},// TIPS (red) // Shiro to Kuro no Alice {0x80013f20,{CODEC_UTF8,0,0,0,NewLineCharFilterW,"0100A460141B8000","1.0.0"}}, {0x80013f94,{CODEC_UTF8,0,0,0,NewLineCharFilterW,"0100A460141B8000","1.0.0"}}, @@ -702,14 +1226,14 @@ auto _=[](){ {0x800e3424,{CODEC_UTF8,0,0,0,F010045C0109F2000,"010045C0109F2000","1.0.1"}},//"System Messages + Choices"), //Also includes the names of characters, {0x800fb080,{CODEC_UTF8,3,0,0,F010045C0109F2000,"010045C0109F2000","1.0.1"}},//Main Text //AMNESIA for Nintendo Switch - {0x805bba5c,{CODEC_UTF16,0,0,ReadTextAndLen<2>,F0100A1E00BFEA000,"0100A1E00BFEA000","1.0.1"}},//dialogue - {0x805e9930,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100A1E00BFEA000,"0100A1E00BFEA000","1.0.1"}},//choice - {0x805e7fd8,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100A1E00BFEA000,"0100A1E00BFEA000","1.0.1"}},//name + {0x805bba5c,{CODEC_UTF16,0,0,ReadTextAndLenDW<2>,F0100A1E00BFEA000,"0100A1E00BFEA000","1.0.1"}},//dialogue + {0x805e9930,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100A1E00BFEA000,"0100A1E00BFEA000","1.0.1"}},//choice + {0x805e7fd8,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100A1E00BFEA000,"0100A1E00BFEA000","1.0.1"}},//name //Chou no Doku Hana no Kusari Taishou Tsuya Koi Ibun {0x80095010,{CODEC_UTF16,1,0,0,F0100A1200CA3C000,"0100A1200CA3C000","2.0.1"}},//Main Text + Names //Live a Live - {0x80a05170,{CODEC_UTF16,0,0,0,F0100C29017106000,"0100C29017106000","1.0.0"}}, + {0x80a05170,{CODEC_UTF16,0,0,0,F0100982015606000,"0100C29017106000","1.0.0"}}, //Sakura no Kumo * Scarlet no Koi {0x8049d968,{CODEC_UTF8,0,1,0,F01006590155AC000,"01006590155AC000","1.0.0"}},//name {0x8049d980,{CODEC_UTF8,0,0,0,F01006590155AC000,"01006590155AC000","1.0.0"}},//dialogue @@ -734,21 +1258,15 @@ auto _=[](){ {0x80480d4c,{CODEC_UTF8,0,0,0,F01006590155AC000,"01000130150FA000","1.0.0"}},// dialogue 2 {0x804798e0,{CODEC_UTF8,0,0,0,F01006590155AC000,"01000130150FA000","1.0.0"}},// choice - //CHAOS;HEAD NOAH - {0x80046700,{CODEC_UTF16,0,0,_0100978013276000,0,"0100957016B90000","1.0.0"}}, - {0x8003A2c0,{CODEC_UTF16,0,0,_0100978013276000,0,"0100957016B90000","1.0.0"}},// choice - {0x8003EAB0,{CODEC_UTF16,0,0,_0100978013276000,0,"0100957016B90000","1.0.0"}},// TIPS list (menu) - {0x8004C648,{CODEC_UTF16,0,0,_0100978013276000,0,"0100957016B90000","1.0.0"}},// system message - {0x80050374,{CODEC_UTF16,0,0,_0100978013276000,0,"0100957016B90000","1.0.0"}},// TIPS (red) //Story of Seasons a Wonderful Life {0x80ac4d88,{CODEC_UTF32,0,0,F0100936018EB4000,"0100936018EB4000","1.0.3"}},// Main text {0x808f7e84,{CODEC_UTF32,0,0,F0100936018EB4000,"0100936018EB4000","1.0.3"}},// Item name {0x80bdf804,{CODEC_UTF32,0,0,F0100936018EB4000,"0100936018EB4000","1.0.3"}},// Item description //Hamefura Pirates - {0x81e75940,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100982015606000,"0100982015606000","1.0.0"}},// Hamekai.TalkPresenter$$AddMessageBacklog - {0x81c9ae60,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100982015606000,"0100982015606000","1.0.0"}},// Hamekai.ChoicesText$$SetText - {0x81eb7dc0,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100982015606000,"0100982015606000","1.0.0"}},// Hamekai.ShortStoryTextView$$AddText + {0x81e75940,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100982015606000,"0100982015606000","1.0.0"}},// Hamekai.TalkPresenter$$AddMessageBacklog + {0x81c9ae60,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100982015606000,"0100982015606000","1.0.0"}},// Hamekai.ChoicesText$$SetText + {0x81eb7dc0,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100982015606000,"0100982015606000","1.0.0"}},// Hamekai.ShortStoryTextView$$AddText //Death end re;Quest 2 {0x80225C3C,{CODEC_UTF8,8,0,0,F010001D015260000,"010001D015260000","1.0.0"}}, //Death end re;Quest @@ -771,45 +1289,45 @@ auto _=[](){ {0x8025e210,{CODEC_UTF8,2,0,0,F010045C014650000,"010045C014650000","1.0.0"}},// scene context example: 数日前 咲良高校 1年B組 教室 1985年5月" {0x8005c518,{CODEC_UTF8,0,0,0,F010045C014650000,"010045C014650000","1.0.0"}},// game help //Sea of Stars - {0x83e93ca0,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01008C0016544000,"01008C0016544000","1.0.45861"}},// Main text - {0x820c3fa0,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01008C0016544000,"01008C0016544000","1.0.47140"}},// Main text + {0x83e93ca0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01008C0016544000,"01008C0016544000","1.0.45861"}},// Main text + {0x820c3fa0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01008C0016544000,"01008C0016544000","1.0.47140"}},// Main text //Final Fantasy I - {0x81e88040,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01000EA014150000","1.0.1"}},// Main text - {0x81cae54c,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01000EA014150000","1.0.1"}},// Intro text - {0x81a3e494,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01000EA014150000","1.0.1"}},// battle text - {0x81952c28,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01000EA014150000","1.0.1"}},// Location + {0x81e88040,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01000EA014150000","1.0.1"}},// Main text + {0x81cae54c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01000EA014150000","1.0.1"}},// Intro text + {0x81a3e494,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01000EA014150000","1.0.1"}},// battle text + {0x81952c28,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01000EA014150000","1.0.1"}},// Location //Final Fantasy II - {0x8208f4cc,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01006B7014156000","1.0.1"}},// Main text - {0x817e464c,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01006B7014156000","1.0.1"}},// Intro text - {0x81fb6414,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01006B7014156000","1.0.1"}},// battle text + {0x8208f4cc,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01006B7014156000","1.0.1"}},// Main text + {0x817e464c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01006B7014156000","1.0.1"}},// Intro text + {0x81fb6414,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01006B7014156000","1.0.1"}},// battle text //Final Fantasy III - {0x82019e84,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01002E2014158000","1.0.1"}},// Main text1 - {0x817ffcfc,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01002E2014158000","1.0.1"}},// Main text2 - {0x81b8b7e4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01002E2014158000","1.0.1"}},// battle text - {0x8192c4a8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01002E2014158000","1.0.1"}},// Location + {0x82019e84,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01002E2014158000","1.0.1"}},// Main text1 + {0x817ffcfc,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01002E2014158000","1.0.1"}},// Main text2 + {0x81b8b7e4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01002E2014158000","1.0.1"}},// battle text + {0x8192c4a8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01002E2014158000","1.0.1"}},// Location //Final Fantasy IV - {0x81e44bf4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01004B301415A000","1.0.2"}},// Main text - {0x819f92c4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01004B301415A000","1.0.2"}},// Rolling text - {0x81e2e798,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01004B301415A000","1.0.2"}},// Battle text - {0x81b1e6a8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"01004B301415A000","1.0.2"}},// Location + {0x81e44bf4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01004B301415A000","1.0.2"}},// Main text + {0x819f92c4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01004B301415A000","1.0.2"}},// Rolling text + {0x81e2e798,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01004B301415A000","1.0.2"}},// Battle text + {0x81b1e6a8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01004B301415A000","1.0.2"}},// Location //Final Fantasy V - {0x81d63e24,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100AA201415C000","1.0.2"}},// Main text - {0x81adfb3c,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100AA201415C000","1.0.2"}},// Location - {0x81a8fda8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100AA201415C000","1.0.2"}},// Battle text + {0x81d63e24,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100AA201415C000","1.0.2"}},// Main text + {0x81adfb3c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100AA201415C000","1.0.2"}},// Location + {0x81a8fda8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100AA201415C000","1.0.2"}},// Battle text //Final Fantasy VI - {0x81e6b350,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100AA001415E000","1.0.2"}},// Main text - {0x81ab40ec,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100AA001415E000","1.0.2"}},// Location - {0x819b8c88,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100AA001415E000","1.0.2"}},// Battle text + {0x81e6b350,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100AA001415E000","1.0.2"}},// Main text + {0x81ab40ec,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100AA001415E000","1.0.2"}},// Location + {0x819b8c88,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100AA001415E000","1.0.2"}},// Battle text //Final Fantasy IX - {0x80034b90,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Main Text - {0x802ade64,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Battle Text - {0x801b1b84,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Descriptions - {0x805aa0b0,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Key Item Name - {0x805a75d8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Key Item Content - {0x8002f79c,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Menu - {0x80ca88b0,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Tutorial1 - {0x80ca892c,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Tutorial2 - {0x80008d88,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Location + {0x80034b90,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Main Text + {0x802ade64,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Battle Text + {0x801b1b84,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Descriptions + {0x805aa0b0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Key Item Name + {0x805a75d8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Key Item Content + {0x8002f79c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Menu + {0x80ca88b0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Tutorial1 + {0x80ca892c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Tutorial2 + {0x80008d88,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01006F000B056000,"01006F000B056000","1.0.1"}},// Location //Norn9 Var Commons {0x8003E874,{CODEC_UTF8,0,0,0,F0100068019996000,"0100068019996000","1.0.0"}},//English //薄桜鬼 真改 万葉ノ抄 @@ -821,7 +1339,7 @@ auto _=[](){ //AIR {0x800a6b10,{CODEC_UTF16,1,0,0,F0100ADC014DA0000,"0100ADC014DA0000","1.0.1"}},//Text + Name //Shinigami to Shoujo - {0x21cb08+0x80004000,{0,1,0,0,F0100AFA01750C000,"0100AFA01750C000","1.0.2"}},//Text + {0x21cb08+0x80004000,{0,1,0,0,F0100AFA01750C000,"0100AFA01750C000","1.0.2"}},//Text,sjis //Octopath Traveler II {0x8088a4d4,{CODEC_UTF16,0,0,0,0,"0100A3501946E000","1.0.0"}},//main text //NieR:Automata The End of YoRHa Edition @@ -847,7 +1365,7 @@ auto _=[](){ {0x800878fc,{CODEC_UTF8,0,0,0,F0100D9500A0F6000,"0100D9500A0F6000","1.0.0"}},// prompt {0x80087aa0,{CODEC_UTF8,0,0,0,F0100D9500A0F6000,"0100D9500A0F6000","1.0.0"}},// choice //Yuru Camp△ - Have a Nice Day! - {0x816d03f8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100982015606000,"0100D12014FC2000","1.0.0"}},// dialog / backlog + {0x816d03f8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100982015606000,"0100D12014FC2000","1.0.0"}},// dialog / backlog //Akuyaku Reijou wa Ringoku no Outaishi ni Dekiai Sareru {0x817b35c4,{CODEC_UTF8,1,0,0,F0100DA201E0DA000,"0100DA201E0DA000","1.0.0"}},// Dialogue //Yunohana Spring! ~Mellow Times~ @@ -863,25 +1381,35 @@ auto _=[](){ {0x8051a9a8,{CODEC_UTF8,0,0,0,F01006590155AC000,"0100D11018A7E000","1.0.0"}},//dialogue {0x80500178,{CODEC_UTF8,0,0,0,F01006590155AC000,"0100D11018A7E000","1.0.0"}},//choice //AKA - {0x8166eb80,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0601852A000<0>,"0100B0601852A000","1.0.0"}},//Main text - {0x817d44a4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0601852A000<1>,"0100B0601852A000","1.0.0"}},//Letter - {0x815cb0f4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0601852A000<2>,"0100B0601852A000","1.0.0"}},//Mission title - {0x815cde30,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0601852A000<3>,"0100B0601852A000","1.0.0"}},//Mission description - {0x8162a910,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0601852A000<4>,"0100B0601852A000","1.0.0"}},//Craft description - {0x817fdca8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0601852A000<5>,"0100B0601852A000","1.0.0"}},//Inventory item name + {0x8166eb80,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0601852A000<0>,"0100B0601852A000","1.0.0"}},//Main text + {0x817d44a4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0601852A000<1>,"0100B0601852A000","1.0.0"}},//Letter + {0x815cb0f4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0601852A000<2>,"0100B0601852A000","1.0.0"}},//Mission title + {0x815cde30,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0601852A000<3>,"0100B0601852A000","1.0.0"}},//Mission description + {0x8162a910,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0601852A000<4>,"0100B0601852A000","1.0.0"}},//Craft description + {0x817fdca8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0601852A000<5>,"0100B0601852A000","1.0.0"}},//Inventory item name + //Etrian Odyssey I HD + {0x82d57550,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<8>,"01008A3016162000","1.0.2"}},//Text + {0x824ff408,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<9>,"01008A3016162000","1.0.2"}},//Config Description + {0x8296b4e4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<10>,"01008A3016162000","1.0.2"}},//Class Description + {0x81b2204c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<11>,"01008A3016162000","1.0.2"}},//Item Description //Etrian Odyssey II HD - {0x82f24c70,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0C016164000<0>,"0100B0C016164000","1.0.2"}},//Text - {0x82cc0988,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0C016164000<1>,"0100B0C016164000","1.0.2"}},//Config Description - {0x8249acd4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0C016164000<2>,"0100B0C016164000","1.0.2"}},//Class Description - {0x81b27644,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100B0C016164000<3>,"0100B0C016164000","1.0.2"}},//Item Description + {0x82f24c70,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<0>,"0100B0C016164000","1.0.2"}},//Text + {0x82cc0988,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<1>,"0100B0C016164000","1.0.2"}},//Config Description + {0x8249acd4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<2>,"0100B0C016164000","1.0.2"}},//Class Description + {0x81b27644,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<3>,"0100B0C016164000","1.0.2"}},//Item Description + //Etrian Odyssey III HD + {0x83787f04,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<4>,"0100D32015A52000","1.0.2"}},//Text + {0x8206915c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<5>,"0100D32015A52000","1.0.2"}},//Config Description + {0x82e6d1d4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<6>,"0100D32015A52000","1.0.2"}},//Class Description + {0x82bf5d48,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100B0C016164000<7>,"0100D32015A52000","1.0.2"}},//Item Description //Fire Emblem Engage - {0x8248c550,{CODEC_UTF16,0,0,ReadTextAndLen<2>,0,"0100A6301214E000","1.3.0"}},// App.Talk3D.TalkLog$$AddLog - {0x820C6530,{CODEC_UTF16,0,0,ReadTextAndLen<2>,0,"0100A6301214E000","2.0.0"}},// App.Talk3D.TalkLog$$AddLog + {0x8248c550,{CODEC_UTF16,0,0,ReadTextAndLenDW<2>,0,"0100A6301214E000","1.3.0"}},// App.Talk3D.TalkLog$$AddLog + {0x820C6530,{CODEC_UTF16,0,0,ReadTextAndLenDW<2>,0,"0100A6301214E000","2.0.0"}},// App.Talk3D.TalkLog$$AddLog //AMNESIA LATER×CROWD for Nintendo Switch - {0x800ebc34,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// waterfall - {0x8014dc64,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// name - {0x80149b10,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// dialogue - {0x803add50,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// choice + {0x800ebc34,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// waterfall + {0x8014dc64,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// name + {0x80149b10,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// dialogue + {0x803add50,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100982015606000,"0100B5700CDFC000","1.0.0"}},// choice //Hanayaka Nari, Waga Ichizoku Gentou Nostalgie {0x27ca10+0x80004000,{CODEC_UTF8,0,0,T0100B5500CA0C000,F0100B5500CA0C000,"0100B5500CA0C000","1.0.0"}},// x3 (double trigged), name+text, onscreen //Natsumon! 20th Century Summer Vacation @@ -889,40 +1417,525 @@ auto _=[](){ {0x846fa578,{CODEC_UTF16,0,0,0,F0100A8401A0A8000,"0100A8401A0A8000","1.1.0"}},// choice {0x8441e800,{CODEC_UTF16,0,0,0,F0100A8401A0A8000,"0100A8401A0A8000","1.1.0"}},// examine + dialog //Super Mario RPG - {0x81d78c58,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Main Text - {0x81dc9cf8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Name - {0x81c16b80,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Cutscene - {0x821281f0,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Special/Item/Menu/Objective Description - {0x81cd8148,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Special Name - {0x81fc2820,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Item Name Battle - {0x81d08d28,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Item Name Off-battle - {0x82151aac,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Shop Item Name - {0x81fcc870,{CODEC_UTF16,0,0,ReadTextAndLen<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Objective Title - {0x821bd328,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Monster List - Name - {0x820919b8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Monster List - Description - {0x81f56518,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Info - {0x82134ce0,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Category - {0x82134f30,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Name - {0x821372e4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Description 1 - {0x82137344,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Description 2 - {0x81d0ee80,{CODEC_UTF16,0,0,ReadTextAndLen<2>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Location - {0x82128f64,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Album Title - {0x81f572a0,{CODEC_UTF16,0,0,ReadTextAndLen<3>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Load/Save Text - {0x81d040a8,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Levelup First Part - {0x81d043fc,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Levelup Second Part - {0x81d04550,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Levelup New Ability Description - {0x81fbfa18,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Yoshi Mini-Game Header - {0x81fbfa74,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Yoshi Mini-Game Text - {0x81cf41b4,{CODEC_UTF16,0,0,ReadTextAndLen<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Enemy Special Attacks + {0x81d78c58,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Main Text + {0x81dc9cf8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Name + {0x81c16b80,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Cutscene + {0x821281f0,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Special/Item/Menu/Objective Description + {0x81cd8148,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Special Name + {0x81fc2820,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Item Name Battle + {0x81d08d28,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Item Name Off-battle + {0x82151aac,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Shop Item Name + {0x81fcc870,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Objective Title + {0x821bd328,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Monster List - Name + {0x820919b8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Monster List - Description + {0x81f56518,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Info + {0x82134ce0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Category + {0x82134f30,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Name + {0x821372e4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Description 1 + {0x82137344,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Help Description 2 + {0x81d0ee80,{CODEC_UTF16,0,0,ReadTextAndLenDW<2>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Location + {0x82128f64,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Album Title + {0x81f572a0,{CODEC_UTF16,0,0,ReadTextAndLenDW<3>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Load/Save Text + {0x81d040a8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Levelup First Part + {0x81d043fc,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Levelup Second Part + {0x81d04550,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Levelup New Ability Description + {0x81fbfa18,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Yoshi Mini-Game Header + {0x81fbfa74,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Yoshi Mini-Game Text + {0x81cf41b4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BC0018138000,"0100BC0018138000","1.0.0"}},// Enemy Special Attacks //Trials of Mana {0x800e8abc,{CODEC_UTF16,1,0,0,F0100D7800E9E0000,"0100D7800E9E0000","1.1.1"}},// Text //Utsusemi no Meguri - {0x821b452c,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100DA101D9AA000","1.0.0"}},// text1 - {0x821b456c,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100DA101D9AA000","1.0.0"}},// text2 - {0x821b45ac,{CODEC_UTF16,0,0,ReadTextAndLen<0>,0,"0100DA101D9AA000","1.0.0"}},// text3 + {0x821b452c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100DA101D9AA000","1.0.0"}},// text1 + {0x821b456c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100DA101D9AA000","1.0.0"}},// text2 + {0x821b45ac,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"0100DA101D9AA000","1.0.0"}},// text3 //Buddy Mission BOND - {0x80046dd0,{0,0,0,T0100DB300B996000,0,"0100DB300B996000",0}},//1.0.0, 1.0.1 + {0x80046dd0,{0,0,0,T0100DB300B996000,0,"0100DB300B996000",0}},//1.0.0, 1.0.1,sjis {0x80046de0,{0,0,0,T0100DB300B996000,0,"0100DB300B996000",0}}, + //Bravely Default II + {0x80b97700,{CODEC_UTF16,0,0,0,0,"010056F00C7B4000","1.0.0"}},//Main Text + {0x80bb8d3c,{CODEC_UTF16,0,0,0,0,"010056F00C7B4000","1.0.0"}},//Main Ptc Text + {0x810add68,{CODEC_UTF16,0,0,0,0,"010056F00C7B4000","1.0.0"}},//Secondary Text + //Tantei Bokumetsu / 探偵撲滅 + {0x8011c340,{CODEC_UTF8,1,0,0,F0100CBA014014000,"0100CBA014014000","1.0.0"}},//Text + {0x80064f20,{CODEC_UTF8,1,0,0,F0100CBA014014000,"0100CBA014014000","1.0.0"}},//Choices + //Ys X: Nordics + {0x80817758,{CODEC_UTF8,1,0,0,F0100CC401A16C000<0>,"0100CC401A16C000","1.0.4"}},//Main Text + {0x80981e3c,{CODEC_UTF8,0,0,0,F0100CC401A16C000<1>,"0100CC401A16C000","1.0.4"}},//Secondary Text + //9 R.I.P + {0x80025360,{CODEC_UTF8,2,0,0,F0100BDD01AAE4000,"0100BDD01AAE4000","1.0.0"}},//name + {0x80023c60,{CODEC_UTF8,0,0,0,F0100BDD01AAE4000,"0100BDD01AAE4000","1.0.0"}},//text + {0x8005388c,{CODEC_UTF8,1,0,0,F0100BDD01AAE4000,"0100BDD01AAE4000","1.0.0"}},//choice + {0x80065010,{CODEC_UTF8,0,0,0,F0100BDD01AAE4000,"0100BDD01AAE4000","1.0.0"}},//character description + {0x8009c780,{CODEC_UTF8,0,0,0,F0100BDD01AAE4000,"0100BDD01AAE4000","1.0.0"}},//prompt + //Kiss Bell - Let's sound the kissing-bell of the promise / キスベル + {0x8049d958,{CODEC_UTF8,1,0,0,F01006590155AC000,"0100BD7015E6C000","1.0.0"}},//text + //Piofiore no Banshou -Ricordo- CN + {0x80015fa0,{CODEC_UTF8,2,0,0,F0100C310110B4000,"0100C310110B4000","1.0.0"}},//handlerMsg + {0x80050d50,{CODEC_UTF8,0,0,0,F0100C310110B4000,"0100C310110B4000","1.0.0"}},//handlerName + {0x8002F430,{CODEC_UTF8,0,0,0,F0100C310110B4000,"0100C310110B4000","1.0.0"}},//handlerPrompt + {0x8002F4F0,{CODEC_UTF8,0,0,0,F0100C310110B4000,"0100C310110B4000","1.0.0"}},//handlerPrompt + {0x8002F540,{CODEC_UTF8,0,0,0,F0100C310110B4000,"0100C310110B4000","1.0.0"}},//handlerPrompt + //Piofiore no Banshou -Ricordo- + {0x800141d0,{CODEC_UTF8,2,0,0,F0100C310110B4000,"01005F700DC56000","1.0.0"}},//handlerMsg + {0x8004ce20,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01005F700DC56000","1.0.0"}},//handlerName + {0x8002be90,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01005F700DC56000","1.0.0"}},//handlerPrompt + {0x8002bf50,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01005F700DC56000","1.0.0"}},//handlerPrompt + {0x8002bfa0,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01005F700DC56000","1.0.0"}},//handlerPrompt + //Piofiore no Banshou -Episodio1926- + {0x80019630,{CODEC_UTF8,2,0,0,F0100C310110B4000,"01009E30120F4000","1.0.0"}},//handlerMsg + {0x8005B7B0,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01009E30120F4000","1.0.0"}},//handlerName + {0x80039230,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01009E30120F4000","1.0.0"}},//handlerPrompt + {0x800392F0,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01009E30120F4000","1.0.0"}},//handlerPrompt + {0x80039340,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01009E30120F4000","1.0.0"}},//handlerPrompt + //Pokémon Let’s Go, Pikachu! + {0x8067d9fc,{CODEC_UTF16,0,0,0,F010003F003A34000,"010003F003A34000","1.0.2"}},//Text + //Ikemen Sengoku Toki o Kakeru Koi / イケメン戦国◆時をかける恋 新たなる出逢い + {0x813e4fb4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01008BE016CE2000","1.0.0"}},//Main Text + {0x813e4c60,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01008BE016CE2000","1.0.0"}},//Name + {0x813b5360,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"01008BE016CE2000","1.0.0"}},//Choices + {0x81bab9ac,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,0,"01008BE016CE2000","1.0.0"}},//Info + //Shin Megami Tensei V + {0x80ce01a4,{CODEC_UTF16,0,0,0,0,"01006BD0095F4000","1.0.2"}},//Text + //The Legend of Zelda: Link's Awakening + {0x80f57910,{CODEC_UTF8,1,0,0,0,"01006BB00C6F0000","1.0.1"}},//Main Text + //Cendrillon palikA + {0x8001ab8c,{CODEC_UTF8,2,0,0,F0100DE200C0DA000,"01006B000A666000","1.0.0"}},//name + {0x80027b30,{CODEC_UTF8,0,0,0,F0100DE200C0DA000,"01006B000A666000","1.0.0"}},//dialogue + //Crayon Shin-chan Shiro of Coal Town + {0x83fab4bc,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F01007B601C608000,"01007B601C608000","1.0.1"}}, + //Fuuraiki 4 + {0x80008c80,{CODEC_UTF32,1,0,0,F010046601125A000,"010046601125A000","1.0.0"}},//Main + {0x80012b1c,{CODEC_UTF32,1,0,0,F010046601125A000,"010046601125A000","1.0.0"}},//Wordpad + {0x80012ccc,{CODEC_UTF32,1,0,0,F010046601125A000,"010046601125A000","1.0.0"}},//Comments + {0x80009f74,{CODEC_UTF32,1,0,0,F010046601125A000,"010046601125A000","1.0.0"}},//Choices + {0x80023d64,{CODEC_UTF32,0,0,0,F010046601125A000,"010046601125A000","1.0.0"}},//Location + //Ken ga Kimi for S / 剣が君 for S + {0x81477128,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100771013FA8000,"0100771013FA8000","1.1"}},//Main Text + {0x81470e38,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100771013FA8000,"0100771013FA8000","1.1"}},//Secondary Text + //ANONYMOUS;CODE + {0x80011608,{CODEC_UTF8,1,0,0,F0100556015CCC000,"0100556015CCC000","1.0.0"}},//dialouge, menu + //Sugar * Style (シュガー*スタイル) + {0x800ccbc8,{0,0,0,0,0,"0100325012B70000","1.0.0"}},// ret x0 name + text (readShiftJisString), filter is to complex, quit. + //Nightshade/百花百狼 + {0x802999c8,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010042300C4F6000,"010042300C4F6000","1.0.1"}},//dialogue + {0x8015b544,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010042300C4F6000,"010042300C4F6000","1.0.1"}},//name + {0x802a2fd4,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010042300C4F6000,"010042300C4F6000","1.0.1"}},//choice1 + {0x802b7900,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010042300C4F6000,"010042300C4F6000","1.0.1"}},//choice2 + //Toraware no Paruma + {0x8015b7a8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010044800D2EC000,"010044800D2EC000","1.0.0"}},//text x0 + {0x8015b46c,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010044800D2EC000,"010044800D2EC000","1.0.0"}},//name x1 + //Brothers Conflict: Precious Baby + {0x8016aecc,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100982015606000,"010037400DAAE000","1.0.0"}},//name + {0x80126b9c,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100982015606000,"010037400DAAE000","1.0.0"}},//dialogue + {0x80129160,{CODEC_UTF16,0,0,ReadTextAndLenW<2>,F0100982015606000,"010037400DAAE000","1.0.0"}},//choice + //Zettai Kaikyu Gakuen + {0x80067b5c,{CODEC_UTF16,1,0,0,F010021300F69E000<0>,"010021300F69E000","1.0.0"}},//name+ dialogue main(ADV)+choices + {0x80067cd4,{CODEC_UTF16,1,0,0,F010021300F69E000<1>,"010021300F69E000","1.0.0"}},//dialogueNVL + //Dragon Quest Builders 2 + {0x805f8900,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Main text textbox + {0x8068a698,{CODEC_UTF8,0,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Not press to continue text + {0x806e4118,{CODEC_UTF8,3,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Character creation text + {0x8067459c,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Objective progress1 + {0x800a4f90,{CODEC_UTF8,0,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Objective progress2 + {0x8060a1c0,{CODEC_UTF8,0,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Infos1 + {0x805f6130,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Infos2 + {0x80639b6c,{CODEC_UTF8,2,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Item description + {0x807185ac,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Mission1 + {0x80657e4c,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Mission2 + {0x80713be0,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Mission3 + {0x8076ab04,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Tutorial header + {0x8076ab2c,{CODEC_UTF8,1,0,0,F010050000705E000,"010050000705E000","1.7.3"}},//Tutorial explanation + //BUSTAFELLOWS season2 + {0x819ed3e4,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100874017BE2000,"010037400DAAE000","1.0.0"}},//dialogue + {0x82159cd0,{CODEC_UTF16,0,0,ReadTextAndLenW<1>,F0100874017BE2000,"010037400DAAE000","1.0.0"}},//textmessage + {0x81e17530,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100874017BE2000,"010037400DAAE000","1.0.0"}},//option + {0x81e99d64,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100874017BE2000,"010037400DAAE000","1.0.0"}},//choice + {0x8186f81c,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100874017BE2000,"010037400DAAE000","1.0.0"}},//archives + //5分後に意外な結末 モノクロームの図書館 + {0x81fa4890,{CODEC_UTF16,1,0X14,0,F010094601D910000,"010094601D910000","1.0.1"}},//book text + {0x81fa5250,{CODEC_UTF16,1,0X14,0,F010094601D910000,"010094601D910000","1.0.1"}},//book text + {0x81b1c68c,{CODEC_UTF16,0,0X14,0,F010094601D910000,"010094601D910000","1.0.1"}},//choice1 + {0x81b1c664,{CODEC_UTF16,0,0X14,0,F010094601D910000,"010094601D910000","1.0.1"}},//choice2 + {0x81b1e5b0,{CODEC_UTF16,3,0X14,0,F010094601D910000,"010094601D910000","1.0.1"}},//dialogue + //Tokimeki Memorial Girl’s Side 2nd Season for Nintendo Switch + {0x82058848,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//dialogue1 + {0x82058aa0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//dialogue2 + {0x8205a244,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//dialogue3 + {0x826ee1d8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//choice + {0x8218e258,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//news + {0x823b61d4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//mail + {0x82253454,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//luckyitem + {0x82269240,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//profile1 + {0x82269138,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//profile2 + {0x822691ec,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//profile3 + {0x82269198,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010079201BD88000,"010079201BD88000","1.0.1"}},//profile4 + //Uta no☆Prince-sama♪ Repeat Love / うたの☆プリンスさまっ♪Repeat LOVE + {0x800374a0,{0,0,0,0,F0100068019996000,"010024200E00A000","1.0.0"}},//Main Text + Name,sjis + {0x8002ea08,{0,0,0,0,F0100068019996000,"010024200E00A000","1.0.0"}},//Choices,sjis + //ワンド オブ フォーチュン R2 ~時空に沈む黙示録~ for Nintendo Switch + {0x821540c4,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100DA201E0DA000,"010088A01A774000","1.0.0"}},//dialogue + {0x8353e674,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100DA201E0DA000,"010088A01A774000","1.0.0"}},//choice + {0x835015e8,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F0100DA201E0DA000,"010088A01A774000","1.0.0"}},//name + //Yo-kai Watch 4++ + {0x80a88080,{CODEC_UTF8,1,0,0,F010086C00AF7C000,"010086C00AF7C000","2.2.0"}},//All Text + //Cupid Parasite -Sweet & Spicy Darling- + {0x80138150,{CODEC_UTF32,2,0,0,F010079C017B98000,"010079C017B98000","1.0.0"}},//name + text + {0x801a1bf0,{CODEC_UTF32,0,0,0,F010079C017B98000,"010079C017B98000","1.0.0"}},//choice + //DesperaDrops + {0x8199c95c,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010061A01C1CE000,"010061A01C1CE000","1.0.0"}},//text1 + {0x81d5c900,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010061A01C1CE000,"010061A01C1CE000","1.0.0"}},//text2 + {0x820d6324,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010061A01C1CE000,"010061A01C1CE000","1.0.0"}},//choice + //Dragon Ball Z: Kakarot + {0x812a8e28,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Main Text + {0x812a8c90,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Name + {0x80bfbff0,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Ptc Text + {0x80bfbfd4,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Ptc Name + {0x8126a538,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Info + {0x8106fcbc,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//More Info + {0x80fad204,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Hint Part1 + {0x80fad2d0,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Hint Part2 + {0x80facf1c,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Loading Title + {0x80fad018,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Loading Description + {0x81250c50,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Tutorial h1 + {0x81250df0,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Tutorial h2 + {0x81251e80,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Tutorial Description1 + {0x81252214,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Tutorial Description2 + {0x810ae1c4,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Config Description + {0x812a9bb8,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Menu Talk + {0x812a9b78,{CODEC_UTF16,0,0,0,F01008C0016544000,"0100EF00134F4000","1.50"}},//Menu Name + //Harvestella + {0x80af7abc,{CODEC_UTF16,0,0,0,F0100B0601852A000<6>,"0100EDD018032000","1.0.1"}},//Main Text + {0x80c0beb8,{CODEC_UTF16,0,0,0,F0100B0601852A000<7>,"0100EDD018032000","1.0.1"}},//Tutorial + News + {0x80b87f94,{CODEC_UTF16,0,0,0,F0100B0601852A000<8>,"0100EDD018032000","1.0.1"}},//Tutorial Part 2 + {0x80e1c378,{CODEC_UTF16,0,0,0,F0100B0601852A000<9>,"0100EDD018032000","1.0.1"}},//Mission Title + {0x80a7d7f4,{CODEC_UTF16,0,0,0,F0100B0601852A000<10>,"0100EDD018032000","1.0.1"}},//Mission Description + {0x80e39130,{CODEC_UTF16,0,0,0,F0100B0601852A000<11>,"0100EDD018032000","1.0.1"}},//Item Name + {0x80e38f80,{CODEC_UTF16,0,0,0,F0100B0601852A000<12>,"0100EDD018032000","1.0.1"}},//Item Description Part1 + {0x80e38ea8,{CODEC_UTF16,0,0,0,F0100B0601852A000<13>,"0100EDD018032000","1.0.1"}},//Item Description Part2 + //Sen no Hatou, Tsukisome no Kouki + {0x8003fc90,{CODEC_UTF8,1,0,0,0,"0100F8A017BAA000","1.0.0"}},//text1 + {0x8017a740,{CODEC_UTF8,0,0,0,0,"0100F8A017BAA000","1.0.0"}},//text2 + //Olympia Soiree + {0x8002ad04,{CODEC_UTF8,0,0,0,F0100C310110B4000,"0100F9D00C186000","1.0.0"}}, + //Getsuei no Kusari -Sakuran Paranoia- + {0x21801c+0x80004000,{0,2,0,0,F0100F7401AA74000,"0100F7401AA74000","1.0.0"}},//text,sjis + {0x228fac+0x80004000,{0,1,0,0,F0100F7401AA74000,"0100F7401AA74000","1.0.0"}},//choices + {0x267f24+0x80004000,{0,1,0,0,F0100F7401AA74000,"0100F7401AA74000","1.0.0"}},//dictionary + //Xenoblade Chronicles 2 + {0x8010b180,{CODEC_UTF8,1,0,0,F01006F000B056000,"0100F3400332C000","2.0.2"}},//Text + //Kanon + {0x800dc524,{CODEC_UTF16,0,0,0,F0100FB7019ADE000,"0100FB7019ADE000","1.0.0"}},//Text + //Princess Arthur + {0x80066e10,{0,2,0,0,F0100FC2019346000,"0100FC2019346000","1.0.0"}},//Dialogue text ,sjis + {0x8001f7d0,{0,0,0,0,F0100FC2019346000,"0100FC2019346000","1.0.0"}},//Name + //Layton’s Mystery Journey: Katrielle and the Millionaires’ Conspiracy + {0x8025d520,{0,2,0,0,F0100FDB00AA80000,"0100FDB00AA80000","1.1.0"}},//All Text ,sjis + // Xenoblade Chronicles: Definitive Edition + {0x808a5670,{CODEC_UTF8,1,0,0,F0100FF500E34A000,"0100FF500E34A000","1.1.2"}},//Main Text + {0x80305968,{CODEC_UTF8,1,0,0,F0100FF500E34A000,"0100FF500E34A000","1.1.2"}},//Choices + {0x8029edc8,{CODEC_UTF8,0,0,0,F0100FF500E34A000,"0100FF500E34A000","1.1.2"}},//Item Name + {0x8029ede8,{CODEC_UTF8,0,0,0,F0100FF500E34A000,"0100FF500E34A000","1.1.2"}},//Item Description + {0x8026a454,{CODEC_UTF8,0,0,0,F0100FF500E34A000,"0100FF500E34A000","1.1.2"}},//Acquired Item Name + {0x803c725c,{CODEC_UTF8,0,0,0,F0100FF500E34A000,"0100FF500E34A000","1.1.2"}},//Acquired Item Notification + {0x802794cc,{CODEC_UTF8,0,0,0,F0100FF500E34A000,"0100FF500E34A000","1.1.2"}},//Location Discovered + //Unicorn Overlord + {0x805ae1f8,{CODEC_UTF8,1,0,0,F01000AE01954A000,"01000AE01954A000","1.00"}},//Text + //Octopath Traveler + {0x8005ef78,{CODEC_UTF32,0,0,0,0,"01000E200DC58000","1.0.0"}},//Text + //The World Ends with You: Final Remix + {0x80706ab8,{CODEC_UTF16,2,0,0,F01006F000B056000,"01001C1009892000","1.0.0"}},//Text + //JackJanne + {0x81f02cd8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100982015606000,"01001DD010A2E800","1.0.5"}},//Text + {0x821db028,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100982015606000,"01001DD010A2E800","1.0.5"}},//choice + //Collar x Malice + {0x800444c4,{CODEC_UTF8,0,0,0,0,"01002B400E9DA000","1.0.0"}},//Text + //Kanda Alice mo Suiri Suru. + {0x80041db0,{0,0,0,0,F01003BD013E30000,"01003BD013E30000","1.0.0"}},//sjis + //Rune Factory 3 Special + {0x81fb3364,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01001EF017BE6000,"01001EF017BE6000","1.0.4"}},//Main Text + {0x826c0f20,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01001EF017BE6000,"01001EF017BE6000","1.0.4"}},//Aproach + {0x81fb3320,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01001EF017BE6000,"01001EF017BE6000","1.0.4"}},//Choices + {0x821497e8,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01001EF017BE6000,"01001EF017BE6000","1.0.4"}},//Calendar + {0x826ba1a0,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01001EF017BE6000,"01001EF017BE6000","1.0.4"}},//Info + {0x823f6200,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01001EF017BE6000,"01001EF017BE6000","1.0.4"}},//More Info + {0x826c381c,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01001EF017BE6000,"01001EF017BE6000","1.0.4"}},//Item Select Name + //Toraware no Paruma -Refrain- + {0x80697300,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01000EA00D2EE000,"01000EA00D2EE000","1.0.0"}},//text x1 + {0x806f43c0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01000EA00D2EE000,"01000EA00D2EE000","1.0.0"}},//name x0 + {0x80d2aca4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01000EA00D2EE000,"01000EA00D2EE000","1.0.0"}},//choice x0 + {0x804b04c8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01000EA00D2EE000,"01000EA00D2EE000","1.0.0"}},//alert x0 + {0x804b725c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01000EA00D2EE000,"01000EA00D2EE000","1.0.0"}},//prompt x0 + //Aiyoku no Eustia + {0x804BEFD0,{CODEC_UTF8,0,0,0,F01006590155AC000,"01001CC017BB2000","1.0.0"}},//x0 - name + {0x804BEFE8,{CODEC_UTF8,0,0,0,F01006590155AC000,"01001CC017BB2000","1.0.0"}},//x0 - dialogue + {0x804d043c,{CODEC_UTF8,0,0,0,F01006590155AC000,"01001CC017BB2000","1.0.0"}},//x0 - choice + //ワンド オブ フォーチュン R~ for Nintendo Switch + {0x81ed0580,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100DA201E0DA000,"01000C7019E1C000","1.0.0"}},//dialogue + {0x81f96bac,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100DA201E0DA000,"01000C7019E1C000","1.0.0"}},//name + {0x8250ac28,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100DA201E0DA000,"01000C7019E1C000","1.0.0"}},//choice + //Jakou no Lyla ~Trap of MUSK~ + {0x80167100,{CODEC_UTF32,1,0,0,F010093800DB1C000,"010093800DB1C000","1.0.0"}},// x1 text + name (unformated), #T1 #T2, #T0/* 1. European night */ + {0x801589a0,{CODEC_UTF32,1,0,0,F010093800DB1C000,"010093800DB1C000","1.0.0"}},// x0=x1=choice (sig=SltAdd) + {0x801b4300,{CODEC_UTF32,1,0,0,F010093800DB1C000,"010093800DB1C000","1.0.0"}},// x1 text + name (unformated), #T1 #T2, #T0/* 2. Asian night */ + {0x802a9170,{CODEC_UTF32,1,0,0,F010093800DB1C000,"010093800DB1C000","1.0.0"}},// x0=x1=choice (sig=SltAdd) + {0x80301e80,{CODEC_UTF32,1,0,0,F010093800DB1C000,"010093800DB1C000","1.0.0"}},// x1 text + name (unformated), #T1 #T2, #T0/* 3. Arabic night */ + {0x803f7a90,{CODEC_UTF32,1,0,0,F010093800DB1C000,"010093800DB1C000","1.0.0"}},// x0=x1=choice (sig=SltAdd) + //Galleria no Chika Meikyuu to Majo no Ryodan ガレリアの地下迷宮と魔女ノ旅団 + {0x8002f64c,{CODEC_UTF8,0,0,0,0,"01007010157B4000","1.0.1"}},//Main Text + //Dragon's Dogma: Dark Arisen + {0x81023a80,{CODEC_UTF8,1,0,0,F010057E00AC56000<0>,"010057E00AC56000","1.0.1"}},//Main Text + {0x8103e140,{CODEC_UTF8,1,0,0,F010057E00AC56000<1>,"010057E00AC56000","1.0.1"}},//Allies + Cutscene Text + {0x8103bb10,{CODEC_UTF8,1,0,0,F010057E00AC56000<2>,"010057E00AC56000","1.0.1"}},//NPC Text + {0x80150720,{CODEC_UTF8,0,0,0,F010057E00AC56000<3>,"010057E00AC56000","1.0.1"}},//Intro Message + {0x80df90a8,{CODEC_UTF8,0,0,0,F010057E00AC56000<4>,"010057E00AC56000","1.0.1"}},//Info1 + {0x80ce2bb8,{CODEC_UTF8,0,0,0,F010057E00AC56000<5>,"010057E00AC56000","1.0.1"}},//Info2 + {0x80292d84,{CODEC_UTF8,0,0,0,F010057E00AC56000<6>,"010057E00AC56000","1.0.1"}},//Info Popup1 + {0x80cfac6c,{CODEC_UTF8,0,0,0,F010057E00AC56000<7>,"010057E00AC56000","1.0.1"}},//Info Popup2 + {0x8102d460,{CODEC_UTF8,1,0,0,F010057E00AC56000<8>,"010057E00AC56000","1.0.1"}},//Description + //Yo-kai Watch Jam - Yo-kai Academy Y: Waiwai Gakuen + {0x80dd0cec,{CODEC_UTF8,0,0,0,F010051D010FC2000,"010051D010FC2000","4.0.0"}},//Dialogue text + {0x80e33450,{CODEC_UTF8,3,0,0,F010051D010FC2000,"010051D010FC2000","4.0.0"}},//Other Dialogue text + {0x80c807c0,{CODEC_UTF8,0,0,0,F010051D010FC2000,"010051D010FC2000","4.0.0"}},//Item description etc text + {0x808d9a30,{CODEC_UTF8,0,0,0,F010051D010FC2000,"010051D010FC2000","4.0.0"}},//Tutorial Text + {0x811b95ac,{CODEC_UTF8,3,0,0,F010051D010FC2000,"010051D010FC2000","4.0.0"}},//Menu screen + {0x80e20290,{CODEC_UTF8,3,0,0,F010051D010FC2000,"010051D010FC2000","4.0.0"}},//Opening Song Text etc + {0x80c43680,{CODEC_UTF8,3,0,0,F010051D010FC2000,"010051D010FC2000","4.0.0"}},//Cutscene Text + //NEO: The World Ends With You + {0x81581d6c,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010043B013C5C000<0>,"010043B013C5C000","1.03"}},//Text + {0x818eb248,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010043B013C5C000<1>,"010043B013C5C000","1.03"}},//Objective + {0x81db84a4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010043B013C5C000<2>,"010043B013C5C000","1.03"}},//Menu: Collection Item Name + {0x81db8660,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F010043B013C5C000<3>,"010043B013C5C000","1.03"}},//Menu: Collection Item Description + {0x81c71a48,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010043B013C5C000<4>,"010043B013C5C000","1.03"}},//Tutorial Title + {0x81c71b28,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F010043B013C5C000<5>,"010043B013C5C000","1.03"}},//Tutorial Description + //Eiyuden Chronicle: Rising + {0x82480190,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,0,"010039B015CB6000","1.02"}},//Main Text + {0x824805d0,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,0,"010039B015CB6000","1.02"}},//Name + {0x81f05c44,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Intro Text + {0x82522ac4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Character Info + {0x81b715f4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Info + {0x825274d0,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,0,"010039B015CB6000","1.02"}},//Info2 + {0x825269b0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Tutorial Title + {0x82526a0c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Tutorial Description + {0x82523e04,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Objective Title + {0x82524160,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Objective Description + {0x81f0351c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Location Selection Title + {0x81f0358c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Location Selection Description + {0x81f0d520,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Quest Title + {0x81f0d58c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Quest Description + {0x81f00318,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Help Title + {0x81f00368,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Help Description + {0x81f0866c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,0,"010039B015CB6000","1.02"}},//Config Description + //Ghost Trick: Phantom Detective + {0x81448898,{CODEC_UTF16,0,0,0,F010043B013C5C000<6>,"010029B018432000","1.0.0"}},//Main Text + {0x80c540d4,{CODEC_UTF16,0,0,0,F010043B013C5C000<7>,"010029B018432000","1.0.0"}},//Secondary Text + {0x80e50dd4,{CODEC_UTF16,0,0,0,F010043B013C5C000<8>,"010029B018432000","1.0.0"}},//Object Name + {0x80f91c08,{CODEC_UTF16,0,0,0,F010043B013C5C000<9>,"010029B018432000","1.0.0"}},//Language Selection + {0x805c9014,{CODEC_UTF16,0,0,0,F010043B013C5C000<10>,"010029B018432000","1.0.0"}},//Story/Character Info + //Higurashi no Naku Koro ni Hou + {0x800bd6c8,{0,0,0,0,0,"0100F6A00A684000","1.0.0"}},//sjis, filter is to complex, quit. + {0x800c2d20,{0,0,0,0,0,"0100F6A00A684000","1.2.0"}},//sjis, filter is to complex, quit. + //Umineko no Naku Koro ni Saku ~Nekobako to Musou no Koukyoukyoku~ + {0x800b4560,{CODEC_UTF8,0,0,0,0,"01006A300BA2C000","1.0.0"}},// x0 name + text (bottom, center) - whole line. filter is to complex, quit. + {0x801049c0,{CODEC_UTF8,0,0,0,0,"01006A300BA2C000","1.0.0"}},// x0 prompt, bottomLeft + {0x80026378,{CODEC_UTF8,0,0,0,0,"01006A300BA2C000","1.0.0"}},// x0 Yes|No + {0x801049a8,{CODEC_UTF8,0,0,0,0,"01006A300BA2C000","1.0.0"}},// x0 topLeft (double: ♪ + text) + + //Koroshiya to Strawberry- Plus + {0x81322cec,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F010042300C4F6000,"0100E390145C8000","1.0.0"}},//dialogue + {0x819b1a78,{CODEC_UTF16,0,0,ReadTextAndLenW<2>,F010042300C4F6000,"0100E390145C8000","1.0.0"}},//dialogue + {0x81314e8c,{CODEC_UTF16,0,0,ReadTextAndLenW<0>,F010042300C4F6000,"0100E390145C8000","1.0.0"}},//dialogue + //Tokimeki Memorial Girl's Side 1st Love for Nintendo Switch + {0x822454a4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//dialogue1 + {0x82247138,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//dialogue2 + {0x822472e0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//dialogue3 + {0x82156988,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//choice + {0x82642200,{CODEC_UTF16,0,0,ReadTextAndLenDW<2>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//option1 + {0x81ecd758,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//option2 + {0x823185e4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//mail + {0x823f2edc,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//roomDescript + {0x821e3cf0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//dateDescript + {0x81e20050,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//characterDesc1 + {0x81e1fe50,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//characterDesc2 + {0x81e1feb0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//characterDesc3 + {0x81e1ff04,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//characterDesc4 + {0x821d03b0,{CODEC_UTF16,0,0,ReadTextAndLenDW<3>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//news + {0x82312008,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100D9A01BD86000,"0100D9A01BD86000","1.0.1"}},//luckyitem + //Triangle Strategy + {0x80aadebc,{CODEC_UTF16,0,0,0,F0100CC80140F8000<0>,"0100CC80140F8000","1.1.0"}},//Main Text + {0x81358ce4,{CODEC_UTF16,3,0,0,F0100CC80140F8000<1>,"0100CC80140F8000","1.1.0"}},//Secondary Text + {0x80a38988,{CODEC_UTF16,0,0,0,F0100CC80140F8000<2>,"0100CC80140F8000","1.1.0"}},//Info Contents + {0x80aa4aec,{CODEC_UTF16,0,0,0,F0100CC80140F8000<3>,"0100CC80140F8000","1.1.0"}},//Info + {0x80b1f300,{CODEC_UTF16,0,0,0,F0100CC80140F8000<4>,"0100CC80140F8000","1.1.0"}},//Difficulty Selection Part1 + {0x80b1f670,{CODEC_UTF16,0,0,0,F0100CC80140F8000<5>,"0100CC80140F8000","1.1.0"}},//Difficulty Selection Part2 + {0x80aa48f0,{CODEC_UTF16,0,0,0,F0100CC80140F8000<6>,"0100CC80140F8000","1.1.0"}},//PopUp Message + //Xenoblade Chronicles 3 + {0x80cf6ddc,{CODEC_UTF8,0,0,0,F010074F013262000,"010074F013262000","2.2.0"}},//Main Text + {0x80e76150,{CODEC_UTF8,0,0,0,F010074F013262000,"010074F013262000","2.2.0"}},//Secondary Text + {0x807b4ee4,{CODEC_UTF8,1,0,0,F010074F013262000,"010074F013262000","2.2.0"}},//Tutorial Description + {0x80850218,{CODEC_UTF8,0,0,0,F010074F013262000,"010074F013262000","2.2.0"}},//Objective + //CLOCK ZERO ~Shuuen no Ichibyou~ Devote + {0x8003c290,{0,0,0,0,F0100BDD01AAE4000,"01008C100C572000","1.0.0"}},//name,sjis + {0x8003c184,{0,0,0,0,F0100BDD01AAE4000,"01008C100C572000","1.0.0"}},//dialogue + {0x8001f6d0,{0,0,0,0,F0100BDD01AAE4000,"01008C100C572000","1.0.0"}},//prompt + //Shuuen no Virche -ErroR:salvation + {0x8001f594,{CODEC_UTF8,0,0x1C,0,F0100C310110B4000,"01005B9014BE0000","1.0.0"}},//dialog + {0x8001f668,{CODEC_UTF8,0,0x1C,0,F0100C310110B4000,"01005B9014BE0000","1.0.0"}},//center + {0x8003d540,{CODEC_UTF8,0,0,0,F0100C310110B4000,"01005B9014BE0000","1.0.0"}},//choice + //Spade no Kuni no Alice ~Wonderful White World~ / スペードの国のアリス ~Wonderful White World~ + {0x8135d018,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F01008C0016544000,"01003FE00E2F8000","1.0.0"}},//Text + Name + //十三支演義 偃月三国伝1・2 for Nintendo Switch + {0x82031f20,{CODEC_UTF16,0,0,ReadTextAndLenDW<2>,F0100DA201E0DA000,"01003D2017FEA000","1.0.0"}},//name + {0x82ef9550,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100DA201E0DA000,"01003D2017FEA000","1.0.0"}},//dialogue + {0x83252e0c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100DA201E0DA000,"01003D2017FEA000","1.0.0"}},//choice + //Tales of Vesperia: Definitive Edition + {0x802de170,{CODEC_UTF8,2,0,0,F01002C0008E52000,"01002C0008E52000","1.0.2"}},//Ptc Text + {0x802cf170,{CODEC_UTF8,3,0,0,F01002C0008E52000,"01002C0008E52000","1.0.2"}},//Cutscene + {0x8019957c,{CODEC_UTF8,0,0,0,F01002C0008E52000,"01002C0008E52000","1.0.2"}},//Conversation + {0x802c0600,{CODEC_UTF8,2,0,0,F01002C0008E52000,"01002C0008E52000","1.0.2"}},//Info + {0x801135fc,{CODEC_UTF8,0,0,0,F01002C0008E52000,"01002C0008E52000","1.0.2"}},//Post Battle Text + //Nil Adminari no Tenbin Irodori Nadeshiko + {0x8005fd5c,{CODEC_UTF8,0,0,0,F0100BDD01AAE4000,"01002BB00A662000","1.0.0"}},//name + {0x800db0d8,{CODEC_UTF8,0,20,0,F0100BDD01AAE4000,"01002BB00A662000","1.0.0"}},//name + //Hanayaka Nari, Waga Ichizoku Modern Nostalgie + {0x2509ac+0x80004000,{CODEC_UTF8,0,0,T0100B5500CA0C000,F0100B5500CA0C000,"01008DE00C022000","1.0.0"}}, + //Master Detective Archives: Rain Code + {0x80bf2034,{CODEC_UTF16,0,0,0,F0100F4401940A000,"0100F4401940A000","1.3.3"}},//Dialogue text + {0x80c099d4,{CODEC_UTF16,0,0,0,F0100F4401940A000,"0100F4401940A000","1.3.3"}},//Cutscene text + {0x80cbf1f4,{CODEC_UTF16,0,0,0,F0100F4401940A000,"0100F4401940A000","1.3.3"}},//Menu + {0x80cbc11c,{CODEC_UTF16,0,0,0,F0100DA201E0DA000,"0100F4401940A000","1.3.3"}},//Menu Item Description + {0x80cacc14,{CODEC_UTF16,0,0,0,F0100DA201E0DA000,"0100F4401940A000","1.3.3"}},//Menu Item Description 2 + {0x80cd6410,{CODEC_UTF16,0,0,0,F0100DA201E0DA000,"0100F4401940A000","1.3.3"}},//Menu Item Description 3 + {0x80c214d4,{CODEC_UTF16,0,0,0,F0100F4401940A000,"0100F4401940A000","1.3.3"}},//Description + {0x80cc9908,{CODEC_UTF16,0,0,0,F0100DA201E0DA000,"0100F4401940A000","1.3.3"}},//Mini game item description + {0x80bce36c,{CODEC_UTF16,0,0,0,F0100F4401940A000,"0100F4401940A000","1.3.3"}},//Tutorial + {0x80bcb7d4,{CODEC_UTF16,0,0,0,F0100F4401940A000,"0100F4401940A000","1.3.3"}},//Loading Screen information + {0x80bf32d8,{CODEC_UTF16,0,0,0,F0100F4401940A000,"0100F4401940A000","1.3.3"}},//Choices + //Fire Emblem: Three Houses + {0x8041e6bc,{CODEC_UTF8,0,0,0,F010055D009F78000<0>,"010055D009F78000","1.2.0"}},//Main Text + {0x805ca570,{CODEC_UTF8,0,0,0,F010055D009F78000<1>,"010055D009F78000","1.2.0"}},//Cutscene Text + {0x8049f1e8,{CODEC_UTF8,0,0,0,F010055D009F78000<2>,"010055D009F78000","1.2.0"}},//Cutscene Text Scroll + {0x805ee730,{CODEC_UTF8,0,0,0,F010055D009F78000<3>,"010055D009F78000","1.2.0"}},//Info + {0x805ee810,{CODEC_UTF8,0,0,0,F010055D009F78000<4>,"010055D009F78000","1.2.0"}},//Info Choice + {0x80467a60,{CODEC_UTF8,0,0,0,F010055D009F78000<5>,"010055D009F78000","1.2.0"}},//Location First Part + {0x805f0340,{CODEC_UTF8,0,0,0,F010055D009F78000<6>,"010055D009F78000","1.2.0"}},//Location Second Part + {0x801faae4,{CODEC_UTF8,0,0,0,F010055D009F78000<7>,"010055D009F78000","1.2.0"}},//Action Location + {0x803375e8,{CODEC_UTF8,0,0,0,F010055D009F78000<8>,"010055D009F78000","1.2.0"}},//Objective + {0x805fd870,{CODEC_UTF8,0,0,0,F010055D009F78000<9>,"010055D009F78000","1.2.0"}},//Tutorial + {0x804022f8,{CODEC_UTF8,0,0,0,F010055D009F78000<10>,"010055D009F78000","1.2.0"}},//Request + {0x802f7df4,{CODEC_UTF8,0,0,0,F010055D009F78000<11>,"010055D009F78000","1.2.0"}},//Quest Description + {0x8031af0c,{CODEC_UTF8,0,0,0,F010055D009F78000<12>,"010055D009F78000","1.2.0"}},//Aproach Text + //Sweet Clown ~Gozen San-ji no Okashi na Doukeshi~ + {0x20dbfc+0x80004000,{0,0,0x28,0,F010028D0148E6000,"010028D0148E6000","1.2.0"}},//dialog, sjis + {0x214978+0x80004000,{0,2,0xC,0,F010028D0148E6000,"010028D0148E6000","1.2.0"}},//choices + //Another Code: Recollection + {0x82dcad30,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Main Text + {0x82f2cfb0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Item Description + {0x82dcc5fc,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Tutorial PopUp Header + {0x82dcc61c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Tutorial PopUp Description + {0x82f89e78,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Aproach Text + {0x82973300,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Chapter + {0x82dd2604,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Location + {0x82bcb77c,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Save Message + {0x828ccfec,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Acquired Item + {0x83237b14,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Question Options + {0x82dcee10,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Tutorial Header + {0x82dcee38,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Tutorial Description + {0x82e5cadc,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Character Info Name + {0x82e5cc38,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Character Info Description + {0x82871ac8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Letter Message + {0x82e4dad4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//アナザーキー + {0x82bd65d0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Message Title + {0x82bd65f0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Message Content + {0x82c1ccf0,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Decision Header + {0x82c1d218,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Decision1 + {0x82c1e43c,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100CB9018F5A000,"0100CB9018F5A000","1.0.0"}},//Decision2 + //AI: The Somnium Files + {0x8165a9a4,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100C7400CFB4000<0>,"0100C7400CFB4000","1.0.2"}},//Main Text + Tutorial + {0x80320dd4,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100C7400CFB4000<1>,"0100C7400CFB4000","1.0.2"}},//Menu Interface Text1 + {0x80320e20,{CODEC_UTF16,0,0,ReadTextAndLenDW<1>,F0100C7400CFB4000<2>,"0100C7400CFB4000","1.0.2"}},//Menu Interface Text2 + //AI: The Somnium Files - nirvanA Initiative + {0x8189ae64,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BD4014D8C000<0>,"0100BD4014D8C000","1.0.1"}},//Main Text + Tutorial + {0x81813428,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BD4014D8C000<1>,"0100BD4014D8C000","1.0.1"}},//Hover Investigation Text + {0x82e122b8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BD4014D8C000<2>,"0100BD4014D8C000","1.0.1"}},//Info + {0x82cffff8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BD4014D8C000<3>,"0100BD4014D8C000","1.0.1"}},//Config Description + {0x818c3cd8,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BD4014D8C000<4>,"0100BD4014D8C000","1.0.1"}},//File: Names + {0x82ea1a38,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BD4014D8C000<5>,"0100BD4014D8C000","1.0.1"}},//File: Contents + {0x82cbb1fc,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F0100BD4014D8C000<6>,"0100BD4014D8C000","1.0.1"}},//Investigation Choices + //Fata morgana no Yakata ~Dreams of the Revenants Edition~ / ファタモ + {0x8025a998,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01008C0016544000,"0100BE40138B8000","1.0.1"}},//Main Text + {0x801d6050,{CODEC_UTF16,0,0,ReadTextAndLenDW<0>,F01008C0016544000,"0100BE40138B8000","1.0.1"}},//Choices + //Ni no Kuni II: Revenant Kingdom + {0x80ac651c,{CODEC_UTF8,0,0,0,F0100C4E013E5E000,"0100C4E013E5E000","1.0.0"}},//Main Text + {0x80335ea0,{CODEC_UTF8,0,0,0,F0100C4E013E5E000,"0100C4E013E5E000","1.0.0"}},//Name + //Harukanaru Toki no Naka de 7 + {0x800102bc,{0,0,0,T0100CF400F7CE000<0>,F0100CF400F7CE000,"0100CF400F7CE000","1.0.0"}},//name, sjis + {0x80051f90,{0,0,0,T0100CF400F7CE000<1>,F0100CF400F7CE000,"0100CF400F7CE000","1.0.0"}},//text + {0x80010b48,{0,0,0,T0100CF400F7CE000<0>,F0100CF400F7CE000,"0100CF400F7CE000","1.0.0"}},//prompt + {0x80010c80,{0,0,0,T0100CF400F7CE000<0>,F0100CF400F7CE000,"0100CF400F7CE000","1.0.0"}},//choice + //Angelique Luminarise + {0x80046c04,{0,0,0,T0100CF400F7CE000<0>,F0100CF400F7CE000,"0100D11018A7E000","1.0.0"}},//ingameDialogue, sjis + {0x80011284,{0,0,0,T0100CF400F7CE000<0>,F0100CF400F7CE000,"0100D11018A7E000","1.0.0"}},//choice + {0x80011140,{0,0,0,T0100CF400F7CE000<0>,F0100CF400F7CE000,"0100D11018A7E000","1.0.0"}},//prompt first + //Star Ocean The Second Story R + {0x81d5e4d0,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Main Text + Tutorial + {0x81d641b4,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Intro Cutscene + {0x824b1f00,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Character Selection Name + {0x81d4c670,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Character Selection Lore + {0x8203a048,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//General Description + {0x82108cd0,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Unique Spot Title + {0x827a9848,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Chest Item + {0x82756890,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Info + {0x82241410,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Menu Talk + {0x81d76404,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Secondary Talk + {0x821112e0,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Location + {0x82111320,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Location Interior + {0x81d6ea24,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Special Arts/Spells Name + {0x81d6ea68,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Special Arts/Spells Description + {0x81d6ed48,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Special Arts/Spells Range + {0x81d6eb3c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Special Arts/Spells Effect + {0x81d6f880,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Special Arts/Spells Bonus + {0x8246d81c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Tactics Name + {0x8246d83c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Tactics Description + {0x8212101c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Achievements Name + {0x82121088,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Achievements Description + {0x81d6c480,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Acquired Item1 + {0x821143f0,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Acquired Item2 + {0x81d6fb18,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Skill Name + {0x81d6fb4c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Skill Description + {0x81d6fb7c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Skill Bonus Description + {0x8212775c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Item Name + {0x82127788,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Item Description + {0x821361ac,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Ability Name + {0x821361f4,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Ability Range + {0x82136218,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Ability Effect + {0x8238451c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Strategy Name + {0x82134610,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Battle Acquired Item + {0x824b5eac,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Item Name + {0x824b5f04,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Item Description + {0x824b5f54,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Item Effect + {0x81d71790,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Item Factor Title + {0x824b62c0,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Item Factor Description + {0x824c2e2c,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//IC/Specialty Skills Name + {0x824c2e54,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//IC/Specialty Skills Description + {0x824c2fbc,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//IC/Specialty Skills Level + {0x823e7230,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//IC/Specialty Name + {0x823e94bc,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//IC/Specialty Description + {0x823e9980,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//IC/Specialty Talent + {0x823ea9c4,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//IC/Specialty Support Item + {0x82243b18,{0,0,0,ReadTextAndLenDW<1>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Enemy Info Skills + {0x81d64540,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Guild Mission Description + {0x823b4f6c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Guild Mission Reward + {0x826facd8,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Challenge Mission Description + {0x826f98f8,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Challenge Mission Reward + {0x8244af2c,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Formation Name + {0x8244ae90,{0,0,0,ReadTextAndLenDW<0>,F010065301A2E0000,"010065301A2E0000","1.0.2"}},//Formation Description + //魔法使いの夜 通常版 + {0x80086ba0,{CODEC_UTF8,0,0,T010012A017F18000,0,"010012A017F18000","1.0.0"}}, + {0x80086e70,{CODEC_UTF8,0,0,T010012A017F18000,0,"010012A017F18000","1.0.2"}}, + //月姫 -A piece of blue glass moon- + {0x800ac290,{CODEC_UTF8,0,0,T010012A017F18000,0,"01001DC01486A000",0}},//1.0.1,1.0.2 + //The Quintessential Quintuplets the Movie: Five Memories of My Time with You (JP) + {0x80011688,{CODEC_UTF8,1,0,0,F01005E9016BDE000,"01005E9016BDE000","1.0.0"}},//dialogue, menu, choice, name }; return 1; diff --git a/LunaHook/engines/mages/mages.cpp b/LunaHook/engines/mages/mages.cpp index 45cf169..e682ab7 100644 --- a/LunaHook/engines/mages/mages.cpp +++ b/LunaHook/engines/mages/mages.cpp @@ -7,12 +7,16 @@ namespace mages{ auto compound_charsA=LoadResData(std::vector{ L"compound_chars_default", L"compound_chars_Robotics_Notes_Elite", - L"compound_chars_Robotics_Notes_Dash" + L"compound_chars_Robotics_Notes_Dash", + L"", + L"" }[_idx],L"COMPOUND_CHARS"); auto charsetA=LoadResData(std::vector{ L"charset_default", L"charset_Robotics_Notes_Elite", - L"charset_Robotics_Notes_Dash" + L"charset_Robotics_Notes_Dash", + L"charset_Famicom_Tantei_Club", + L"charset_SINce_Memories" }[_idx],L"CHARSET"); diff --git a/LunaHook/main.cc b/LunaHook/main.cc index 3f3d7ad..a24f826 100644 --- a/LunaHook/main.cc +++ b/LunaHook/main.cc @@ -240,11 +240,11 @@ std::string LoadResData(LPCWSTR pszResID,LPCWSTR _type) HMODULE hModule=hLUNAHOOKDLL; HRSRC hRsrc = ::FindResourceW (hModule, pszResID,_type); if (!hRsrc) - return 0; + return ""; DWORD len = SizeofResource(hModule, hRsrc); BYTE* lpRsrc = (BYTE*)LoadResource(hModule, hRsrc); if (!lpRsrc) - return 0; + return ""; HGLOBAL m_hMem = GlobalAlloc(GMEM_FIXED, len); BYTE* pmem = (BYTE*)GlobalLock(m_hMem); memcpy(pmem,lpRsrc,len); diff --git a/LunaHook/resource.rc b/LunaHook/resource.rc index 59bf83b..f60e2ac 100644 --- a/LunaHook/resource.rc +++ b/LunaHook/resource.rc @@ -1,6 +1,9 @@ charset_default CHARSET "resource/charset_default.txt" charset_Robotics_Notes_Dash CHARSET "resource/charset_Robotics_Notes_Dash.txt" charset_Robotics_Notes_Elite CHARSET "resource/charset_Robotics_Notes_Elite.txt" +charset_Famicom_Tantei_Club CHARSET "resource/charset_Famicom_Tantei_Club.txt" +charset_SINce_Memories CHARSET "resource/charset_SINce_Memories.txt" + compound_chars_default COMPOUND_CHARS "resource/compound_chars_default.txt" compound_chars_Robotics_Notes_Elite COMPOUND_CHARS "resource/compound_chars_Robotics_Notes_Elite.txt" compound_chars_Robotics_Notes_Dash COMPOUND_CHARS "resource/compound_chars_Robotics_Notes_Dash.txt" diff --git a/LunaHook/resource/charset_Famicom_Tantei_Club.txt b/LunaHook/resource/charset_Famicom_Tantei_Club.txt new file mode 100644 index 0000000..2dfc01a --- /dev/null +++ b/LunaHook/resource/charset_Famicom_Tantei_Club.txt @@ -0,0 +1 @@ +0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_/:-;!?′.@#%~*/`()°^>+<ノ・=″$′,[\]&{|}0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz、。,.:;?!゛゜‘’“”()〔〕[]{}〈〉《》「」『』【】<>〖〗・…〜ー♪―ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳%―━_/㊥①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①①βγζημξρστυφχψωÅ√◯´`、 ¯Д∥αδεθικλνοπヽヾゝゞ〃仝々〆〇\+-±×÷=≠<>≦≧∞∴♂♀℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃∪∩∧∨¬⇒⇔∀∃∠⊥⌒∂∇≡≒≪≫∽∝∵∫∬‰♯♭♪†‡¶あいうえおかがきぎくぐけげこごさざしじすずせぜそぞただちぢつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもやゆよらりるれろわゐゑをんアイウエオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモヤユヨラリルレロヮワヰヱヲンヴΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ∮∑∟⊿                                         ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕                                           弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙  ♥☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃喂你么吧说话吗谁过啦啊赶紧这哪记时发现处间请谢您别每谨问晕经悬边碰丛觉另样关马顺让联场烦谈脑伤应该错搞为头忆总许欢帮长风盐响棵树离远渔获呢刚亏缓侥轻确摔嗯还跑认识哎开调查线顶侦务步诉连趟细进师们办跃笔图骥试盯镜阅动资骂绫对输桌实柜满详虽电见结门车带员询绍宁传战领则财阀难访咦蓝绵绝张贴运懂贩卖买扰极卧遗亲诊单纯给跷她岁龄脏侄孙辈暂阵铺养闭笼藓东饲鲤鱼摆设爱书读黑陈烧佣击营适乐题强帘尘严药预篮齐纪喽盏夹虑计叠偷历习惯举嗓唉怀毕晚两种够饶咙义缮坟伙捣贫验证贵论苏斩呃闻坚败躲敌诅疯砍变终罢纠缠杀沉鳞栉闯华绘朵壶值钱语忧责爷吓栋护负顾产项权继瘫须荡闲厅宽哼备续奋录转拥统观赖稳债济呐户觊觎劲恶剧拨码报签纸铅净瘾缘选择达啥浑绪复较哟尔嘿晓呜脸红讲挖谋坠吵仓库费惊兴恼剑唤渐划蹭倾议优锁杂阴约团吞钉际热视雾污渍咖啡惬节增业导讯煞汉疗馁围检误盼躺钥渗捅毙词级货积层仅讶贼屉诫储仿鉴测扭纹洁丧协腾专缉耍态戏归废份挥呗傻谎懒扯逛丢谬违咱刨枪彻胜—险组织构衬飞钧诸压评谓简妇鲜苍伞卡闹灵搅辆寻扑补拼隐瞒抚惦宫镇标诺馆绅偿娇艳凳绳轮糕绕骇软驾讨厌丽挡畅饱摄喻络饮尝异觅劝骚浇捡鸡嚷缝钻顽亵渎狈纽颗鸟兽咿赎俩灭换阳绞庞帅嘻嚯钟瞧丝缕类烤瞩扬浆维揪滩锐喔闪拖岂肃氰诞烂摊婴灾毁妈伪术睁页氢质载审厉职赏诀释颜厢踩捞垫脖肤袭显恻涂执穷墙键谅谜凑砸钓胁剂额辩纵驱监乌囊纳奶侣卫狱艰攒骄骗扫递块摇蕴龛盘夺诚挚诱饵惩罚嘣账汇迈迟逻岗渴临圣桩挤众涨垃圾挪岛颈扔俱赛创劳烁钮饰园驹厕铃鸦伫诲贯贷诈诡绽频润牵轿辉础倘课练荣编艺萝谣锵祸饭唬兑滚睬俏嘞锻炼馅啵竖弹攥邻揽徕嗝嗨诶呕揍唷哒搁邮啧赔赌鱿揭踢链挠绿羡炫牺凤犊噗茬呿窝荫·赊钢爹谱飒眨贸鲁钝籁撑磕哆嗦唠缩暧钩桥赞筹爸沦掐撇噩订奖训仪晾损婶侧瞄掺势抢赘敛愤歧赠综购殒陆拽颤嚣挣启乡扩驶阔绰阶辕辙甩耸瞟纷篑惭圆栏胶坝瞅☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃說嗎趕狀幫繫辦閱腳絕內蹺歲擊囉檯溫睏歷嚨夠傢產癱閒寬錄賴戶錶凈癮緣喲禱愜屜謊丟嘍佔噓弒拚髒擋樁眾橫黃闆厲剎彥貓獃虛誒賬噠徵脫魷僱綠賒淚撐悅撿嘮曬麵嚐雞瀆龐銳菸噹睜氫墊瘀檔啟嬸姊拋摻掙鄉曆淩劄壩刁碴臊涉汙攏☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃☃ \ No newline at end of file diff --git a/LunaHook/resource/charset_SINce_Memories.txt b/LunaHook/resource/charset_SINce_Memories.txt new file mode 100644 index 0000000..f1a90cc --- /dev/null +++ b/LunaHook/resource/charset_SINce_Memories.txt @@ -0,0 +1 @@ + 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz /:-;!?′.@#%~*&`()°^>+<ノキリッ${},[]= 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz、。,.:;?!゛゜‘’“”()〔〕[]{}〈〉《》「」『』【】<>〖〗・…〜‐♪ーぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮヵヶ①②――― あいうえおかがきぎくぐけげこごさざしじすずせぜそぞただちぢつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもやゆよらりるれろわゐゑをんアイウエオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドナニヌネノハバパヒビピフブプへベペホボポマミムメモヤユヨラリルレロワヰヱヲンヴ☆★◎○●△▲□■▽▼◇◆※ 全日記憶始鷹也腹減時簡単仕事依頼人前会思俺隼誰罪背負言行待兄貴必死絞出声幻風景切裂先視界広見知顔凛黒瞳写間抜自分身距離息呑起返相変細唇笑形作傾首動合髪流一妙鮮烈意識覚醒寝私珍楽北條通大学水元幼夢世部現実戻胸指回隣示立陽詩伊勢正解不手厳物苦眼鏡奥冗談乱暴駄目眠姫王子様番探木陰柄葉抗湧上途体少要徹夜丈夫心配表情向屈込軽制馴染直男女適辺昔感慣受入嬢噂当本達付稚園頃違成長理家住澄空有数名父親地代役政治祖門血筋然生完璧隠般的庭育市民気使話客観友何突休方別普甘線続調管屋業両最初決教師説面降伏仰茶化照即参挙吐昨好小発売緒族年嬉交互含頂題堂多願聞引後仁急二無今度優戴持汲頷以謝走期冷静保芸味伝社用車場移営域密着我員忘働明雑主材座藤了基力草越定修商店街混整種済常連式第晴良雨下快進握助席揺任足遅刻横読内買収載態瞬渡想像勝赤信号差点停止右海沿睨諦山登青左曲坂道抵暫咳故周困伸嘘際輪中同士潤滑油結眩輝太惑星集奇跡存在幸純粋興奮弟性格恵得難悪緩電十冊抱廊歩階段往復来半経確書埋隙古卸運繰口駆取落英考申訳頭低高校君開尋反応押逃飛扉閉肩跳酷驚惚藍乃法律触馬鹿積次構崩飲失礼丁寧乗騒便利重宝八幡宮駅者預査節約三芽給料夕飯命令妹春験迎対特品把送担怒予母病逆帰窓振神奈川県関東光仏銭洗弁財天寺秋加旅夏浴砂浜尽館芦島賑沢遊去録症激増蝶床毎食注文側百除届可称殊状換製造倒産工削根週末務所町鎮角宅鷲雄外鍵昼残麦邪魔寄机詰置覗姿留守放級端仲間欲脱軌旧射答華甲斐真亡他宙浮扱技術革新老朽替更斜繋希望挟割嫌由将卒婚庶責改摘色消音戸訝挨拶似呆追遣提案燃殺脳裏敵蘇憎係許彼接覆到誘延々断片掴包個機導喧嘩絶終局強叩痛鈍服朝計鳴微納坊位早股短布団這健康睡限若晩潜卓椅壇炊碗噌汁温白巻卵焼魚豆腐綺麗盛婦満喫眉午忙準備揃習近影響敏察塩鮭深顛論議娘歳捜程拝張画剣欠勧貸贔屓呼寂報支愛余裕講義課念認効耶趣打絡腰傍証遠慮侍矜叫平非怖充危害及警戒漏促雰囲喜転釈針絵描従建並暮築懐供穴頻繁否柵掛質敷玄筈久掃壊如語処懇却維費共図棚狭森斎類室挨舞居和軸飾縁柱奴字盤秘耳舌価値貰凄恐素巡徒凝震頬涙侵咎脇腕折踏里美告猫月曜秒路退偶忠泰伺僕籍迷野果汎額払金緊固狙畜穏徴怪誤黄玉銃刃衝撃与印象功国被富層俗勉選資源姉郷再歴史鞄撮恥軒慌各算円雇安都徳酬倍醸黙設試判賃裁量寸阴斉朗暇岸公塀派盗犯順御褒菓熱滞吹逡臨展捨拓詳石鳥沖縄看板眺湘南紹介肘仮稲穂齢悲淹杯香酸辞土丸契領儀枚例浸惹披露過永唸争揮拒鱗焦審傷犠牲攻略戦障謎泣贅販奢銘球候補散策皆疲装活舍逐継豊堅氏愚痴束邸超捕佐荷繕塗衆院駐葬悔憔悴険昇柔勘紅洋職専厨房属施徐速沈避井賛喋殿唯漫誌缶悩借曰禁型区魅能推吸餌帯喉濡底刺撫慰奪投授火干万抑釣鼻求損精労箸泳児恋就童妊娠憧酒咥規排該監訪菜検討翌歯企測頑宣盾陣至倣膝膨弛締釘糧範敢聴央蔵索台帳博籠概昭欄○廃棄司架庫請紙鉛筆益省羨箱肝愕矛剛迫爆噛花添哲慢枯袖暖悟裾招羅慎奏句援帽拾戯潔千縦植醜件権棒梨況袋札陶酔栓蛇圧条偉塊嬌汚旦那独詮婿譲薄票凍綾瀬既泊揚祝乾豪泡穫曾翡翠融極府顧宴贈盃酌没拗尖尊敬縮煽覧緑採掘拳濯執具摯防医恰枕畳垣鋭弱忍矢襖季幽霊昆虫怯暗闇脅兎比渋捉靴履協臭逸溶随堪湯壁清汗軍拭巾賭嫁鐘剤憩陥組踊歌才揉列幅努零魂叱己咳催未競乙隅庇癖叶章槌錯胡坐据鎌伴侶福翻朱肉容拍滅淀稼募器袴鬼庵舗京鈴税署郵衛薬項皿輩雅猶儲境匂漂祭煩噪倉芝紐択武抹涛嘉舐粛模映厚控倅橋疎刷購総占杖沙汰憐賢婆溢冬淑併躍訴誕為遽召乳谷疑挿硬遮幾環涯救致易毒陸兵研究鎖評剥刀善兆原因拠訂双丘挑編異歓蹴猛操疇則尻尾握恨辛旺弄浅襲贖幹偵呂灯忌凌駕誉鼓膜寒騙謹濃訓潰封筒宛官貼養護西逗敗典踪酒奨詫渉灰雲傘雷蒸葛淡承塞系統瞼瞑哀粗米牛飽遷版遺隔煌紫虹七橙絨毯謐瓦妻捻唐躊躇幕窒倫療遁貞憂鬱紛渦粉遂暦竜城舎陳五樹託匙綴笹培絆逝破曇骨溜掻摺驕拘冒複誠誓波赦偏肢悠遙囚萎虎諸練遭剰織彦逢窺析攣遇励嫉妬羽凧傲勤償亘宜塵威癇摂胆憑睡較竦粧馳懸恩郎穿熟貧薦愉滲乏厄曖味蚊唆砕械埒等吉透囁縋岩犬飼刑率鉢嘲咄嗟迂闊罠泥狐狸苛慕憫訊劇垂瞭緯志貶諾凶豹惜携啖呵荒鳩磨胃液跨勇謙虚誇痒迅阿弥掌晒歪濁喰稽楚虐做牽隈惨演蓋貫貪嗅釜耐懺躾朧罵嘆掲付村縛漕奉旨宗篤娶餞儘弾錠梁嵌祀孫霞儚咲四鉄箇津縫俯罰掠詐欺毟祈枠俳漢宇洞蒼委符皮暑漠是顎丹煮卑昏捗臓閲銀刊咤遍箋某巧毀糸舳辿儂呻凹藪偽貢飴鞭恫喝祉仇述袈裟渇涼痕謀棘瑕疵辻棲澱肌躱醍醐狼狽廻蓮托賄賂爽饒炎糾撤遜噴甚匿繊栄殴睦湿脆痺脚阻闘壺臣匠梶拙党閣溌刺免績滓殻賞獲颯噤霧弔狂拡紀套践悶湛瓶妖皺蔑粒毛喩綿輸拵軋簿献掬矮嗤讐墨澹蓄憤怠煙詈嵐嗜廉冠碍妥僧旗酢腫些詭姑焚綱氷劾媚僭憚牢曹唖輿閥侮恣蠢芯墓伐杞粘弊懲臆遡偲閃寿罹須諳恒慨啄戚沸騰麻航衣濤呈標肯逼巣暢櫛梳畑膳秀堵科禊茜肺峙序錬鍛牙盪杏冴燥漁吊塔群窟佇挫甥撲靭誅篭鍮鍋胴爪旋蛮僅孔循郭躓莫墜裸凡曽畏繭聖斑軟磁湾礎董勿鶴岡圏券彫勾壮貯悼睫嫋鑑傑宥貝糖墟宿癒蹲朋暈船頓訣藁韻括兼舟瞠唱詞紋冥賠醤扮忸怩雌吠穹轟貨饅雀慄辱爛浙江隗昌劣禄諌碧班紡芻吻捧堀砦炒椒絲淋柿鶏蛋咀嚼罫譜棲詠呪刈凪潮宰挺彩賀酎擦妄妨膚云梅彷徨辣蕩孤牧抽渾翼翔M蝉茂熾萌瞥旬掟耽搦枷攫謳柴諭需捌匹苺雪滴函凸垢駈諍飄腺拐囮渥艶狩孝嵩腔檻疼搬寛賜啓九窮拉昂脈均督怨恭逮讃災肖誹謗遥摑裡六荘崖擁*癪 \ No newline at end of file