Advertisement
Prof9

MMBN RNG carryover glitch

Apr 22nd, 2017
1,007
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.41 KB | None | 0 0
  1. MMBN RNG carryover glitch
  2.  
  3. On two successive RNG calls, the second rng.next(x) preserves lower ffs(x) bits from previous result or is a known value.
  4. ffs(x) = find first set; index of lowest bit set to 1
  5.  
  6. Affected:
  7. - MMBN4 (battle selection, GMD contents)
  8. - MMBN5 (GMD contents, more?)
  9.  
  10. Not known to be affected:
  11. - MMBN6 (successive RNG calls usually flush leftover bits first)
  12.  
  13. 00-01 -> 00-0F: skews
  14. 00 -> 0, 2, 3, 3, 4, 6, 7, 7, 8, A, B, B, C, E, F, F
  15. 01 -> 0, 1, 1, 2, 4, 5, 5, 6, 8, 9, 9, A, C, D, D, E
  16.  
  17. 00-7F -> 00-FF: partitions in 4
  18. 00-1F -> A5, C0-E4, E6-FF
  19. 20-3F -> 65, 80-A4, A6-BF
  20. 40-5F -> 25, 40-64, 66-7F
  21. 60-7F -> E5, 00-24, 26-3F
  22.  
  23. 00-7F -> 00-7F: partitions into 2
  24. 00-1F -> 25, 40-64, 66-7F
  25. 20-3F -> 65, 00-24, 26-3F
  26. 40-5F -> 25, 40-64, 66-7F
  27. 60-7F -> 65, 00-24, 26-3F
  28.  
  29. 00-3F -> 00-FF: partitions into 2
  30. 00-1F -> 25, A5, 40-64, 66-7F, C0-E4, E6-FF
  31. 20-3F -> 65, E5, 00-24, 26-3F, 80-A4, A6-BF
  32.  
  33. Conversion table for 00-7F -> 00-FF:
  34.  
  35. << 1 | 0,1 + 1 ^ E5
  36. ---------------------------------
  37. 00 -> 00 -> 00 -> 01 -> E4
  38. -> 01 -> 02 -> E7
  39. 01 -> 02 -> 02 -> 03 -> E6
  40. -> 03 -> 04 -> E1
  41. 02 -> 04 -> 04 -> 05 -> E0
  42. -> 05 -> 06 -> E3
  43. 03 -> 06 -> 06 -> 07 -> E2
  44. -> 07 -> 08 -> ED
  45. 04 -> 08 -> 08 -> 09 -> EC
  46. -> 09 -> 0A -> EF
  47. 05 -> 0A -> 0A -> 0B -> EE
  48. -> 0B -> 0C -> E9
  49. 06 -> 0C -> 0C -> 0D -> E8
  50. -> 0D -> 0E -> EB
  51. 07 -> 0E -> 0E -> 0F -> EA
  52. -> 0F -> 10 -> F5
  53. 08 -> 10 -> 10 -> 11 -> F4
  54. -> 11 -> 12 -> F7
  55. 09 -> 12 -> 12 -> 13 -> F6
  56. -> 13 -> 14 -> F1
  57. 0A -> 14 -> 14 -> 15 -> F0
  58. -> 15 -> 16 -> F3
  59. 0B -> 16 -> 16 -> 17 -> F2
  60. -> 17 -> 18 -> FD
  61. 0C -> 18 -> 18 -> 19 -> FC
  62. -> 19 -> 1A -> FF
  63. 0D -> 1A -> 1A -> 1B -> FE
  64. -> 1B -> 1C -> F9
  65. 0E -> 1C -> 1C -> 1D -> F8
  66. -> 1D -> 1E -> FB
  67. 0F -> 1E -> 1E -> 1F -> FA
  68. -> 1F -> 20 -> C5
  69. 10 -> 20 -> 20 -> 21 -> C4
  70. -> 21 -> 22 -> C7
  71. 11 -> 22 -> 22 -> 23 -> C6
  72. -> 23 -> 24 -> C1
  73. 12 -> 24 -> 24 -> 25 -> C0
  74. -> 25 -> 26 -> C3
  75. 13 -> 26 -> 26 -> 27 -> C2
  76. -> 27 -> 28 -> CD
  77. 14 -> 28 -> 28 -> 29 -> CC
  78. -> 29 -> 2A -> CF
  79. 15 -> 2A -> 2A -> 2B -> CE
  80. -> 2B -> 2C -> C9
  81. 16 -> 2C -> 2C -> 2D -> C8
  82. -> 2D -> 2E -> CB
  83. 17 -> 2E -> 2E -> 2F -> CA
  84. -> 2F -> 30 -> D5
  85. 18 -> 30 -> 30 -> 31 -> D4
  86. -> 31 -> 32 -> D7
  87. 19 -> 32 -> 32 -> 33 -> D6
  88. -> 33 -> 34 -> D1
  89. 1A -> 34 -> 34 -> 35 -> D0
  90. -> 35 -> 36 -> D3
  91. 1B -> 36 -> 36 -> 37 -> D2
  92. -> 37 -> 38 -> DD
  93. 1C -> 38 -> 38 -> 39 -> DC
  94. -> 39 -> 3A -> DF
  95. 1D -> 3A -> 3A -> 3B -> DE
  96. -> 3B -> 3C -> D9
  97. 1E -> 3C -> 3C -> 3D -> D8
  98. -> 3D -> 3E -> DB
  99. 1F -> 3E -> 3E -> 3F -> DA
  100. -> 3F -> 40 -> A5
  101. ---------------------------------
  102. 20 -> 40 -> 40 -> 41 -> A4
  103. -> 41 -> 42 -> A7
  104. 21 -> 42 -> 42 -> 43 -> A6
  105. -> 43 -> 44 -> A1
  106. 22 -> 44 -> 44 -> 45 -> A0
  107. -> 45 -> 46 -> A3
  108. 23 -> 46 -> 46 -> 47 -> A2
  109. -> 47 -> 48 -> AD
  110. 24 -> 48 -> 48 -> 49 -> AC
  111. -> 49 -> 4A -> AF
  112. 25 -> 4A -> 4A -> 4B -> AE
  113. -> 4B -> 4C -> A9
  114. 26 -> 4C -> 4C -> 4D -> A8
  115. -> 4D -> 4E -> AB
  116. 27 -> 4E -> 4E -> 4F -> AA
  117. -> 4F -> 50 -> B5
  118. 28 -> 50 -> 50 -> 51 -> B4
  119. -> 51 -> 52 -> B7
  120. 29 -> 52 -> 52 -> 53 -> B6
  121. -> 53 -> 54 -> B1
  122. 2A -> 54 -> 54 -> 55 -> B0
  123. -> 55 -> 56 -> B3
  124. 2B -> 56 -> 56 -> 57 -> B2
  125. -> 57 -> 58 -> BD
  126. 2C -> 58 -> 58 -> 59 -> BC
  127. -> 59 -> 5A -> BF
  128. 2D -> 5A -> 5A -> 5B -> BE
  129. -> 5B -> 5C -> B9
  130. 2E -> 5C -> 5C -> 5D -> B8
  131. -> 5D -> 5E -> BB
  132. 2F -> 5E -> 5E -> 5F -> BA
  133. -> 5F -> 60 -> 85
  134. 30 -> 60 -> 60 -> 61 -> 84
  135. -> 61 -> 62 -> 87
  136. 31 -> 62 -> 62 -> 63 -> 86
  137. -> 63 -> 64 -> 81
  138. 32 -> 64 -> 64 -> 65 -> 80
  139. -> 65 -> 66 -> 83
  140. 33 -> 66 -> 66 -> 67 -> 82
  141. -> 67 -> 68 -> 8D
  142. 34 -> 68 -> 68 -> 69 -> 8C
  143. -> 69 -> 6A -> 8F
  144. 35 -> 6A -> 6A -> 6B -> 8E
  145. -> 6B -> 6C -> 89
  146. 36 -> 6C -> 6C -> 6D -> 88
  147. -> 6D -> 6E -> 8B
  148. 37 -> 6E -> 6E -> 6F -> 8A
  149. -> 6F -> 70 -> 95
  150. 38 -> 70 -> 70 -> 71 -> 94
  151. -> 71 -> 72 -> 97
  152. 39 -> 72 -> 72 -> 73 -> 96
  153. -> 73 -> 74 -> 91
  154. 3A -> 74 -> 74 -> 75 -> 90
  155. -> 75 -> 76 -> 93
  156. 3B -> 76 -> 76 -> 77 -> 92
  157. -> 77 -> 78 -> 9D
  158. 3C -> 78 -> 78 -> 79 -> 9C
  159. -> 79 -> 7A -> 9F
  160. 3D -> 7A -> 7A -> 7B -> 9E
  161. -> 7B -> 7C -> 99
  162. 3E -> 7C -> 7C -> 7D -> 98
  163. -> 7D -> 7E -> 9B
  164. 3F -> 7E -> 7E -> 7F -> 9A
  165. -> 7F -> 80 -> 65
  166. ---------------------------------
  167. 40 -> 80 -> 80 -> 81 -> 64
  168. -> 81 -> 82 -> 67
  169. 41 -> 82 -> 82 -> 83 -> 66
  170. -> 83 -> 84 -> 61
  171. 42 -> 84 -> 84 -> 85 -> 60
  172. -> 85 -> 86 -> 63
  173. 43 -> 86 -> 86 -> 87 -> 62
  174. -> 87 -> 88 -> 6D
  175. 44 -> 88 -> 88 -> 89 -> 6C
  176. -> 89 -> 8A -> 6F
  177. 45 -> 8A -> 8A -> 8B -> 6E
  178. -> 8B -> 8C -> 69
  179. 46 -> 8C -> 8C -> 8D -> 68
  180. -> 8D -> 8E -> 6B
  181. 47 -> 8E -> 8E -> 8F -> 6A
  182. -> 8F -> 90 -> 75
  183. 48 -> 90 -> 90 -> 91 -> 74
  184. -> 91 -> 92 -> 77
  185. 49 -> 92 -> 92 -> 93 -> 76
  186. -> 93 -> 94 -> 71
  187. 4A -> 94 -> 94 -> 95 -> 70
  188. -> 95 -> 96 -> 73
  189. 4B -> 96 -> 96 -> 97 -> 72
  190. -> 97 -> 98 -> 7D
  191. 4C -> 98 -> 98 -> 99 -> 7C
  192. -> 99 -> 9A -> 7F
  193. 4D -> 9A -> 9A -> 9B -> 7E
  194. -> 9B -> 9C -> 79
  195. 4E -> 9C -> 9C -> 9D -> 78
  196. -> 9D -> 9E -> 7B
  197. 4F -> 9E -> 9E -> 9F -> 7A
  198. -> 9F -> A0 -> 45
  199. 50 -> A0 -> A0 -> A1 -> 44
  200. -> A1 -> A2 -> 47
  201. 51 -> A2 -> A2 -> A3 -> 46
  202. -> A3 -> A4 -> 41
  203. 52 -> A4 -> A4 -> A5 -> 40
  204. -> A5 -> A6 -> 43
  205. 53 -> A6 -> A6 -> A7 -> 42
  206. -> A7 -> A8 -> 4D
  207. 54 -> A8 -> A8 -> A9 -> 4C
  208. -> A9 -> AA -> 4F
  209. 55 -> AA -> AA -> AB -> 4E
  210. -> AB -> AC -> 49
  211. 56 -> AC -> AC -> AD -> 48
  212. -> AD -> AE -> 4B
  213. 57 -> AE -> AE -> AF -> 4A
  214. -> AF -> B0 -> 55
  215. 58 -> B0 -> B0 -> B1 -> 54
  216. -> B1 -> B2 -> 57
  217. 59 -> B2 -> B2 -> B3 -> 56
  218. -> B3 -> B4 -> 51
  219. 5A -> B4 -> B4 -> B5 -> 50
  220. -> B5 -> B6 -> 53
  221. 5B -> B6 -> B6 -> B7 -> 52
  222. -> B7 -> B8 -> 5D
  223. 5C -> B8 -> B8 -> B9 -> 5C
  224. -> B9 -> BA -> 5F
  225. 5D -> BA -> BA -> BB -> 5E
  226. -> BB -> BC -> 59
  227. 5E -> BC -> BC -> BD -> 58
  228. -> BD -> BE -> 5B
  229. 5F -> BE -> BE -> BF -> 5A
  230. -> BF -> C0 -> 25
  231. ---------------------------------
  232. 60 -> C0 -> C0 -> C1 -> 24
  233. -> C1 -> C2 -> 27
  234. 61 -> C2 -> C2 -> C3 -> 26
  235. -> C3 -> C4 -> 21
  236. 62 -> C4 -> C4 -> C5 -> 20
  237. -> C5 -> C6 -> 23
  238. 63 -> C6 -> C6 -> C7 -> 22
  239. -> C7 -> C8 -> 2D
  240. 64 -> C8 -> C8 -> C9 -> 2C
  241. -> C9 -> CA -> 2F
  242. 65 -> CA -> CA -> CB -> 2E
  243. -> CB -> CC -> 29
  244. 66 -> CC -> CC -> CD -> 28
  245. -> CD -> CE -> 2B
  246. 67 -> CE -> CE -> CF -> 2A
  247. -> CF -> D0 -> 35
  248. 68 -> D0 -> D0 -> D1 -> 34
  249. -> D1 -> D2 -> 37
  250. 69 -> D2 -> D2 -> D3 -> 36
  251. -> D3 -> D4 -> 31
  252. 6A -> D4 -> D4 -> D5 -> 30
  253. -> D5 -> D6 -> 33
  254. 6B -> D6 -> D6 -> D7 -> 32
  255. -> D7 -> D8 -> 3D
  256. 6C -> D8 -> D8 -> D9 -> 3C
  257. -> D9 -> DA -> 3F
  258. 6D -> DA -> DA -> DB -> 3E
  259. -> DB -> DC -> 39
  260. 6E -> DC -> DC -> DD -> 38
  261. -> DD -> DE -> 3B
  262. 6F -> DE -> DE -> DF -> 3A
  263. -> DF -> E0 -> 05
  264. 70 -> E0 -> E0 -> E1 -> 04
  265. -> E1 -> E2 -> 07
  266. 71 -> E2 -> E2 -> E3 -> 06
  267. -> E3 -> E4 -> 01
  268. 72 -> E4 -> E4 -> E5 -> 00
  269. -> E5 -> E6 -> 03
  270. 73 -> E6 -> E6 -> E7 -> 02
  271. -> E7 -> E8 -> 0D
  272. 74 -> E8 -> E8 -> E9 -> 0C
  273. -> E9 -> EA -> 0F
  274. 75 -> EA -> EA -> EB -> 0E
  275. -> EB -> EC -> 09
  276. 76 -> EC -> EC -> ED -> 08
  277. -> ED -> EE -> 0B
  278. 77 -> EE -> EE -> EF -> 0A
  279. -> EF -> F0 -> 15
  280. 78 -> F0 -> F0 -> F1 -> 14
  281. -> F1 -> F2 -> 17
  282. 79 -> F2 -> F2 -> F3 -> 16
  283. -> F3 -> F4 -> 11
  284. 7A -> F4 -> F4 -> F5 -> 10
  285. -> F5 -> F6 -> 13
  286. 7B -> F6 -> F6 -> F7 -> 12
  287. -> F7 -> F8 -> 1D
  288. 7C -> F8 -> F8 -> F9 -> 1C
  289. -> F9 -> FA -> 1F
  290. 7D -> FA -> FA -> FB -> 1E
  291. -> FB -> FC -> 19
  292. 7E -> FC -> FC -> FD -> 18
  293. -> FD -> FE -> 1B
  294. 7F -> FE -> FE -> FF -> 1A
  295. -> FF -> 00 -> E5
  296. ---------------------------------
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement