satan53x / SExtractor

从GalGame脚本提取和导入文本
GNU General Public License v3.0
225 stars 15 forks source link

Reallive引擎 #1

Closed yqw1231 closed 1 year ago

yqw1231 commented 1 year ago

QK6E Y9F%Z5%WU2$2VWAMAW 您好,我打算使用您的工具提取Reallive引擎的文本(Seen.txt),工作目录底下就一个txt文件,选项如图所示,但是生成的文件夹是空文件夹,可以请您指导一下吗?

satan53x commented 9 months ago

总之肯定是引擎自带的,之前游戏有过%B是表示自定义的主角名字。这个可能是称谓之类的?

yqw1231 commented 9 months ago

你直接用原日文包和原日文exe看它正游戏里怎么显示的呗

嗯,我明天看看

yqw1231 commented 9 months ago

总之肯定是引擎自带的,之前游戏有过%B是表示自定义的主角名字

好的谢谢大佬这么晚还给我解答😊

satan53x commented 9 months ago

刚打完游戏。。。 嫌麻烦可以直接写死,就是%A直接替换成游戏里显示的字。 不然要么就要改exe里的%A成GBK编码的;要么需要把这两个字还原成日文%A对应的字节流(但是这个不确定是否有效)。

yqw1231 commented 9 months ago

刚打完游戏。。。 嫌麻烦可以直接写死,就是%A直接替换成游戏里显示的字。 不然要么就要改exe里的%A成GBK编码的;要么需要把这两个字还原成日文%A对应的字节流(但是这个不确定是否有效)。

噢,我明白了,会有选项,选择哪种称谓,那我就写死吧。。

yqw1231 commented 9 months ago

大佬,想问一下。 image image 为什么前面会有乱码呢?

satan53x commented 9 months ago

可能前边这段没提取到?直接在译文txt里搜一下后边这句话呗,最好用010搜方便修改

yqw1231 commented 9 months ago

image 看起来确实是没提取到?

yqw1231 commented 9 months ago

试了一下把前面乱码的文字等个数替换成中文,封回去以后,一点到那个回想程序就会卡住不动。我看前面乱码字数有九个,直接在GBK编码界面下把这九个文字改成了九个中文,是不是我做错了啥。。 image

satan53x commented 9 months ago

没问题啊,字节长度不变就是对的。 但是推荐是用010Editor改,WinHex改应该也可以但是我没试过,但千万别用EmEditor之类的改二进制文本。 改完你可以用BeyondCompare对比一下字节变化确保没问题。

yqw1231 commented 9 months ago

没问题啊,字节长度不变就是对的。 但是推荐是用010Editor改,WinHex改应该也可以但是我没试过,但千万别用EmEditor之类的改二进制文本。 改完你可以用BeyondCompare对比一下字节变化确保没问题。

感谢大佬

satan53x commented 9 months ago

顺便一提更新了一下正则,更新之后可以提取了,用BeyondCompare对比了一下文件,大概有十九个文件差异,每个文件差异一句话。 不过我是用你上边之前发的那个Seen子文件测试的,我发现是不是你的码表有点问题啊,因为解密的中间有一段还是乱码。(码表中只有一段有问题,其他是正常的)

yqw1231 commented 9 months ago

顺便一提更新了一下正则,更新之后可以提取了,用BeyondCompare对比了一下文件,大概有十九个文件差异,每个文件差异一句话。 不过我是用你上边之前发的那个Seen子文件测试的,我发现是不是你的码表有点问题啊,因为解密的中间有一段还是乱码。(码表中只有一段有问题,其他是正常的)

我用的是大佬你的seen_fix.py改的,我也不知道是啥情况。。

satan53x commented 9 months ago

可能版本不一样?有的游戏DL版和PKG版的码表都不一样。 RealLive的加密一般只影响每个文本开头前几句话中的一句,如果游戏场景里开头有乱码就说明解密不对。

yqw1231 commented 9 months ago

可能版本不一样?有的游戏DL版和PKG版的码表都不一样。 RealLive的加密一般只影响每个文本开头前几句话中的一句,如果游戏场景里开头有乱码就说明解密不对。

我倒是没遇到啥乱码。。

satan53x commented 9 months ago

恩,只是有可能,因为不一定每个文件的加密区域都落在对话上。

yqw1231 commented 9 months ago

大佬,好像新妻诗乃有一些文本没提取出来。。麻烦可以看一下吗?我怀疑是码表的问题,我下的新妻诗乃是光盘安装版本的 image

satan53x commented 9 months ago

可能就是我上边说的情况?码表不对?一般表现为每个场景开头几句中可能有乱码,就是因为解密错误,所以提取不到。

yqw1231 commented 9 months ago

可能就是我上边说的情况?码表不对?一般表现为每个场景开头几句中可能有乱码,就是因为解密错误,所以提取不到。

