luckytyphlosion

Rough -gm guide (v0.1)

Dec 8th, 2018
342
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. guide:
  2. note: when referring to an item quantity, numbers in [] refer to the amount to toss to get the desired item quantity
  3. - have coin case, x accuracy, 6 to 10 items total, 3 useless items, bicycle recommended
  4. - get 255 x accuracies
  5. - go to celadon city
  6. - put x acc in third, useless in first and second, useless as last item, toss first or second (doesn't matter)
  7. - sell x accuracy x254 FROM THE TOPMOST STACK (down 2 after pressing A on x accuracy)
  8. - buy:
  9. tm33 x2 (1000*2 = 2000)
  10. tm01 xany (1) (3000*1 = 3000)
  11. tm17 x2 (3000*2 = 6000)
  12. antidote x62 (100*62 = 6200)
  13. burn heal x34 (250*34 = 8500)
  14. parlyz heal x62 (200*62 = 12400)
  15. thunderstone x1 (2100*1 = 2100)
  16. water stone x2 (2100*2 = 4200)
  17. hp up x2 (9800*2 = 19600)
  18. protein x2 (9800*2 = 19600)
  19. x speed x34 (350*43 = 11900)
  20.  
  21. - also recommended to buy to max inventory
  22. - general idea:
  23. - acquire -gm (0x6a) and Q r 4 h I (0x9e) somehow
  24. - if no fly:
  25. - go to 1F, walk to the right exit (on the mat)
  26. - can save a bit of time by exiting through left exit and entering the right door from the outside
  27. - dry underflow, the toss before the swap should be to x accuracy x174 (so the swap gives 79)
  28. - optional: after dry underflow, exit and enter item menu (to reset max menu item)
  29. - todo how to describe getting instant text
  30. - swap palette ultras with warping, toss 249 to get 7
  31. - exit and warp to fuchsia
  32. - enter fuchsia gym
  33. - scroll down a few items to NEW NAME
  34. - (DO NOT PRESS A ON NEW NAME OR YOU WILL CRASH) press SELECT on NEW NAME
  35. - swap NEW NAME with Q r 4 h I below ultra ball x0 and above HM04
  36. - scroll down to Q r 4 h I (where NEW NAME was before), swap with useless item in inventory
  37. - exit fuchsia city gym
  38. - go to fuchsia city poke center, open start menu without moving (if you move, exit and enter the center again)
  39. - press select on useless item in inventory
  40. - scroll down until you see -gm below card key and above v t m
  41. - press select on -gm to swap it in your inventory
  42. - scroll a bit up until you see master ball x7 below great ball x1 and above potion x6
  43. - toss 1 from master ball x7 to get master ball x6
  44. - exit item menu and exit fuchsia center to warp to celadon
  45. - note: do not try to scroll up back to your main inventory yet, might have unterminated tmtrainer item in rival name/TID/money which would cause major clicks in this part of celadon
  46. - acquire enough coins to buy abra (lowest price mon)
  47. - go to prize shop
  48. - safety save before prize vendor
  49. - scroll up to Q r 4 h I
  50. - press A on Q r 4 h I, but don't actually use it (safe to use though, acts as an escape rope which requires backing out to use)
  51. - name abra MMA♀[pk symbol]p (if you exceed 6 characters while typing, you must reset, overwrites leftover buffer memory set by loading Q r 4 h I's name
  52. - go to daycare, deposit abra
  53. - arrange inventory as follows (someone please find optimal swaps)
  54. [any item, probably want -gm here]
  55. thunderstone x1
  56. tm17 x2
  57. x accuracy x79
  58. protein x2
  59. antidote x62
  60. hp up x2
  61. water stone x2
  62. burn heal x34
  63. parlyz heal x62
  64. tm33 x2
  65. x speed x34
  66. tm01 xany
  67. - use -gm, -gm now will jump to the third item in your inventory
  68.  
  69. to set up "get any item" code:
  70. - toss 19 from antidote x62 to get antidote x43
  71. - toss 12 from paralyz heal x62 to get paralyz heal x50
  72. - arrange inventory as follows
  73. [any item, -gm preferred]
  74. [item to set quantity to zero]
  75. antidote x43
  76. water stone x2
  77. tm01 xany
  78.  
  79. - now use the "set second item quantity to zero" code to acquire the following item quantities (in any order):
  80. - x speed x70 [186]
  81. - burn heal x112 [144]
  82.  
  83. - arrange inventory as follows
  84. antidote x43
  85. x speed x70
  86. parlyz heal x50
  87. burn heal x112
  88. tm01 xany
  89.  
  90. - this gives you a code that will set the second item to the second item quantity, and the second item quantity to zero
  91. - but we can do better
  92. - create the following items
  93. - 9F [162] x50 [206] (id: 0x5e/94)
  94. - ;MP- [141] x201 [55] (id: 0x73/115) (note: crashes on "USE", be careful)
  95.  
  96. - "get any item" code is now
  97. antidote x43
  98. 9F x50
  99. ;MP- x201
  100.  
  101. - but again, we can still do better (although it is acceptable to stop here)!
  102. - create a rare candy [216] x38 [218]
  103. - swap the "get any item" code into rival name
  104. - note: there should be one of the following item/quantities below the "get any item" code (terminators):
  105. - []j. xany
  106. - ether xany
  107. - 2F xany
  108. - 10F xany
  109. - any* x0
  110. - any* x80
  111. - any* x87
  112. - any* x95
  113. - note 2: the following item/quantities CANNOT be in rival name (prints rival name, i.e. stack overflow):
  114. - max elixer xany
  115. - any** x83
  116. - note 3: the following item/quantities are not desired to be in rival name (as they cause clicks when it is displayed):
  117. - exp. all xany
  118. - max ether xany
  119. - B1F xany
  120. - 3F xany
  121. - any** x75
  122. - any** x81
  123. - any** x85
  124. - any** x88
  125. - * any item that isn't undesirable (i.e. isn't mentioned below)
  126. - ** other than a non-terminator character. note that 3F/x88 are technically terminators, but they force a button press and thus are not desired
  127. - "get any item" code is now
  128. rare candy x38
  129.  
  130.  
  131. asm:
  132. set -gm to jump to d322
  133.  
  134. af - 0080
  135. bc - 8c8c
  136. de - 8c01
  137. hl - d320
  138. sp - dff5
  139.  
  140. ld hl, $d901
  141. ld [bc], a ; filler
  142. ld l, $4f
  143. inc h ; hl = $da4f
  144. ld [bc], a ; filler
  145. dec bc ; filler
  146. ld a, $23 ; hex value of "inc hl"
  147. ld [bc], a ; filler
  148. ld [hli], a
  149. ld [bc], a ; filler
  150. inc c ; filler
  151. ld [hli], a ; filler
  152. rrca ; filler
  153. ld a, $e9 ; hex value of "jp hl"
  154. ld [bc], a ; filler
  155. ld b, e ; filler
  156. ld [hli], a
  157. ret
  158.  
  159. without filler:
  160. ld hl, $d901
  161. ld l, $4f
  162. inc h ; hl = $da4f
  163. ld a, $23 ; hex value of "inc hl"
  164. ld [hli], a
  165. ld [hli], a ; filler
  166. ld a, $e9 ; hex value of "jp hl"
  167. ld [hli], a
  168. ret
  169.  
  170. set second item quantity to zero:
  171.  
  172. initial registers (also for all subsequent setups):
  173. af - 0080
  174. bc - 8c8c
  175. de - 0001
  176. hl - d322
  177. sp - dff5
  178.  
  179. dec bc ; filler
  180. dec hl ; hl = second item quantity
  181. ld [hli], a ; write zero to second item quantity
  182. ld [bc], a ; filler
  183. ret
  184.  
  185. get any item #1:
  186. dec bc ; filler
  187. dec hl
  188. ld b, e ; filler
  189. ld b, [hl]
  190. rrca ; filler
  191. ld [hld], a
  192. inc c ; filler
  193. ld [hl], b
  194. ret
  195.  
  196. without filler:
  197. dec hl
  198. ld b, [hl]
  199. ld [hld], a
  200. ld [hl], b
  201. ret
  202.  
  203. get any item #2:
  204. dec bc ; filler
  205. dec hl
  206. ld e, [hl]
  207. ld [hld], a
  208. ld [hl], e
  209. ret
  210.  
  211. get any item #3:
  212. jr z, $d34a ; jump to rival name, zero flag is always set with -gm due to the p in the daycare mon's name
  213. ; at $d34a
  214. dec bc ; filler
  215. dec hl
  216. ld e, [hl]
  217. ld [hld], a
  218. ld [hl], e
  219. ret
  220.  
  221. FAQ:
  222. Q: why doesn't the create item code complement the quantity so that tosses don't need to be inverted?
  223. A: to get used to inverted tosses, you need to do them anyway to set the quantity
  224.  
  225. Q: Why hasn't this setup come sooner?
  226. A: [TODO, read this for a general gist https://pastebin.com/FCLREBZJ, also ask me in the GCLF Discord]
RAW Paste Data