我做过的这个引擎的游戏:ルリのかさね ~いもうと物語り~
网上搜这个引擎其实还有挺多教程的,比如https://zhuanlan.zhihu.com/p/58877122
或者这个https://www.bilibili.com/video/BV1MF411b7mQ/?p=18
针对Majirov2的脚本,可以用MajiroTools进行disassemble和assemble,vnt和mjdis大概率没用。针对v3的脚本,MajiroTools基本报废,VNT大概率都能提,也大概率能跑,但各种漏提闪退等可能层出不穷。所以我在跑造火箭时专门给v3脚本写了处理工具(因为我真的很喜欢这个游戏)。而mjdis这个东西,我还没见过它在哪个游戏生效过,支持性太差(也不看看这玩意多老了),一般都只用它的作者写的另一个mjcrypt程序,这个可以将加密脚本转为明文脚本并加密回去,最简单的做法是用它转明文然后爆提截断再加密回去。我的工具就是作用于mjs文件的,可以从mjs中提出句子并回注。还有一种方法是用GalgameReverse项目中程序将MajiroObjX转为程序可读的明文MajiroObjV处理。在双子座のパラドクス这个游戏中,用我自己的工具就是有一个文件莫名其妙一直报错找不到原因,最后是先转了MajiroObjV再用我的工具不知道为什么就不报错了。只能说,majiro,很神奇的。
当然上述视频中的Ineditor似乎兼容性比VNT要好一些,但我没试过。
MajiroV1似乎用vnt有奇效。
另外,判断Majiro脚本版本的方法不是看版本号,而是看脚本结构。V3式的脚本跳转什么的都是跟这脚本走的。而V2式的脚本在文本第一句话开始前都会塞很多乱七八糟的东西。一般从封包版本就能推断是V2脚本还是V3脚本。但是也不能排除一些非常神经的游戏,脚本是V3的脚本,甚至你用GAR封V3的update.arc包(这引擎免封,大部分直接新建update就完事)它都认,但它自己的封包签名还是V2,比如Elle:PrieR ~しあわせの欠片をさがして~这个游戏。这游戏十分奇葩,你用update免封它会直接报错然后自删封包,只能封包,而且它看起来虽然是V3的脚本,但用我的工具似乎有问题(游戏是梦姐翻的),而用MajiroTools似乎又没有问题。
另外,Majiro和QLIE的字体总是比其它家引擎来得窄,不知道为什么,但是SE/Tool/Font/v1下的文泉伪造MSゴッシク字体可以完美适配这两个引擎。
还有就是,MajiroTools有时候提不到带标音的文本。我的方法是先将mjo转mjs,然后用脚本除去标音,再封回mjo,再用MajiroTools,就可以提到基本文本了。
再补充一点,Majiro没法,或者说起码从显示函数层面没法hook(如果一定要hook请看https://bbs.kanxue.com/thread-268508.htm)。因为majiro的显示是动态调整的,比如说你一句话有50个字,majiro自动换行每25个字输出一行。你hook出字符串的时候就会hook出两个字符串,每个字符串分别有25个字,但如果你想借此输出你的译文,比如你译文有36个字,第一行有24个字,第二行有12个字,那不行,因为你把第一句话从25个字替换为24个字之后,majiro会为这一行动态加上一个字,也就是把它原文的第26个字拉上来补上单独出现一次,这个东西你就没法去匹配替换了。
甚至标音也要单独出现一次,总之就是很动态,去dbg里看一眼就懂我在说什么了。
我做造火箭的时候,由于tips需要用到原文来匹配跳转,所以我的脚本里封的所有tips跳转都是日文原文,然后hook只负责在显示时改掉tips跳转(因为tips跳转也是会单独出现一次的),以此来达成全文本汉化+tips跳转保留的最终效果。