大佬,你seen_fix里的码表,是用的光盘安装版本的吗?

satan53x commented 9 months ago

不清楚,有些是别人提供的码表,没有注明版本。 如果不对你需要自行查找码表,就是这个issue开头的那个方法。 或者是换一个游戏版本。

yqw1231 commented 9 months ago

不清楚,有些是别人提供的码表,没有注明版本。 如果不行你需要自行查找码表,就是这个issue开头的那个方法。

噢,抱歉大佬,是我操作错误了,对不起打扰您了,我刚改完新妻こよみ之后,没修改编号,直接改新妻诗乃了

yqw1231 commented 9 months ago

不清楚,有些是别人提供的码表,没有注明版本。 如果不对你需要自行查找码表,就是这个issue开头的那个方法。 或者是换一个游戏版本。

那个新妻こよみ,应该是用的DL版本的,或者说可能是因为我打过更新补丁,导致seen.txt被修改,然后原先的码表不能用了,得自己试着整一下了。之前大佬你看我那个发的有问题,可能就是因为用过更新补丁之类的。。不过还好之前那个码表用了以后,文字不会缺失,倒也不影响

yqw1231 commented 9 months ago

@satan53x The rest of Hadashi xortable:

    # 3Ping Lovers! ☆ Ippu Nisai no Sekai e Youkoso♪
    4: bytearray.fromhex('66 8A 20 D4 6E C3 B4 B8 4B F8 38 93 AC AC 70 0A'),

    # Niizuma Shino
    5: bytearray.fromhex('8C 03 CC 55 9F 1D 41 38 A1 60 D4 12 5D 2D 85 D4'),

    # Niizuma Koyomi
    6: bytearray.fromhex('80 05 D7 40 89 15 5D 3C A7 62 D3 17 41 39 86 D0'),

    # Lovedori Halation
    7: bytearray.fromhex('74 3C 2F FC 6E CD B4 BF 4B D4 2A 25 A3 84 70 04'),

    # Mizugi Shoujo to Biyaku Ice ~Zannen na Kanojo no Shitsukekata, Oshiemasu~
    8: bytearray.fromhex('93 02 CB 40 89 23 52 38 B0 7E D2 1A 5A 29 AD D1')

But there's something wrong with Niizuma Koyomi's Seen7100.txt, the above of it seems fine, but the rest is truncated. image seen.bak.txt

Hello,I'd like you to ask me a question.Are you use the DL version of Niizuma Koyomi to generate the xortable?

Cosetto commented 9 months ago

I think so, I got it from Ryuugames

yqw1231 commented 9 months ago

I think so, I got it from Ryuugames

thanks

yqw1231 commented 9 months ago

大佬请问一下,是不是文本开头没有乱码的话,就说明这个文本没有被截断呢?

satan53x commented 9 months ago

你是说截断还是加密?每个文件的加密区域内不一定有文本,但是如果所有场景开头都没有乱码你也可以当做没有加密,不涉及文本提取不需要解密。因为最后本来还是要加密回去的。

yqw1231 commented 9 months ago

你是说截断还是加密?每个文件的加密区域内不一定有文本,但是如果所有场景开头都没有乱码你也可以当做没有加密,不涉及文本提取不需要解密。因为最后本来还是要加密回去的。

大佬,我现在的问题就是,没找到ori中哪个文本开头乱码,但是封回去以后进入游戏,刚开始的地方会卡住,我看了一下,这个文本并没有出现乱码啥的 image image

satan53x commented 9 months ago

这个不是乱码吧,乱码应该还是字符,你这可能是编码范围之类的问题?exe没改完?

yqw1231 commented 9 months ago

这个不是乱码吧,乱码应该还是字符,你这可能是编码范围之类的问题?exe没改完?

噢,是的,可能是我之前编码范围改完以后,一不小心被覆盖了,但是我发现我明明改成了0x86,为什么我用封装回去的seen.txt能正常显示日文呢,这个是因为修改了编码范围吗?

satan53x commented 9 months ago

不知道你怎么操作的,日文不代表就是JIS,GBK里也有日文,只要导入过就是GBK的日文了。

yqw1231 commented 9 months ago

不知道你怎么操作的,日文不代表就是JIS,GBK里也有日文,只要导入过就是GBK的日文了。

用原版的seen.txt就会乱码,用没翻译过的文本封装的seen.txt却能正常显示日文。。可能是因为大佬你在封装的时候,修改了文本的编码?

satan53x commented 9 months ago

那肯定啊,导入的时候就是GBK编码了,不管你文本是什么。 如果你想要保持JIS编码,需要勾选编码也对BIN生效,并选择编码为cp932

yqw1231 commented 9 months ago

那肯定啊,导入的时候就是GBK编码了,不管你文本是什么。

喔好的,那我明白了,谢谢大佬,这个pkg版本的应该是没文本截断的。。