返回列表 发帖

【原创】REVIVE苏生压缩反编译源码(dc)

  1. ROM:8C03021C                                         ; sub_8C010228+150p ...
  2. ROM:8C03021C                 mov.l   r14, @-r15
  3. ROM:8C03021E                 mov.l   r13, @-r15
  4. ROM:8C030220                 mov.l   r12, @-r15
  5. ROM:8C030222                 mov.l   r11, @-r15
  6. ROM:8C030224                 mov.l   r10, @-r15
  7. ROM:8C030226                 mov.l   r9, @-r15
  8. ROM:8C030228                 mov.l   r8, @-r15
  9. ROM:8C03022A                 add     #-4, r15
  10. ROM:8C03022C                 mov.w   @(h'DE,pc), r8 ; [8C03030E] = h'80
  11. ROM:8C03022E                 mov     r4, r11
  12. ROM:8C030230                 mov     #4, r10
  13. ROM:8C030232                 mov.l   r5, @r15
  14. ROM:8C030234                 mov     #2, r9
  15. ROM:8C030236                 add     r6, r11         ; r11为压缩数据大小
  16. ROM:8C030238                 bra     loc_8C0302F2
  17. ROM:8C03023A                 mov     #8, r14
  18. ROM:8C03023C ; ---------------------------------------------------------------------------
  19. ROM:8C03023C
  20. ROM:8C03023C loc_8C03023C:                           ; CODE XREF: sub_8C03021C+D8j
  21. ROM:8C03023C                 mov.b   @r4+, r12       ; 压缩数据读一个字节
  22. ROM:8C03023E                 extu.b  r12, r12
  23. ROM:8C030240                 bra     loc_8C0302EA
  24. ROM:8C030242                 mov     #0, r13
  25. ROM:8C030244 ; ---------------------------------------------------------------------------
  26. ROM:8C030244
  27. ROM:8C030244 loc_8C030244:                           ; CODE XREF: sub_8C03021C+D4j
  28. ROM:8C030244                 mov     r12, r3
  29. ROM:8C030246                 mov.b   @r4+, r7
  30. ROM:8C030248                 tst     r8, r3          ; 判断r12的第0x7位是否为0,为0直接输出r7到解压地址
  31. ROM:8C03024A                 bt/s    loc_8C0302E2
  32. ROM:8C03024C                 extu.b  r7, r7
  33. ROM:8C03024E                 mov     r7, r6
  34. ROM:8C030250                 mov.w   @(h'BC,pc), r3 ; [8C030310] = h'FFFFFF00
  35. ROM:8C030252                 mov.b   @r4+, r2        ; 从压缩地址在读一个字节r2
  36. ROM:8C030254                 shll2   r6
  37. ROM:8C030256                 shll2   r6
  38. ROM:8C030258                 mov.w   @(h'B6,pc), r1 ; [8C030312] = h'FFFFF000
  39. ROM:8C03025A                 extu.b  r2, r2          ; r6最终==字节r7的高4位左移4位+读入的第2个字节r2
  40. ROM:8C03025C                 and     r3, r6          ; r6=(r7<<4)&0xff00
  41. ROM:8C03025E                 or      r2, r6          ; r6=r6|第2个字节
  42. ROM:8C030260                 or      r1, r6          ; 最后算出回退量r6=r6|f000
  43. ROM:8C030262                 add     r5, r6          ; 解压地址回退r6个字节
  44. ROM:8C030264                 mov.b   @r6+, r0
  45. ROM:8C030266                 mov     #1, r2          ; 先从回退后的地址读一个字节写入到解压地址,循环2次
  46. ROM:8C030268                 tst     r7, r2          ; 接下来的循环为读入的第1个字节的r7的低4位,为循环写入字节的次数
  47. ROM:8C03026A                 mov.b   r0, @r5
  48. ROM:8C03026C                 add     #1, r5
  49. ROM:8C03026E                 mov.b   @r6+, r0        ; r7最低位为1.,写入一次
  50. ROM:8C030270                 mov.b   r0, @r5
  51. ROM:8C030272                 bt/s    loc_8C03027C
  52. ROM:8C030274                 add     #1, r5
  53. ROM:8C030276                 mov.b   @r6+, r3
  54. ROM:8C030278                 mov.b   r3, @r5
  55. ROM:8C03027A                 add     #1, r5
  56. ROM:8C03027C
  57. ROM:8C03027C loc_8C03027C:                           ; CODE XREF: sub_8C03021C+56j
  58. ROM:8C03027C                 mov     r7, r2
  59. ROM:8C03027E                 tst     r9, r2
  60. ROM:8C030280                 bt/s    loc_8C030290
  61. ROM:8C030282                 mov     r7, r2          ; r7第0x1位为1.,写入2次
  62. ROM:8C030284                 mov.b   @r6+, r3
  63. ROM:8C030286                 mov.b   r3, @r5
  64. ROM:8C030288                 add     #1, r5
  65. ROM:8C03028A                 mov.b   @r6+, r3
  66. ROM:8C03028C                 mov.b   r3, @r5
  67. ROM:8C03028E                 add     #1, r5
  68. ROM:8C030290
  69. ROM:8C030290 loc_8C030290:                           ; CODE XREF: sub_8C03021C+64j
  70. ROM:8C030290                 tst     r10, r2
  71. ROM:8C030292                 bt      loc_8C0302AC
  72. ROM:8C030294                 mov.b   @r6+, r3        ; r7第0x2位为1.,写入4次
  73. ROM:8C030296                 mov.b   r3, @r5
  74. ROM:8C030298                 add     #1, r5
  75. ROM:8C03029A                 mov.b   @r6+, r3
  76. ROM:8C03029C                 mov.b   r3, @r5
  77. ROM:8C03029E                 add     #1, r5
  78. ROM:8C0302A0                 mov.b   @r6+, r3
  79. ROM:8C0302A2                 mov.b   r3, @r5
  80. ROM:8C0302A4                 add     #1, r5
  81. ROM:8C0302A6                 mov.b   @r6+, r3
  82. ROM:8C0302A8                 mov.b   r3, @r5
  83. ROM:8C0302AA                 add     #1, r5
  84. ROM:8C0302AC
  85. ROM:8C0302AC loc_8C0302AC:                           ; CODE XREF: sub_8C03021C+76j
  86. ROM:8C0302AC                 tst     r14, r7
  87. ROM:8C0302AE                 bt      loc_8C0302E6
  88. ROM:8C0302B0                 mov.b   @r6+, r2        ; r7第0x3位为.,写入8次
  89. ROM:8C0302B2                 mov.b   r2, @r5
  90. ROM:8C0302B4                 add     #1, r5
  91. ROM:8C0302B6                 mov.b   @r6+, r2
  92. ROM:8C0302B8                 mov.b   r2, @r5
  93. ROM:8C0302BA                 add     #1, r5
  94. ROM:8C0302BC                 mov.b   @r6+, r2
  95. ROM:8C0302BE                 mov.b   r2, @r5
  96. ROM:8C0302C0                 add     #1, r5
  97. ROM:8C0302C2                 mov.b   @r6+, r2
  98. ROM:8C0302C4                 mov.b   r2, @r5
  99. ROM:8C0302C6                 add     #1, r5
  100. ROM:8C0302C8                 mov.b   @r6+, r2
  101. ROM:8C0302CA                 mov.b   r2, @r5
  102. ROM:8C0302CC                 add     #1, r5
  103. ROM:8C0302CE                 mov.b   @r6+, r2
  104. ROM:8C0302D0                 mov.b   r2, @r5
  105. ROM:8C0302D2                 add     #1, r5
  106. ROM:8C0302D4                 mov.b   @r6+, r2
  107. ROM:8C0302D6                 mov.b   r2, @r5
  108. ROM:8C0302D8                 add     #1, r5
  109. ROM:8C0302DA                 mov.b   @r6, r2
  110. ROM:8C0302DC                 mov.b   r2, @r5
  111. ROM:8C0302DE                 bra     loc_8C0302E6
  112. ROM:8C0302E0                 add     #1, r5
  113. ROM:8C0302E2 ; ---------------------------------------------------------------------------
  114. ROM:8C0302E2
  115. ROM:8C0302E2 loc_8C0302E2:                           ; CODE XREF: sub_8C03021C+2Ej
  116. ROM:8C0302E2                 mov.b   r7, @r5
  117. ROM:8C0302E4                 add     #1, r5
  118. ROM:8C0302E6
  119. ROM:8C0302E6 loc_8C0302E6:                           ; CODE XREF: sub_8C03021C+92j
  120. ROM:8C0302E6                                         ; sub_8C03021C+C2j
  121. ROM:8C0302E6                 add     #1, r13
  122. ROM:8C0302E8                 shll    r12
  123. ROM:8C0302EA
  124. ROM:8C0302EA loc_8C0302EA:                           ; CODE XREF: sub_8C03021C+24j
  125. ROM:8C0302EA                 cmp/hs  r14, r13
  126. ROM:8C0302EC                 bt      loc_8C0302F2
  127. ROM:8C0302EE                 cmp/hs  r11, r4
  128. ROM:8C0302F0                 bf      loc_8C030244
  129. ROM:8C0302F2
  130. ROM:8C0302F2 loc_8C0302F2:                           ; CODE XREF: sub_8C03021C+1Cj
  131. ROM:8C0302F2                                         ; sub_8C03021C+D0j
  132. ROM:8C0302F2                 cmp/hs  r11, r4
  133. ROM:8C0302F4                 bf      loc_8C03023C
  134. ROM:8C0302F6                 mov.l   @r15, r3
  135. ROM:8C0302F8                 mov     r5, r0
  136. ROM:8C0302FA                 sub     r3, r0
  137. ROM:8C0302FC                 add     #4, r15
  138. ROM:8C0302FE                 mov.l   @r15+, r8
  139. ROM:8C030300                 mov.l   @r15+, r9
  140. ROM:8C030302                 mov.l   @r15+, r10
  141. ROM:8C030304                 mov.l   @r15+, r11
  142. ROM:8C030306                 mov.l   @r15+, r12
  143. ROM:8C030308                 mov.l   @r15+, r13
  144. ROM:8C03030A                 rts
  145. ROM:8C03030C                 mov.l   @r15+, r14
复制代码

要是也能加入到汉化日程就好了.....
フラナガン機關

TOP

拉人来吧

TOP

编辑

TOP

3连了

TOP

返回列表