starxxxxx 发表于 2011-11-22 22:09:57

火红绿宝石美版攻击定义DP化补丁

http://www.rayfile.com/zh-cn/files/bff2cf1e-17ce-11e1-b34a-0015c55db73d/
以上下载包含绿宝石美版和红宝石美版的攻击定义DP化补丁。
打补丁前,请先确认原ROM在下面对应版本的图片展示的位置中完全有空位(除开第一行和最后一行)(绿宝石美版需要扩容)。
两个都是我自己做的,而漆黑吧的补丁则是根据日站做的,
至于二者有什么不同,后面会作出解释。

1.首先我会先介绍两个补丁的原理。
我们知道,游戏中必定存在判断攻击定义的程序,但是这些程序在哪呢?
网上的老金表明,口袋妖怪ROM中各种属性对应数字(即如0对应普通,1对应格斗)的排列是有规律的,
0-8的属性是物攻,9是问号属性,9以上的属性都是特攻。
因此,GBA上的口袋妖怪的攻击定义判定实际上就是判定属性对应的数字与8或9或A的大小关系。
所以判定攻击定义的指令有可能是 CMP RX,08H 或 CMP RX,09H 或 CMP RX,AH

我们只需用工具标记所有“CMP RX,08H 或 CMP RX,09H 或 CMP RX,AH”,看哪些指令会在战斗中运行,
经筛选就能得出判定攻击定义的指令。
最终找到两个指令,分别是位于69A5A的“0829”和位于69BCC的“0928”。

我们再在ROM里做一张表,规定哪些编号的技能是物攻,哪些是特攻。
最后让判定程序与这张表挂钩就完成了修改。

2.ROM中技能对应物特的表格
如下面二图所示,我做的表格均由图片的第二行(全F行的下一行)开始。
以第一张火红的图为例,每一个技能对应两个数字,
第一个技能0001 拍打对应9A00A0的00, 第二个技能0002空手切对应9A00A1的00,以此类推。
表中00代表物攻和变化技能,10代表特攻技能。
火红http://photo2.bababian.com/upload5/20111126/156DC7B1024A746597E4B8456DCA44BE_500.jpg
绿宝石http://photo2.bababian.com/upload5/20111126/4DE8BC6108EEF502897FDF625A0C9E35_500.jpg


如果你想把某个物攻技能改为特攻技能,只要将表中技能对应的00改为10即可。

以下为部分技能对应的内部数字(最左侧),其它请百度。
0001 拍打(はたく) 40 100% 35 无特效
0002 空手切(からてチョップ) 50 100% 25 容易命中要害
0003 往复拍打(おうふくビンタ) 15 85% 10 2至5次连续攻击
0004 连续拳(れんぞくパンチ) 18 85% 15 2至5次连续攻击
0005 百万吨级铁拳(メガトンパンチ) 80 85% 20 无特效
0006 招财猫(ネコにこばん) 40 100% 20 战斗结束后得到金钱
0007 火炎拳(ほのおのパンチ) 75 100% 15 10%机率敌烧伤
0008 冷冻拳 (れいとうパンチ) 75 100% 15 10%机率敌冰冻
0009 闪电拳(かみなりパンチ) 75 100% 15 10%机率敌麻痹
000A 抓(ひっかく) 40 100% 35 无特效

3.两个补丁是否有BUG?
虽然自使用以来,我还没发现过BUG,但我是不能保证无BUG的。
我看过漆黑吧的补丁,可以确定作者懂的东西比我多。
他还找到两个以上的判定程序。你可能就会说了,我这两个补丁不就漏掉其它判定程序了吗?
但是,那两个程序是用如地毯式搜查的方法得到的,除非判定指令只在特殊情况中被用到,
不然不可能遗漏。
事实上,我看过他其它的判定程序,也只有两个程序在战斗中被检测出,
其它要么是伤害计算完才被检测,要么就根本没被检测出过。
除了我找到的两个程序外的其它判定程序有什么用我也不太清楚,
毕竟绿宝石中技能发动后的技能效果与物特无关。
但是听说日站补丁在天气球和觉醒力上的判定会有误,
而经测试,我做的补丁在这两个技能上是没问题的。

[ 本帖最后由 starxxxxx 于 2011-11-26 18:39 编辑 ]

mxd2hj025804 发表于 2011-11-22 22:29:10

表示收藏········-_,-

