嗨嗨嗨,终于和小E社这个弱智引擎斗智斗勇成功了发出来了
总之所有能翻译的部分全都翻译了,所有乱码都翻译成简体中文了,顺手界面也翻译了下(花了一个小时 泪),人工排了下错好像没有问题,但是做的比较激进可能会有bug,欢迎反馈。然后鸣谢@ChihanaSonnetia和@steinsgate大佬的帮助
复制到源目录下转区exe运行。密码:IwakuraLain
剩下的乱码很少了,如果有那就是我水平菜修不了,应该也没什么bug吧,跑了两条线。有bug欢迎反馈
=====2025年7月27日
人工润色了两条线,修正了一些明显的错误翻译。翻译了Staff寄语
下载说明
- 部分资源会被浏览器识别为有害程序拦截下载,取消拦截的方法参见 FAQ。
- 存档类下载后解压缩到游戏安装路径下相关文件夹,覆盖同名文件即可!安全起见我们建议您备份原文件。
- 免CD/DVD补丁类如果无特别使用说明,下载后解压缩到游戏安装目录下运行即可。
- 本站资源全部采用 WinRAR v5.0 版压缩,下载后不能解压请安装 WinRAR v5.0+。
- 本站下载不保证完全兼容手机端,部分浏览器(手机端、360等)可能无法正常下载本站资源。
- 文件安全性评估仅供参考,2DFan无法承担您因依赖此报告结果,使用此文件所可能导致的各种形式的损害。
- 如需投诉补丁未授权转载问题,请先阅读 相关说明 后,至 站务小组 开贴投诉。
话说是不是有BUG?
在最后一条线(真结局)要到ED的前一句对话处时候会闪退(全屏,WIN11 24H2 专业版)(也有可能我先装的云忆夕大佬的初版补丁,在说明废村情况选项时会有文本与语音不齐的BUG,然后换用您的补丁。不过无伤大雅,我再用云忆夕大佬的初版补丁去玩,就不会闪退)
⋯
🤔有基础那肯定好的……不过也无所谓,慢慢学学就有基础了。而且很多是有大佬已经做好工具的可以直接开箱即用……但是很多比如编码问题还是要有个概念才行。唉反正我也不知道怎么说,毕竟我也是个新手
⋯
发一下解包封包和编码解决问题的心得方便下次复刻用……
工具EscudeEditor和EsuBinE EscudeEditor解bin包,解了后里面的文件(.001)用EsuBinE
解决编码问题: exe反汇编把80改86,如80 C6 44 24改86 C6 44 24兼容GBK
exe同名文件解包,
lib\string.c 把 if(use_sjis){ for(i = 0xa1; i <= 0xdf; i++){ ctype_table[i] |= C_KANA; } for(i = 0x81; i <= 0x9f; i++){ ctype_table[i] |= C_KANJI; } for(i = 0xe0; i <= 0xfc; i++){ ctype_table[i] |= C_KANJI; } 改成 if(use_sjis){ for(i = 0xa1; i <= 0xfe; i++){ ctype_table[i] |= C_KANA; } for(i = 0x81; i <= 0xfe; i++){ ctype_table[i] |= C_KANJI; } for(i = 0xe0; i <= 0xfe; i++){ ctype_table[i] |= C_KANJI; }
misc\text.c 把 void init_default_font(int font_id, int weight) { default_font_id = font_id; default_font_weight = weight;
ini_gets("Font", "Face", "", user_font_name, sizeof(user_font_name), NULL); if(user_font_name[0] != '\0'){ default_font_id = FT_USER; default_font_weight = 400; if(ini_geti("Font", "Bold", 0, NULL)){ default_font_weight = 700; } } }
改成 void init_default_font(int font_id, int weight) { default_font_id = FT_USER; default_font_weight = 400; strcpy(user_font_name,"SimHei");
兼容字体
以下几处: if(mes->font_type == FT_GOTHIC){ strcpy(text_font.name, "MS Gothic"); }else if(mes->font_type == FT_MINCHO){ strcpy(text_font.name, "MS Mincho"); ==== if(mes->ruby_type == FT_GOTHIC){ strcpy(ruby_font.name, "MS Gothic"); }else if(mes->ruby_type == FT_MINCHO){ strcpy(ruby_font.name, "MS Mincho"); }else if(mes->ruby_type == FT_USER){ strcpy(ruby_font.name, user_font_name); } 两个字体要改成SimHei等兼容字体
把 case LANG_JP: if(is_ctype(c0, C_KANJI)){ sjis_to_jis(&c0, &c1); c0 -= 0x20; c1 -= 0x20; if((c0 == 0) || (c0 >= 0x5f)){ return; } if((c1 == 0) || (c1 >= 0x5f)){ return; } wide_char = true; } 改成 case LANG_JP: if(is_ctype(c0, C_KANJI)){ sjis_to_jis(&c0, &c1); c0 -= 0x80; c1 -= 0x40; if((c0 == 0) || (c0 >= 0x5f)){ return; } if((c1 == 0) || (c1 >= 0x5f)){ return; } wide_char = true; }
解决映射
这块: if(!strcmp(tag.attrib[i], "src")){ sprintf(file, "gfx\\%s", tag.value[i]); n = strlen(file);
如果要与日文原版共存需要改名"gfx_chs\\%s"
global.h 与日文原版共存才需要修改: #define DIR_DATA "data\\" #define DIR_SCRIPT "script\\" #define DIR_CHART "gfx\\chart\\" #define DIR_SYS "gfx\\sys\\" #define DIR_MOT "gfx\\mot\\" #define DIR_BG "bg\\" #define DIR_EV "ev\\" #define DIR_ST "st\\" #define DIR_ETC "etc\\" #define DIR_FACE "gfx\\face\\" #define DIR_FONT "gfx\\font\\" #define DIR_THUMBS "gfx\\thumbs\\"
改成(_chs自行命名) #define DIR_DATA "data_chs\\" #define DIR_SCRIPT "script_chs\\" #define DIR_CHART "gfx_chs\\chart\\" #define DIR_SYS "gfx_chs\\sys\\" #define DIR_MOT "gfx_chs\\mot\\" #define DIR_BG "bg\\" #define DIR_EV "ev\\" #define DIR_ST "st_chs\\" #define DIR_ETC "etc\\" #define DIR_FACE "gfx_chs\\face\\" #define DIR_FONT "gfx_chs\\font\\" #define DIR_THUMBS "gfx_chs\\thumbs\\"
scripts脚本文件提取用EsuBinE_ORG, 然后用SExtractor 01_search=^\%\%.+?\%\%\|(.+)$
txt模式,932
然后人名等其他乱码编码的解决方式,用EscudeEditor解包data.bin,然后用SExtractor提取。
BIN引擎,译文长度截断开启,编码对BIN生效开启,编码选932转gbk
正则使用 00_skip=^[\S\s]{0,3}$ 10_search=^([\x81-\xFC][\S\s]+)$ ignoreDecodeError=1 separate=(\x00|\x20)
不过这样会遗漏掉个别“单字符”名词,所以可以先用EsuBinL解包看看里面都有什么文字,然后使用 00_skip=^[a-zA-Z0-9\s]{1,3}$ 10_search=^([\x81-\xFC][\S\s]+)$ ignoreDecodeError=1 separate=(\x00|\x20) 来在一堆乱码里找单字符名词。
然后使用EscudeEditor和EsuBinE分别封包就完事了。
全部评论
已折叠 3