mana官网(cmmnan是什么牌子)

2023-08-17 09:34:57

如何将nds游戏翻译成中文

在电子游戏软件杂志中有详细解释。

导读:本文讲述了如何将游戏ROM翻译成中文,并以实例带领读者破解一个Rom,最终实现了部分文字对话的翻译。本文针对初学者,阅读本文只需要提前了解十六进制知识。

1.把一个Rom翻译成中文的步骤a .在游戏Rom中找到码表(人物对照表);b .根据代码表从rom中导出文本,并将其保存为文件;c .翻译这些文本;d .在Rom中找到字体,替换为中文字体;e .为中文字体制作另一个代码表;f .根据新的代码表将翻译写回Rom,并更新相应的指针表;

g .测试。

下面我以龙珠RPG(SF8047)为例来说说具体操作。

1.1开始之前

在开始之前,你应该先找到你想要本地化的游戏的ROM。注意,不能随便从哪里掉一个!你得找到完美的rom,这样才能保证你一半的工作不会因为Rom的问题而浪费掉。具体来说,就是找到已经被GoodSnes和Romcenter检查过的Rom。

还有一点要注意的是,随时做好备份!当然要备份日文原版rom我每天对修改后的rom做一次备份。这件事怎么强调都不为过!

另外需要提醒的是,有些游戏同时有日文rom和英文rom。很多人认为用英文版的rom进行本地化会更容易。这是大错特错!无论何时,记得使用日版rom进行本地化。这有几个原因:

1.英文版字体小,只有52个字母和一些标点符号;但一般需要1500-2000个汉字才能汉化,字库需要大幅扩充。日版的rom一般会带一些汉字,小心点就能用。

2.英文版字体较小,一个字母是8x12,而汉字一般是12x12到16x16。为了显示汉字,你需要asmhacking。

3.对话的英文版比日文版长很多。为了节省空间,一般都是压缩的,大大增加了解码的难度。

2.字体和代码表

嗯,本地化任何游戏的第一步是找到代码表。什么是秒表?请往下看。

2.0的一个例子

打开你的windows记事本,写下你好ABCDE,然后保存为abc.txt

现在的问题是,这个文本文件记录了什么信息?这些单词是屏幕上的图形吗?

现在,用UltraEdit(或者你最喜欢的十六进制编辑器)打开abc.txt,点击Ctrl-H & quot;切换到十六进制显示,您应该看到以下内容:

000000000h:4142434445 C4 E3 BAC 3;你好,ABCDE

左边的000000000h是地址,你好,ABCDE,这就是这个文件在屏幕上的样子;立正!中间是4142434445C4E3BAC3,是文件中记录的真实信息!

正如你可能看到的,这绝不是一个在屏幕上显示这些文字的图形。即使41-45是ABCDE图形;Hello这个字的笔画那么多,用C4E3BAC3短短几个字节完全记录是绝对不可能的。你是对的。这个文件只记录了字母(和汉字)的编码,没有这些字怎么画的信息。那么画字的信息存在于哪里呢?打开你的C:& # 92;Windows & # 92看看字体目录。有没有看到宋体、楷体之类的字体?就是这个!

这是什么意思?说明PC存储了如何用windows字体显示字符的具体信息;我们平时写的文件(不管你存成Word文件还是txt文件)只包含单词的代码。

2.1计算机如何显示文本

还是刚才的abc.txt。当您打开这个文件时,写字板程序首先取出第一个字节41,然后查找一个交叉引用表,它看起来像这样:

...41-a 42-b 43-。现在计算机知道显示一个& quot之后,它会从一个字体(比如宋体)中寻找字母A的字体(通俗地说,就是如何画出一个宋体A),并将该字体显示在屏幕上。然后,取abc.txt的下一个字节42,以此类推。

那么,这个对照表就很重要了。是ASCII码表!所有电脑的通用标准。所以你在自己机器上写的文件abc.txt在你朋友的机器上不会显示为KGTYU,因为你们用的都是同一个ASCII码表!

2.2 SFC如何显示文本与计算机基本相同。假设要显示的文本是04789A & quot,代码表是...

04 = Sun

78=吴

9A=空的...sfc .下一步是取出78,查表是Wu,显示字体库中对应的字体。下一步...(算了,不用多写了,不然打算写50个下一步:)