海のLUGIA 发表于 2011-11-22 22:33:18

看了下,修改的字节不算多,怎么会不能做成补丁形式呢?

试试xPatch?

ansha777 发表于 2011-11-23 22:17:25

回复 #1 starxxxxx 的帖子

补丁偶已经做出来了,没想到会撞车了。。。有需要的去漆黑吧看看http://tieba.baidu.com/p/1295074712

starxxxxx 发表于 2011-11-26 09:36:36

原帖由 海のLUGIA 于 2011-11-22 22:33 发表 http://www.pmcenter.cn/images/common/back.gif
看了下,修改的字节不算多,怎么会不能做成补丁形式呢?

试试xPatch?
谢了。
我的修改地区就是超了16M,所以其他补丁工具都用不了。

天行 发表于 2011-11-26 17:11:47

那么楼主大人你可否再确定一下,ips到底是用于红宝石呢,还是用于火红呢。。。

starxxxxx 发表于 2011-11-26 18:34:07

原帖由 天行 于 2011-11-26 17:11 发表 http://www.pmcenter.cn/images/common/back.gif
那么楼主大人你可否再确定一下,ips到底是用于红宝石呢,还是用于火红呢。。。
美版火红

感谢海姐指正错误

[ 本帖最后由 starxxxxx 于 2011-11-26 18:40 编辑 ]

海のLUGIA 发表于 2011-11-26 18:34:08

0-8的属性是物攻,9是问号属性,9以上的属性都是特攻。
因此,GBA上的口袋妖怪的攻击定义判定实际上就是判定属性对应的数字与某个数字的大小关系。
所以判定攻击定义的指令有可能是 CMP RX,08H 或 CMP RX,09H 或 CMP RX,AH

帮楼主编辑了一下,图得用盗链才能显示

其实GBA里不少东西是这么写的,比如道具也是,这个道具是属于进化石系列还是属于药品道具,都是通过道具编号划分的区域决定的,这就是为什么不能简单的改成呆呆兽使用王者之证进化……

看到楼主写的,想起来以前谁跟我说过,攻击技能改成???属性后伤害极低,约等于没有,貌似是这么说的,这样划分的话就可以解释了,既不属于特攻也不属于物攻,运算的时候就少了一个因素……

嘛,汇编我是没学过,看来什么时候得向楼主取经一下了~

另,提出一个错误哦

第一个技能0001 拍打对应9A00B0的00
写错了吧,应该是9A00A0吧

某R 发表于 2011-11-26 18:59:25

圖片連結壞掉了啊

不過還是很感謝樓主啊
正在想辦法把自己的hack給DP化...

喔 ,原來已經被海姐給修正了嗎?
謝謝啊

[ 本帖最后由 某R 于 2011-11-26 19:00 编辑 ]

海のLUGIA 发表于 2011-11-26 19:03:48

...我又没做什么

某R 发表于 2011-11-26 19:06:51

原帖由 海のLUGIA 于 2011-11-26 19:03 发表 http://www.pmcenter.cn/images/common/back.gif
...我又没做什么

"帮楼主编辑了一下,图得用盗链才能显示"
這裡@@


對了,樓主用的Hexeditor我從來沒見過的
我現在用的是Hexworkshop v6.6

能請問一下該程式的名稱嗎?謝謝

starxxxxx 发表于 2011-11-26 19:24:07

原帖由 某R 于 2011-11-26 19:06 发表 http://www.pmcenter.cn/images/common/back.gif


"帮楼主编辑了一下,图得用盗链才能显示"
這裡@@


對了,樓主用的Hexeditor我從來沒見過的
我現在用的是Hexworkshop v6.6

能請問一下該程式的名稱嗎?謝謝

我不知道你想问哪个程式的名称,
不过我用的WINHEX,CrystalTile2(CT2,复制功能好),HEXCMP(能查出两ROM的不同处)

[ 本帖最后由 starxxxxx 于 2011-11-26 19:46 编辑 ]

海のLUGIA 发表于 2011-11-26 19:34:27

不用CT2么?

1191987010 发表于 2011-11-26 21:43:18

火紅中文版呢、還有能打在超綠改麼?

眼眸丶半度微凉 发表于 2011-11-26 21:51:07

谢谢楼主分享 虽然对我没什么用
页: [1] 2
查看完整版本: 火红绿宝石美版攻击定义DP化补丁