本帖最后由 jiangzhengwenjz 于 2016-1-18 10:47 编辑  
 
下载地址: 
 
movements.zip
(1.71 KB, 下载次数: 582)
 
这个是为了扩充火红的移动而制作的,新移动字节列表:(我按老版列表的格式写了一份)- 0xAA - move up backwards (very slow)
 
 - 0xAB - move down backwards (very slow)
 
 - 0xAC - move right backwards (very slow)
 
 - 0xAD - move left backwards (very slow)
 
 - 0xAE - move up backwards (slow)
 
 - 0xAF - move down backwards (slow)
 
 - 0xB0 - move right backwards (slow)
 
 - 0xB1 - move left backwards (slow)
 
 - 0xB2 - move up backwards (normal)
 
 - 0xB3 - move down backwards (normal)
 
 - 0xB4 - move right backwards (normal)
 
 - 0xB5 - move left backwards (normal)
 
 - 0xB6 - move up backwards (fast)
 
 - 0xB7 - move down backwards (fast)
 
 - 0xB8 - move right backwards (fast)
 
 - 0xB9 - move left backwards (fast)
 
 - 0xBA - jump up backwards (2 squares)
 
 - 0xBB - jump down backwards (2 squares)
 
 - 0xBC - jump right backwards (2 squares)
 
 - 0xBD - jump left backwards (2 squares)
 
 - 0xBE - jump up backwards (1 squares)
 
 - 0xBF - jump down backwards (1 squares)
 
 - 0xC0 - jump right backwards (1 squares)
 
 - 0xC1 - jump left backwards (1 squares)
 
 - 0xC2 - face down and move left-down (normal)
 
 - 0xC3 - face up and move left-up (normal)
 
 - 0xC4 - face left and move left-down (normal)
 
 - 0xC5 - face right and move right-down (normal)
 
 - 0xC6 - face down and move right-down (normal)
 
 - 0xC7 - face up and move right-up (normal)
 
 - 0xC8 - face left and move left-up (normal)
 
 - 0xC9 - face right and move right-up (normal)
 
  复制代码 后8个为斜走,可用在楼梯上,前面的均是倒走,可用于心魂主角被阿银踹开、NPC退下之类的剧情。 
所有这些移动的预览: 
  
然后是源码,如果新增的话沿用我这个源码会方便点:- .equ ins_ofs, 0x8F802A8
 
 - .thumb
 
 - .align 2
 
 - table_expansion:
 
 - .word ins_ofs+walk_ldmu, ins_ofs+walk_lumd, ins_ofs+walk_llmr, ins_ofs+walk_lrml
 
 - .word ins_ofs+go_ldmu, ins_ofs+go_lumd, ins_ofs+go_llmr, ins_ofs+go_lrml
 
 - .word ins_ofs+pulse_ldmu, ins_ofs+pulse_lumd, ins_ofs+pulse_llmr, ins_ofs+pulse_lrml
 
 - .word ins_ofs+run_ldmu, ins_ofs+run_lumd, ins_ofs+run_llmr, ins_ofs+run_lrml
 
 - .word ins_ofs+jump_2sq_ldmu, ins_ofs+jump_2sq_lumd, ins_ofs+jump_2sq_llmr, ins_ofs+jump_2sq_lrml
 
 - .word ins_ofs+jump_1sq_ldmu, ins_ofs+jump_1sq_lumd, ins_ofs+jump_1sq_llmr, ins_ofs+jump_1sq_lrml
 
 - .word ins_ofs+pulse_15, ins_ofs+pulse_27, ins_ofs+pulse_35, ins_ofs+pulse_46
 
 - .word ins_ofs+pulse_16, ins_ofs+pulse_28, ins_ofs+pulse_37, ins_ofs+pulse_48
 
  
- walk_ldmu: .word ins_ofs+walk_ldmu_func+1, ins_ofs+an_walk_dn_2+1, 0x8067935
 
 - walk_lumd: .word ins_ofs+walk_lumd_func+1, ins_ofs+an_walk_dn_2+1, 0x8067935
 
 - walk_llmr: .word ins_ofs+walk_llmr_func+1, ins_ofs+an_walk_dn_2+1, 0x8067935
 
 - walk_lrml: .word ins_ofs+walk_lrml_func+1, ins_ofs+an_walk_dn_2+1, 0x8067935
 
  