最后,屏幕上显示出孙悟空这个词。

2.3SFC代码表

可惜不是所有机器都用ASCII码表,所以Machintosh不用。而且包括SFC在内的大部分游戏机都不使用ASCII。不仅如此,每个游戏开发团队根据自己的喜好和方便,随机安排每个单词的编码,导致每个Rom的码表都不一样!标准的重要性就体现在这里。如果有一个统一的标准,我们就不用费心去找码表了,这也是微软一直试图让自己的产品成为标准的原因。

所以Romhacker的首要工作就是找到码表。只有完成这一步,才能按照图,顺利导出对话脚本、菜单、物品名称等等。

3.寻找代码表

3.1最简单的情况——单字节码表虽然每个SNES游戏使用的码表都不一样,但是我们还是有规律可循的。对于英文字母,人们总是习惯于按照字母表ABCDEFG排列顺序....XYZ和SFC程序员也是如此,所以如果一个& quot的编码是1,那么B& quot;是2,C & quot是3,以此类推。

同样,日语假名也是按固定顺序排列的(五十铃地图),如下图。

1あa2いi3うu4えe5おo

6かka7きki8くku9けke10こko

11さsa12しshi13すsu14せse15そso

16たta17ちchi18つtsu19てte20とto

编码差为4。如果有单词mana,字母之间的区别一定是

威望

\/\/\/

11-1212

如果有一个工具来搜索差异,我们可以在Rom中找到文本。这种搜索叫做相对搜索。我推荐的工具叫Relativefulsearch,可以从狼族网站下载。它可以输入英文搜索和数字搜索,也允许跳过几个字节。

好了,进入游戏,找一段文字,比如左上方的图片,把第一句话抄下来,按照上表标注数字:

とつぜんってき.4636?197

现在打开Relativesearch:按OpenFile & quot选择Rom,并在Values & quot在它后面填上20,因为是小数,所以Decimal & quot,按AddValue & quot,20将出现在左下方的值& quot在列表中。用同样的方法输入18,我们不知道下一个值ぜ.没关系,点击Skipvalue & quot跳过它。继续输入46和36。五个就够了。现在按相对搜索& quot按钮,等一下,右下角的结果& quot找到的结果将显示在中。

好吧!我找到了一个。现在用UltraEdit(或者您最喜欢的十六进制)编辑器打开DBZrpg.smc。找到$03C6EC,如图。这是正确的地址吗?我们随意改几个值,进入游戏。

我们会知道是否有任何变化。把前四个字节1715A831 & quot全部改成17,保存,进入游戏。看上图,怎么样!前四个字都是と.说明我们找到了这句话的恰当位置!

现在我们知道17对应と(注意这里是十六进制,十进制是23)。可以推断ぁ是04。好了,我们可以做已知的部分码表了。打开记事本,这样写:

04 =ぁ

05=ぁ

06=ぅ

07=ぇ

这里推荐狼组hdw1978写的TableMaker,如图,选择ぁ和04,点击生成对照表立即制作!方便吗?注意,它有一个小bug:化名を";它被遗漏了,您需要手动将其添加到代码表中。这个工具是最简单的,在狼族网站上还有其他更好的代码观看工具,你可以自己试试。

如果你仔细的话,你仍然可以看出FF是一个换行符,而FFFF是一个

的结尾。将项目添加到代码列表:

FF=

其他日本人呢?太简单了。你只需要在$03C6EC上潦草地写一些数字,然后进入游戏,看看它显示的是什么。我将把工作留给你。狼组有完整的龙珠RPG码表可以下载。看看是不是和你做的一样。

对于包含大量汉字的rom,逐个尝试太麻烦了。一般来说码表的顺序和字体的顺序是一样的,所以如果能找到游戏的字体,可以直接按顺序复制码表。

新手可能还有一个问题:输入法里找不到那些日文字符。如何输入它们?最简单的方法就是使用invivo附带的输入法。您可以快速找到想要输入的日语汉字

3.2其他rom和双字节代码表

其实任何一个Rom都是这样的:只要它的文本没有被压缩,就可以从一个假名中找到码表。对于压缩的

Rom,如果它允许你输入主角的名字,你可以用名字保存然后去搜索保存文件!您也可以使用输入

