|
本帖最后由 jiangzhengwenjz 于 2015-6-2 13:52 编辑
一切基于火红。
事实上目前并没有时间来看这个,主要是把51节的前2天看的一点微不足道的东西先记录一下,日后更新。
参考:Jambo51(部分研究与教程、工具编写),JPAN(研究)
首先由于原版技能应予以保留,因此有必要进行扩充。以下仅列出已测试的必须扩充的表格:(这种方法仅支持到511个技能,若要更多参考Jambo51的帖子,工具的话自行修改PGE的ini)
1、0x250C04(技能数据表)共4260字节,注意重定向后必须修改2个地址的指针 0x250C04 0x250C08(当然由于要扩充所以可以先用原来的数据进行代替,新增字节数12*新技能数)
2、0x247094(技能名称表)共4615字节,修改指针,并用原数据先填充(每个13字节)
3、0x1C68F4(技能动画指针表)共1420字节,修改指针并进行填充。
4、0x4886E8(技能介绍指针表),当然也要改指针并进行填充。
5、0x25011C(技能脚本命令指针表),这里只是为了增加Jambo51新增的callasm指令,本来共F8个但由于编号从0开始所以callasm编号将为F8。
6、0x1D65A8(技能效果指针表),共856字节。(最多能到256个,编号从0~255,注意最后一个指针不是具体的技能效果,所以扩充后也将其放在最后)
然后就是解限&增加命令:
1、命令的增加
编译Jambo51的代码并将新指针加入到重定向后的技能脚本命令指针表后。(thumb模式)
- .text
- .align 2
- .thumb
- .thumb_func
- .global battlescriptcallasm
- main:
- push {lr}
- push {r1-r7}
- ldr r0, scriptlocation
- ldr r0, [r0, #0x0]
- ldrb r1, [r0, #0x1]
- ldrb r2, [r0, #0x2]
- lsl r2, r2, #0x8
- orr r1, r2
- ldrb r2, [r0, #0x3]
- lsl r2, r2, #0x10
- orr r1, r2
- ldrb r2, [r0, #0x4]
- lsl r2, r2, #0x18
- orr r1, r2
- bl bx_r1
- ldr r0, scriptlocation
- ldr r1, [r0, #0x0]
- add r1, #0x5
- str r1, [r0, #0x0]
- pop {r1-r7}
- pop {r0}
- bx r0
- bx_r1: bx r1
- .align
- scriptlocation: .word 0x02023D74
复制代码
当然需要让BSP识别这个命令,可以在头文件中添加:
在commands.bsh中添加- #command callasm 0xF8 0x1 "Offset of routine" 0x4
复制代码 即可。(注意这样的话编写时callasm必须写成严格的指针形式,8不能漏)
2、解限:
只有一处代码执行检测造成限制,在0xD75FC。- mov r0, #0xB1
- lsl r0, r0, #0x1
- cmp r0, r1
复制代码 将这3条指令通通写成0000就行了。
具体内容待更新(或许周末?或许下周?)
511号技能测试(羽栖)
(好吧我承认我只是开个坑督促自己做下去而已)
暂时坑掉,楼主最近缺乏空闲时间 |
|