- go_ldmu: .word ins_ofs+go_ldmu_func+1, ins_ofs+an_go_dn_2+1, 0x8067935
 
 - go_lumd: .word ins_ofs+go_lumd_func+1, ins_ofs+an_go_dn_2+1, 0x8067935
 
 - go_llmr: .word ins_ofs+go_llmr_func+1, ins_ofs+an_go_dn_2+1, 0x8067935
 
 - go_lrml: .word ins_ofs+go_lrml_func+1, ins_ofs+an_go_dn_2+1, 0x8067935
 
  
- pulse_ldmu: .word ins_ofs+pulse_ldmu_func+1, ins_ofs+an_pulse_dn_2+1, 0x8067935
 
 - pulse_lumd: .word ins_ofs+pulse_lumd_func+1, ins_ofs+an_pulse_dn_2+1, 0x8067935
 
 - pulse_llmr: .word ins_ofs+pulse_llmr_func+1, ins_ofs+an_pulse_dn_2+1, 0x8067935
 
 - pulse_lrml: .word ins_ofs+pulse_lrml_func+1, ins_ofs+an_pulse_dn_2+1, 0x8067935
 
  
- run_ldmu: .word ins_ofs+run_ldmu_func+1, ins_ofs+an_run_dn_2+1, 0x8067935
 
 - run_lumd: .word ins_ofs+run_lumd_func+1, ins_ofs+an_run_dn_2+1, 0x8067935
 
 - run_llmr: .word ins_ofs+run_llmr_func+1, ins_ofs+an_run_dn_2+1, 0x8067935
 
 - run_lrml: .word ins_ofs+run_lrml_func+1, ins_ofs+an_run_dn_2+1, 0x8067935
 
  
- jump_2sq_ldmu: .word ins_ofs+jump_2sq_ldmu_func+1, ins_ofs+an_jump_2sq_dn_2+1, 0x8067935
 
 - jump_2sq_lumd: .word ins_ofs+jump_2sq_lumd_func+1, ins_ofs+an_jump_2sq_dn_2+1, 0x8067935
 
 - jump_2sq_llmr: .word ins_ofs+jump_2sq_llmr_func+1, ins_ofs+an_jump_2sq_dn_2+1, 0x8067935
 
 - jump_2sq_lrml: .word ins_ofs+jump_2sq_lrml_func+1, ins_ofs+an_jump_2sq_dn_2+1, 0x8067935
 
  
- jump_1sq_ldmu: .word ins_ofs+jump_1sq_ldmu_func+1, ins_ofs+an_jump_1sq_dn_2+1, 0x8067935
 
 - jump_1sq_lumd: .word ins_ofs+jump_1sq_lumd_func+1, ins_ofs+an_jump_1sq_dn_2+1, 0x8067935
 
 - jump_1sq_llmr: .word ins_ofs+jump_1sq_llmr_func+1, ins_ofs+an_jump_1sq_dn_2+1, 0x8067935
 
 - jump_1sq_lrml: .word ins_ofs+jump_1sq_lrml_func+1, ins_ofs+an_jump_1sq_dn_2+1, 0x8067935
 
  
- pulse_15: .word ins_ofs+pulse_15_func+1, ins_ofs+pulse15_func_2+1, 0x8067935
 
 - pulse_27: .word ins_ofs+pulse_27_func+1, ins_ofs+pulse15_func_2+1, 0x8067935
 
 - pulse_35: .word ins_ofs+pulse_35_func+1, ins_ofs+pulse15_func_2+1, 0x8067935
 
 - pulse_46: .word ins_ofs+pulse_46_func+1, ins_ofs+pulse15_func_2+1, 0x8067935
 
 - pulse_16: .word ins_ofs+pulse_16_func+1, ins_ofs+pulse16_func_2+1, 0x8067935
 
 - pulse_28: .word ins_ofs+pulse_28_func+1, ins_ofs+pulse16_func_2+1, 0x8067935
 
 - pulse_37: .word ins_ofs+pulse_37_func+1, ins_ofs+pulse16_func_2+1, 0x8067935
 
 - pulse_48: .word ins_ofs+pulse_48_func+1, ins_ofs+pulse16_func_2+1, 0x8067935
 
  