接口不断地改变第一个字母,并用FPE做一个低级的搜索来找到缓冲区的确切地址。

对于有汉字的Rom,会比较复杂。用一个字节编码肯定是不够的。有些rom使用双字节编码,有些则使用变长编码。先说火之盾:以Laakia 776为例:(主要注意它的格式)

我发现第一章开头两个人的对话,在$0AA493。格式如下:

00aa 493h:06003 a 780007003 a5b 00

-

现在来说说码表。776码表是代表一个汉字或假名的两个字节。日语平假名和片假名对应09xx,汉字对应两个字节,从0A10到0E5F共1040个汉字。

双字节表示法:如果多个连续单词以09开头,可以只写第一个09,省略后面单词的09。其他细分市场也是如此。

示例:

0A10= I

0A12=真

0A6E=牛逼

那么我牛逼这三个字的代码就是:0A10126E

总之,开动脑筋,不要拘泥于我写的这些情况,多种方式去尝试。成功黑掉码表的乐趣和成就感,足以补偿你所花费的时间!

4.关于Rom的一些知识

在开始下一步之前,我们先了解一下ROM的结构,这将有助于我们理解下面的内容。

一个ROM分为两部分:头和体。头是一个200字节的区域。在ROM的开头,记录了一些关于ROM的信息。有些光盘甚至没有标题。对于本地化,我们可以完全忽略header。至于主体部分,那是我们的重点。可惜不能细分。这里的内容存储完全由游戏的开发者决定,所以一个rom也是一样的。

ROM的存储格式有很多种,常见的有SMC、FIG和078。可能你拿到的rom是几个文件,所以你一定要用snestool合并成一个文件,最好是SMC格式的。

rom的映射格式分为两种:Lowrom和Highrom。不用担心具体的区别,你只需要知道如何确定一个rom是哪种格式就可以了。我们用一个叫ucon的小程序来帮忙,也可以用来转换rom格式。执行

ucondbzrpg.smc,您会得到以下结果:

如图,在HiRomGame的项中,没有写No,所以这是LowRom。至于有没有头文件,可以算一下:比如龙珠是8M rom,大小应该是1024× 1024 = 1048576(注意是8Mbit,相当于1mb),但是看文件属性,大小是1049088,多了512字节。这512个字节就是头,十六进制正好是$200。

所以,我们知道龙珠RPG有header和Lowrom格式。

5.指针表和文本块

叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当,叮当!不要说我像唐僧,但是你一定要认真看!

如果我要开发一款游戏,肯定有很多对话。如何存储这些对话文本?一种方法是在使用对话的地方写一个句子,在对话之间插入很多控制符号甚至程序。这是浮动文本。但是,这很麻烦。如果后面要修改对话脚本,句子变长了,会影响后面的程序。这样的rom,比如火焰纹章系列,浪漫沙迦系列,翻译成中文很麻烦。

更好的方法是把所有对话(文本)放在一起,用特定的终止符隔开。然后,做一个表格,表格里的每一项都指向一个

的第一个单词。这个表叫做指针表,那堆文本叫做文本块。示例如下:指针表:

0060 0f 60 1d 60 2f 60 3a 60文本块:

。萨彭。|做

6020-602F:youplaygame?|C

6030-603F:当然!|什么& # 39;S

说明:我先解释一下,在汇编和十六进制中,两个字节以上的东西第一个字节叫高位,最后一个字节叫低位。比如$34AB,34高,AB低。在Rom中是这样存储的:先低位再高位。所以$34AB作为AB34存储在Rom中。

文本块的地址是十六进制的,从6000-600F一共16个字节,也就是一行16个字符。|是终止符,标记一句话的结束。指针表中的每个条目由两个字节组成。看第一项0060,实际指向的是6000美元的地址,正是Thisisadog。\"这句话的开头。下一项0F60指向地址$600F,这正是& # 39;萨彭。\"的开始。

这种方法最大的好处就是你可以随时改变对话文本的长度!只要你把指针表中对应的指针指向更改后的正确位置,根本不需要更改程序!这样的rom汉化也方便我们,因为可以写程序自动导入导出对话脚本。

6.指针表、文本块、字体和码表之间的协作关系

先仔细看看这张图,能看懂吗?这是如何显示一个单词的完整流程。

