Metarkrai

Pokémon Gen 3 ACE

May 12th, 2016
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 31.70 KB | None | 0 0
  1. 0) Data
  2. 0.1) Useful Pokémon to obtain
  3. 1) Glitch Moves and Boostrap Codes
  4. 2) Bootstrap Pokémon Procedure
  5. 3) Overworld Subroutine Pokémon Procedure
  6. 4) List of the main Codes to execute
  7. 5) DMA Translation check to perform ACE
  8.  
  9. 0) Data
  10. In-game traded Pokémon :
  11. Emerald :
  12. Seedot : PID 0x00000084, TID 0x00009746, PID xor TID : 0x000097C2
  13. Plusle : PID 0x0000006F, TID 0x0001210C, PID xor TID : 0x00012163
  14. Meowth : PID 0x0000008B, TID 0x00016559, PID xor TID : 0x000165D2
  15. Horsea : PID 0x0000007F, TID 0x0000B4CD, PID xor TID : 0x0000B4B2
  16.  
  17. Starting adresses :
  18. Emerald :
  19. - PC Item Slot 1 : 0x02025E98
  20. - Pyramid Bag Slot 1 : 0x02025880
  21. - Box 12 Slot 18 : 0x0203047C / 0x0203049C (1st byte of the 1st substructure)
  22. Emerald Jp :
  23. - PC Item Slot 1 : 0x02025B3C
  24. - Pyramid Bag Slot 1 : 0x02025824
  25. - Box 12 Slot 15 : 0x02030030 / 0x02030050 (1st byte of the 1st substructure)
  26. FrLg (non Jp) :
  27. - PC Item Slot 1 : 0x020257C4
  28. - Box 12 Slot 24 : 0x02030168 / 0x02030188 (1st byte of the 1st substructure)
  29. FrLg Jp :
  30. - PC Item Slot 1 : 0x02025724
  31. - Box 12 Slot 26 : 0x02030140 / 0x02030160 (1st byte of the 1st substructure)
  32.  
  33. General form of the Bootstrap Code : 03 xx yy 02 02 FF 00 08 / 02yyxx03 080FF02 (32-bit format)
  34.  
  35. -- Possible starts in PC :
  36. -Emer US, Fr, Spa :
  37. 0x02030400 (0x1608), 0x02030208 (0x392C), 0x02030120 (0x4871), 0x02030008 (0x41A7)
  38. -Emer Jap :
  39. 0x02330000 (0x3110)
  40. -Fire Red US, Fr, Spa :
  41. 0x023F0084 (0x0713), 0x02030400 (0x161F), 0x023F0074 (0x1359)
  42. -Fire Red Jap :
  43. 0x023F0084 (0x0713), 0x023F0074 (0x1359)
  44. -Leaf Green US, Fr, Spa :
  45. 0x023F0084 (0x0713), 0x02030400 (0x161F)
  46. -RS Fr :
  47. 0x02039360 (0x804C),(0x8053), 0x02133F00 (0x3CBE)
  48.  
  49. -- Script engine subroutine :
  50. Emer US : 0x08098EF9 / Emer Fr : 0x08098F09 / Emer Ita : 0x08098F0D / Emer Spa : 0x08098F0D / Emer Ger : 0x08098F15 / Emer Jap : 0x08098881
  51. FrLg US : 0x08069AE5 / FrLg Fr : 0x08069B95 / FrLg Ita : 0x08069AC1 / FrLg Spa : 0x08069BA9 / FrLg Ger : 0x08069AD5 / FrLg Jap : 0x080693A5
  52. Ruby US : 0x080655B9 / Ruby Jap : 0x080628F9 / Ruby Fr : 0x080659E5 /
  53. Sapp US : 0x080655BD / Sapp Jap : 0x080628FD / Sapp Fr : 0x080659E9 / Sapp Ita : 0x08065911
  54.  
  55.  
  56.  
  57. -/L'Exécution arbitraire de code : Introduction + Explications
  58. -/Comment l'ACE est faite
  59. ~Quelles zones de données peuvent être manipulées (Emer, FrLg, RS)
  60. ~Stocker un morceau de code via les objets du PC, objets des Sacs Pyramide, données des Pokémon du PC
  61. ~Comment faire en sorte que la console aille lire les bonnes adresses : Bootstrap Pokémon.
  62. ~Exécuter les scripts du jeu : Appeler l'Overworld Script Subroutine.
  63. ~Exécuter l'ACE grâce au DMA : le contrôle de la valeur du DMA.
  64. ~Récapituler les étapes
  65. -/Liste de codes exécutables
  66. --/Plein de trucs
  67. --/Connaître son SID
  68. --/Débloquer toutes les îles event
  69. --/Changer le Pokémon dans la Grotte Métamo
  70. --/Shasser à l'Usine de Combat
  71. --/Shasser au Parc Safari sans Safari
  72. --/Shasser des troupeaux originaux
  73. -/Obtenir un Pokémon Bootstrap
  74. -/Obtenir les Objets Glitch nécessaires
  75. -/Placer les objets dans les Sacs Pyramide (Emeraude)
  76. -/Placer et Dupliquer les Objets dans le PC (Emeraude, RfVf)
  77. -/Placer et Dupliquer les Objets dans le PC (RS)
  78. -/La procédure de placement pour un ACE rapide
  79. -/La procédure de placement pour un ACE complet
  80. --/Obtenir un Overworld Script Subroutine Pokémon
  81. -/Tester le décalage de l'Anti-DMA
  82.  
  83.  
  84.  
  85. 0.1) Useful Pokémon to obtain
  86. - Obtain the in-game traded Seedot,Horsea,Plusle.
  87.  
  88. - Corruption Initiators
  89. https://www.youtube.com/watch?v=hBWkshUJv_8&index=25&list=PLC1Bru8sfeb7ZcIWx7SI5BhdJOa7e3uj0
  90. If you can get in-game traded Pokémon from FrLg, you can make Corruption Initiators from in-game traded Plusle (Emerald) in-game traded Lickytung (FrLg) more easily.
  91.  
  92. - A Cloning Glitch Pokemon
  93. Allows you to clone and anti-clone way faster than with Battle Tower. Glitch Pokémon with long species names still need to be cloned at Battle Tower.
  94. Emer Fr : 0x2890 (40 Atk,144 HP) | Emer Us : 0x288A (40 Atk,138 HP) | Emer Spa : 0x2890 (40 Atk,144 HP) | Emer Ita : 0x2718 (39 Atk, 24 HP) | Emer Jp : 0x2660 (38 Atk, 96 HP) | FrLg FR : 0x320B (50 Atk,11 HP) | FrLg US : 0x3200 (50 Atk,00 HP) | FrLg Spa : 0x3210 (50 Atk,16 HP) | FrLg Ita : 0x320A (50 Atk,10 HP) | FrLg Ger : 0x320F (50 Atk, 15 HP) | FrLg Jap : 0x4F90 (79 Atk, 144 HP) |
  95.  
  96. - An Instant Pomeg Glitch (IPG) Pokémon
  97. Emer Fr: 0x29C8 (41 Atk,200 HP) | Emer US : 0x29C0 (41 Atk,192 HP) | Emer Spa : 0x948C (148 Atk,140 HP) | Emer Ger : 0x29C9 (41 Atk, 201 HP) | Emer Jp : 0x4360 (67 Atk,96 HP) | Emer Ita : 0x9481 (148 Atk,129 HP) |
  98.  
  99. - Invisible Bad Eggs.
  100. Useful for Decaswitch (https://www.youtube.com/watch?v=QB67-pKKY3Q) and Instant Pomeg Glitch. (http://pastebin.com/wsYtbzpG)
  101.  
  102.  
  103.  
  104. 1) Glitch Moves and Boostrap Codes
  105. -- Game : Emerald (except Jap)
  106. Starting adress : 0x02030400 (0x1608)
  107. Pokémon used : Horsea : PID 0x0000007F, TID 0x0000B4CD, PID xor TID : 0x0000B4B2
  108. DMA : At Box 12 Slot 16, translation of 18 double-words. (0x48 bytes)
  109. - Target adress : PC Items Slot 1 (0x02025EE0 with translation)
  110. New Code : 025EE103 0800B402
  111. XORed : 025E55B1 080000B0 - Works.
  112.  
  113. - Target adress : Box 12 Slot 18, Substructure 1 (0x020304E4 with translation)
  114. New Code : 0304E503 0800B402
  115. XORed : 030451B1 080000B0 - Works.
  116.  
  117. - Target adress : Pyramid Bag Items Slot 1 (0x020258C8 with translation)
  118. New Code : 0258C903 0800B402
  119. XORed : 02587DB1 080000B0 - Works.
  120.  
  121.  
  122. -- Game : Emerald Jap
  123. Starting adress : 0x02030000 (0x3110)
  124. Pokémon used : Horsea : PID 0x0000007F, TID 0x0000B4CD, PID xor TID : 0x0000B4B2
  125. DMA : At Box 12 Slot 13, translation of 17 double-words. (0x44 bytes)
  126. - Target adress : PC Items Slot 1 (0x02025B80 with translation)
  127. New Code : 025B8103 0800B402
  128. XORed : 025B35B1 080000B0 - Works.
  129.  
  130. - Target adress : Box 12 Slot 15, Substructure 1 (0x02030094 with translation)
  131. New Code : 03009503 0800B402
  132. XORed : 030021B1 080000B0 - Works.
  133.  
  134. - Target adress : Pyramid Bag Items Slot 1 (0x02025868 with translation)
  135. New Code : 02568903 0800B402
  136. XORed : 02563DB1 080000B0 - Works.
  137.  
  138.  
  139. -- Game : FrLg (except Jap)
  140. Starting adress : 0x023F0084 (0x0713)
  141. Pokémon used : Horsea : PID 0x0000007F, TID 0x0000B4CD, PID xor TID : 0x0000B4B2
  142. DMA : At Box 12 Slot 20, translation of 12 double-words. (0x30 bytes)
  143. - Target adress : PC Items Slot 1 (0x020257F4 with translation)
  144. New Code : 0257F503 0800B402
  145. XORed : 025741B1 080000B0 - Works.
  146.  
  147. - Target adress : Box 12 Slot 24, Substructure 1 (0x020301B8 with translation)
  148. New Code : 0301B903 0800B402
  149. XORed : 03010DB1 080000B0 - Works.
  150.  
  151.  
  152.  
  153. -- Game : FrLg (Jap)
  154. Starting adress : 0x023F0084 (0x0713)
  155. Pokémon used : Horsea : PID 0x0000007F, TID 0x0000B4CD, PID xor TID : 0x0000B4B2
  156. DMA : At Box 12 Slot 22, translation of 22 double-words. (0x58 bytes)
  157. - Target adress : PC Items Slot 2 (0x02025780 with translation)
  158. New Code : 02578103 0800B402
  159. XORed : 025735B1 080000B0 - Can be obtained.
  160.  
  161. - Target adress : Box 12 Slot 26, Substructure 1 (0x020301B8 with translation)
  162. New Code : 0301B903 0800B402
  163. XORed : 03010DB1 080000B0 - Can be obtained.
  164.  
  165. 2) Bootstrap Pokémon Procedure
  166. To obtain HHHHJJKK 0800LLMM (XORed form)
  167. - Make a Pokéblock with an Oran Berry, 2 NPCs, a maximal RPM lower than 23.3 RPM. (takes 10 boring minutes to do)
  168. Pokéblock with 08 Beauty, 00 Coolness.
  169. - Have an in-game traded Horsea clone with no EVs and less than 65.536 exp.
  170. - Obtain Glitch Item 0xHHHH.
  171. - Give Horsea :
  172. Emer US : 16 Atk, 1 HP EVs and Return as 4th Move.
  173. Emer Fr : 16 Atk, 17 HP EVs and no 4th Move.
  174. Emer Spa : 16 Atk, 5 HP EVs and Hidden Power as 4th Move.
  175. Emer Ita : 16 Atk, 49 HP EVs and Waterfall as 4th Move.
  176. Emer Ger : 16 Atk, 20 HP EVs and Surf as 4th Move.
  177. Emer Jp : 16 Atk, 9 HP EVs and Surf as 4th Move.
  178. - Double corrupt Horsea into a Glitch Pokémon using unmarked Caterpie as corruption initiator.
  179. That Glitch Pokémon won't be at Lv100 with 0x05060000 exp, so he can still gain EVs.
  180. - Give the Pokéblock to the Poké.
  181. - Give Pomeg, Hondew, Grepa Berries to the Poké to decrease its HP, SpAtk, SpDef EVs to 0.
  182. 12 Pomeg Berries will be enough. Up to 26 Hondew and Grepa Berries can be required (depending on Horsea's exp)
  183. - Give the Poké 0xJJ Atk, 0xKK HP EVs, 0xLL SpDef, 0xMM SpAtk. (Less than 510 in total)
  184. - Double corrupt the Poké using Heart Caterpie as corruption initiator.
  185. For this corruption, do it the old way (once you have an Egg, don't touch/lift it and try to corrupt that Egg only)
  186. It becomes Glitch Pokémon 0xJJKK.
  187. - Give Item 0xHHHH to the new Pokémon.
  188. End.
  189.  
  190. 2.1) Pokémon Procedure for RS ACE :
  191. For HHHHJJKK 26E0LLMM
  192. JJ + KK + LL + MM must be lower than 510. HHHH can be anything. E0 26 is a 50 bytes jump.
  193. - Make the Pokéblock recipe :
  194. Oran + 2 NPC + Normal RPM : 10 Dry, 10 Bitter, 20 Feel x3
  195. Oran + 2 NPC + 7-23.3 RPM : 8 Dry, 8 Bitter, 20 Feel (takes 10 boring minutes to do)
  196. Spelon + 3 NPC + 100-109.9 RPM : 51 Spicy, 12 Bitter, 32 Feel x4
  197. - Have an in-game traded Horsea clone with no EVs and less than 65.536 exp.
  198. - Obtain Glitch Item 0xHHHH.
  199. - Give Horsea :
  200. Emer US : 16 Atk, 1 HP EVs and Return as 4th Move.
  201. Emer Fr : 16 Atk, 17 HP EVs and no 4th Move.
  202. Emer Spa : 16 Atk, 5 HP EVs and Hidden Power as 4th Move.
  203. Emer Ita : 16 Atk, 49 HP EVs and Waterfall as 4th Move.
  204. Emer Ger : 16 Atk, 20 HP EVs and Surf as 4th Move.
  205. Emer Jap : 16 Atk, 9 HP EVs and Surf as 4th Move.
  206. - Double corrupt Horsea into a Glitch Pokémon using unmarked Caterpie as corruption initiator.
  207. That Glitch Pokémon won't be at Lv100 with 0x05060000 exp, so he can still gain EVs.
  208. - Give the Pokéblock to the Poké.
  209. - Give Pomeg, Hondew, Grepa Berries to the Poké to decrease its HP, SpAtk, SpDef EVs to 0.
  210. 12 Pomeg Berries will be enough. Up to 26 Hondew and Grepa Berries can be required (depending on Horsea's exp)
  211. - Give the Poké 0xJJ Atk, 0xKK HP EVs, 0xLL SpDef, 0xMM SpAtk. (Less than 510 in total)
  212. - Double corrupt the Poké using Heart Caterpie as corruption initiator.
  213. For this corruption, do it the old way (once you have an Egg, don't touch/lift it and try to corrupt that Egg only)
  214. It becomes Glitch Pokémon 0xJJKK.
  215. - Give Item 0xHHHH to the new Pokémon.
  216. End.
  217.  
  218. 3) Overworld subroutine Pokémon Procedure
  219. - Clone the in-game traded Meowth once, the in-game traded Horsea twice.
  220. Mark the Meowth with Square + Triangle, mark one Horsea with Square + Triangle, and mark the other Horsea with Square+Circle.
  221.  
  222. If you want to perform ACE on multiple games, clone Square+Triangle Horsea multiple times (look at the EV-training list below to see how many clones you will need) and ev-train them one by one (leave the others in the PC to not mistake them).
  223.  
  224. - EV-train Square+Triangle Horsea : (script_run) (4th substructure)
  225. Emerald Fr : 08 Speed EVs, 09 Def EVs, 59 Atk EVs, 187 HP EVs
  226. Emerald US : 08 Speed EVs, 09 Def EVs, 58 Atk EVs, 75 HP EVs
  227. Emerald Ita : 08 Speed EVs, 09 Def EVs, 59 Atk EVs, 191 HP EVs
  228. Emerald Spa : 08 Speed EVs, 09 Def EVs, 59 Atk EVs, 191 HP EVs
  229. Emerald Ger : 08 Speed EVs, 09 Def EVs, 59 Atk EVs, 167 HP EVs
  230. Emerald Jp : 08 Speed EVs, 09 Def EVs, 60 Atk EVs, 51 HP EVs
  231. FrLg Fr : 08 Speed EVs, 06 Def EVs, 47 Atk EVs, 39 HP EVs
  232. FrLg US : 08 Speed EVs, 06 Def EVs, 46 Atk EVs, 87 HP EVs
  233. FrLg Ita : 08 Speed EVs, 06 Def EVs, 46 Atk EVs, 115 HP EVs
  234. FrLg Spa : 08 Speed EVs, 06 Def EVs, 47 Atk EVs, 27 HP EVs
  235. FrLg Ger : 08 Speed EVs, 06 Def EVs, 46 Atk EVs, 103 HP EVs
  236. FrLg Jp : 08 Speed EVs, 06 Def EVs, 39 Atk EVs, 23 HP EVs
  237.  
  238. - Once a Square+Triangle Horsea is EV-trained, give a Heart mark to that Horsea in order to indicate that his EV-training is done.
  239. Give each Square+Triangle+Heart Horsea an Item depending on the game where you want to send him :
  240. Emer Fr : | Emer US : | Emer Ita : | Emer Spa : | Emer Ger : | Emer Jp : | FrLg Fr : | FrLg US : | FrLg Ita : | FrLg Spa : | FrLg Ger : | FrLg Jp : |
  241. This way, you will know for which game this Horsea is destined.
  242.  
  243. - Deposit Square+Triangle+Heart Horsea in safety in PC and redo the EV-training with one of its clones (if you have other Horsea clones to EV-train).
  244.  
  245.  
  246. If you want to perform ACE on multiple games, clone Square+Triangle Meowth multiple times (look at the EV-training list below to see how many clones you will need) and ev-train them one by one (leave the others in the PC to not mistake them).
  247.  
  248. - EV-train Square+Triangle Meowth : (block_base) (3rd substructure, so 17=0x11 double-words later)
  249. Emerald (non Jp) : 02 Speed EVs, 03 Def EVs, 59 Atk EVs, 50 HP EVs
  250. Emerald Jp : 02 Speed EVs, 03 Def EVs, 62 Atk EVs, 82 HP EVs
  251. FrLg (non Jp) : 02 Speed EVs, 03 Def EVs, 50 Atk EVs, 38 HP EVs
  252. FrLg Jp : 02 Speed EVs, 03 Def EVs, 50 Atk EVs, 82 HP EVs
  253.  
  254. - Once a Square+Triangle Meowth is EV-trained, give a Heart mark to that Meowth in order to indicate that his EV-training is done.
  255. If you wanted to perform ACE on multiple Emerald games or on multiple FrLg games, clone that Meowth.
  256. (Ex : I want to perform ACE on Fr,US,Ita Emerald so I give 02 Speed,03 Def, 59 Atk, 50 HP EVs to Meowth and then I clone it 2 times)
  257. Give each Square+Triangle+Heart Meowth an Item, depending on the game where you want to send him :
  258. Emer Fr : | Emer US : | Emer Ita : | Emer Spa : | Emer Ger : | Emer Jp : | FrLg Fr : | FrLg US : | FrLg Ita : | FrLg Spa : | FrLg Ger : | FrLg Jp : |
  259. This way, you will know for which game this Meowth is destined.
  260.  
  261. - Deposit Square+Triangle+Heart Meowth in safety in PC and redo the EV-training with one of its clones (if you have other Meowth clones to EV-train).
  262.  
  263.  
  264. - Take Square+Circle Horsea and change its 4th move to :
  265. Emer Fr : -- | Emer US : Return | Emer Spa : Hidden Power | Emer Ita : Waterfall | Emer Ger : Surf | Emer Jp : Surf |
  266. Give it 3 HP Ups. (30 HP EVs)
  267.  
  268. - Perform a double-corruption on Square+Circle Horsea, using Unmarked Caterpie as corruption initiator for both its TID and PID.
  269. For the first corruption :
  270. Once a clone of Square+Triangle Seedot became an Egg, withdraw it and make a wild battle to check the Egg's contents.
  271. (In this after-corruption scenario, the Egg will automatically be sent to the battle)
  272. (Do not check the Eggs moves because two of them are Glitch Moves)
  273. If the Pokémon inside the Egg is a Nidorina, reset and try again.
  274. If the Pokémon inside the Egg is still a Horsea, use a Fluffy Tail to flee and save. (TID got corrupted)
  275.  
  276. Clone that Egg 5 times and place it in Box 2 Slot 2,4,6,8,10. Place new Unmarked Caterpie Corruption Initiator clones at Box 2 Slot 1,3,5,7,9, and perform another Pomeg Glitch Data Corruption to corrupt one of these Eggs into a Nidorina.
  277. (Here, Horsea has a specific 4th move so the Egg obtained after the 1st corrutpion can be moved and cloned)
  278.  
  279. - Take that Nidorina and place it at Box . Slot .
  280. Save. Clear the stuff left in Box 2. Save again.
  281.  
  282.  
  283. - Store the following glitch items in Pyramid Bags (see notes about how to obtain them and how to deposit them in Pyramid Bags)
  284. Pyramid Bag Setup
  285. Lv 50 Bag
  286. Code Item | Identifiant
  287. 01 | 0x02F0C (47 Sped, 12 Def) Checksum
  288. 02 | 0x004A (Dire Hit Item) Useless
  289. 03 | 0x0042 (Carbos Item) (1) (Cured Pokérus)
  290. 04 | 0x0043 (Calcium Item) (1)
  291. 05 | 0x4811 (72 Sped, 17 Def, 1 PP Max) (1)
  292. 06 | 0x46C0 (70 Sped, 192 Def, 1 PP Max) (1)
  293. 07 | 0x4904 (73 Sped, 04 Def, 1 PP Max) (1)
  294. 08 | 0x2264 (34 Sped, 100 Def) (1)
  295. 09 | 0xDF0B (223 Sped, 11 Def, 1 PP Max) (2)
  296. 10 | 0x4803 (72 Sped, 03 Def, 1 PP Max) (2)
  297.  
  298. Open Lv Bag
  299. Code Item | Identifiant
  300. 01 | 0x4908 (73 Sped, 08 Def, 1 PP Max) (2)
  301. 02 | 0xF000 (240 Sped, 00 Def, 1 PP Max) (2)
  302. 03 | 0xF801 (248 Sped, 01 Def, 1 PP Max) (2)
  303. 04 | 0xBDF0 (189 Sped, 240 Def) (2)
  304. 05 | 0x4708 (71 Sped, 08 Def, 1 PP Max) (3)
  305. 06 | 0x46C0 (70 Sped, 192 Def, 1 PP Max) (3)
  306. 07 | 0xD084 (208 Sped, 132 Def, 1 PP Max) (3)
  307. 08 | 0x0200 (02 Sped, 00 Def) (3)
  308. 09 | 0x0000 (No Item) (3)
  309. 10 | 0x0000 (No Item) (3)
  310.  
  311. Cekchsum calculation :
  312. double-corrupted Horsea : PID xor TID = 0x0000B4B2
  313. 0x00430042 | 0x46C04811 | 0x22FF4904 | 0x4803DF0B | 0xF0004908 | 0xBDF0F801 | 0x46C04708 | 0x0200D084 | 0x00000000 |
  314. 0x0000B4AC | 0x0505B4B2 | 0x0A1EB1B7 |
  315. Decrypted :
  316. 0X0043B4F0 | 0x46C0FCA3 | 0x22FFFDB6 | 0x48036BB9 | 0xF000FDBA | 0xBDF04CB3 | 0x46C0F3BA | 0x02006436 | 0x0000B4B2 |
  317. 0x0000001E | 0x05050000 | 0x0A1E0505 |
  318. Checksum : 0x2F0C (Yes !)
  319.  
  320.  
  321.  
  322. 4) List of main codes to execute
  323. - Bootstrap code :
  324. ; Launch task
  325. dcb 0x03
  326. ; At address 0x02025EE0 in THUMB mode
  327. dcd 0x02025EE0 ; adress of PC Item #1 with a DMA translation of 18 double-words (for Emer non Jap)
  328. ; Priority 180, not 255 because 180 give an easier code to store on a Pokemon
  329. dcb 0xB4, 0x00
  330. ; End script
  331. dcb 0x08
  332.  
  333. Code : 03 E1 5E 02 02 B4 00 08
  334. Code : 03 V4 V3 V2 V1 B4 00 08 (Tells the game to execute code at adress 0xU1U2U3U4, with 0xU1U2U3U4 + 0x00000001 = 0xV1V2V3V4)
  335.  
  336.  
  337. - Call to the Overworld Script subroutine :
  338. ; fasmarm syntax
  339. processor cpu32_v4t ; ARMv4t (GBA cpu)
  340. thumb ; we don't want an ARM-mode payload
  341. ; code starts below
  342. ; all addresses / offsets are for US FireRed.
  343.  
  344. ldr r0,[block_base + 100] ; the block_base value is stored 40 bytes = 10 double-words after the script
  345. ldr r1,[bytecode_base]
  346. movs r2,#0xff ; copy 0x1fe bytes. Less bytes can be copied if needed.
  347. svc #0xb ; CpuSet
  348. ldr r0,[bytecode_base]
  349. ldr r1,[script_run + 20] ; the script_run value is stored 20 bytes = 5 double-words after the script
  350. bl _call_via_r1
  351. pop {r4-r7, r15}
  352.  
  353. _call_via_r1:
  354. bx r1
  355.  
  356. bytecode_base: dw 0x200D084 ; works well
  357. script_run: dw 0x08069AE5 ;adress of overworld script subroutine for FrLg US
  358. block_base: dw 0x020257F4 ;adress of PC Item #1 with a DMA translation of 22 double-words (for FrLg non Jap)
  359.  
  360. Code : 11 48 C0 46 04 49 FF 22 0B DF 03 48 08 49 00 F0 01 F8 F0 BD 08 47 C0 46 84 D0 00 02 | E5 9A 06 08 | F4 57 02 02
  361. Code : PP 48 C0 46 04 49 RR 22 0B DF 03 48 QQ 49 00 F0 01 F8 F0 BD 08 47 C0 46 S4 S3 S2 S1 | T4 T3 T2 T1 | U4 U3 U2 U1
  362. (bytecode_base = 0xS1S2S3S4 | script_run = 0xT1T2T3T4 | block_base = 0xU1U2U3U4 )
  363. (Copies 0xRR words from 0xU1U2U3U4 to 0xS1S2S3S4. Then calls the script at 0xT1T2T3T4 and make it execute the data at 0xS1S2S3S4.)
  364. (0xU1U2U3U4 is stored P1 double-words after the script, and 0xPP= 0xP1+ 0x07. 0xT1T2T3T4 is stored Q1 double-words after the script, and 0xQQ=0xQ1 + 0x03.)(Ex : P1 = 10 (decimal), so 0xPP = 0x0A + 0x07 = 0x11 )
  365. (For ACE, P1 = Q1 + 20, Q1 = )
  366. Lenght : 28 + 4 + 4 bytes
  367.  
  368. 0x4811 | 0x46C0 | 0x4904 | 0x22FF | 0xDF0B | 0x4803 | 0x4908 | 0xF000 | 0xF801 | 0xBDF0 | 0x4708 | 0x46C0 | 0xD084 | 0x0200 |
  369. 0x46C04811 | 0x22FF4904 | 0x4803DF0B | 0xF0004908 | 0xBDF0F801 | 0x46C04708 | 0x0200D084 |
  370. Storing from 3rd Lv 50 Item : Double-corrupted : ADEC,DEAC,CDAE
  371.  
  372. Storing from 5th Lv 50 Item : Non double-corrupted : ACDE,EADC
  373. (DEAC double-corrupted Horsea seems better because Growth isn't in the way)
  374. Storing from 7th Lv 50 Item : No working order
  375.  
  376.  
  377.  
  378. - Execute overworld scripts with an NPC :
  379. processor cpu32_v4t ; ARMv4t (GBA cpu)
  380. processor cpu32_v4t ; ARMv4t (GBA cpu)
  381. thumb
  382. ldr r0,[adress2]
  383. ldr r1,[adress1]
  384. movs r2,#0xFF ; copy 0xFF words from adress 1 to adress 2 ; You can copy-paste a word or double-word by changing 0xFF to 0x01 or 0x02
  385. svc 0xb
  386. ldr r0,[adress1]
  387. ldr r1,[adress3]
  388. str r0, [r1]
  389. pop {r4-r7, r15}
  390. adress1: dw 0x020257F4 ; block_base, adress of PC Item #1 with a DMA translation of 22 double-words (for FrLg non Jp)
  391. adress2: dw 0x0200D084 ; bytecode_base, works well
  392. adress3: dw 0x020269E4 ; npc_script_adress, adress of overworld NPC Script with a DMA translation of 22 double-words (for FrLg non Jp)
  393.  
  394. (bytecode_base = 0xS1S2S3S4 | block_base = 0xT1T2T3T4 | npc_script_adress = 0xU1U2U3U4 )
  395. Code : 03 48 04 49 FF 22 0B DF 02 48 03 49 08 60 F0 BD E8 5B 02 02 84 D0 00 02 00 5F 02 02
  396. Code : 03 48 04 49 FF 22 0B DF 02 48 03 49 08 60 F0 BD S4 S3 S2 S1 T4 T3 T2 T1 U4 U3 U2 U1
  397. Lenght : 28 bytes
  398.  
  399. (Copies 0xRR words from 0xU1U2U3U4 to 0xS1S2S3S4. Overwrites the double-word at 0xT1T2T3T4 with the double-word 0xS1S2S3S4.)
  400. [...] Needs to take account of code strage in PC Pokémon data.
  401.  
  402. - "Execute overworld NPC scripts" to store on a PC Pokémon data :
  403. processor cpu32_v4t ; ARMv4t (GBA cpu)
  404. processor cpu32_v4t ; ARMv4t (GBA cpu)
  405. thumb
  406. ldr r0,[block_base+100]
  407. ldr r1,[bytecode_base]
  408. movs r2,#0x0A ; copy 0x0A double-words from adress 1 to adress 2 ;
  409. svc 0xb
  410. ldr r0,[bytecode_base]
  411. ldr r1,[npc_script_adress+200]
  412. str r0, [r1]
  413. pop {r4-r7, r15}
  414. bytecode_base: dw 0x0200D084 ;
  415. block_base: dw 0x0
  416. npc_script_adress: dw 0x0
  417.  
  418. Code : 1D 48 03 49 0A 22 0B DF 01 48 35 49 08 60 F0 BD 84 D0 00 02
  419. Lenght : 20 bytes
  420. [...] Need to change the offset for storage of bytecode_base and npc_script_adress.
  421.  
  422.  
  423. - Overwrites a byte :
  424. processor cpu32_v4t ; ARMv4t (GBA cpu)
  425. thumb
  426. ldr r0, [adress1]
  427. ; The byte we want to write, in double-word format
  428. ldr r1, [adress2]
  429. ; Store the value of R0 to dword at R1
  430. strb r0, [r1]
  431. ; Return
  432. pop {r4-r7, r15}
  433. adress1: dw 0x00000078
  434. adress2: dw 0x0200D084 ; This is where the destination RAM address is loaded from
  435.  
  436. Code : 01 48 02 49 08 70 F0 BD 78 56 34 12 84 D0 00 02
  437. Code : 01 48 02 49 08 70 F0 BD TT XX XX XX U4 U3 U2 U1 (0xU1U2U3U4 is the destination adress, 0xTT is the desired byte, 0xXXXXXX is whatever we want)
  438. Lenght : 16 bytes
  439.  
  440. - Overwrites a word :
  441. processor cpu32_v4t ; ARMv4t (GBA cpu)
  442. thumb
  443. ldr r0, [adress1]
  444. ; The word we want to write, in double-word format
  445. ldr r1, [adress2]
  446. ; Store the value of R0 to dword at R1
  447. strh r0, [r1]
  448. ; Return
  449. pop {r4-r7, r15}
  450. adress1: dw 0x00005678
  451. adress2: dw 0x0200D084 ; This is where the destination RAM address is loaded from
  452.  
  453. Code : 01 48 02 49 08 70 F0 BD 78 56 34 12 84 D0 00 02
  454. Code : 01 48 02 49 08 80 F0 BD T2 T1 XX XX U4 U3 U2 U1 (0xU1U2U3U4 is the destination adress, 0xT1T2 is the desired word, 0xXXXX is whatever we want)
  455. Lenght : 16 bytes
  456.  
  457.  
  458. - Overwrites a double-word :
  459. processor cpu32_v4t ; ARMv4t (GBA cpu)
  460. thumb
  461. ldr r0, [adress1]
  462. ; The double-word we want to write
  463. ldr r1, [adress2]
  464. ; Store the value of R0 to dword at R1
  465. str r0, [r1]
  466. ; Return
  467. pop {r4-r7, r15}
  468. adress1: dw 0x12345678
  469. adress2: dw 0x02028B4C ; This is where the destination RAM address is loaded from
  470.  
  471. Code : 01 48 02 49 08 60 F0 BD 78 56 34 12 4C 8B 02 02
  472. Code : 01 48 02 49 08 60 F0 BD T4 T3 T2 T1 U4 U3 U2 U1 (0xU1U2U3U4 is the destination adress, 0xT1T2T3T4 is the desired double-word)
  473. Lenght : 16 bytes
  474.  
  475.  
  476. - Overwrites a double-word, Pyramid Bag stored :
  477. processor cpu32_v4t ; ARMv4t (GBA cpu)
  478. thumb
  479. ldr r0, [adress1+16]
  480. ; The double-word we want to write
  481. ldr r1, [adress2+8]
  482. ; Store the value of R0 to dword at R1
  483. str r0, [r1]
  484. ; Return
  485. pop {r4-r7, r15}
  486. adress1: dw 0x12345678
  487. adress2: dw 0x02028B4C ; This is where the destination RAM address is loaded from
  488.  
  489. Code : 05 48 04 49 08 60 F0 BD 78 56 34 12 4C 8B 02 02
  490. Code : 05 48 04 49 08 60 F0 BD ... T4 T3 T2 T1 U4 U3 U2 U1 (0xT1T2T3T4 is the destination adress, 0xU1U2U3U4 is the desired double-word)
  491. Lenght : 8+8 bytes = 4+4 Items
  492.  
  493.  
  494. - Copy-paste a string of words :
  495. processor cpu32_v4t ; ARMv4t (GBA cpu)
  496. thumb
  497. ldr r0,[adress1]
  498. nop
  499. ldr r1,[adress2]
  500. movs r2,#0xFF ; copy 0xFF words from adress 1 to adress 2
  501. ;You can copy-paste a word or double-word by changing 0xFF to 0x01 or 0x02
  502. svc 0xb
  503. pop {r4-r7, r15}
  504. adress1: dw 0x02025BE8
  505. adress2: dw 0x0200D084
  506.  
  507. Code : 02 48 C0 46 02 49 FF 22 0B DF F0 BD E8 5B 02 02 84 D0 00 02
  508. Code : 02 48 C0 46 02 49 SS 22 0B DF F0 BD T4 T3 T2 T1 U4 U3 U2 U1 (Copies 0xSS words from 0xT1T2T3T4 to 0xU1U2U3U4)
  509. Lenght : 20 bytes
  510.  
  511.  
  512.  
  513. 5) DMA Translation check to perform ACE
  514.  
  515. Emerald (except Jap) : A check for a DMA Translation of 18 double-words is required.
  516. - Obtain in-game traded Meowth.
  517. Clone it and keep a clone in safety. (like every other in-game traded Pokémon)
  518. - Make 5 clones of Meowth.
  519. - Give 5 Def and 5 Speed EVs to a clone of Meowth.
  520. - Place the non EV-trained clones at Box 2 Slots 11,14,17,20.
  521. Place the EV-trained clone at Box 2 Slot 23.
  522. - Prepare yourself for ACE.
  523. Obtain a Pokémon with Glitch Move 0x1608. (Plusle with 22 Atk, 8 HP EVs)
  524. Obtain the Bootstrap Pokémon from in-game traded Horsea.
  525. Set up PC Items / Pyramid Bag Items.
  526. - Prepare yourself for Pomeg Glitch.
  527. Don't do Instant Pomeg Glitch, a Pomeg Glitch with a wild battle is required.
  528. Include a Pokémon with Glitch Move 0x1608 between Fly Pokémon and 1 HP Pokémon.
  529. ( Poké - KO Fly Poké - KO Poké with Glitch Move - 1 HP Poké)
  530. For more convenience, perform Decaswitch.
  531. Once you are prepared, save.
  532. - Perform Pomeg Glitch.
  533. - After hitting B to close the summary of the Fly Pokémon (the Pokémon in the second party slot), count your Up pushes.
  534. At each Up push, look closely at the first party slot for red highlights.
  535. You need to see :
  536. Up Push N°1 : NO red highlight
  537. Up Push N°2 : Red highlight on the Quit button
  538. Up Push N°3 : The Pokéball behind the Fly Pokémon (Pokémon in the second party slot) must not be bright and opened a bit.
  539. That Pokéball must look like the other Pokéballs behind the Pokémon in party slot 3.
  540. Up Push N°4 : Red highlight on first party slot
  541. Up Push N°5 : NO red highlight on first party slot
  542. Up Push N°6 : Red highlight on first party slot
  543. Up Push N°7 : NO red highlight on first party slot
  544. Up Push N°8 : Red highlight on first party slot
  545. Up Push N°9 : Red highlight on first party slot
  546. Up Push N°10 : Red highlight on first party slot
  547. Up Push N°11 : NO red highlight on first party slot
  548. Up Push N°12 : NO red highlight on first party slot
  549. Up Push N°13 : Red highlight on first party slot
  550. Up Push N°14 : NO red highlight on first party slot
  551. - If you saw the exact same highlights/things as described, your DMA translation if of 18 double-words.
  552. If you are unsure of your Up pushes, you can hit B and retry. (open party, open Fly Pokémon summary, hit B,..)
  553. Check the video related to the procedure in order to clearly see what you need to see.
  554. - Hit B.
  555. Use a Revive on the Pokémon with Glitch Move 0x1608.
  556. Use Glitch Move 0x1608 to perform ACE.
  557.  
  558.  
  559. FrLg (except Jap) : A check for a DMA Translation of 12 double-words is required.
  560. - Obtain in-game traded Horsea and Seedot in Emerald.
  561. Clone them and keep a clone in safety.
  562. - Obtain a cloning Glitch Pokémon for your FrLg version :
  563. - On Emerald, fly to Artisan Cave.
  564. Save.
  565. Reset and make a wild encounter. Catch the Smeargle you've met.
  566. Calculate Smeargle's IVs : http://www.psypokes.com/dex/iv.php
  567. Find the frame that generated Smeargle using RNG Reporter (Method 2, Max Results 10.000, Starting Frame 1, Seed 0)
  568. With that generating frame, you obtain Smeargle's PID. Convert that value in decimal.
  569. Calculate the remainder of Smeargle's PID in the euclidian division by 24.
  570. That value must be 1,5,6,11,12,17,18 or 23. If not, reset and try again.
  571. - Trade Horsea, Seedot, Cloning Glitch Pokémon for FrLg, Smeargle to your FrLg game.
  572. - Using the Cloning Glitch Pokémon, make a clone of everyone and put it in safety.
  573. Horsea, Seedot, Smeargle will be corrupted during the procedure.
  574. - Clone Horsea once, Smeargle once, Seedot three times.
  575. - Place a Horsea clone at Box 2 Slot 18.
  576. Place Seedot clones at Box 2 Slots 21,24,30.
  577. Place a Smeargle clone at Box 2 Slot 27.
  578. - Prepare yourself for ACE.
  579. Obtain a Pokémon with Glitch Move 0x0713. (Plusle with 7 Atk, 19 HP EVs)
  580. Obtain the Bootstrap Pokémon from in-game traded Horsea.
  581. Set up PC Item.
  582. - Prepare yourself for Pomeg Glitch.
  583. Include a Pokémon with Glitch Move 0x0713 between Fly Pokémon and 1 HP Pokémon.
  584. ( Poké - KO Fly Poké - KO Poké with Glitch Move - 1 HP Poké)
  585. For more convenience, perform Decaswitch.
  586. Once you are prepared, save.
  587. - Perform Pomeg Glitch.
  588. - After hitting B to close the summary of the Fly Pokémon (the Pokémon in the second party slot), count your Up pushes.
  589. At each Up push, look closely at the first party slot for red highlights.
  590. You need to see :
  591. Up Push N°1 : NO red highlight
  592. Up Push N°2 : Red highlight on the Quit button
  593. Up Push N°3 : The Pokéball behind the Fly Pokémon (Pokémon in the second party slot) must not be bright and opened a bit.
  594. That Pokéball must look like the other Pokéballs behind the Pokémon in party slot 3.
  595. Up Push N°4 : NO Red highlight on first party slot
  596. Up Push N°5 : Red highlight on first party slot
  597. Up Push N°6 : NO red highlight on first party slot
  598. Up Push N°7 : NO red highlight on first party slot
  599. Up Push N°8 : Red highlight on first party slot
  600. Up Push N°9 : NO red highlight on first party slot
  601. Up Push N°10 : Red highlight on first party slot
  602. Up Push N°11 : NO red highlight on first party slot
  603. Up Push N°12 : NO red highlight on first party slot
  604. Up Push N°13 : Red highlight on first party slot
  605. Up Push N°14 : NO red highlight on first party slot
  606. - If you saw the exact same highlights/things as described, your DMA translation if of 12 double-words.
  607. If you are unsure of your Up pushes, you can hit B and retry. (open party, open Fly Pokémon summary, hit B,..)
  608. Check the video related to the procedure in order to clearly see what you need to see.
  609. - Hit B.
  610. Use a Revive on the Pokémon with Glitch Move 0x0713.
  611. Use Glitch Move 0x0713 to perform ACE.
  612.  
  613.  
  614. 5) -- Procedure :
  615. Emerald :
  616. - Obtain an ACE Glitch Move for your version
  617. - Obtain a Bootstrap Pokémon for your version
  618. - Set up Pyramid Bag Items (Glitch Items)
  619. - Set up PC Items (Glitch Items + Duplications)
  620. - Set up PC for Anti-DMA translation check
  621. - Perform ACE using the Anti-DMA translation check
  622.  
  623. RS :
  624. - Obtain an ACE Glitch Move for your version
  625. - Obtain a Bootstrap Pokémon for your version
  626. - Obtain Pokémon to duplicate PC Items for your version
  627. - Obtain the Glitch Items to place in PC.
  628. Trade everyone from Emerald to RS.
  629. - Set up PC Items (Glitch Items + Duplications)
  630. - Perform ACE
  631.  
  632. FrLg :
  633. - Obtain an ACE Glitch Move for your version.
  634. - Obtain a Bootstrap Pokémon for your version.
  635. - Obtain the Glitch Items to place in PC.
  636. Trade everyone from Emerald to FrLg.
  637. - Set up PC Items (Glitch Items + Duplications)
  638. - Perform ACE.
  639.  
  640.  
  641. - EV-training data :
  642. - Macho Brace : Doubles the EVs won in a battle.
  643. - Exp.Share : The holder also receives EVs when Pokémon are KOed.
  644. - PokéRus : Doubles the EVs won in a battle. /!\ AVOID IT /!\ (Obtaining odd EVs with PokéRus is a problem)
  645. - HP : HP Up : +10 HP (Up to 100 HP) | Marill (Route 102,111) : +2 HP | Wishmur (Rusturf Tunnel) : +1 HP.
  646. - Attack : Protein : +10 Atk (Up to 100 Atk) | Mighthyena (Route 120,121) : +2 Atk | Poochyena (Route 101,102,120,121) : +1 Atk.
  647. - Defense : Iron :+10 Def (Up to 100 Def) | Graveler & Torkoal (Magma Hideout) : +2 Def | Silcoon & Cascoon (Petalburg Woods) : +2 Def | Geodude (Magma Hideout) : +1 Def. | Clamperl (Underwater) : +1 Def.
  648. - Speed : Carbon : +10 Spd (Up to 100 Speed) | Linoone (Route 119) : +2 Spd | Magikarp (Old Rod, Route 102) : +1 Spd | Zigzagoon (Route 103,119) : +1 Spd | Wingull (Route 103) : +1 Spd.
  649. - Special Attack : Calcium : +10 SpAtk (Up to 100 SpAtk) | Spinda & Slugma (Route 113) : +1 SpAtk.
  650. - Special Defense : Zinc : +10 SpDef (Up to 100 SpDef) | Lombre (Route 114) : +2 SpDef | Swablu & Lotad (Route 114) : +1 SpDef | Tentacool (Route 103) : +1 SpDef.
  651.  
  652. -4th Move for a Fast Double Corruption :
  653. Emer Fr : --/Frustration | Emer Us : Flash/Return | Emer Spa : Hidden Power | Emer Ita : Nature Power/Waterfall | Emer Jp : Rock Smash/Thunder Wave/Surf | Emer Ger : Flash/Surf | Fr US,Fr,Ger,Ita,Spa : Growth | Lg US,Fr,Ger,Ita,Spa : Hidden Power | FrLg Jap : Frustration |
  654.  
  655. - Cloning Glitch Pokémon :
  656. Emer Fr : 0x2890 (40 Atk,144 HP) | Emer Us : 0x288A (40 Atk,138 HP) | Emer Spa : 0x2890 (40 Atk,144 HP) | Emer Ita : 0x2718 (39 Atk, 24 HP) | Emer Jp : 0x2660 (38 Atk, 96 HP) | Emer Ger : 0x2891 (40 Atk,145HP) | FrLg FR : 0x320B (50 Atk,11 HP) | FrLg US : 0x3200 (50 Atk,00 HP) | FrLg Spa : 0x3210 (50 Atk,16 HP) | FrLg Ita : 0x320A (50 Atk,10 HP) | FrLg Ger : 0x320F (50 Atk, 15 HP) | FrLg Jap : 0x4F90 (79 Atk, 144 HP) |
  657.  
  658. - Instant Pomeg Glitch Pokémon :
  659. Emer Fr: 0x29C8 (41 Atk,200 HP) | Emer US : 0x29C0 (41 Atk,192 HP) | Emer Spa : 0x948C (148 Atk,140 HP) | Emer Ger : 0x29C9 (41 Atk, 201 HP) | Emer Jp : 0x4360 (67 Atk,96 HP) | Emer Ita : 0x9481 (148 Atk,129 HP) |
Add Comment
Please, Sign In to add comment