2022/01/06 预计需要30分钟读完 划线部分为不确定翻译 [方头括号为译注]前言几个月前,Degrees of Lewdity的开发者 Vrelnir 在我对他的游戏的评论下留言。我欣喜若狂,主动联系他并要求采访(他也同意了)。在我们的谈话中,我们讨论了DoL中暴力的使用、城镇中 “性别扭曲 “[gender bends,或作性别错位,类如异装癖或跨性别]的棘手政治问题、他最喜欢的工口游戏,以及他在现实生活中是如何打发时间的。上一篇文章[即《Degrees of Lewdity:A Review》,发表于2021/03/02,目前(2023/08/17)尚未翻译]阐述了这样一个概念,即围绕性表达和性别认同的社会规范,与介于神圣与亵渎之间的社会心理空间息息相关。为了深入探讨这一空间,我翻阅了不同时期的资料,并从中汲取了灵感:比如“磨坊电影”[Grind Film,全称Grindhouse Film,说白了就是B级片]、反色情女权主义者、关于网上毛片的精神分析观点、玛丽·道格拉斯[英国人类学家]的《洁净与危险》[原文为“D ...
转载自TGbus
本文所用到的汉化工具:点击下载(暂无)
在看下文之前,最好先下载天使组教程–入门篇来看看,熟悉下汉化的概念原理等,本文只从实际出发,带大家一起来实践一下。
本教程所用的ROM是0462 - 降魔灵符传,没有的可先下载(暂无)。
好了,准备工作完成,下面正式开始教程。
拿到一个新ROM,个人习惯看看此ROM的文本是不是用标准的Shift-JIS编码,如果是的话那就可以省去做码表的功夫了。那如何判断一个ROM是否用Shift-JIS编码的呢?
首先,用模拟器或者NDS运行游戏,记录下游戏开头的第一句话。如降魔灵符传的第一句话是“今は昔”,然后在Shift-JIS-A.tbl里面查找此三个字的编码,结果为:8DA1 82CD 90CC。
然后用CrystalTile(以后简称为CT)打开降魔灵符传,按CTRL+H切换到十六进制编辑器视图,再选择菜单的码表/导入码表,打开Shift-JIS-A.tbl,再次选择码表/启用码表。
按CTRL+F弹出查找窗口,输入“今は昔”的SJIS编码:8DA1 82CD 90CC。按下“查找下一 ...
转载自TGbus
(前排提示,原贴图片已失效)
RO 的第一阶段测试已经完成了,RO这次的量可是为相当的大,对话太多了。。看的我都懵了,不过还好有很多有经验的玩家朋友加入到这次的后期测试工作中来,让人感觉轻松了不少,我写这个帖子的目的就是给大家分享和交流一下测试的过程,希望大家能看看,多交流一下,为我们能更高,更有效率的工作,以及能更快的推出汉化作品。
好了,那么我就开始讲游戏测试的过程吧。(全部以RO为例)
刚开始我们都会提供给大家汉化游戏的补丁以及汉化后的文本,这是最基本的2个文件。
1.关于补丁的使用 当拿到补丁后,当然要先将原来未汉化的版本下载到自己的主机里,然后运行补丁
这里会给大家个提示信息:
补丁使用方法:1、将日文原版ROM命名为:仙境传说.nds 日文原版ROM下载地址:2、选择ROM所在文件夹进行补丁即可
当然,因为是内测版,所以某人偷懒没有放上去日文原版ROM的下载地址,同学们可以自己去找。
在这里指定我们游戏解压后的ROM的存放地址,而且命名要按照提示信息里的改为仙境传说.nds
选择好路径后点确定就可以将原来未汉化的版本变为汉化后 ...
搬运自TGbus
要想成功汉化完一个游戏,首先是要对游戏机有一定的了解,这一节将给大家介绍一些关于GBA的机能资料,一定会对大家是很有帮组的。
一、GBA系统配置 CPU 32位RISC CPU(ARM7TDMI)/16.78MHz 兼容性 集成8位CISC CPU兼容于GBC,但是不能和GBA的CPU同时工作 内存 系统ROM 16K字节(对于GBC是2K) 工作RAM 32K字节+CPU外部256K字节(2倍周期) VRAM 96K字节 OAM 64位×128 调色板RAM 16位×512(256色用于精灵,256色用于背景 卡带内存 最多32MB ROM或闪存+最多512Kbit SRAM或闪存 显示 240×160×RGB点、32,768色模拟显示、特效(旋转、缩放、α混合、浅入浅出和马赛克)、4图像系统模式(BG0-BG3) 操作 控制键(A、B、L、R、START、SELECT和方向键) 声音 4声道(相应于GBC的声道)+2个CPU直接声道(PCM格式) 通讯 串口通讯(8位/ ...
搬运自TGbus
本节介绍几个常见的压缩算法。
(一) 字典算法 字典算法是最为简单的压缩算法之一。它是把文本中出现频率比较多的单词或词汇组合做成一个对应的字典列表,并用特殊代码来表示这个单词或词汇。例如: 有字典列表: 00=Chinese 01=People 02=China 源文本:I am a Chinese people,I am from China 压缩后的编码为:I am a 00 01,I am from 02。压缩编码后的长度显著缩小,这样的编码在SLG游戏等专有名词比较多的游戏中比较容易出现,比如《SD高达》。
(二) 固定位长算法(Fixed Bit Length Packing) 这种算法是把文本用需要的最少的位来进行压缩编码。比如八个十六进制数:1,2,3,4,5,6,7,8。转换为二进制为:00000001,00000010,00000011,00000100,00000101,00000110,00000111,00001000。每个数只用到了低4位,而高4位没有用到(全为0),因此对低4位进行压缩编码后得到: ...
搬运自TGbus
并非需要很多的计算机知识才能够进行程序跟踪,当然要想便捷有效的跟踪程序的确需要扎实的汇编语言基础。许多朋友都是出于个人爱好才接触汉化的,如果一开始进行跟踪就学习大量的硬件知识和汇编知识一定会感觉吃力而对自己丧失信心。其实学习ASM HACK完全可以遵循循序渐进的原则,先使用最简单但比较费力的方法,通过对程序认识的深入再不断改进自己的跟踪手段来提高效率。在这篇文章中我将讲解如何使用比较原始的方法来捕获游戏图片在ROM中的位置,这只是跟踪的第一步,如果想要捕获显示程序或解压程序就需要了解更多的知识才能实现,但这是后话了,让我们先从最简单的开始。
工具软件:
BATGBA模拟器(一款免费的GBA模拟器,带基本的DEBUG功能。对于初学者不推荐使用NO$GBA) UltraEdit(全球最著名的文本编辑器,功能强大,中文界面)
技术手册: ARM指令集手册(ARM是GBA使用的处理器芯片,学习汇编的必备工具书) 几本计算机基础书籍(良好的计算机基础是你进行汉化的必要条件)
其他: 很多很多的耐心和一点点运气
在我们开始跟踪之前有必要了解一下GBA ...
转载自TGbus
翻译完了也整理修改完了接下来就可以考虑把译文中出现的所有中文汉字的字模导入游戏文件里面,如果以前的日文字模都不会再出现的话直接覆盖掉原字模就可以了。多数时候可能还是会保留英文字符、符号、日文平假名、片假名而仅仅是替换日文汉字部分。由于中文汉字数量庞大,一个剧情比较简单的GBA角色扮演游戏少的都有八九百个中文字符,而原始的字库空间有限无法容纳下那么多中文汉字。比如《光明之魂2》原始字库有700个左右,去除英文大小写字母和符号就更少了。对于这种情况我们就必须对原来的字库扩容。
一般的情况下,每个游戏之中总会有部分空白区域,换句话说文件的内容并不一定连续,我们可以适当地利用这些空白,如果这些空白仍然不够使用就可以把新字库生成到原来文件的末尾区域以达到扩容的目的。新字库扩容后还需要修改字库地址的计算公式,很多时候文件中都有一个基址指针,适当地修改就可以达到目的,不过寻找起来有点麻烦,倘若运气好就是一个绝对地址,就像文本脚本的指针一样,这样寻找起来就比较简单了。还有两点需要注意:即便是在游戏末尾添加的字库也不能删除原字库,如果删除了会使字库后边的程序迁移而失去原有功能, ...
转载自TGbus
文本到底有没有导出完?这个问题基本上就是凭经验了,先大体上玩玩游戏,看看游戏中那些地方会出现文本句子。一般来说游戏制作者会把游戏中剧情对话做成一个脚本块;NPC对话做成一块;道具名称做成一块;菜单指令介绍等一块;相关介绍一块……。块与块一般情况下还是分开放置的,所以有时候就得分开查找。例如在《光明之魂2》中文本文字按照出现地点可以分为剧情对话、NPC对话、道具名称、介绍、指令和图鉴部分。运气特别好,虽然这几部分内容是独立的,但都被放在了一起(《光2》程序员BT啊,怪物图鉴部分竟然要做两套内容完全一样的文本脚本,分别对应一周目和二周目。当初我也没发觉这个问题,这也造成当时有很多人说图鉴部分没有汉化的原因)。
文本脚本也是非常之灵活多变的,基本上每启动一个游戏汉化项目就得重新做一次导入导出工具(也不是全部重新来,基本上修改个别参数、某个结构就可以了)。文本脚本在总体结构上可以分为三种类型:顺序结构、指针表结构、跳跃结构。
顺序结构:
这种结构最为常见也最简单,每一个文段都是紧挨着的,段与段之间有一个承接符来表示前一段的结束和后一段的开始。句子有伸长缩短改改 ...
转载自TGbus
在掌握字库修改和编码查找文本修改后基本上就掌握了游戏机游戏汉化的原理了,但仅仅懂得原理也还不够。虽然我们会使用《TLP》《UE》等这些工具来修改游戏,但这些工具的初衷并不是针对汉化设计的,面对如此多的文字内容要一点一点地人工修改,即便是神仙也会感觉到累,因此我们就有必要命令电脑来帮我们做一些规律性的操作(我很嫉妒电脑有光速一般的计算能力)。例如文本脚本的导入导出、中文字库的生成等等。
下个定义:文本脚本——文本内容依照指定的编码所对应的十六进制数字串。例如上一节找到“キャラクター……”的脚本“ 58 00 99 00 78 00 59 00……”。从这一段的特征上我们可以判断出“0058”对应“キ”、“0099”对应“ャ”等等,依此类推就可以得到该游戏的全部文字编码。得到了所有文字的编码后就可以编写程序,让电脑帮我们把这些数字化的文字给转换出来(导出)便于日后翻译,在翻译完后还要利用程序把翻译好的内容导入游戏程序中。文本脚本的导入导出实现的手段相对比较多,如多你稍微有一点编程能力的话还是最好自己编程,毕竟每个游戏都有每个游戏的特殊性(见得多了自然就会感觉到的)。如 ...
转载自TGbus
字符的点阵地址和编码的关系你都理解了吗?如果已经比较透彻了就可以继续研究了。 上次我们提到了这个公式:
从实际出发,我们可以从TLP中观察字库来计算出编号的差值,而K从表面上来看我们只能确定的是一定小于等于1,所以就需要对K进行一些猜测。接下来介绍一下什么叫相对搜索:相对搜索就是指不知道具体的搜索值,而只知道几个值之间的差(例如:a b c 三个数,我们事先并不知道这三个数的具体数值,只知道a-b=5 b-c=6),因此我们就利用这其中的差值作为条件来进行搜索,这样的搜索方式就叫“相对搜索”(或“差值搜索”)。比如搜索条件是“0,5,6”,可能搜索出来的结果有很多个,像“0,5,6”、“2,7,8”“10,15,16”等等。这种相对搜索方式正好适合我们所知道的条件。先来看看搜索工具《增强差值搜索器》:
全都是中文化的,傻瓜式的操作没啥需要特别说明的地方。
下面我们来找找上一节中《光明之魂2》里的那句话“キャラクター……”的位置。
首先我们打开TLP定位到字库的范围内,使窗口左上角第一个Tile位于字库的最开头,经过观察得知那个圆圈A就是字 ...