如图,假设程序中要显示一个句子,这个句子是一个文本块中的第一个句子。程序会调用display子程序来显示这句话。开始跑。首先,它检查传递给它的参数1,这意味着显示文本块中的第一句话。查指针表,第一项指向$6000,ok,从$6000的地址中取出$54的一个字节,查码表,得知$54代表字母T,然后从字体中找到字母T的字体并显示出来。

然后,从$6001中取出第二个字节$68,重复上述操作。一直到$600E,取出的值是$FF,是终止符标记,表示子程序返回结束。此时,屏幕上已经显示出第一句话:这是一只狗。明白了吗?当程序中要显示文本时,只需调用显示子程序,告诉它要显示哪一句话,显示文字程序就会显示相应的文字。

7.找到指针表

现在我们需要找到指针表。还是用龙珠Rom,记住这个Rom是有文件头的,是Low-rom。上次我们发现第一句的起始地址是$03C6EC,减去文件头$200后就是$ 03c4cec。去掉高阶03交换后,我们得到Rom中的存储格式是ECC4。这是寻找指针表时的计算方法。

在UltraEdit中打开rom,向上搜索该值,立即找到地址$0394A2。(如有任何问题,请参考我翻译的《汉语翻译高级教程》一文)

观察这个地址附近的值,发现是有规律的,每两个字节都指向Cxxx附近。一定是这里。更改ECC4

到第二句03C5的地址(指向$03C703),进入游戏(如图),哈哈!拉蒂兹只说了最后两句。

这是指针表。没错!通过指针表,你可以很容易地找到每段文字的开头。指针表很有用;如果能写一个程序,可以大大方便导出和导入的过程。将来,在插入所有中文文本后,您应该更新指针表,并再次指向每个中文文本的第一个地址

导出脚本对话现在,您需要做的就是导出文本并将其交给翻译。你兴奋吗?让我们看看如何导出脚本。Thingy是dos中最常用的工具之一。早期的英语,很多外国人专门用,所以它支持的码表格式就成了标准。当然现在很多工具已经超越了,但还是要提一下。

执行Thingy的时候会问你Rom名称和码表名称。支持同时使用两个码表,第二个是可选的。进入Thingy后,随便翻一页,你发现右边已经显示日语了!将光标停在文本块的开头,按D,回车;把页面翻到文本块的末尾,然后按d,Thingy会提示你给导出的文件起个名字。写完名字后,这段文字就导出了。

其实有人专门编了工具来导入导出。Script-extractor和Script-inserter都不错,用起来比Thingy方便多了。导出的文本如下所示:それともじっくりとぁそんでで<へへ……いくぜ!」

「おとうさん!ピッコロさんが…

ピッコロさんしんじゃった-!」

「すまん……おそかったか…!

ゆるさんぞ!オメエら - !!」

じめんからカイブツが?

「なうだ!!きさまらこいつらと

1ぴきずつたたかってみんか!!」

「まさかこんなクズなもに……

こうなったらカカロットの

ガキをみちづれにしてやるぜ!!

再多处理一点就好了。以下是翻译工作。

狼组汉化区有很多工具可以导入导出,你可以选择最方便你的。

对于有编程能力的romhacker来说,最好是自己写程序导出。我的习惯是导出整个rom,然后手动整理垃圾。下面是我用来导出776对话的VB源程序的核心部分。其实很简单,可以参考一下。完整的程序在这个区域。

简单解释:MB(a,b)数组包含当前所有的码表,count是计数器,地址每三句显示一次。从rom中一次取一个字节放在D中,然后根据码表翻译成字。Hz代表码表的哪一段。当Hz = 0时,是假名和字母(即09xx)。

Fori=startToendp

获取2号身份证

Ifd =然后

i=i+1

获取2号身份证

ifd = & h11然后

hz=0

else ifd = & h12然后

赫兹=1

else ifd = & H13然后

赫兹=2

else ifd = & h14然后

赫兹=3

Else打印#1,str

计数=计数+1

Ifcount =然后

计数=

0str = & quot& lt$ & quot& Hex(I+1)& & quot;& gt\"

打印#1。\"

打印#1,字符串

Bar1。值=CInt((初始)/1000)

EndIf

hz=0

