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

 找回密码
 加入口袋中心
搜索
查看: 4974|回复: 5

改版杂项集合

[复制链接]

3344

回帖

362

现金

484

勋章券

超级版主

Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26Rank: 26

积分
21831
QQ

时光印记Lv.3挥金如土勋章水中王者勋章Lv3Omega红宝石发售确认纪念章Alpha蓝宝石发售确认纪念章金银好CP-Ho-oh/LUGIA【里】金银好CP-Ho-oh/LUGIA【真·正常向】异化型LUGIA【M超梦版】

发表于 2015-8-15 00:47:12 | 显示全部楼层 |阅读模式
本帖最后由 jiangzhengwenjz 于 2020-2-29 23:03 编辑

由于一些东西的内容不足以支撑整个主题帖,因此我单开一贴,记录这些源码或修改,目前量还非常少,不过会不断扩充

不会编译源码的看这里:http://tieba.baidu.com/p/3552794531
之后更新的有些内容甚至称不上研究,只是对一些东西的分析,做个记录,希望能长期更新
当然所有代码限于火红

一、连锁技能回合数自定义与扩充【反向追踪后归结于对战斗命令0x8d与0x8e改建
1. 破除显示位数限制: (1→2)
在0x8028224写入
  1. 00 48 00 47 [XX+1 XX XX 08/09] 00 00