- pulse_15_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #1
 
 - mov r3, #0
 
 - bl an_run_any_f
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse15_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_27_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #2
 
 - mov r3, #0
 
 - bl an_run_any_f
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse15_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_35_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #3
 
 - mov r3, #0
 
 - bl an_run_any_f
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse15_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_46_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #4
 
 - mov r3, #0
 
 - bl an_run_any_f
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse15_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_16_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #1
 
 - mov r3, #0
 
 - bl an_run_any_g
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse16_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_28_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #2
 
 - mov r3, #0
 
 - bl an_run_any_g
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse16_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_37_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #3
 
 - mov r3, #0
 
 - bl an_run_any_g
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse16_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_48_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #4
 
 - mov r3, #0
 
 - bl an_run_any_g
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl pulse16_func_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse15_func_2:
 
 - push {r4, lr}
 
 - mov r4, r1
 
 - bl sub_8064788_f
 
 - ldr r1, =0x8064D65
 
 - bx r1
 
 - .ltorg
 
  
- pulse16_func_2:
 
 - push {r4, lr}
 
 - mov r4, r1
 
 - bl sub_8064788_g
 
 - ldr r1, =0x8064D65
 
 - bx r1
 
 - .ltorg
 
  
- sub_8064788_f:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, r5
 
 - bl obj_npc_ministep_f
 
 - ldr r1, =0x8064795
 
 - bx r1
 
 - .ltorg
 
  
- sub_8064788_g:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, r5
 
 - bl obj_npc_ministep_g
 
 - ldr r1, =0x8064795
 
 - bx r1
 
 - .ltorg
 
  