str = & quot\"endif else好了,今天的课程到此结束。学完这一课,大家应该能导出对话文本,开始找翻译了吧!顺便澄清一个误区:本地化不需要懂日语,因为我们要有分工。看到有些朋友在论坛上说我先把日语学好,其实没必要,好像我根本不懂日语一样。

8.1查找字体

好了,我们现在要做的是最有趣的部分!

先说一个名词解释:TILE——指8x8的一小块。SFC里所有的图形都是8x8的小块,有点像马赛克。这种8×8的瓷砖叫瓷砖。它是最小的图形单元,不能再细分。对话汉字也是用瓷砖拼的。一般游戏中使用的角色从12x12到16x16不等,用四个瓦片拼写。

我怎样才能看到瓷砖?我们用一个叫精灵编辑器的工具(精灵指的是用磁贴拼出来的角色或者头像)。最好的是TileLayerPro(TLP),可以从网站下载。用TLP打开了罗腾飞的龙珠,显示如下:

选择查看\" \"格式,然后选择Gameboy模式。像这样:

为什么选择GB模式?SFC游戏,字体一般为2bpp格式(关于1bpp和2bpp的含义,有兴趣可以看网站其他文章)。GB模式恰好以2bpp格式显示磁贴。

好了,现在睁大你的眼睛,按PageDown来翻页,仔细寻找任何看起来像单词的东西!如果找到了,就是字体。

但是...好像找不到了~!对,龙珠RPG的字体是压缩的!

(杀了他,你竟敢欺骗读者!.....sunkar被读者攻击,HP降低30点)啊...不好意思,我事先没仔细看就选了这个rom,字体是压缩的。这也告诉我们,本地化的第一步不是找码表,而是看能不能找到字体,然后再找码表。除非你懂asmhack,否则遇到压缩字体最好换rom。从现在开始,我以776为例来说明字体替换和中文对话。请回忆一下第一课提到的776代码表。

9.Duo Laakia 776的字体776的代码表可供下载。可以下载参考。让我简单解释一下:

776用两个字节编码,比如0A20=上帝。在这种编码中,第一个字节0A称为段号,第二个字节20是该字的实际号。776有六个段:09xx,00xx,0Bxx,0CXx,0DXx,0Exx。

在rom中,系统会尽量节省空间。对于每个字,如果它的段号与前一个字相同,可以省略段号,只使用一个字节。

例如:09A023E10B452109610A8B

在上面的对话中,

编号是粗体的,后面是一个1字节的代码。例如,前四个字节实际上代表三个字符:09A0092309E1。后跟0B4521,系统解释为两个字符0B45和0B21,以此类推。

好了,现在用TLP打开776的日文rom,切换到GB模式,向下滚动!很快就能看到大量的汉字,这就是字体!(左下方)

现在让我们把字体中的王子二字改为外传:

需要TLP的编辑功能来修改这个单词。首先单击要更改的磁贴,可以在中间的编辑框中进行编辑。下面是调色板。776使用了四种颜色:蓝、绿、白、黑。其中蓝色是重要的,绿色和白色是阴影。用鼠标慢慢地画出单词。我相信你很快就会掌握它。右上方的图是修改后的样子。(绘图字体请参考专区其他文章)

修改完后,保存,然后我们进入游戏,看看有什么变化:

左图是原图,右图是修改后的图。看:王子成了谣言。

这是修改后的字体!今后,我们将把所有的日文字符和假名都改为中文字体。

10.做一个中文对照表太容易了

。首先打开一个空文件,从日语代码列表中复制单词Prince的代码:

0A5E=王

0A5F= Zi

然后把太子一词改成外传:

0A5E=这是我们的中文对照表!将来,在制作汉字字体时,您可以随时添加新的代码。

11.将中文翻译写回Rom

(假设你已经做好了所有的字体)

我们以776第一章第一句话为例:(如果你的ROM有头,地址是00A69E)

瓦斯曼,你找到王子了吗?

根据我们的中文代码表,找出每个单词的代码,然后根据776的特点,省略相同的

号。结果应该是这样的:

00aa 49 e:0ba 60 a 690 b 8509 bb0b 43440 a 8363470 b 4509 be

<此句已汉化!

但是本地化后比日文少了两个字节。我该怎么办?没关系。下一句是中文的时候,就跟着这句。如果中文的字节数比日文多,不用怕,按顺序翻译成中文就行了,只要最后一句到原来日文编码位置就行了。

