- UID
- 9
- 阅读权限
- 80
- 精华
- 魅力
-
- 信用
-
- 注册时间
- 2007-2-22
- 在线时间
- 小时
- 最后登录
- 1970-1-1
|
楼主 |
发表于 2008-9-8 23:36
|
显示全部楼层
1:跟踪算法是什么?几个公式怎么推导出来的?需要什么工具?
楼主解释得不够傻瓜。又或者哪有教程和相关下载?
2:在实际游戏中,有些情况与楼主所写的有些公式并不完全吻合。例如火计、共杀、伪擊转杀伤害算法: 智x(9~13)/10+(等级-1)x10+30,我的体会是当智力大于143,而经验在70以上时,伤害程度会忽大忽小,有时三、四十,有时两百多;当等级在16,智力大于等于82时,也会出现伤害程度会忽大忽小的情况。如果仅从公式来看是不应该出现这种情况的。
又如基本成功率算法: (距离修正+智力差+等级差x2+难度修正)%,
我的体会是智力差在123左右时 ,成功率会有个突变;小于等于123时,成功率很高;大于123时,则成功率突然变得极低,如果仅从公式来看也是不应该出现这种情况的。楼主的解释是“由于计算的时候采用单字节带符号运算“的缘故,什么意思,不懂,烦请解释一下。
3:请教人物姓名(文字的汉化)、图像、寿命、人物出现的时间地点、游戏结束时间怎么改?[/QUOTE]
1.跟踪算法是通过对程序的解读,还原成简单的数学公式. 比如有一个从F2D7开始的20行代码左右的调用,通过分析将其理解为取人物基本地址的调用. 还有比如从EAA5开始的一个调用,其功能是进行乘法运算. 通过对代码的分析,得出编写人员当初设计时所用的数学公式.
主要就是汇编语言,可以看看汇编教程,推荐从Z80,CASL,65C816,68000的汇编开始入门.不推荐8086系列(也就是大家通用的计算机CPU), 因为一来8086体系比较复杂,二来对模拟没有太大用处.
fc用的6502 SFC用的65c816 GBA用的ARM 大量街机用到68000和Z80
2.你所提出问题的确存在,解释起来并不麻烦. 只要理解字节概念就可以了. 6502是8位的CPU,主要用于处理8位(也就是单字节)的数据. 一个字节如果用来表示正数,那可以表示0~255, 如果用来表示负数那可以表示-128~127. 在0~127这一段中正数和负数的表示是一样的. 但在128~255和-127~-1这段表示却是有歧意的,比如255这个单字节是FF,而-1单字节也同样是FF. 也就是说0-1=-1(FF),也可以解释为0-1=255. 而127+1=128(80),也可以解释为127+1=-128 FF和80到底解释为什么是由程序决定的. 我所分析的算法都是在正常游戏的情况下得出的结论,在正常情况下,对单字节的解释不会产生歧意. 但如果做了随意的修改,那程序难免出现问题. 可谓物极必反. 你所提到的123现象应该只对低智商的人会出现问题, 因为大于等于128其实就是负数了,按5%计算. 而伤害的问题更为复杂一些,因为牵涉到乘法,霸王大陆中乘法分为好几种,有些是单字节的,有些是双字节的,而有些则是三字节的,还有一些简单乘法,比如乘以10之类的,采用的是简单位移运算,所以很难一下子说清楚,具体情况还要具体分析.
3.请教人物姓名(文字的汉化)、图像、寿命、人物出现的时间地点、游戏结束时间怎么改
汉化可以参看网上铺天盖地的汉化教学,而且霸王大陆已经有人汉化了. 不过我认为要汉化霸王大陆这种FC文字游戏难度是挺大的,毕竟6502的处理能力太弱了. 图象只要修改rom中的图象就可以了,关于这方面汉化教学也有提到,其实只要看看FC的架构介绍就可以了. 寿命 人物出现地点 游戏结束时间等等霸王大陆的其他算法我正在分析整理中, 过两天会发表的. |
|