Pokemon Center | 口袋中心 以口袋妖怪为主题并带有其他动漫游戏的讨论

标题: 修复昼夜携带道具进化方式 [打印本页]

作者: jiangzhengwenjz    时间: 2016-6-16 21:18
标题: 修复昼夜携带道具进化方式
由于老外的源码有些问题 所以应jirachiwish的要求重新写了一个
若使用扩充进化方式为8个的表格请自行修改.set中的内容,并修改源码3中#40为#64
以及修改源码1和源码2中add r1, r6, r7为lsl r1, r6, #1
昼携带道具进化:
  1. .thumb
  2. #For Firered, include it in the evolution method table

  3. .set Time, 0x3005542
  4. .set EvoExit, 0x8043111
  5. .set Evolve, 0x804310D
  6. .set Decrypter, 0x803FBE9

  7. ldr r0, =Time
  8. ldrb r0, [r0]
  9. cmp r0, #0x15
  10. bge exit
  11. cmp r0, #6
  12. blt exit

  13. DecryptItem:
  14. add r1, r6, r7
  15. lsl r1, r1, #0x3
  16. add r1, r2, r1
  17. add r1, r1, r3
  18. push {r1-r4}
  19. ldrh r4, [r1, #0x2]
  20. mov r0, r8
  21. mov r1, #0xc
  22. ldr r3, =Decrypter
  23. bl bx_r3
  24. cmp r0, r4
  25. bne exit2
  26. pop {r1-r4}
  27. ldr r0, =Evolve
  28. bx r0

  29. exit2:
  30. pop {r1-r4}

  31. exit:
  32. ldr r0, =EvoExit
  33. bx r0

  34. bx_r3:
  35. bx r3
  36. .ltorg
复制代码
夜携带道具进化:
  1. .thumb
  2. #For Firered, include it in the evolution method table

  3. .set Time, 0x3005542
  4. .set EvoExit, 0x8043111
  5. .set Evolve, 0x804310D
  6. .set Decrypter, 0x803FBE9

  7. ldr r0, =Time
  8. ldrb r0, [r0]
  9. cmp r0, #0x15
  10. bge DecryptItem
  11. cmp r0, #6
  12. bge exit

  13. DecryptItem:
  14. add r1, r6, r7
  15. lsl r1, r1, #0x3
  16. add r1, r2, r1
  17. add r1, r1, r3
  18. push {r1-r4}
  19. ldrh r4, [r1, #0x2]
  20. mov r0, r8
  21. mov r1, #0xc
  22. ldr r3, =Decrypter
  23. bl bx_r3
  24. cmp r0, r4
  25. bne exit2
  26. pop {r1-r4}
  27. ldr r0, =Evolve
  28. bx r0

  29. exit2:
  30. pop {r1-r4}

  31. exit:
  32. ldr r0, =EvoExit
  33. bx r0

  34. bx_r3:
  35. bx r3
  36. .ltorg
复制代码
删除道具修复:
  1. #Firered: put 00 48 00 47 XX+1 XX XX 08 at 0x80CED68

  2. .set IndexOfDayHeldItem, 0x10
  3. .set IndexOfNightHeldItem, 0x11

  4. .set Encrypt, 0x804037D
  5. .set Decrypt, 0x803FBE9
  6. .set BackAddr, 0x80CED71
  7. .set EvoTable, 0x8259754

  8. .thumb
  9. mov r0, r9
  10. mov r1, #0xb
  11. ldr r3, =Decrypt
  12. bl bx_r3
  13. ldr r1, =EvoTable
  14. mov r2, #40
  15. mul r0, r2
  16. add r0, r1, r0
  17. ldrh r0, [r0]
  18. cmp r0, #IndexOfDayHeldItem
  19. beq ItemReduction
  20. cmp r0, #IndexOfNightHeldItem
  21. bne back

  22. ItemReduction:
  23. mov r0, r9
  24. mov r1, #0xc
  25. mov r2, #0
  26. str r2, [sp]
  27. mov r2, sp
  28. ldr r3, =Encrypt
  29. bl bx_r3

  30. back:
  31. mov r0, r9
  32. mov r1, #0xB
  33. mov r2, r4
  34. add r2, #0xC
  35. ldr r3, =Encrypt
  36. bl bx_r3
  37. mov r0, r9
  38. ldr r3, =BackAddr

  39. bx_r3:
  40. bx r3
  41. .ltorg
复制代码

作者: Deicde丶笑沧海    时间: 2016-7-30 13:12
这是火红?
作者: jiangzhengwenjz    时间: 2016-7-30 13:28
Deicde丶笑沧海 发表于 2016-7-30 13:12
这是火红?

火红,移植到绿宝石需要改.set的各种地址 以及跳出的地址
作者: Deicde丶笑沧海    时间: 2016-7-30 13:59
jiangzhengwenjz 发表于 2016-7-30 13:28
火红,移植到绿宝石需要改.set的各种地址 以及跳出的地址

懒得看了




欢迎光临 Pokemon Center | 口袋中心 以口袋妖怪为主题并带有其他动漫游戏的讨论 (http://162.218.49.243/) Powered by Discuz! X3