- obj_npc_ministep_f:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - ldr r5, =0x83a71b0
 
 - mov r0, #0x36
 
 - ldrsh r2, [r4, r0]
 
 - lsl r0, r2, #1
 
 - add r0, r0, r5
 
 - mov r3, #0x38
 
 - ldrsh r1, [r4, r3]
 
 - mov r3, #0
 
 - ldrsh r0, [r0, r3]
 
 - cmp r1, r0
 
 - bge loc_8068BB4_f
 
 - ldr r1, =0x83A719C
 
 - lsl r0, r2, #2
 
 - add r0, r0, r1
 
 - mov r1, #0x38
 
 - ldrsh r2, [r4, r1]
 
 - ldr r0, [r0]
 
 - lsl r2, r2, #2
 
 - add r2, r2, r0
 
 - ldrh r1, [r4, #0x34]
 
 - lsl r1, r1, #0x18
 
 - lsr r1, r1, #0x18
 
 - ldr r0, =ins_ofs+custom_table
 
 - sub r1, #1
 
 - lsl r1, r1, #1
 
 - ldrsh r1, [r0, r1]
 
 - ldr r2, [r2]
 
 - mov r0, r4
 
 - bl bx_r2
 
 - ldr r0, =0x8068B8D
 
 - bx r0
 
  
- loc_8068BB4_f:
 
 - mov r0, #0
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- obj_npc_ministep_g:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - ldr r5, =0x83a71b0
 
 - mov r0, #0x36
 
 - ldrsh r2, [r4, r0]
 
 - lsl r0, r2, #1
 
 - add r0, r0, r5
 
 - mov r3, #0x38
 
 - ldrsh r1, [r4, r3]
 
 - mov r3, #0
 
 - ldrsh r0, [r0, r3]
 
 - cmp r1, r0
 
 - bge loc_8068BB4_g
 
 - ldr r1, =0x83A719C
 
 - lsl r0, r2, #2
 
 - add r0, r0, r1
 
 - mov r1, #0x38
 
 - ldrsh r2, [r4, r1]
 
 - ldr r0, [r0]
 
 - lsl r2, r2, #2
 
 - add r2, r2, r0
 
 - ldrh r1, [r4, #0x34]
 
 - lsl r1, r1, #0x18
 
 - lsr r1, r1, #0x18
 
 - ldr r0, =ins_ofs+custom_table
 
 - add r1, #3
 
 - lsl r1, r1, #1
 
 - ldrsh r1, [r0, r1]
 
 - ldr r2, [r2]
 
 - mov r0, r4
 
 - bl bx_r2
 
 - ldr r0, =0x8068B8D
 
 - bx r0
 
  
- loc_8068BB4_g:
 
 - mov r0, #0
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- an_run_any_f:
 
 - push {r4-r7, lr}
 
 - mov r7, r8
 
 - push {r7}
 
 - sub sp, sp, #0x14
 
 - mov r5, r0
 
 - mov r8, r1
 
 - mov r4, r3
 
 - lsl r2, r2, #0x18
 
 - lsr r2, r2, #0x18
 
 - lsl r4, r4, #0x18
 
 - lsr r4, r4, #0x18
 
 - mov r1, sp
 
 - ldr r0, =0x83a6884
 
 - ldmia r0!, {r3, r6, r7}
 
 - stmia r1!, {r3, r6, r7}
 
 - ldmia r0!, {r3, r6}
 
 - stmia r1!, {r3, r6}
 
 - mov r0, r5
 
 - mov r1, r8
 
 - mov r3, r4
 
 - bl npc_apply_direction_f
 
 - ldr r7, =0x8064729
 
 - bx r7
 
 - .ltorg
 
  
- npc_apply_direction_f:
 
 - push {r4-r6, lr}
 
 - mov r6, r9
 
 - mov r5, r8
 
 - push {r5, r6}
 
 - sub sp, sp, #4
 
 - mov r8, r0
 
 - mov r9, r1
 
 - mov r4, r2
 
 - mov r6, r3
 
 - lsl r4, r4, #0x18
 
 - lsr r4, r4, #0x18
 
 - lsl r6, r6, #0x18
 
 - lsr r6, r6, #0x18
 
 - ldrh r1, [r0, #0x10]
 
 - mov r0, sp
 
 - strh r1, [r0, #0]
 
 - mov r1, r8
 
 - ldrh r0, [r1, #0x12]
 
 - mov r5, sp
 
 - add r5, #2
 
 - strh r0, [r5]
 
 - mov r0, r8
 
 - mov r1, r4
 
 - ldr r3, =0x805FBDD
 
 - bl bx_r3
 
 - ldr r1, =ins_ofs+custom_table
 
 - sub r2, r4, #1
 
 - lsl r2, r2, #1
 
 - ldrsh r0, [r1, r2]
 
 - ldr r1, =0x80646AD
 
 - bx r1
 
 - .ltorg
 
  
- an_run_any_g:
 
 - push {r4-r7, lr}
 
 - mov r7, r8
 
 - push {r7}
 
 - sub sp, sp, #0x14
 
 - mov r5, r0
 
 - mov r8, r1
 
 - mov r4, r3
 
 - lsl r2, r2, #0x18
 
 - lsr r2, r2, #0x18
 
 - lsl r4, r4, #0x18
 
 - lsr r4, r4, #0x18
 
 - mov r1, sp
 
 - ldr r0, =0x83a6884
 
 - ldmia r0!, {r3, r6, r7}
 
 - stmia r1!, {r3, r6, r7}
 
 - ldmia r0!, {r3, r6}
 
 - stmia r1!, {r3, r6}
 
 - mov r0, r5
 
 - mov r1, r8
 
 - mov r3, r4
 
 - bl npc_apply_direction_g
 
 - ldr r7, =0x8064729
 
 - bx r7
 
 - .ltorg
 
  
- npc_apply_direction_g:
 
 - push {r4-r6, lr}
 
 - mov r6, r9
 
 - mov r5, r8
 
 - push {r5, r6}
 
 - sub sp, sp, #4
 
 - mov r8, r0
 
 - mov r9, r1
 
 - mov r4, r2
 
 - mov r6, r3
 
 - lsl r4, r4, #0x18
 
 - lsr r4, r4, #0x18
 
 - lsl r6, r6, #0x18
 
 - lsr r6, r6, #0x18
 
 - ldrh r1, [r0, #0x10]
 
 - mov r0, sp
 
 - strh r1, [r0, #0]
 
 - mov r1, r8
 
 - ldrh r0, [r1, #0x12]
 
 - mov r5, sp
 
 - add r5, #2
 
 - strh r0, [r5]
 
 - mov r0, r8
 
 - mov r1, r4
 
 - ldr r3, =0x805FBDD
 
 - bl bx_r3
 
 - ldr r1, =ins_ofs+custom_table
 
 - add r2, r4, #3
 
 - lsl r2, r2, #1
 
 - ldrsh r0, [r1, r2]
 
 - ldr r1, =0x80646AD
 
 - bx r1
 
 - .ltorg
 
  
- .align 2
 
 - custom_table: .hword 5, 7, 5, 6, 6, 8, 7, 8
 
  
- jump_1sq_ldmu_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #2
 
 - str r0, [sp]
 
 - mov r0, r4
 
 - mov r2, #1
 
 - mov r3, #1
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_1sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- jump_1sq_lumd_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #2
 
 - str r0, [sp]
 
 - mov r0, r4
 
 - mov r2, #2
 
 - mov r3, #1
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_1sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- jump_1sq_llmr_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #2
 
 - str r0, [sp]
 
 - mov r0, r4
 
 - mov r2, #3
 
 - mov r3, #1
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_1sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- jump_1sq_lrml_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #2
 
 - str r0, [sp]
 
 - mov r0, r4
 
 - mov r2, #4
 
 - mov r3, #1
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_1sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- an_jump_1sq_dn_2:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - bl sub_8065028
 
 - ldr r1, =0x8066493
 
 - bx r1
 
 - .ltorg
 
  
- jump_2sq_ldmu_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #0
 
 - str r0, [sp, #0]
 
 - mov r0, r4
 
 - mov r2, #1
 
 - mov r3, #2
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_2sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- jump_2sq_lumd_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #0
 
 - str r0, [sp, #0]
 
 - mov r0, r4
 
 - mov r2, #2
 
 - mov r3, #2
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_2sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- jump_2sq_llmr_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #0
 
 - str r0, [sp, #0]
 
 - mov r0, r4
 
 - mov r2, #3
 
 - mov r3, #2
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_2sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- jump_2sq_lrml_func:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, #0
 
 - str r0, [sp, #0]
 
 - mov r0, r4
 
 - mov r2, #4
 
 - mov r3, #2
 
 - bl maybe_shadow_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_jump_2sq_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - add sp, sp, #4
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- maybe_shadow_1:
 
 - push {r4, r5, lr}
 
 - sub sp, sp, #4
 
 - mov r4, r0
 
 - mov r5, r1
 
 - ldr r0, [sp, #0x10]
 
 - lsl r2, r2, #0x18
 
 - lsr r2, r2, #0x18
 
 - lsl r3, r3, #0x18
 
 - lsr r3, r3, #0x18
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - str r0, [sp]
 
 - mov r0, r4
 
 - bl sub_8064E3C
 
 - ldr r0, =0x8064f17
 
 - bx r0
 
 - .ltorg
 
  
- sub_8064E3C:
 
 - push {r4-r7, lr}
 
 - mov r7, r10
 
 - mov r6, r9
 
 - mov r5, r8
 
 - push {r5-r7}
 
 - sub sp, sp, #0x10
 
 - mov r7, r0
 
 - mov r10, r1
 
 - mov r4, r2
 
 - mov r8, r3
 
 - ldr r0, [sp, #0x30]
 
 - lsl r4, r4, #0x18
 
 - lsr r4, r4, #0x18
 
 - mov r1, r8
 
 - lsl r1, r1, #0x18
 
 - lsr r1, r1, #0x18
 
 - mov r8, r1
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - mov r9, r0
 
 - ldr r1, =0x83a6958
 
 - add r0, sp, #4
 
 - mov r2, #6
 
 - ldr r3, =0x81E5E79
 
 - bl bx_r3
 
 - add r5, sp, #0xc
 
 - mov r0, #0
 
 - strh r0, [r5]
 
 - mov r6, r13
 
 - add r6, #0xe
 
 - strh r0, [r6]
 
 - mov r0, r7
 
 - mov r1, r4
 
 - ldr r3, =0x805FBDD
 
 - bl bx_r3
 
 - mov r1, r8
 
 - lsl r0, r1, #1
 
 - add r0, sp
 
 - add r0, #4
 
 - mov r1, #0
 
 - ldrsh r3, [r0, r1]
 
 - str r3, [sp, #0]
 
 - sub r0, r4, #1
 
 - mov r1, #1
 
 - eor r0, r1
 
 - add r0, #1
 
 - ldr r1, =0x8064E93
 
 - bx r1
 
 - .ltorg
 
  
- an_jump_2sq_dn_2:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - bl sub_8065028
 
 - ldr r1, =0x80650DF
 
 - bx r1
 
 - .ltorg
 
  
- sub_8065028:
 
 - push {lr}
 
 - bl sub_8065000
 
 - ldr r1, =0x806502F
 
 - bx r1
 
 - .ltorg
 
  
- sub_8065000:
 
 - push {lr}
 
 - ldr r2, =ins_ofs+sub_8068D3C+1
 
 - bl sub_8064F3C
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {pc}
 
 - .ltorg
 
  
- sub_8068D3C:
 
 - push {r4-r6, lr}
 
 - sub sp, sp, #0xc
 
 - mov r4, r0
 
 - ldr r1, =0x83a71f8
 
 - mov r0, sp
 
 - mov r2, #6
 
 - ldr r3, =0x81E5E79
 
 - bl bx_r3
 
 - add r5, sp, #8
 
 - ldr r1, =0x83a71fe
 
 - mov r0, r5
 
 - mov r2, #3
 
 - ldr r3, =0x81E5E79
 
 - bl bx_r3
 
 - mov r6, #0
 
 - mov r1, #0x36
 
 - ldrsh r0, [r4, r1]
 
 - cmp r0, #0
 
 - beq loc_8068D6E
 
 - ldrh r1, [r4, #0x34]
 
 - lsl r1, r1, #0x18
 
 - lsr r1, r1, #0x18
 
 - sub r1, #1
 
 - mov r0, #1
 
 - eor r1, r0
 
 - add r1, #1
 
 - ldr r0, =0x8068D69
 
 - bx r0
 
 - loc_8068D6E:
 
 - ldr r0, =0x8068D6F
 
 - bx r0
 
 - .ltorg
 
  
- sub_8064F3C:
 
 - push {r4-r7, lr}
 
 - mov r7, r8
 
 - push {r7}
 
 - sub sp, sp, #0x10
 
 - mov r6, r0
 
 - mov r7, r1
 
 - mov r4, r2
 
 - ldr r1, =0x83a695e
 
 - add r0, sp, #4
 
 - mov r2, #6
 
 - ldr r3, =0x81E5E79
 
 - bl bx_r3
 
 - mov r0, r7
 
 - bl bx_r4
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - mov r8, r0
 
 - cmp r0, #1
 
 - bne loc_8064FCC
 
 - mov r1, #0x36
 
 - ldrsh r0, [r7, r1]
 
 - lsl r0, r0, #1
 
 - add r0, sp
 
 - add r0, #4
 
 - mov r2, #0
 
 - ldrsh r0, [r0, r2]
 
 - cmp r0, #0
 
 - beq loc_8064FCC
 
 - add r4, sp, #0xc
 
 - mov r0, #0
 
 - strh r0, [r4]
 
 - mov r5, r13
 
 - add r5, #0xe
 
 - strh r0, [r5]
 
 - ldrb r0, [r6, #0x18]
 
 - lsr r0, r0, #4
 
 - sub r0, #1
 
 - mov r1, #1
 
 - eor r0, r1
 
 - add r0, #1
 
 - ldr r1, =0x8064F87
 
 - bx r1
 
  
- loc_8064FCC:
 
 - ldr r1, =0x8064fcd
 
 - bx r1
 
 - .ltorg
 
  
- run_ldmu_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #1
 
 - mov r3, #1
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_run_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- run_lumd_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #2
 
 - mov r3, #1
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_run_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- run_llmr_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #3
 
 - mov r3, #1
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_run_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- run_lrml_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #4
 
 - mov r3, #1
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_run_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- an_run_dn_2:
 
 - push {r4, lr}
 
 - mov r4, r1
 
 - bl sub_8064788
 
 - ldr r1, =0x80652F5
 
 - bx r1
 
 - .ltorg
 
  
- pulse_ldmu_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #1
 
 - mov r3, #0
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_pulse_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_lumd_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #2
 
 - mov r3, #0
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_pulse_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_llmr_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #3
 
 - mov r3, #0
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_pulse_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- pulse_lrml_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #4
 
 - mov r3, #0
 
 - bl an_run_any
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_pulse_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- an_run_any:
 
 - push {r4-r7, lr}
 
 - mov r7, r8
 
 - push {r7}
 
 - sub sp, sp, #0x14
 
 - mov r5, r0
 
 - mov r8, r1
 
 - mov r4, r3
 
 - lsl r2, r2, #0x18
 
 - lsr r2, r2, #0x18
 
 - lsl r4, r4, #0x18
 
 - lsr r4, r4, #0x18
 
 - mov r1, sp
 
 - ldr r0, =0x83a6884
 
 - ldmia r0!, {r3, r6, r7}
 
 - stmia r1!, {r3, r6, r7}
 
 - ldmia r0!, {r3, r6}
 
 - stmia r1!, {r3, r6}
 
 - mov r0, r5
 
 - mov r1, r8
 
 - mov r3, r4
 
 - bl npc_apply_direction
 
 - ldr r7, =0x8064729
 
 - bx r7
 
 - .ltorg
 
  
- npc_apply_direction:
 
 - push {r4-r6, lr}
 
 - mov r6, r9
 
 - mov r5, r8
 
 - push {r5, r6}
 
 - sub sp, sp, #4
 
 - mov r8, r0
 
 - mov r9, r1
 
 - mov r4, r2
 
 - mov r6, r3
 
 - lsl r4, r4, #0x18
 
 - lsr r4, r4, #0x18
 
 - lsl r6, r6, #0x18
 
 - lsr r6, r6, #0x18
 
 - ldrh r1, [r0, #0x10]
 
 - mov r0, sp
 
 - strh r1, [r0, #0]
 
 - mov r1, r8
 
 - ldrh r0, [r1, #0x12]
 
 - mov r5, sp
 
 - add r5, #2
 
 - strh r0, [r5]
 
 - mov r0, r8
 
 - mov r1, r4
 
 - ldr r3, =0x805FBDD
 
 - bl bx_r3
 
 - sub r0, r4, #1
 
 - mov r1, #1
 
 - eor r0, r1
 
 - add r0, #1
 
 - ldr r1, =0x80646AD
 
 - bx r1
 
 - .ltorg
 
  
- an_pulse_dn_2:
 
 - push {r4, lr}
 
 - mov r4, r1
 
 - bl sub_8064788
 
 - ldr r1, =0x8064D65
 
 - bx r1
 
 - .ltorg
 
  
- sub_8064788:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, r5
 
 - bl obj_npc_ministep
 
 - ldr r1, =0x8064795
 
 - bx r1
 
 - .ltorg
 
  
- obj_npc_ministep:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - ldr r5, =0x83a71b0
 
 - mov r0, #0x36
 
 - ldrsh r2, [r4, r0]
 
 - lsl r0, r2, #1
 
 - add r0, r0, r5
 
 - mov r3, #0x38
 
 - ldrsh r1, [r4, r3]
 
 - mov r3, #0
 
 - ldrsh r0, [r0, r3]
 
 - cmp r1, r0
 
 - bge loc_8068BB4
 
 - ldr r1, =0x83A719C
 
 - lsl r0, r2, #2
 
 - add r0, r0, r1
 
 - mov r1, #0x38
 
 - ldrsh r2, [r4, r1]
 
 - ldr r0, [r0]
 
 - lsl r2, r2, #2
 
 - add r2, r2, r0
 
 - ldrh r1, [r4, #0x34]
 
 - lsl r1, r1, #0x18
 
 - lsr r1, r1, #0x18
 
 - sub r1, #1
 
 - mov r0, #1
 
 - eor r1, r0
 
 - add r1, #1
 
 - ldr r2, [r2]
 
 - mov r0, r4
 
 - bl bx_r2
 
 - ldr r0, =0x8068B8D
 
 - bx r0
 
  
- loc_8068BB4:
 
 - mov r0, #0
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- go_ldmu_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #1
 
 - bl an_go_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_go_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- go_lumd_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #2
 
 - bl an_go_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_go_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- go_llmr_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #3
 
 - bl an_go_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_go_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- go_lrml_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #4
 
 - bl an_go_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_go_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- an_go_any_1:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - lsl r2, r2, #0x18
 
 - lsr r2, r2, #0x18
 
 - bl sub_8064B68
 
 - ldr r0, =0x8064be7
 
 - bx r0
 
 - .ltorg
 
  
- sub_8064B68:
 
 - push {r4-r6, lr}
 
 - mov r6, r8
 
 - push {r6}
 
 - sub sp, sp, #4
 
 - mov r6, r0
 
 - mov r8, r1
 
 - lsl r5, r2, #0x18
 
 - lsr r5, r5, #0x18
 
 - ldrh r1, [r6, #0x10]
 
 - mov r0, sp
 
 - strh r1, [r0, #0]
 
 - ldrh r0, [r6, #0x12]
 
 - mov r4, sp
 
 - add r4, #2
 
 - strh r0, [r4]
 
 - mov r0, r6
 
 - mov r1, r5
 
 - ldr r3, =0x805FBDD
 
 - bl bx_r3
 
 - sub r0, r5, #1
 
 - mov r1, #1
 
 - eor r0, r1
 
 - add r0, #1
 
 - mov r1, sp
 
 - ldr r2, =0x8064b93
 
 - bx r2
 
 - .ltorg
 
  
- an_go_dn_2:
 
 - push {r4, lr}
 
 - mov r4, r1
 
 - bl sub_8064C04
 
 - ldr r1, =0x8064ca5
 
 - bx r1
 
 - .ltorg
 
  
- sub_8064C04:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, r5
 
 - bl sub_8068C18
 
 - ldr r1, =0x8064c11
 
 - bx r1
 
 - .ltorg
 
  
- sub_8068C18:
 
 - push {r4, lr}
 
 - mov r4, r0
 
 - ldrh r0, [r4, #0x36]
 
 - add r0, #1
 
 - strh r0, [r4, #0x36]
 
 - lsl r0, r0, #0x10
 
 - asr r0, r0, #0x10
 
 - cmp r0, #2
 
 - bgt loc_8068C3E
 
 - ldrh r1, [r4, #0x34]
 
 - lsl r1, r1, #0x18
 
 - lsr r1, r1, #0x18
 
 - sub r1, #1
 
 - mov r0, #1
 
 - eor r1, r0
 
 - add r1, #1
 
 - ldr r0, =0x8068c31
 
 - bx r0
 
 - loc_8068C3E:
 
 - ldr r0, =0x8068C3F
 
 - bx r0
 
 - .ltorg
 
  
- walk_ldmu_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #1
 
 - bl an_walk_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_walk_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- walk_lumd_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #2
 
 - bl an_walk_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_walk_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- walk_llmr_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #3
 
 - bl an_walk_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_walk_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- walk_lrml_func:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r2, #4
 
 - bl an_walk_any_1
 
 - mov r0, r4
 
 - mov r1, r5
 
 - bl an_walk_dn_2
 
 - lsl r0, r0, #0x18
 
 - lsr r0, r0, #0x18
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- an_walk_dn_2:
 
 - push {r4, lr}
 
 - mov r4, r1
 
 - bl an_walk_any_2
 
 - lsl r0, r0, #0x18
 
 - cmp r0, #0
 
 - beq loc_8064aa0
 
 - mov r0, #2
 
 - strh r0, [r4, #0x32]
 
 - mov r0, #1
 
  
- loc_8064aa0:
 
 - pop {r4, pc}
 
 - .ltorg
 
  
- an_walk_any_1:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - lsl r2, r2, #0x18
 
 - lsr r2, r2, #0x18
 
 - bl sub_80647C0
 
 - ldrb r0, [r4, #0x18]
 
 - lsl r0, r0, #0x1c
 
 - lsr r0, r0, #0x1c
 
 - ldr r3, =0x8063441
 
 - bl bx_r3
 
 - mov r2, r0
 
 - lsl r2, r2, #0x18
 
 - lsr r2, r2, #0x18
 
 - mov r0, r4
 
 - mov r1, r5
 
 - ldr r3, =0x8063555
 
 - bl bx_r3
 
 - pop {r4, r5, pc}
 
 - .ltorg
 
  
- sub_80647C0:
 
 - push {r4-r6, lr}
 
 - mov r6, r8
 
 - push {r6}
 
 - sub sp, sp, #4
 
 - mov r6, r0
 
 - mov r8, r1
 
 - lsl r5, r2, #0x18
 
 - lsr r5, r5, #0x18
 
 - ldrh r1, [r6, #0x10]
 
 - mov r0, sp
 
 - strh r1, [r0, #0]
 
 - ldrh r0, [r6, #0x12]
 
 - mov r4, sp
 
 - add r4, #2
 
 - strh r0, [r4]
 
 - mov r0, r6
 
 - mov r1, r5
 
 - ldr r3, =0x805FBDD
 
 - bl bx_r3
 
 - sub r0, r5, #1
 
 - mov r1, #1
 
 - eor r0, r1
 
 - add r0, #1
 
 - mov r1, sp
 
 - mov r2, r4
 
 - ldr r3, =0x80647ED
 
 - bx r3
 
 - .ltorg
 
  
- an_walk_any_2:
 
 - push {r4, r5, lr}
 
 - mov r4, r0
 
 - mov r5, r1
 
 - mov r0, r5
 
 - bl sub_8068BCC
 
 - ldr r1, =0x8064869
 
 - bx r1
 
 - .ltorg
 
  
- sub_8068BCC:
 
 - push {r4, lr}
 
 - mov r4, r0
 
 - ldrh r1, [r4, #0x36]
 
 - mov r0, #1
 
 - and r0, r1
 
 - cmp r0, #0
 
 - bne loc_8068bec
 
 - ldrh r1, [r4, #0x34]
 
 - sub r1, #1
 
 - mov r0, #1
 
 - eor r1, r0
 
 - add r1, #1
 
 - mov r0, r4
 
 - ldr r3, =0x8068be3
 
 - bx r3
 
  
- loc_8068bec:
 
 - ldr r0, =0x8068bed
 
 - bx r0
 
 - .ltorg
 
  
- bx_r3: bx r3
 
 - bx_r2: bx r2
 
 - bx_r4: bx r4
 
  复制代码 一开始的ins_ofs也就是表格新位置的末尾,对应改掉就行 
 |