776不需要考虑指针表的问题;但是有些游戏需要指针表。那么汉化之后,你也要把指针表对应的指针换到中文对话的起始位置

12.加速中国化的进程

如果你明白了以上所有的东西,其实你已经学会了汉化所需要的技巧。恭喜你,找到一个游戏rom从业者!

但是,如果你真的按照我之前说的做,你会精疲力尽的。工作量真的太大了。怎样才能加速汉化的进程?当然要用各种工具!a .首先,画字体很无聊,我们完全可以用工具来完成!爱迪生的CharEdit可以选择任意字体大小,写在rom里,非常方便。但是,它只能写2bpp格式的字体。甚至字体绘制也可以加速,狼组Dark01首创的结合Photoshop的字体绘制方法非常实用。如果你懂一点编程,建议你先研究一下1bpp,2bpp等字体存储格式,再看看程序任意字体字体生成器。然后你可以自己写一个程序,把所有字体一次性写入rom!狼组现在基本不用打字员了,因为我们都是用程序写标准大小的字体。b .推荐狼族的中文辅助工具,这是一个自动将中文/日文翻译成代码的工具,还可以检查哪些汉字没有打出来。第一次用的时候要建立一个中日对照表。

好了,Romhacker的课程到此结束。希望你也能翻译成自己喜欢的游戏!记住:中国游戏最需要的不是技术,而是耐心和坚持。祝你成功!ややややややややややややややややややややややや伞是一种提供凉爽环境或躲避雨雪的工具。中国是世界上最早发明伞的国家,伞是中国劳动人民的重要创造。查询官网,得知cmmana是来自日本的cmna旗下品牌,他所有的雨伞都有一个非常有趣的体验。蓝天白云晴空伞一把看似普通的小黑伞,却为你打开了一片如童话般清澈的蓝天。

mana官网(cmmnan是什么牌子)

我在官网看到一个网游猎人,kali。

谁负责安装过程

1.环境要求:n5n7n10android4.4

2.实验设备:

N7Android 4.4。n5n droid 4 . 4 . 2

3、开发者模式+usb调试+解锁+root(一般刷过的这些肯定都做了)

5.安装busybox+TWRP

6.打开MTP。完成后关闭MTP(没有MTP也可以直接进入adbpull)

7.使用TWRP进入recovery(rebootrecovery),安装rom,等待半小时。

先来个帅气的桌面吧

\

\

BadUSBMITMAttack

恶意USB中间人攻击:将装有nethunter的设备连接到受害者的电脑上,执行这种攻击来劫持受害者的流量。

\

tcpdump监控(默认的tcpdump是简化的,需要自己上传一个。或者输入kalishell)来执行tcpdump-irndis0icmp

攻击前受害者电脑的网关

\

攻击后受害者PC的网关

\

因为双网关的出现,流量并没有像演示的那样直接去恶意网关(10.0.0.1),而是去了仍然去的前一个网关(192.168.1.1),所以劫持失败。只有删除以前的网络管理,它才会生效。这个帽子认为我们可以设置一个定时脚本,结合下面的HIDKeyboardAttack来执行路由表的操作(删除原网关)。

\

隐藏键盘攻击

键盘劫持攻击:将智能设备伪造成键盘等成功的输入设备来输入恶意指令。例如,如果您添加一个管理员,下面的添加管理员演示将在shell中弹出

,因为只是一个伪装的键盘,所以锁屏下做不到。

\

\

也懒得配置有效载荷和监控。

\

其他功能

功能菜单

\

Mana伪造ap,dnsmasq,hostap,wifite(因为网卡的原因,无线实验不成功,感觉需要sim卡)

\

\

\

\

总结

Nethunter的整体感觉是和鸡肋瑞士军刀比起来夸张了点,玩玩还可以。指望他做点有价值的事情来利用场景还是很有限的。真的没什么好说的。在长时间的奋斗后分享自己的经历和感受,比完全不经过思考和练习,翻译几句话偷几张图更有价值。

上一篇:mammut猛犸象官网中文(Mammut猛犸象在国内有实体店吗)
下一篇:mark一下用英文怎么说(mark一下是什么意思)
相关文章
返回顶部小火箭