复制代码
框内部分是以下程序指针(thumb模式+1)
  1. .thumb
  2. .align 2
  3. mov r0, #0x1
  4. strb r0, [r1, #9]
  5. strb r0, [r1, #0xa]
  6. strb r2, [r1, #0xc]
  7. mov r0, #0x2
  8. strb r0, [r1, #0xb]
  9. ldr r0, =0x802822f
  10. bx r0
复制代码
2. 自定义攻击回合数上下限:
于0x281f2写入:
  1. [1字节上限] 25 28 40 [1字节下限] 28 F9 DB 20 70 00 00 00 00 00 00 00 00 00 00
复制代码
注意勿使上限十进制值超过99,以及遵循下限小于上限的默认条件.

预览:(后面有些卡并非游戏问题)


二、跳过性别选择:
于0x12fdbc写入
  1. a1 00 13 08
复制代码
三、菜单扩容:
【本来差不多完成了,但源码却由于某些偶然原因暂时无法重新入手,等何时找回补上
终于得到了源码,但因为年代久远有些忘了。。所以这个可能有疏漏
首先这是我的源码以及前期工作:
hook1.asm
Code:
  1. .thumb
  2. .align 2
  3. @insert at 0806f39c
  4. bx r0
  5. lsl r0, r0, #0
复制代码
hook2.asm
Code:
  1. @insert at 0806edf4
  2. .thumb
  3. .align 2
  4. ldr r2, =main2.asm的地址+1
  5. bx r2
复制代码
main1.asm
Code:
  1. .thumb
  2. .align 2
  3. ldr r0, =0x0806F4E9
  4. cmp r1, r0
  5. beq return
  6. ldr r0, =下面老外程序的地址+1
  7. cmp r1, r0
  8. beq return
  9. ldr r0, =0x0806f3a1
  10. bx r0

  11. return:
  12. pop {r0}
  13. bx r0
复制代码
main2.asm
Code:
  1. .thumb
  2. .align 2
  3. ldr r2, =0x0806ed95
  4. bl linker
  5. mov r0, #9
  6. ldr r2, =0x0806ed95
  7. bl linker
  8. pop {r0}
  9. bx r0


  10. linker:
  11. bx r2
复制代码
另这里有个从老外那里搞来的运行菜单脚本源码、我就不修改了,直接放出,原理当然也是极为简单的。。
  1. .thumb

  2. Main:
  3.         push {r0,lr}
  4.         bl CERRAR_MENU
  5.         bl RUTINASONICARVALHO
  6.         pop {r0,pc}

  7. CERRAR_MENU:
  8.         ldr r0, RUTINA_EXIT
  9.         bx r0

  10. RUTINASONICARVALHO:
  11.         push {lr}
  12.         ldr r0, SCRIPT_ADRESS
  13.         bl SCRIPT_ROUTINE
  14.         pop {pc}

  15. SCRIPT_ROUTINE:
  16.         ldr r1, SCRIPT_EXECUTER
  17.         bx r1

  18. .align 2

  19. RUTINA_EXIT:
  20.         .word 0x0806f541
  21. SCRIPT_ADRESS:
  22.         .word 0x08XXXXXX @此处改成脚本地址,并删掉我这个注释
  23. SCRIPT_EXECUTER:
  24.         .word 0x08069ae5
复制代码
需要做的:
1. 重定向位于0x3a7344的表格,格式为[名称文本指针][该选项程序指针]........
2. 重定向位于0x3a7390的表格,格式为[介绍文本指针]...........
3. 将0806F3C0的指针改去指向main1.asm(thumb模式+1)
4. 根据源码中的位置提示在指定位置修改,并写入这些源码
5. 在2个表格中新增对应内容【废话

然后应该就行了,但可能也有些错误。。当然嫌介绍碍眼直接阉掉估计也并无不可,等有空弄吧。。

四、绿宝石对战前动画:

1. 修改以下字节
  1. 0x147C6A - 00 00 00 00
  2. 0xB13FD - 78
  3. 0x5C8F90 - CD 6A 0F 73 51 7B 93 7F D5 7F FF 7F
  4. 0x5C8F70 - CD 6A 0F 73 51 7B 93 7F D5 7F FF 7F
  5. 0x5C8F50 - CD 6A 0F 73 51 7B 93 7F D5 7F FF 7F
复制代码
2. 找空位写入下面的源码并作相应的字节变换:
写入00 48 00 47 AA AA AA 08于 0xB0F44, AA AA AA 08是下面源码指针(thumb模式+1)
  1. .thumb
  2. .align 2
  3. ldrb r2, [r4, #7]
  4. cmp r2, #0
  5. beq normal
  6. ldr r0, =0x80B0F5D
  7. bx r0

  8. normal:
  9. ldrh r2, [r4]
  10. lsl r0, r2, #2
  11. add r0, r0, r2
  12. lsl r0, r0, #3
  13. add r0, r0, r1
  14. ldr r1, =0x80B0F4F
  15. bx r1
复制代码
写入00 48 00 47 BB BB BB 08于 0xB5E78, BB BB BB 08是下面源码指针(thumb模式+1)
  1. .thumb
  2. .align 2
  3. cmp r4, #0x47
  4. beq normal
  5. cmp r4, #0x48
  6. beq normal
  7. ldr r0, =0x2038BCA
  8. ldrh r0, [r0]
  9. lsl r5, r0, #2
  10. add r5, r0, r5
  11. lsl r0, r5, #3
  12. ldr r5, =0x806E4C4
  13. ldr r5, [r5]
  14. add r0, r0, r5
  15. ldrb r4, [r0, #3]

  16. normal:
  17. add r5, r1, #0
  18. add r6, r2, #0
  19. mov r9, r3
  20. ldr r7, [sp, #0x34]
  21. ldr r0, =0x80B5E81
  22. bx r0
复制代码
写入01 49 08 47 00 00 CC CC CC 08于 0x147C42, CC CC CC 08是下面源码指针(thumb模式+1)
并将源码中0x8FFFFFF改为你的新色板表格
表格结构为[指针1][指针2][指针3]................
每个指针都应指向32字节的未压缩色板数据。
  1. .thumb
  2. main:
  3. ldr r1, ramoffset
  4. ldrh r1, [r1, #0x0]
  5. lsl r0, r1, #0x2
  6. add r0, r0, r1
  7. lsl r1, r0, #0x3
  8. ldr r0, trainertable
  9. ldr r0, [r0, #0x0]
  10. add r1, r0, r1
  11. ldrb r1, [r1, #0x1]
  12. cmp r1, #0x1f
  13. beq oldway
  14. cmp r1, #0x26
  15. beq oldway
  16. ldr r1, ramoffset
  17. ldrb r1, [r1, #0x7]
  18. sub r1, #0x1
  19. lsl r1, r1, #0x2
  20. ldr r0, table2
  21. add r1, r1, r0
  22. ldr r0, [r1, #0x0]
  23. b back
  24. oldway: ldr r1, table
  25. mov r2, r8
  26. mov r3, #0x26
  27. ldrh r0, [r2, r3]
  28. lsl r0, r0, #0x2
  29. add r0, r0, r1
  30. ldr r0, [r0, #0x0]
  31. back: ldr r1, return
  32. bx r1

  33. .align 2
  34. ramoffset: .word 0x02038BCA
  35. trainertable: .word 0x0806E4C4
  36. table:  .word 0x085C8FDC
  37. table2:  .word 0x08FFFFFF
  38. return:  .word 0x08147C51
复制代码
如何在脚本中触发:
  1. trainerbattle 0(战斗类型,可更改) 0x50(对战的训练师ID) 0x0100 @pointertomsg1(文本指针1) @pointertomsg2(文本指针2)
复制代码
其中0x0100代表你的位于0x8FFFFFF的表格中的1号色板,0x0200为2号,0x0300为3号..................0xFF00为255号(0则代表不触发此动画),表格中最多堆放255个色板指针

一些游戏中使用的色板数据,可以用APE来修改他们以达到你的要求:(在不更改图片和raw的情况下,颜色要对应上,所以必须对应修改)
  1. D5 18 CE 39 52 4A D6 5A 5A 6B 17 5C 59 64 9B 6C DD 74 1F 7D CD 6A 0F 73 51 7B 93 7F D5 7F FF 7F
复制代码
  1. D5 18 CE 39 52 4A D6 5A 5A 6B 41 07 A4 13 C6 1B E9 27 EF 3F FC 45 3E 4E 7F 56 BF 5E FF 66 FC 45
复制代码
若使用请注上Jambo51和jirachiwish的名字。

五、 火红自定义givepokemon:
  1. .thumb
  2. /*脚本中使用方法:
  3. lock
  4. faceplayer
  5. setvar 0x8000 0x19A //种族编号
  6. setvar 0x8001 0x28 //等级
  7. setvar 0x8002 0x8F //携带道具
  8. setvar 0x8007 0x1F //6个个体值
  9. setvar 0x8008 0x1F
  10. setvar 0x8009 0x1F
  11. setvar 0x800A 0x1F
  12. setvar 0x800B 0x1F
  13. setvar 0x800D 0x1F
  14. setvar 0x800F 0x1 //闪光=1 不闪光=0
  15. setvar 0x8014 0x1 //怪兽球编号
  16. callasm 0x8LLLLLL //LLLLLL改为本源码地址+1,相当于加强版givepokemon
  17. release
  18. end*/

  19. main_func:
  20. push {r4-r7, lr}
  21. sub sp, sp, #0x20
  22. mov r0, #0x64
  23. ldr r1, .malloc
  24. bl jump_r1
  25. mov r8, r0
  26. ldr r1, .clear
  27. bl jump_r1
  28. mov r0, r8
  29. ldr r1, .clear2
  30. bl jump_r1
  31. ldr r1, .random
  32. bl jump_r1
  33. mov r4, r0
  34. ldr r0, .saveblockptr
  35. ldr r2, [r0]
  36. add r2, #0xA @OTID_loc
  37. add r6, r2, #0
  38. ldrh r1, [r2]
  39. ldrh r5, [r2, #2]
  40. eor r5, r1 @TID xor SID
  41. ldr r3, .var
  42. ldrh r3, [r3, #0x1A]
  43. ldr r1, .random
  44. bl jump_r1
  45. bl shinycheck
  46. /*r0 = PID1, r4 = PID2*/
  47. lsl r0, r0, #0x10
  48. ldr r2, .var
  49. add r2, #0x20
  50. strh r4, [r2]
  51. orr r0, r4 @PID
  52. mov r1, #0
  53. ldr r2, .var
  54. add r2, #0x1C
  55. str r0, [r2]
  56. mov r0, r8
  57. ldr r3, .setter1
  58. bl jump_r3
  59. mov r0, r8
  60. ldr r3, .setter1
  61. mov r1, #1
  62. add r2, r6, #0
  63. bl jump_r3
  64. mov r0, r8
  65. ldr r1, .checksum
  66. bl jump_r1
  67. ldr r2, .var
  68. add r2, #0x1C
  69. strh r0, [r2]
  70. mov r0, r8
  71. mov r1, #9
  72. ldr r3, .setter1
  73. bl jump_r3
  74. mov r0, r8
  75. ldr r1, .encrypt
  76. bl jump_r1
  77. mov r0, sp
  78. ldr r1, .var
  79. ldrh r1, [r1]
  80. ldr r3, .loadname
  81. bl jump_r3
  82. mov r0, r8
  83. mov r1, #2
  84. mov r2, sp
  85. ldr r3, .setter1
  86. bl jump_r3
  87. ldr r2, .language
  88. mov r0, r8
  89. mov r1, #3
  90. ldr r3, .setter1
  91. bl jump_r3
  92. mov r0, r8
  93. ldr r5, .saveblockptr
  94. ldr r2, [r5]
  95. mov r1, #7
  96. ldr r3, .setter1
  97. bl jump_r3
  98. mov r0, r8
  99. mov r1, #0xb
  100. ldr r2, .var
  101. ldr r3, .setter1
  102. bl jump_r3
  103. ldr r4, .stat
  104. ldr r2, .var
  105. ldrh r1, [r2]
  106. lsl r0, r1, #3
  107. sub r0, r0, r1
  108. lsl r0, r0, #2
  109. add r0, r0, r4
  110. ldrb r1, [r0, #0x13]
  111. mov r0, #0xCA
  112. lsl r0, r0, #1
  113. add r2, r1, #0
  114. mul r2, r0
  115. ldr r0, .var
  116. ldrb r0, [r0, #2]
  117. lsl r0, r0, #2
  118. ldr r1, .exp
  119. add r0, r0, r1
  120. add r2, r2, r0
  121. mov r0, r8
  122. mov r1, #0x19
  123. ldr r3, .setter1
  124. bl jump_r3
  125. ldr r1, .var
  126. ldrh r0, [r1]
  127. lsl r2, r0, #3
  128. sub r2, r2, r0
  129. lsl r2, r2, #2
  130. add r4, #0x12
  131. add r2, r2, r4
  132. mov r0, r8
  133. mov r1, #0x20
  134. ldr r3, .setter1
  135. bl jump_r3
  136. ldr r1, .catchlocation
  137. bl jump_r1
  138. lsl r0, r0, #0x18
  139. lsr r0, r0, #0x18
  140. mov r1, #0x23
  141. ldr r2, .var
  142. add r2, #0x1C
  143. str r0, [r2]
  144. mov r0, r8
  145. ldr r3, .setter1
  146. bl jump_r3
  147. mov r0, r8
  148. mov r1, #0x24
  149. ldr r2, .var
  150. add r2, r2, #2
  151. ldr r3, .setter1
  152. bl jump_r3
  153. mov r0, r8
  154. ldr r2, .version
  155. mov r1, #0x25
  156. ldr r3, .setter1
  157. bl jump_r3
  158. ldr r2, .var
  159. add r2, #0x26
  160. mov r1, #0x26
  161. mov r0, r8
  162. ldr r3, .setter1
  163. bl jump_r3
  164. ldr r2, [r5]
  165. add r2, #8
  166. mov r0, r8
  167. mov r1, #0x31
  168. ldr r3, .setter1
  169. bl jump_r3
  170. bl iv_encrypt
  171. ldr r2, .stat
  172. ldr r3, .var
  173. ldrh r1, [r3]
  174. lsl r0, r1, #3
  175. sub r0, r0, r1
  176. lsl r0, r0, #2
  177. add r0, r0, r2
  178. ldrb r0, [r0, #0x17]
  179. cmp r0, #0
  180. beq end
  181. ldr r2, .var
  182. add r2, #0x1C
  183. ldrh r0, [r2, #4]
  184. mov r1, #1
  185. and r0, r1
  186. str r0, [r2]
  187. mov r0, r8
  188. mov r1, #0x2E
  189. ldr r3, .setter1
  190. bl jump_r3

  191. end:
  192. mov r0, r8
  193. ldr r1, .sub_803E9E0
  194. bl jump_r1
  195. mov r0, r8
  196. mov r1, #0x38
  197. ldr r2, .var
  198. add r2, r2, #2
  199. ldr r3, .setter2
  200. bl jump_r3
  201. mov r0, r8
  202. mov r1, #0x40
  203. ldr r2, .var
  204. add r2, #0x1C
  205. mov r3, #0xFF
  206. str r3, [r2]
  207. ldr r3, .setter2
  208. bl jump_r3
  209. mov r0, r8
  210. ldr r1, .recalculation
  211. bl jump_r1
  212. mov r0, r8
  213. mov r1, #0xC
  214. ldr r2, .var
  215. add r2, #4
  216. ldr r3, .setter2
  217. bl jump_r3
  218. mov r0, r8
  219. ldr r1, .catch
  220. bl jump_r1
  221. lsl r0, r0, #0x18
  222. lsr r4, r0, #0x18
  223. ldr r0, .var
  224. ldrh r0, [r0]
  225. ldr r1, .convert
  226. bl jump_r1
  227. lsl r0, r0, #0x10
  228. lsr r5, r0, #0x10
  229. cmp r4, #1
  230. bgt back
  231. cmp r4, #0
  232. blt back
  233. add r0, r5, #0
  234. mov r1, #2
  235. ldr r3, .dexcheck
  236. bl jump_r3
  237. add r0, r5, #0
  238. mov r1, #3
  239. ldr r3, .dexcheck
  240. bl jump_r3

  241. back:
  242. mov r0, r8
  243. ldr r1, .free
  244. bl jump_r1
  245. add r0, r4, #0
  246. ldr r4, .var
  247. strh r0, [r4, #0x18]
  248. add sp, sp, #0x20
  249. mov r0, #0
  250. pop {r4-r7, pc}

  251. shinycheck:
  252. push {lr}
  253. cmp r3, #0
  254. beq jump_pc
  255. ldr r1, .random
  256. bl jump_r1
  257. mov r1, #7
  258. and r0, r1
  259. eor r0, r5
  260. eor r0, r4

  261. jump_pc:
  262. pop {pc}

  263. iv_encrypt:
  264. push {lr}
  265. mov r7, #0
  266. loop_iv:
  267. ldr r2, .var
  268. add r2, #0xE
  269. mov r0, r8
  270. ldr r3, .setter1
  271. add r1, r7, #0
  272. add r1, #0x27
  273. lsl r6, r7, #1
  274. add r2, r2, r6
  275. bl jump_r3
  276. add r7, r7, #1
  277. cmp r7, #6
  278. bne loop_iv
  279. pop {pc}

  280. jump_r1:
  281. bx r1

  282. jump_r3:
  283. bx r3

  284. .align 2
  285. .malloc: .word 0x08002BB1
  286. .clear: .word 0x0803D995
  287. .clear2: .word 0x0803D97D
  288. .random: .word 0x8044EC9
  289. .setter1: .word 0x080404D1
  290. .saveblockptr: .word 0x300500C
  291. .var: .word 0x020370B8
  292. .checksum: .word 0x0803E3E9
  293. .encrypt: .word 0x0803F8F9
  294. .loadname: .word 0x08040FD1
  295. .language: .word 0x081E9F11
  296. .stat: .word 0x08254784
  297. .exp: .word 0x08253AE4
  298. .catchlocation: .word 0x08056261
  299. .version: .word 0x081E9F10
  300. .sub_803E9E0: .word 0x0803E9E1
  301. .setter2: .word 0x0804037D
  302. .recalculation: .word 0x0803E47D
  303. .catch: .word 0x08040B15
  304. .convert: .word 0x08043299
  305. .dexcheck: .word 0x08088E75
  306. .free: .word 0x08002BC5
复制代码
六、翻动式多选框自定义:
实例:
  1. .thumb
  2. .align 2
  3. initialize_func:
  4. push {r4, r5, lr}
  5. ldr r0, =0x809D6D5
  6. ldr r1, =0x81119D5
  7. bl call_via_r1
  8. lsl r0, r0, #0x18
  9. lsr r0, r0, #0x18
  10. cmp r0, #1
  11. beq back
  12. mov r0, pc
  13. add r0, #0x43
  14. mov r1, #8
  15. ldr r2, =0x0807741D
  16. bl call_via_r2
  17. lsl r0, r0, #0x18
  18. lsr r5, r0, #0x18
  19. lsl r0, r5, #2
  20. add r0, r0, r5
  21. lsl r0, r0, #3
  22. ldr r1, =0x03005090
  23. add r3, r0, r1
  24. mov r2, #0
  25. ldr r1, =0x020370B8
  26. ldrh r0, [r1]
  27. strh r0, [r3, #8] @row_quantity
  28. ldrh r0, [r1, #2]
  29. strh r0, [r3, #0xA] @option_quantity
  30. ldrh r0, [r1, #0x12]
  31. strh r0, [r3, #0x12] @bottom_red_arrow_Y_coordinate
  32. ldrh r0, [r1, #4]
  33. strh r0, [r3, #0xC] @X_coordinate
  34. ldrh r0, [r1, #6]
  35. strh r0, [r3, #0xE] @Y_coordinate
  36. mov r0, #8
  37. strh r0, [r3, #0x10]
  38. mov r0, #0
  39. strh r0, [r3, #0x14]
  40. strh r5, [r3, #0x26]
  41. ldrh r0, [r1, #8]
  42. strh r0, [r3, #0x16]
  43. ldrh r0, [r1, #0xA]
  44. strh r0, [r3, #0x18]
  45. back:
  46. pop {r4, r5, pc}
  47. main_func:
  48. push {r4-r7, lr}
  49. mov r7, r10
  50. mov r6, r9
  51. mov r5, r8
  52. push {r5-r7}
  53. sub sp, sp, #0x20
  54. lsl r0, r0, #0x18
  55. lsr r7, r0, #0x18
  56. lsl r0, r7, #2
  57. add r0, r0, r7
  58. lsl r0, r0, #3
  59. ldr r1, =0x03005090
  60. add r5, r0, r1
  61. ldr r1, =0x03000F28
  62. mov r0, #1
  63. strb r0, [r1]
  64. ldr r0, =0x2039A18
  65. ldr r1, =0x2039A0E
  66. ldrh r1, [r1]
  67. strh r1, [r0]
  68. ldr r4, =0x2039A14
  69. mov r1, #0xA
  70. ldrsh r0, [r5, r1]
  71. lsl r0, r0, #3
  72. ldr r1, =0x8002BB1
  73. bl call_via_r1
  74. str r0, [r4]
  75. ldr r2, =0x80CBA7D
  76. bl call_via_r2
  77. mov r6, #0
  78. mov r4, #0
  79. mov r2, #0xA
  80. ldrsh r0, [r5, r2]
  81. lsl r3, r7, #2
  82. mov r10, r3
  83. add r1, sp, #0x18
  84. mov r9, r1
  85. cmp r6, r0
  86. bge .L_0
  87. ldr r2, table
  88. ldr r1, =0x020370B8
  89. ldrh r1, [r1, #0xC]
  90. lsl r1, r1, #0x2
  91. add r2, r2, r1
  92. ldr r2, [r2]
  93. mov r8, r2
  94. .L_1:
  95. ldr r0, =0x2039A14
  96. ldr r0, [r0]
  97. lsl r3, r4, #3
  98. add r3, r3, r0
  99. lsl r2, r4, #2
  100. add r2, r8
  101. ldr r1, [r2]
  102. str r1, [r3]
  103. str r4, [r3, #4]
  104. mov r0, #2
  105. mov r2, #0
  106. push {r4}
  107. ldr r4, =0x8005ED5
  108. bl call_via_r4
  109. pop {r4}
  110. cmp r0, r6
  111. ble .L_2
  112. add r6, r0, #0
  113. .L_2:
  114. add r0, r4, #1
  115. lsl r0, r0, #0x18
  116. lsr r4, r0, #0x18
  117. mov r3, #0xA
  118. ldrsh r0, [r5, r3]
  119. cmp r4, r0
  120. blt .L_1
  121. .L_0:
  122. mov r0, r6
  123. add r0, #9
  124. cmp r0, #0
  125. bge .L_3
  126. add r0, #7
  127. .L_3:
  128. asr r0, r0, #3
  129. add r2, r0, #1
  130. strh r2, [r5, #0x10]
  131. mov r1, #0xC
  132. ldrsh r0, [r5, r1]
  133. mov r3, #0x10
  134. ldrsh r1, [r5, r3]
  135. add r0, r0, r1
  136. cmp r0, #0x1D
  137. ble .L_4
  138. mov r0, #0x1D
  139. sub r0, r0, r2
  140. strh r0, [r5, #0xC]
  141. .L_4:
  142. ldrb r2, [r5, #0xC]
  143. ldrb r3, [r5, #0xE]
  144. ldr r1, =0x020370B8
  145. ldrh r0, [r1, #0xE]
  146. str r0, [sp] @width
  147. ldrh r0, [r1, #0x10]
  148. str r0, [sp, #4] @height
  149. mov r0, #0xF
  150. str r0, [sp, #8] @palette?
  151. mov r0, #0x38
  152. str r0, [sp, #0xC]
  153. add r0, sp, #0x10
  154. mov r1, #0
  155. ldr r4, =0x0810FE51
  156. bl call_via_r4
  157. ldr r0, [sp, #0x10]
  158. ldr r1, [sp, #0x14]
  159. str r0, [sp, #0x18]
  160. str r1, [sp, #0x1C]
  161. mov r0, r9
  162. ldr r4, =0x08003CE5
  163. bl call_via_r4
  164. lsl r0, r0, #0x18
  165. lsr r0, r0, #0x18
  166. strh r0, [r5, #0x22]
  167. mov r1, #0
  168. ldr r4, =0x80F7751
  169. bl call_via_r4
  170. ldr r4, =0x3005360
  171. ldrh r0, [r5, #0xA]
  172. strh r0, [r4, #0xC]
  173. ldrh r0, [r5, #8]
  174. strh r0, [r5, #0xE]
  175. ldrh r0, [r5, #0x22]
  176. strb r0, [r4, #0x10]
  177. mov r0, r7
  178. ldr r1, =0x80CBCC1
  179. bl call_via_r1
  180. ldrh r1, [r5, #0x16]
  181. ldrh r2, [r5, #0x18]
  182. mov r0, r4
  183. ldr r3, =0x8106FF9
  184. bl call_via_r3
  185. lsl r0, r0, #0x18
  186. lsr r0, r0, #0x18
  187. strh r0, [r5, #0x24]
  188. ldrh r0, [r5, #0x22]
  189. lsl r0, r0, #0x18
  190. lsr r0, r0, #0x18
  191. ldr r1, =0x8003FA1
  192. bl call_via_r1
  193. ldrh r0, [r5, #0x22]
  194. lsl r0, r0, #0x18
  195. lsr r0, r0, #0x18
  196. mov r1, #3
  197. ldr r3, =0x8003F21
  198. bl call_via_r3
  199. ldr r1, =0x03005090
  200. mov r2, r10
  201. add r0, r2, r7
  202. lsl r0, r0, #3
  203. add r0, r0, r1
  204. ldr r1, =0x80CBB29
  205. str r1, [r0]
  206. add sp, sp, #0x20
  207. pop {r3-r5}
  208. mov r8, r3
  209. mov r9, r4
  210. mov r10, r5
  211. pop {r4-r7, pc}
  212. call_via_r1:
  213. bx r1
  214. call_via_r2:
  215. bx r2
  216. call_via_r3:
  217. bx r3
  218. call_via_r4:
  219. bx r4
  220. .align 2
  221. table: .word 0x8表格地址
复制代码
需自建表格,表格1的地址填入源码,由指针构成,每个指针都指向一个表格(表格2),表格2亦由指针构成,每个指针都指向文本(0xff结尾)。
范例脚本:
  1. #org @specialhack
  2. lock
  3. setvar 0x8000 0x1 //行数量
  4. setvar 0x8001 0x7 //选项数量
  5. setvar 0x8002 0xA //X坐标
  6. setvar 0x8003 0x5 //Y坐标
  7. setvar 0x8004 0x0 //起始选项编号
  8. setvar 0x8005 0x0 //初始框中的光标位置
  9. setvar 0x8006 0x0 //框编号(对应于表格)
  10. setvar 0x8007 0x8 //宽度
  11. setvar 0x8008 0x2 //高度
  12. setvar 0x8009 0xA //下面红色箭头的Y坐标
  13. callasm 0x8[本程序地址 + 1]
  14. waitstate
  15. release
  16. end
复制代码
回复

使用道具 举报

10

回帖

89

现金

0

勋章券

口袋学堂外的努力

Rank: 2Rank: 2

积分
20
发表于 2015-8-15 12:46:55 | 显示全部楼层
本帖最后由 殇月 于 2015-8-19 19:33 编辑

赞顶虽然最后的看不太懂。
回复 支持 反对

使用道具 举报

172

回帖

61

现金

2

勋章券

摆脱困境的长叹

Rank: 8Rank: 8Rank: 8Rank: 8

积分
568
QQ

时光印记Lv.1水中王者勋章Lv1论坛十周年纪念物

发表于 2015-8-16 01:00:16 | 显示全部楼层
这是什么东西?我根本看不懂啊。
回复 支持 反对

使用道具 举报

139

回帖

171

现金

2

勋章券

繁华都市的喧闹

Rank: 5Rank: 5Rank: 5

积分
280
发表于 2015-8-18 10:55:43 | 显示全部楼层
我也来加一个
火红跳过对手名字选择
  1. 130690处改成d1 07 13 08
复制代码
回复 支持 反对

使用道具 举报

144

回帖

1843

现金

0

勋章券

与恶势力的交锋

Rank: 7Rank: 7Rank: 7

积分
483

No.258-260水跃鱼一家小火狐时光印记Lv.1水中王者勋章Lv1

发表于 2015-8-19 03:23:17 | 显示全部楼层
忙碌的德国君
回复 支持 反对

使用道具 举报

33

回帖

156

现金

0

勋章券

新伙伴的欢笑

Rank: 3

积分
85

时光印记Lv.1

发表于 2015-10-24 06:41:20 来自手机 | 显示全部楼层
赞,感谢楼主分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入口袋中心

本版积分规则

手机版|Archiver|Pokemon Center

GMT+8, 2024-3-29 23:17 , Processed in 0.114280 second(s), 63 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表