A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 1901|回复: 6

关于三个SFC游戏修改问题向ly63兄继续请教!

[复制链接]

精华
0
帖子
27
威望
0 点
积分
27 点
种子
0 点
注册时间
2012-10-9
最后登录
2014-5-26
 楼主| 发表于 2012-10-22 11:00  ·  天津 | 显示全部楼层 |阅读模式
近日在修改三个SFC游戏时遇到一些未能解决的问题,请ly63兄帮忙解决!

1、 Monster Maker 3 - Hikari no Majyutsushi (J)
通过搜索已知  HP对应地址 7E1177、 exp对应地址 7e00fc
调试分别得到如下代码:
$00/E396 95 05       STA $05,x
$37/E44F 86 FC       STX $FC    [$00:00FC]
使用赋值语句修改exp地址代码后却发现毫无效果!?

2、Farland Story 2 (J)
exp对应地址为 7eb292
调试后得到多段地址:
$C3/4C17 97 28       STA [$28],y[$7E:B292]
$EA/F824 97 28       STA [$28],y[$7E:B292]   
修改其中 ADDAE04A0069724    将其改为A9FF赋值,问题是显示获得最大经验值,但实际查看经验值面板未见数值改动?  

3、Farland Story (J)
exp对应地址为 7e0886
调试后得到如下:
$C4/A95F 8D 86 08    STA $0886  [$00:0886]  
将6D8608改为A9FFFF赋值,仅攻击敌方时经验值有效?被攻击无效?

以上问题如何解决,烦请ly63兄指教!!

精华
0
帖子
72
威望
0 点
积分
0 点
种子
5 点
注册时间
2012-10-15
最后登录
2012-12-17
发表于 2012-10-22 11:36  ·  广东 | 显示全部楼层
顶一个··············
该用户已被禁言

精华
0
帖子
1059
威望
0 点
积分
1305 点
种子
0 点
注册时间
2011-7-27
最后登录
2012-12-5
发表于 2012-10-22 11:41  ·  辽宁 | 显示全部楼层
  两位高手相互交流,可喜可贺~~

  我只能等现成的修改好的游戏 来玩~ 真是惭愧~~~


            

精华
0
帖子
478
威望
0 点
积分
629 点
种子
12 点
注册时间
2008-3-13
最后登录
2024-8-5
发表于 2012-10-22 23:49  ·  吉林 | 显示全部楼层
1、 Monster Maker 3 - Hikari no Majyutsushi (J)

LZ找到的两个地址都是错误的,所以不会有结果。

EXP的地址(主角)是7E0C27;HP的我没时间仔细分析,但肯定不是LZ找到的那个。
顺着EXP的地址可找到经验计算的程序段,但此处不可简单修改,否则就是获得经验值后,直升LV99,这并不美。
想要一次升1级可就比较麻烦了,此游戏在获得经验后会进行多次加算,如一次获得足够多的经验,是可以升N级的。
直接将经验加算程序修改后,每次计算都会升级,所以就会直接到顶了。

要想实现1次升一级就得设计一段只执行1次的代码,仅在首次计算时升级,再次计算时跳过。

以下是我写的一段代码,将从$00D5C0开始的程序用下面代码替换即可。
  1. LDA $B6
  2. BEQ $D5D8
  3. STZ $16,X
  4. STZ $B6
  5. SEC
  6. BRA $D5D6
复制代码
简单测试了下,进行了20多次战斗,未发现异常。

精华
0
帖子
27
威望
0 点
积分
27 点
种子
0 点
注册时间
2012-10-9
最后登录
2014-5-26
 楼主| 发表于 2012-10-24 22:25  ·  天津 | 显示全部楼层
ly63 发表于 2012-10-22 23:49
1、 Monster Maker 3 - Hikari no Majyutsushi (J)

LZ找到的两个地址都是错误的,所以不会有结果。

第一个HP的应该是正确的,锁定后可以实现不减血

精华
0
帖子
478
威望
0 点
积分
629 点
种子
12 点
注册时间
2008-3-13
最后登录
2024-8-5
发表于 2012-10-28 22:36  ·  吉林 | 显示全部楼层
唉...论坛数据库损坏,回档到25日,之前回的贴子都消失了......

继续回答LZ的问题:

LZ问上面那段代码为何无法编译。

LZ没发现那段代码中的BEQ指令后面的地址是2字节?
要知道B**系列指令是双字节指令,后面的操作数是单字节的相对值,而我写成双字节的绝对地址是为了让你知道程序跳转到哪里,是为了便于你阅读。
而真要编译程序的话就要根据源地址和目标地址计算出Offset,编译器才能正确编译。

so,上面那段代码需要改成这样子才能编译通过:
  1. LDA $B6
  2. BEQ $14
  3. STZ $16,X
  4. STZ $B6
  5. SEC
  6. BRA $09
复制代码
==========================

说句心里话,也不怕得罪LZ了:

通过这几天看你的回帖分析,我觉得LZ还是在基础知识上有些欠缺,LZ应当注重编程技巧及经验的积累,比较复杂的东西可以往后放放,
学习是循序渐进的过程,经验也要慢慢积累,无法灵光一闪就瞬间明白所有东西。基本功扎实了,LZ就根本不会遇到上面这类问题,也不
会被局限在某平台。

还有,当一个游戏遇到难题卡住的话,不妨暂时放下休息休息,最好不要再碰其它的,继续分析下一个目标会干扰你的思路,致使难题更加难解,
记录下自己的思路、分析问题的过程以便下次继续研究。很多时候所谓难题其实是分析的方向不正确,转换一下思路,试用另一种方法也许就
轻松愉快地达到目的,不要产生思维定式,编程方法千奇百怪,即便是同一系列的游戏或同一开发商的游戏也不能假定使用了相同方法编程。

另外就是要着重培养锻炼自己分析数据的能力,这是对一个Hacker来说最重要的事情,只有掌握了内存数据的意义才能使修改找到方向。


最后祝LZ早日掌握编程的要领,编写出自己的游戏。

精华
0
帖子
4
威望
0 点
积分
4 点
种子
0 点
注册时间
2012-10-29
最后登录
2012-11-29
发表于 2012-10-29 12:59  ·  湖南 | 显示全部楼层
Monster Maker 3 就是 怪兽制造厂3 啊! 很好玩的一个游戏。LS的大哥哥能不能给一个已经改好的ROM下载?你们写的那些东西我们大部分菜鸟都看不懂啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2025-1-12 22:52 , Processed in 0.168766 second(s), 14 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部