绿宝石神兽游走系统升级
神兽游走系统在二代时就已经存在于口袋妖怪游戏内了。很遗憾的是,在绿宝石内只能同时支持一只神兽的游走,且神兽的范围仅限红蓝水都。虽然能够通过巧妙的脚本将神兽的范围从红蓝水都拓宽到全体PM,但仍然无法解决只能同时支持一只神兽游走的问题。虽然老外的基于反汇编工程的火红升级版将神兽数量上调为10,可惜一来没有绿宝石版本二来没有基于原ROM写入的版本(这应该是绝大多数国内改版者使用的方法)。最近(其实是一年前,不过这一年因为某些原因处于退坑状态)有位坛友希望我能在绿宝石内实现这个功能,于是我花了一天半的时间完成了这个系统。PS:由于本人本来水平就不高,再加上已有一年左右的时间未接触改版,该系统的质量可能不高,敬请谅解。
PS2:不确定使用的RAM是否安全,如果不放心可以自行前往bpee.ld中进行更改!
PS3:使用方法和注意事项均在README.md中,请使用者认真阅读!
下载地址:https://github.com/GoldenCaterpie/BPEERoamingUpdate 支持,其实LZ可以直接用pokeemerald的header,然后bpee.ld简单写个程序生成下就行 我认为你写的callasm有错,你callasm 0x1700001,但实际应该写成:callasm 0x9700001才对 额……我不会用github下载东西…… jiangzhengwenjz 发表于 2021-7-25 04:10
支持,其实LZ可以直接用pokeemerald的header,然后bpee.ld简单写个程序生成下就行
感谢聚聚支持
直接用pokeemerald的header是个好主意,不过挺多结构体的定义好像是在.c文件里的
bpee.ld怎么生成呢,难道从pokeemerald.map中提取吗,不少需要用到的函数是静态的,还是得自己去找 744865306 发表于 2021-7-25 07:03
我认为你写的callasm有错,你callasm 0x1700001,但实际应该写成:callasm 0x9700001才对
不知道你用的脚本编译器是什么。不过如果是XSE,这么写是合理的。只要你写的指针不是0,编译器会自动把前面这种形式转换成后面这种形式 744865306 发表于 2021-7-25 07:18
额……我不会用github下载东西……
code -> download zip 那个……大佬,有什么函数可以运行战斗脚本 744865306 发表于 2021-7-25 16:56
那个……大佬,有什么函数可以运行战斗脚本
记得好像是直接把当前的战斗脚本地址(0x02024214)设置成你要的地址就行了,不过802里面好像专门有个函数进行这个操作?当然战斗脚本用什么返回(end)这是要分场合的。具体挺复杂的,我一时半会也说不清,而且一年没改也基本忘了,总之你照着egg他们的做法做就行了。或者去咨询版主,如果他有时间的话 本站第一萌新 发表于 2021-7-25 17:10
记得好像是直接把当前的战斗脚本地址(0x02024214)设置成你要的地址就行了,不过802里面好像专门有个函数 ...
这样啊,谢谢大佬,我先去问问jzw大佬吧 那个……大佬,我写了以下源码,但他并没有起到我想要的效果: .gba .thumb .create "test.gba",0x8000000 .close .open "绿宝石.gba","test.gba",0x8000000.org 0x08F00000 .func new lsl r0,r0,#4 and r4,r0 cmp r4,#0 bne NoPPReduce mov r1,#0x58 ldr r0,=0x0202420B ldrb r0, mul r0,r1 ldr r1,=0x020240A4 add r0,r1 ldrb r0, cmp r0, #79 ;"饱了又饿"特性编号 beq yes1 end: ldr r3,=(0x08046B04|1) bx r3 yes1: ldr r0,=0x02024084 ldrh r0, cmp r0,#1 ;空腹花纹编号 bne changenull mov r1,#2 ;满腹花纹编号 keep: strh r1, b end changenull: mov r1,#1 ;空腹花纹编号 NoPPReduce: ldr r3,=(0x08046BDC|1) bx r3 .endfunc .pool.org 0x08046AFC ldr r3,=(new|1) bx r3 .pool.close emmm,在回复里发好像不太行 我到一个新的帖子里发吧 http://www.pmcenter.cn/forum.php?mod=viewthread&tid=111602&extra=page%3D1&mobile=2