转载自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
选择好路径后点确定就可以将原来未汉化的版本变为汉化后 ...
搬运自X‘moe Project
Lua?! 关于lua的介绍我不多提,你知道它是一种脚本语言就可以了。 本来我还想讲正则表达式的,我想了想,还是算了。那个一时半会儿是说不清的。 Lua的语法我不讲。 我们可以直接调用由lua定义的函数。 之前有人实现的用ONS自己解包nsa文件就是这样的。照这样下去,我们可以在ONS下用lua写控制台应用了。首先ONS的脚本是不能少的。
(之前提供的lua教程有问题,在此表示抱歉,Lua特性资料由面包工坊提供)
什么我要强调Lua? 因为lua可以勉强使ONS实现多线程的效果。 本来,ONS的事件和图像都是在一个线程里面的,根本无法模拟多线程的。 但是现在ONS事件有一个线程,Lua脚本也有一个线程。那么这样就可以模拟多线程的效果了。 最后通过的还是ONS线程进行统一的刷新。众所周知,只有事件和图像处理无冲突,那么做游戏就很愉悦了。
因为教程和参考信息很长,我再此写结束语。 为什么我在第一章说我要放弃ONS但是又在这里花这么多时间讲ONS的教程呢? 第一点,ONS很简单,这是它用户量很大的原因之一。 第二点,在目前(虽然我不愿意是这样的),ON ...
搬运自X‘moe Project
快被标题给骗进来吧。 代码萌化=。= 就是叫你装逼,怎么样让弱弱的ONS代码看上去很高端。 这篇教程很短的,其实真正的目的是让你们从ONS脚本到lua脚本能有个过渡。 (会lua、C/C++的别在这里搅乱=。=) 我拿脏翅膀来举例子: b__say “必须要出声求救。”, 0, 0, 1, 1 b__say “可是,耳中却只能听到自己的牙关不停交战的声音。”, 0, 0, 1, 1 b__say “我是如此的无助。”, 0, 0, 1, 1
这个window对话框输出的话 如果换成我们的话,我们一般都会这样写。
必须要出声求救。 可是,耳中却只能听到自己的牙关不停交战的声音。 我是如此的无助。\
就是这个样子。你可以引入一个b_say的函数来做这些。获取的字符串变量直接打在屏幕上。 后面4个参数确定文字的效果及属性。
再来: ONS实际在用的时候是不需要一个个效果依次显示的。我们可以通过“排队”的方式来整合一下:
;multi task structure ;The number of tas ...
搬运自X‘moe Project
真﹒ONScripter吐槽篇。 我从ONScripter教程的第一篇就说了这货是单线程的。但是为什么我还是在发这货的教程呢。 按理说krkr2无论是画面还是脚本系统都比ONScripter先进。 下面的吐槽中我将对比ONScripter和krkr2引擎。 ONS有这么多的用户是这样的。 脚本简单。方便按自己的习惯自定义脚本系统。 语法简单,一看就懂。 最后就是NS引擎历史悠久(不带这种的吧) 所以基于这些理由来说,ONScripter的用户量还是很庞大的。 众所周知,ONS短小精悍。还是基于sdl写的。 然后sdl天生就有可怕的跨平台能力,基于这点优势,ONScripter可以说是没有不支持的平台,这对于游戏移植(开发)者可谓是福音了。 相对于ONS引擎来说,krkr2就过于庞大了。 虽然krkr2优于ONS引擎。但是krkr2从被开发的那天开始,就和win32 API绑在一起,虽然现在那位作者还在努力地实现跨平台,但是很困难,因为是重构。一切都要从头开始。 Krkr2向安卓移植的工程一直在进行中,但是还是没有完成的。我看上去基本上完成了60%的样子 ...
搬运自X‘moe Project
真﹒函数部分 前面第一节提过的。函数需要在define区域使用 defsub 来定义函数名,再在define区域以下的地方写函数的本体。而前面没有讲的是,ONS的函数是接受变量的,放回的是一个过程。 而获得参数需要getparam 指令来实现,参数用半角逗号隔开。 例子:
*define ny_fun game *start *ny_fun Getparam %1,$2 $2 Wait %1 Return
;实际上的调用:
Mov $3,”这是一个函数。”
Ny_fun 500,$3
这样就是函数的书写的函数的调用。
而且ONS不存在局部变量,也就是说,我先把$2赋值,而不是$3也是一样的。 假设我调用时,忘把$3打上去,那个wait指令还是有效的。 关于这种参数少加的bug,ONS一般是没有提示的。
最后一定要有return作为函数的结束标志!
我再拿一个语音播放作为例子吧。 大开发时。我们不可能这样写语音系统的: Dwave 2,”koe/voice/k254/00.ogg”
我们一般用函数。 假设目 ...
搬运自X‘moe Project
放弃了ONScripter,但总觉得还是要做点什么。我不会介绍ONScripter那是个啥,也不会解释ONScripter为什么用户量这么大,或者和NScripter有什么基情。请自己百度或者维基。转载么,你不给我打招呼也得注明个原作者(X’moe Project)吧,码字痛苦。
废话不说了,上教程。本教程就是的目的就是整合ONScripter全部的指令(完全没用的就算了)。
首先我要给ONScripter(下面简称为ONS)一个属性定义:单线程。 单线程就是不能有几个图形或内部操作同时进行的,所以在移植游戏的时候要注意。 关于ONScripter的显示效果:幻灯片。 用户不能进行像素级别的操作,唯一最“高端”的操作就是mask操作。
剩下的就在教程里讲了:
ONS的启动需要 0.txt 或者 00.txt(可以命名到99.txt)或者加过密的nscript.dat、nscript.__ 然后还有一个名字叫什么的。 无视了吧,常用的就是前三种。 还有default.ttf(字体文件,用中文支持的ONS那么字体文件也是支持ONS基于Unicode的 ...
搬运自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 ...