有的人在用FFMOD更改了铃声后,出现了各种各样的问题。这个原因我一开始时就说过,是因为地址冲突。
主要是因为SL456688i对于50秒提示的修改时是在1f0000处写了个函数,通话时需要判定时间则用了一个函数跳转到1f00000,来判定是50秒还是x分50秒,而FFMOD默认修改的铃声也是从1f0000开始的。为什么这个地方这么热呢!呵呵,因为这段空间全是FF,表示不被使用,而FFMOD在修改时因为不能确定你导入的铃声和原始铃声有相同的大小,所以他把你导入的铃声放在这个位置,并修改铃声纪录索引表,使铃声地址指向1f0000以后的具体位置。所以原来的铃声还是保留着,也有了耳机和听筒的声音不同步的现象,我怀疑是有两套索引表的,不过没时间查证这个问题。
正因为这个原因,如果你先做了50秒提示的补丁,然后要修改铃声,假如这时使用的FullFlash不是你刚刚从自己机器上读出来的,那么Flash里没有1f0000那段关于时间判定的函数,所以会导致不确定的情况,甚至死机。同理,用别人修改好的铃声也会有同样的问题。都是应为在1f0000处没有那个函数。而如果虽然用自己刚读出的Flash,但修改了标准第一首铃声,也会有这个问题。现在一些其他的修改也用了这些地方,比如声控菜单。所以有些作了声控菜单补丁的,会出现两个莫名其妙的菜单。
解决办法:推荐修改铃声时使用自己的Flash,可以从手机中读出。不要更改第一首铃声,如果你非要更改,请修改FFMOD.ini中关于新地址的设定,使之增加一定的偏移量。