玩DQ9总死机,用的是TTI烧录卡,怎么办
DQ9不死机的只有DSTWO烧录卡可以做到……
把汉字写在DSTWO的缓存里
其他烧录卡都会不定时的死机的
照样死机。
原因一:ACG汉化组早就说过,DQ9汉化版死机是庞大的中文字库与游戏主程序竞争DS内存而造成的。
3DS内存没有比DS大很多,所以照样会死。
原因二:“DSTWO优化版”是把中文字库LOAD到DSTWO上面的超大内存上,才不死机的。
R4 SDHC没有DSTWO的那片超大内存,所以照样会死。
2.包括S2端烧录卡(就是插在GBA卡槽的烧录卡)暂时无解,请等待官方更新内核。我已经几年没接触这类卡了,不知道该怎么处理(11.09更新:SC官方已经更新补丁)
3.因为汉化ROM运行时会以比日文版高出几十倍的频率访问TF读取简体中文字库,请尽量使用高速TF卡!特别是AK系列向来比较挑卡,尤其要注意!
另外建议大家都先把TF卡格式化一次,这样ROM可以储存在连续扇区,大大提高读数据的速度,减少死机的可能!
4.如果你在游戏中看见日文,请下载修正补丁(下载请见论坛原帖附件,注意区分简繁版:点击进入原帖)
5.游戏中尽量不要开金手指,特别是在城里和迷宫中,否则进出门容易会死机!!!另外勤存档是个好习惯,我再次强调,多等几秒存档比死机浪费了几个小时要合算!
6.EZ系列卡手头没有,请等待等EZ官方的消息。
7.关于正版R4和DSTT是否一定要用YS我个人因为没有这两种卡真的不清楚。
8.山寨R4和DSTT出问题请等待山寨的官方消息。
以上是原帖,我用的是R4卡+YS,也会死机。按3步操作能减少死机次数、还有要养成勤存档的好习惯(为了避免存档中死机建议到电脑上备份存档。每次用TT模式记录时画面都要停顿几秒,很能考验人的神经)。现在有《勇者斗恶龙9》汉化版简体防死机补丁BETA1,不过貌似不太好用,建议别打。
耐心等待吧,汉化刚出很多问题需要时间解决,虽然最近出了防死机补丁,可是还是会死机,我的卡是dsone卡,网上其它烧录卡的朋友也同样死机的,总之等一些日子吧。相信很快就会解决的。
看到很多人死机我心里不好受,看到大家死得那么惨还不知道原因我更难受,所以花时间码了不少字,给大家科普一下。
内容概要
1. 死机原因:DQ9太BT,榨干了NDS的机能,导致日文字库放在一个特殊的地方,
那个地方只有32KB空间(DS本身机能)。日文版用了15KB但是中文字库有200KB,
因此汉化版只能采用相当特殊的方法加载中文字库,导致需要频繁地读TF卡。
而其他游戏都不是这样,所以简单地说就是:DQ9 做的太NB,L5 的程序员太BT!
2.死机责任:ACG汉化组自然有,但更重要的是烧录卡内核程序千差万别,而且大部分本身就不完善,
比如该检测的地方不检测,造成冲突死机。由于内核操作涉及烧录卡厂商的商业机密,
不可能直接拿代码,因此要想解决死机问题只能由烧录卡厂商和汉化组共同合作,
把所有会导致冲突的地方回避掉。离开了烧录卡厂商汉化组无力完成。
但是某些商家只向钱看齐,对内核程序不负责任,对合作态度极不友善,
或是直接神隐,难觅其踪。在死机问题上,烧录卡厂商的只顾赚钱也难逃其咎!
目我前只能建议高频死机的同学去问问跟你们用一样烧录卡,却不怎么死机的同学的配置情况:例如TF卡,内核等。
另外建议DSONE以及DSONEI用户使用官方最新的内核,用TT内核的话容易死机。
有兴趣了解技术细节的可继续往下看(小白慎入,会晕掉的!)
------------------------------------------------------------------------------------------------------------------------------
1.背景知识简介:
1.1. DQ9字库破解概述
对于一般的NDS游戏,高频率使用的固定资源都会被预先载入内存(NDS内存大小为4M),以此来提高访问的速度,
例如我们常说的字库文件。不过DQ9就像制作人接受采访时说的那样:“DQ9将NDS机能发挥到了极致”,以至于都没有足够的内存空间载入字库文件,所以DQ9的字库被载入到ITCM(Instruction Tightly Coupled Memory)——被直接集成在CPU芯片中的高速缓存,大小为32KB。DQ9从ITCM中划出接近15KB用作存储字库,其余的用作执行一些高速运行的指令。
现在问题出来了:汉化用的中文字库大小为200KB,而装载字库的ITCM才区区32KB!从硬件上肯定无法解决,总不能让大家把NDS拆了换一块 ITCM吧?!万般无奈下,我想到一个非常无语的方法,我称其为“动态字库技术”。就是不预先将整个字库载入内存,而是需要哪个字再从ROM里面读取。
有程序常识的人都知道,IO(读写文件操作)是很费时的,因为会涉及到大量复杂的底层操作。为了避免频繁的IO,一般都会先建立一个缓存,将数据预读进缓存,这样访问时就直接读内存,大大提高速度。所以说这么做是“万般无奈、非常无语”。
1.2. 烧录卡IO概述
烧录卡从SLOT-2需要软件烧录,发展到SLOT-1直接copy CLEANROM就可以玩无疑是一个巨大的进步。但并不想多数玩家想的那样,SLOT-1“真的支持CLEANROM RUN”。ROM原本的存贮介质是NDS卡带,而烧录卡用的是TF卡,NDS卡带和TF卡的IO(读/写文件)机制是截然不同的。
在SLOT-2时代,烧录卡解决这个问题的方式就是用烧录软件对ROM里面的IO程序进行替换,将原来用于DS卡带的IO函数替换成TF卡的IO函数,这就是烧录过程的本质所在。SLOT-1到来之后技术出现了进步,采用了内存补丁技术:不直接在ROM上做文章,而是等ROM载入内存之后直接改内存里面的 IO函数。这就不难理解为什么SLOT-1运行需要内核支持了,内核的一个很重要的作用就是给ROM打上内存补丁。
至此可以做出一个结论:无论SLOT-1还是SLOT-2的烧录卡都有对IO进行处理,烧录卡有着自己特有的IO体系。
2.字库破解难点
主要有以下三点:
2.1. 如何hack游戏程序,使之能从ROM里面读取字库数据?
2.2. 既然烧录卡都有着自己独特的IO那读字库的时候如何去调用这些IO?
2.3. 字库IO是一个额外附加的过程,很有可能与正常读取ROM文件IO发生冲突,如何避免冲突?
第一个难点我花了两周的时间来处理,还算很顺利的解决了。
第二个难点足足问题花了我和j一个多月的时间。因为内核只能在NDS上运行,没法在PC上debug,很多东西我们只能靠现象去猜测,然后设计方案在 NDS上实验,根据运行结果再猜测,再修正方案……不断往复上述过程直到得出正确的运行结果。这个破解过程很累,很枯燥,很辛苦。刚开始都是无限黑屏,什么烧录卡都进不去游戏。折腾了半个月R4终于可以运行,真激动死我了;又折腾了三周终于让市面上的主流卡都可以运行了。
第三个难点就是导致汉化版DQ9随机死机的本质原因。NDS是单线程的,不存在操作系统的概念,一旦CPU发生冲突那必定死机。解决这个问题很难,因为涉及的烧录卡IO在底层的实现,这个只有厂商才知道了。如果有厂商的协助解决起来到是很方便的:我可以根据提供的资料做出适合该卡的IO调用方案,或者厂商根据我的IO调用特点修正内核。
我联系了多个厂商,遗憾的是只有一家厂商友好地跟我们合作了,并且解决了问题。更可贵的是他们选择了自己更新内核,没有麻烦我出手。
反观某烧录卡的技术人员,竟然以烧录卡在国内销量少、卖利润低,市场主要在国外为理由拒绝协助解决问题!AK、M3、R4、EZ等厂家则像从人间蒸发了一样杳无音信。
实际上这个问题很隐蔽,它不是一定会发生,只要你的烧录卡IO够快就没事。我用M3Real、AK2、dsonei+1G金士顿日产TF卡测试只要不开金手指就没死机过;AK2i Timely测试过;DSTT河马测试过;R4正版参加内测的玩家测试过。都没发现某些人说的那么厉害的死机现象,通关期间死机一两次倒是有,不过当时因为开了金手指,也就被当成老金的问题了。
另外有玩家质疑说,冲突并非导致死机的原因,理由是死机多发于场景切换。其实这正恰恰证明了冲突就是罪魁祸首。
请注意看截图:
X.png
3 小时前
上屏幕会一直显示地图和人物的名字。每次场景切换都要从ROM读取场景数据,而且场景数据都很大,花的时间也较长;同时也会读取地图和人物的名字的字库数据,所以这里容易引发IO冲突。当然这些都是表象而已,利用NO$GBA debug做断点跟踪,证实了我的猜测是对的。
3. 问题总结
“明明是三个人的电影”——玩家、烧录卡商、汉化组,但是烧录卡商拿到钱之后就一直缺席;本来是一场精彩纷呈的三角关系,却成了毫无激情的二人行(比喻的有点那啥了= =)。
死机问题自然是汉化导致的。一般游戏汉化只需简单的将文本和图片改成中文即可,出现汉化版死机肯定是有汉化BUG。但是DQ9采用“动态字库技术”带来某些卡高频死机烧录卡厂商也有责任:为什么每次IO之前不检测上次IO 是否结束???为什么我联系你们除了一家之外都没音信???
本来很简单很容易解决的事情,到了某些厂商那里就变得那么难了……
不少玩家问我能否解“汉化带来的死机BUG”,昨晚还有人“勒令ACG汉化组承诺限期解决死机问题”。面对这些我感到很无奈、很无力,商家这么不合作我也没辙呀;同时也感到玩家和汉化组都很悲哀,为何玩家出了钱却得不到像样的售后服务?难道国外市场赚钱就可以无视国内市场的售后服务了?为什么汉化组一分钱都没从烧录卡商那里得到却要帮他们擦屁股、背骂名?
首先你的TF卡是不是写入速度低了? 如果写入速度为2M/S的话那玩这个就相当的吃力,这个游戏因为是汉化,所以字库容量很庞大,在提取中文字库的时候会经常高速访问TF卡的文件,如果你的速度低了那就会经常死机
其次你用的是不是官方内核?如果是的话我建议你用 娇娘内核
我建议你把TTI换成娇娘内核 然后换一张写入速度4M/S的或者6M/S的烧录卡,最后就是这个游戏最好别开老金,老金很容易死机
祝你玩得愉快!
你是否需要了解?
玩DQ9总死机,用的是TTI烧录卡,怎么办
2.包括S2端烧录卡(就是插在GBA卡槽的烧录卡)暂时无解,请等待官方更新内核。我已经几年没接触这类卡了,不知道该怎么处理(11.09更新:SC官方已经更新补丁)3.因为汉化ROM运行时会以比日文版高出几十倍的频率访问TF读取简体中文字库,请尽量使用高速TF卡!特别是AK系列向来比较挑卡,尤其要注意!...
NDSL和NDSI现在买哪个好?
NDSI的游戏是不可能有强盛的一天,因为DS已经突破了一亿,而DSI就是任用来突破一亿的棋子,等DQ9也发售了,那DS的寿命也可能结束了。所以不手紧的话就买DSI,不手紧就买DSL。如果选择烧录卡最好选择EZ5I TTI 和AKI 都支持NDSL和NDSI。如果买NDSL以上都建议,不过我是DSL最好选择就是M3R和DSONE ...