MeroMero Posted April 8, 2015 Posted April 8, 2015 (edited) DISCLAIMER: As of now, this is only a beta (revision 4 since the Pokémon summary freeze fix), but at the very least the type chart works. NEW: Download link at the bottom of this post! You read it right, we're going to make the game take into account the Fairy-type! Also, STAB works too. But keep in mind this is still primitive and the Hall of Fame freeze on a NDS need to be addressed ASAP. While it may seem it is a one-man project, it is not; anyone who knows how to ameliorate the code or knows something useful is a welcome guest (credits will be given where they are due obviously). Part 1: Extraction Step 1: First and foremost open your Pokémon Black 2 or White 2 ROM with CrystalTile2. Step 2: Click the NDS icon (or alternatively click Ctrl+N). Step 3: Right-click on each of the following files and click Extract. arm9.bin overlay9_0167.bin overlay9_0168.bin overlay9_0207.bin overlay9_0265.bin Likewise, right-click on each of the following files and click Export. a/0/1/1 a/0/8/2 a/1/2/5 a/2/1/3 Note 1: File Reinsertion will be done on the last Part. Note 2: As a rule of thumb, overlays, arm9 and fat are NOT interchangeable between versions, but narcs are safe. Part 2: Updated type chart Step 1: Open overlay 167 with an Hex editor. Step 2: Add this at the beginning of overlay 167, yes by that I mean to add (not replace) this at offset 0×0: 04 04 04 04 04 02 04 00 02 04 04 04 04 04 04 04 04 04 08 04 02 02 04 08 02 00 08 04 04 04 04 02 08 04 08 02 04 08 04 04 04 02 08 04 02 04 04 08 02 04 04 04 04 04 04 04 04 02 02 02 04 02 00 04 04 08 04 04 04 04 04 08 04 04 00 08 04 08 02 04 08 08 04 02 08 04 04 04 04 04 04 02 08 04 02 04 08 04 02 08 04 04 04 04 08 04 04 04 04 02 02 02 04 04 04 02 02 02 04 08 04 08 04 04 08 02 00 04 04 04 04 04 04 08 04 04 04 04 04 08 04 04 02 04 04 04 04 04 04 08 04 04 02 02 02 04 02 04 08 04 04 08 04 04 04 04 04 02 08 04 08 02 02 08 04 04 08 02 04 04 04 04 04 04 08 08 04 04 04 08 02 02 04 04 04 02 04 04 04 04 02 02 08 08 02 04 02 02 08 02 04 04 04 02 04 04 04 04 08 04 00 04 04 04 04 04 08 02 02 04 04 02 04 04 04 08 04 08 04 04 04 04 02 04 04 04 04 02 04 04 00 04 04 04 08 04 08 04 04 04 02 02 02 08 04 04 02 08 04 04 04 04 04 04 04 04 04 04 02 04 04 04 04 04 04 08 04 00 04 02 04 04 04 04 04 08 04 04 04 04 04 08 04 04 02 02 04 08 04 02 04 04 04 04 02 02 04 04 04 04 04 08 08 04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF Step 3: After inserting the new type-chart, change the following: 0×0C312 : 112A 08D0 => 122A 08DA 0×11226 : 1128 02D1 => 1228 02DB 0×21884 : 11 => 12 0×21896 : 11 => 12 0×218A2 : 1129 06D1 => 1229 06DB 0×218A6 : 1128 01D1 => 1228 01DB 0×218B4 : 1128 00D1 => 1228 00DB 0×218DA : 112C 0ED0 => 122C 0EDA 0×23A20 : 1128 01D0 => 1228 01DA 0×23A24 : 1129 01D1 => 1229 01DB 0×23A2C : 0201 8218 => 1222 4243 0×23B98 : 11 => 12 0×260E2 : 112E 1ED0 => 122E 1EDA 0×306F0 : 112C 3CD0 => 122C 3CDA 0×306F6 : 11 => 12 0×23A6C (B2) : 00751D02 => 40971902 (W2) : 40751D02 => 80971902 0×23BA4 (B2) : 00751D02 => 40971902 (W2) : 40751D02 => 80971902 Step 4: Save the changes done on overlay 167. The file size should go from 268,096 bytes to 268,480 bytes. Part 3: Fairy-type icon Step 1: Open a/0/8/2 with an Hex editor. Step 2: Go to offset 0×6A84 and change 1F7C1F7C into 9CF20EB9. What you did here is a change to the type-icons' palette so that it takes into account the colors for the Fairy-type. Step 3: Go to offset 0×8094 and change this: 00 00 00 00 10 11 11 11 21 22 22 22 22 22 22 22 22 22 22 FF 22 22 F2 EE 22 22 F2 2E 22 22 F2 2E 00 00 00 00 11 11 11 11 22 22 22 22 22 22 22 22 2E 22 FF 2E EF F2 EE EF EE F2 2E EF 22 F2 2E EF 00 00 00 00 11 11 11 11 22 22 22 22 22 22 22 22 22 FF 2E F2 F2 EE EF F2 F2 2E EF F2 F2 2E EF F2 00 00 00 00 11 11 11 01 22 22 22 12 22 22 22 22 2E 22 22 22 2E 22 22 22 2E 22 22 22 2E 22 22 22 22 22 F2 2E 22 22 F2 2E 22 22 E2 FF 22 22 22 EE 22 22 22 22 23 22 22 22 30 33 33 33 00 00 00 00 22 F2 2E EF EF F2 2E EF EE E2 FF EE 2E 22 EE 2E 22 22 22 22 22 22 22 22 33 33 33 33 00 00 00 00 F2 2E EF F2 F2 2E EF F2 E2 FF EE F2 22 EE 2E E2 22 22 22 22 22 22 22 22 33 33 33 33 00 00 00 00 2E 22 22 22 2E 22 22 22 FF EF 22 22 EE EE 22 22 22 22 22 22 22 22 22 32 33 33 33 03 00 00 00 00 into this: 00 00 00 00 00 00 00 00 99 99 99 99 89 88 88 88 89 88 FF FF 89 88 EF EE 89 88 EF 88 89 88 FF EF 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 8E FF 8E FF FE EE EF FE F8 8E EF F8 F8 8E EF F8 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 EF FF EF F8 EE EF FE FE 8E EF F8 EE 8E FF EF 88 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 98 8E F8 8E 98 8E F8 8E 98 EF EF 88 98 FE 8E 88 98 89 88 EF EE 89 88 EF 88 89 88 EF 88 89 88 EE 88 89 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 FF EF F8 F8 EE EF F8 F8 8E EF FF E8 8E EE EE 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 8E EF EF 88 8E EF FE 8E EF EF F8 8E EE EE E8 8E 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 8E 88 98 F8 8E 88 98 F8 8E 88 98 E8 8E 88 98 88 88 88 98 99 99 99 99 00 00 00 00 00 00 00 00 in other words (or rather images), into . Step 4: Save the changes done on a/0/8/2. Step 5: Open a/1/2/5 with an Hex editor. Step 6: Go to offset 0×BCB8 and change 1F7C1F7C into 9CF20EB9. Step 7: Go to offset 0×CF98 and change this: 00 00 00 00 00 00 00 00 33 33 33 33 43 44 44 44 43 44 44 44 43 44 44 F4 43 44 44 F4 43 44 44 44 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 44 FF 4E 44 F4 EE EF 44 EF 4E EF 44 EF F4 4E 44 44 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 44 EF 44 44 FF FE 4E F4 EE F4 4E F4 4E EF 44 44 F4 00 00 00 00 00 00 00 00 33 33 33 33 44 44 44 34 4E 44 44 34 EF 44 44 34 EF 44 44 34 4E 44 44 34 43 44 44 44 43 44 44 44 43 44 44 44 43 44 44 44 43 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 F4 4E 44 44 E4 4E 44 44 F4 4E 44 44 E4 4E 44 44 44 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 EF 44 44 F4 EE 44 44 E4 EF 44 44 F4 EE 44 44 E4 44 44 44 44 33 33 33 33 00 00 00 00 00 00 00 00 4E 44 44 34 4E 44 44 34 4E 44 44 34 4E 44 44 34 44 44 44 34 33 33 33 33 00 00 00 00 00 00 00 00 into this: 00 00 00 00 00 00 00 00 99 99 99 99 89 88 88 88 89 88 FF FF 89 88 EF EE 89 88 EF 88 89 88 FF EF 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 8E FF 8E FF FE EE EF FE F8 8E EF F8 F8 8E EF F8 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 88 EF FF EF F8 EE EF FE FE 8E EF F8 EE 8E FF EF 88 00 00 00 00 00 00 00 00 99 99 99 99 88 88 88 98 8E F8 8E 98 8E F8 8E 98 EF EF 88 98 FE 8E 88 98 89 88 EF EE 89 88 EF 88 89 88 EF 88 89 88 EE 88 89 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 FF EF F8 F8 EE EF F8 F8 8E EF FF E8 8E EE EE 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 8E EF EF 88 8E EF FE 8E EF EF F8 8E EE EE E8 8E 88 88 88 88 99 99 99 99 00 00 00 00 00 00 00 00 F8 8E 88 98 F8 8E 88 98 F8 8E 88 98 E8 8E 88 98 88 88 88 98 99 99 99 99 00 00 00 00 00 00 00 00 Which will transform into . Step 8: Save the changes done on a/1/2/5. Step 9: Open arm9.bin with an Hex editor. Step 10: Go to offset 0×8E09D (B2) / 0×8E0C9 (W2) and change 00 into 02. Step 11: Save the changes done on arm9.bin. Part 4: Fairy-type template Step 1: Open a/0/1/1 with NDSeditor. Step 2: Double-click the file to open this window. Step 3: Tick the box and click on the leftmost icon (Extract selected) NDSeditor will extract all the files in the same folder a/0/1/1 is located at. Step 4: Move a/0/1/1 out of the folder so that only the extracted files stays. Step 5: Copy file a/0/1/1-570 (or any file ending with .rlcn) and rename it a/0/1/1-572. This will be our palette for the Fairy-type template. Step 6: Open file 572 in a Hex editor. Step 7: Wipe out the contents and paste this: 52 4C 43 4E FF FE 00 01 28 02 00 00 10 00 01 00 54 54 4C 50 18 02 00 00 03 00 00 00 00 00 00 00 00 02 00 00 10 00 00 00 CD 75 29 25 08 21 E7 1C C6 18 A5 14 84 10 63 0C 7D EE 5B 66 39 5E F6 D5 D4 C9 B1 41 1F 7C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Step 8: Save and close your Hex editor. Step 9: On NDSeditor, click Tools and 'Make Narc file' Step 10: Select the folder where your extracted files are located and click OK. Step 11: Close NDSeditor. Step 12: Open overlay 168 with your Hex editor. Step 13: Go to offset 0×15E48 and change 0000 into 3C02. Step 14: (optional) Go to offset 0×13F0A and change 0127 into 0000. This will disable the 'Low HP' music, which I personally don't like for killing the 'tension' of fights. Step 15: Save the changes done on overlay 168. End-results: => Part 5: Hall of Fame Explanation: Whenever you enter the Hall of Fame, the game loads overlay 265, as well narc a/2/1/3 for the particles effects (.spa) and the palettes. Offset 0×06B4 is the address (in little endian) to the particle table. Offset 0×1698 is the address (in little endian) to the palette table used for this template: Each of the 17 particles and palettes reference the first type of a given Pokémon, but what happens when the game tries to load a particle for a Pokémon whose first type is Fairy ? The answer is simple: To fix this you need to follow this procedure: Step 1: Open overlay 265 with your Hex editor. Step 2: Go to offset 0×06B4 and change: CC(B81902) into C8(B81902) if B2; 0C(B91902) into 08(B91902) if W2; Step 3: Go to offset 0×2008 and change this: 00 00 00 00 2D 00 00 00 26 00 00 00 28 00 00 00 2E 00 00 00 2B 00 00 00 30 00 00 00 22 00 00 00 29 00 00 00 31 00 00 00 27 00 00 00 32 00 00 00 2A 00 00 00 25 00 00 00 2F 00 00 00 2C 00 00 00 24 00 00 00 23 00 00 00 into this: 2D 00 00 00 26 00 00 00 28 00 00 00 2E 00 00 00 2B 00 00 00 30 00 00 00 22 00 00 00 29 00 00 00 31 00 00 00 27 00 00 00 32 00 00 00 2A 00 00 00 25 00 00 00 2F 00 00 00 2C 00 00 00 24 00 00 00 23 00 00 00 [u]XX[/u] 00 00 00 What you did there really is a circular shift by 32 bits to the left, no more no less. XX can be any value between 0×22 and 0×32. Step 4: Go to offset 0×21DC and change 09 into 04. Go to offset 0×221C and change 00 into 09. Step 5: Save the changes done on overlay 265. Step 6: Open a/2/1/3 in a Hex editor. Step 7: Go to offset 0×513C and paste this: 52 4C 43 4E FF FE 00 01 28 02 00 00 10 00 01 00 54 54 4C 50 18 02 00 00 03 00 00 00 00 00 00 00 00 02 00 00 10 00 00 00 87 1A 9C 72 F5 55 B2 49 6F 3D 2D 35 EA A8 A7 9C 65 94 22 88 00 00 1F 7C 1F 7C 1F 7C 1F 7C 1F 7C 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Step 8: Save the changes done on a/2/1/3. The end result will look like this: This is a temporary fix as of now, the ideal fix would be to create a particle (.spa) specifically for the Fairy-type. The template is there to stay though. Part 6: Pokémon summary emergency freeze fix This is not a perfect fix, since what it does is that if it detects a Fairy-type icon that should be loaded, it will instead load the Normal-type icon. But at least when it comes to preventing a freeze when trying to view a Pokémon summary, it gets the job done. Step 1: Open overlay 207 with your Hex editor. Step 2: Change the following: 0×3C20 : 0698 AF21 0022 AF24 => 0049 0847 F13B0902 0×3C30 : 3118 AF20 8130 0858 => 0049 0847 033C0902 0×5EA8 : 051C 201C AF21 0022 => 0049 0847 273C0902 0×5EB8 : A800 3118 AF20 8130 => 0049 0847 393C0902 0×7888 : B000 2918 1320 0001 => 0049 0847 153C0902 Step 3: Save the changes done on overlay 207. Step 4: Open arm9.bin with an Hex editor. Step 5: Go to offset 0×8FBF0 and paste this for B2: 11 2D 00 DB 00 25 06 98 AF 21 00 22 AF 24 13 4F 38 47 11 2F 00 DB 00 27 31 18 AF 20 81 30 08 58 0F 49 08 47 11 2E 00 DB 00 26 B0 00 29 18 13 20 00 01 0C 4D 28 47 05 1C 11 2D 00 DB 00 25 20 1C AF 21 00 22 08 4C 20 47 11 2F 00 DB 00 27 A8 00 31 18 AF 20 81 30 08 58 04 49 08 47 A9 6B 1B 02 B9 6B 1B 02 11 A8 1B 02 31 8E 1B 02 43 8E 1B 02 or this for W2: 11 2D 00 DB 00 25 06 98 AF 21 00 22 AF 24 13 4F 38 47 11 2F 00 DB 00 27 31 18 AF 20 81 30 08 58 0F 49 08 47 11 2E 00 DB 00 26 B0 00 29 18 13 20 00 01 0C 4D 28 47 05 1C 11 2D 00 DB 00 25 20 1C AF 21 00 22 08 4C 20 47 11 2F 00 DB 00 27 A8 00 31 18 AF 20 81 30 08 58 04 49 08 47 E9 6B 1B 02 F9 6B 1B 02 51 A8 1B 02 71 8E 1B 02 83 8E 1B 02 Step 6: Save the changes done on arm9.bin. Part 7: Reinsertion Reinserting files will require you to first right-click and then: use Compression if you're reinserting overlays or arm9; use Import if you're reinserting anything else. Step 1: Open your Pokémon Black 2 or White 2 ROM with CrystalTile2. Step 2: Click the NDS icon (or alternatively click Ctrl+N). Step 3: Reinsert overlay 168 with the Compression option. Step 4: Extract overlay 168 but this time exceptionally with Export, you'll see why later. Step 5: Go to offset 0×363F40 and change 00 3C 1B 00 into 00 3D 1B 00, this will change the ROM (not RAM) address of overlay 168. Go to offset 0×364530 and change 00 9A E5 08 into 00 99 E5 08, this will change the ROM address of narc a/0/1/1. Step 6: Right-click on overlay9_167.bin and click 'distribution Overlay file location and space'. Step 7: Change 021998C0 into 02199740 (B2) / 02199780 (W2) and click OK. Step 8: Right-click on each of the following files and click Compression. arm9.bin overlay9_0167.bin overlay9_0207.bin overlay9_0265.bin Likewise, right-click on each of the following files and click Import. overlay9_0168.bin (this time only) a/0/1/1 a/0/8/2 a/1/2/5 a/2/1/3 Note: If you omit Steps 3 and 4 and try to reinsert overlay 168 using Compression AFTER the fat.bin has been changed, then CrystalTile2 will crash for some reason. Otherwise using Compression on overlay 168 is fine. Urgent to do: Try to load Hall of Fame Fairy-particle with a custom file, and try to get the Hall of Fame working on a real NDS. To do: Try to load the Fairy-type icon in the Pokémon summary (While I did build a workaround so that it doesn't freeze anymore on a NDS, the Fairy-type icon still cannot be loaded without throwing an error). Load the Fairy-type icon in the PC, while deactivating it if the Pokémon is not Fairy-type. Try to load the Fairy-type icon in the Pokédex. Make Struggle type 0×12, as it stands right now Struggle is considered Fairy-type. Hope you enjoyed reading. A little video to see the Fairy-type in action: [video=youtube;QE-HvGAAJnA] Edited February 24, 2016 by MeroMero 1
Scooters Posted May 2, 2015 Posted May 2, 2015 (edited) Hi there I'm having some trouble getting this to work. Whenever I have a wild encounter or a trainer battle the game freezes and the screen goes white. I'm at a loss for what the problem might be. I've tried going through the steps a few times now so I want to believe it isn't me inputting something incorrectly. The one thing that comes to mind is that when I try to reinsert overlay 167, it says the file is too small and I need a new location. I just click ok. That part wasn't in this anywhere. Other than that, I'm not sure. I followed your guide on adding Fairy in HGSS and got that done successfully, but I'm stumped here. Any ideas or suggestions would be appreciated! EDIT: I'm fairly certain the problem for me lies within part 1. I've got 2 and 3 working so far (haven't attempted part 4). Edited May 3, 2015 by Scooters
MeroMero Posted May 4, 2015 Author Posted May 4, 2015 Hi. First, what version are you using (Black, White, Black2 or White2)? Also what region? This tutorial is for Black 2 (U) only so far. Did you change the RAM offset of overlay 167 from 021998C0 into 02199700 like specified? This is essential because if you don't change this it will cause the code to try and read instructions at incorrect address, since the game doesn't know what to do it crashes. Awaiting your response.
Scooters Posted May 5, 2015 Posted May 5, 2015 I am on Black 2 (U) Yes I changed the RAM offset as specified. Then once I try to re-insert overlay 167, I always get this: I'm not sure if this is what's causing the problem because this is changing an address. Should the file fit where it was originally when reinserted? I don't know if there's something I'm missing when I hex edit the overlay 167 file because it always is larger once I'm done with it since you're only replacing and adding values.
monkeychewtoy Posted May 5, 2015 Posted May 5, 2015 Is this hack compatible with the changes made by this thread?
MeroMero Posted May 5, 2015 Author Posted May 5, 2015 @Scooters Hmm… I tested on a clean ROM and the only way I managed to reproduce the "file is too small" problem is when I clicked "Import" instead of "Compression". You should always re-import overlays (or arm9) by clicking "Compression". But if you were already doing that and still got the address relocation window to pop-up, then: _when clicking 'distribution Overlay file location and space', change the file size from 268096 to 268544; _the parameters should look like this :'02199700,268544'; _then you can try importing by clicking "Compression". When I did it I didn't have to change the file size though, CrystalTile did that automatically. @Scooters In theory it can work if you patch KazoWAR hack first, and then apply the changes from my thread. Be warned though: Not by simply applying both patches. It is possible to merge both changes, but you'd need extensive knowledge of each ROM hack, merging the progress of both.So no. There's too much risk of breaking either one. But since my changes are not to be patched but require manual input instead, it might be easier but I can't guarantee that it'll work as I didn't test yet.
Scooters Posted May 5, 2015 Posted May 5, 2015 Yeah, I've be using compression for the record. Anyway, I tried what you said and I changed the file size as specified...but I'm still prompted to enter a new location because the file is still too small. I've tried this on 2 different Black 2 U ROMs, so I'm thinking I might have edited something incorrectly and the file is actually too big? After I edit overlay 167, the file ends after 0x419E3. Is this how it should be? Outside of that, I'm at a loss for ideas/solutions. I'm sorry this is being difficult, but Fairy-type is one of my biggest wants so I'm really trying here. I appreciate the help.
MeroMero Posted May 5, 2015 Author Posted May 5, 2015 Well then let's do a simple calculation: 268544 in hex is 0×41900. Your file ends after 0×419E3, then it means your file size is 0×419E4, which is 268772 in decimal. So yes your file happens to have 228 bytes in excess. You should try again with a clean overlay 167, and check if the file ends at 0×418FF. I might also add that the only moment in Part 1 where you have to add data is when you're adding the new type chart at the very beginning of the file, otherwise you have to replace data.
Scooters Posted May 5, 2015 Posted May 5, 2015 I figured out my 2 problems but I got this working! Problem 1: At Step 8 in Part 1, I was adding in the code instead of replacing the data that was there which then made the file too big. Problem 2: One of the two ROMs I was testing on for some reason just doesn't work when I attempt this, not sure the problem with this. Regardless, I'd like to thank you for helping me figure this out! This is great.
MeroMero Posted May 6, 2015 Author Posted May 6, 2015 You're welcome. But keep in mind Fairy-type insertion in Gen V is still somewhat primitive and still needs bugfixes.
\Topaz/ Posted May 6, 2015 Posted May 6, 2015 Hmm... I'm having trouble completing part 1. On step 14, when I need to reinsert the edited "overlay9_0167.bin" file, CrystalTile 2 comes up with the error, "file is too small!" and tells me to relocate the data. I checked to see if I had the same issue as Scooters, but I checked my edited overlay file in HxD, CrystalTile 2, and in Properties, only to find that the file is 268544 bytes, which is exactly what it needs to be. I double-checked the "distribution Overlay file location and space" to make sure it had "02199700,268544", and even though it did, every time I tried to import the file using the "Compression" Option, I got the error. I'm not sure what I'm doing wrong, the edited file is the right size. I used HxD to edit the overlay instead of CrystalTile 2, that's not a problem, is it? EDIT: The same thing happens when I try inserting the edited "a/0/1/1" file. It seems that every time I try to import a larger file, it comes up with the error. I don't know what to do.
MeroMero Posted May 7, 2015 Author Posted May 7, 2015 I can ensure you the hex editor is not the problem, I myself use Hex Editor Neo. What I can tell you is that sometimes the file should fit but CrystalTile2 fails to notice it so it prompts you to relocate, and it can happen even when the file you want insert is (marginally) smaller than the original one. It already happened to me, what I do is that I click OK, and then I do Ctrl+Z to go back to the previous state and then try again until it eventually works. Also, you should leave 'distribution Overlay file location and space' file size parameter as 268096, CrystalTile2 will automatically recalculate the size the overlay will take up in the RAM. Only put 268544 as a last resort. Concerning the narc a/0/1/1, the file goes up by 560 bytes, but this is enough to make the narc to big to be inserted between narcs a/0/1/0 and a/0/1/2 thus relocation is the expected response here, so just click OK.
\Topaz/ Posted May 7, 2015 Posted May 7, 2015 (edited) I can ensure you the hex editor is not the problem, I myself use Hex Editor Neo.What I can tell you is that sometimes the file should fit but CrystalTile2 fails to notice it so it prompts you to relocate, and it can happen even when the file you want insert is (marginally) smaller than the original one. It already happened to me, what I do is that I click OK, and then I do Ctrl+Z to go back to the previous state and then try again until it eventually works. Also, you should leave 'distribution Overlay file location and space' file size parameter as 268096, CrystalTile2 will automatically recalculate the size the overlay will take up in the RAM. Only put 268544 as a last resort. Concerning the narc a/0/1/1, the file goes up by 560 bytes, but this is enough to make the narc to big to be inserted between narcs a/0/1/0 and a/0/1/2 thus relocation is the expected response here, so just click OK. Huh, that's odd. I'll try that and see if it works. And relocation is ok for a/0/1/1? Cool. I'll edit this post after I try it. EDIT: Did not work. The only way I can import the overlay file (compression) without getting the "file too small!" error is by changing the new location to 00185400 (the original location), clicking no for reentry, then re-importing the file. Then I get no error. Even though overlay9_0167 is at the right address and has all of the correct values (size is 190, 468, is that off?) I still get a white screen crash... I know I made the file properly... What should I do now? EDIT2: I've tried to fit the overlay in by trying again and undoing until it works, but the problem is, it doesn't... The only way I can bypass the error is by telling it to relocate to the same spot, and then it gives me this message: "FSI.CT/overlay9_0167.bin is already in the file exists.(Replacement)! Would you like to enter a new value?" If I hit no, the file seems to be inserted correctly, but when I run the game, it crashes when loading a battle... Would it be possible for you to make a patch? CrystalTile2 just hates me... Here's a screenshot, by the way: Edited May 9, 2015 by \Topaz/
MeroMero Posted May 9, 2015 Author Posted May 9, 2015 Yeah, I see what you mean. I tried with White 2 and I got the exact same issue. But this shouldn't be a problem anymore thanks to the tutorial update. Revision 3 includes support for White 2 (U), as well as a more reliable method to reinsert troublesome overlays.
\Topaz/ Posted May 9, 2015 Posted May 9, 2015 Yeah, I see what you mean.I tried with White 2 and I got the exact same issue. But this shouldn't be a problem anymore thanks to the tutorial update. Revision 3 includes support for White 2 (U), as well as a more reliable method to reinsert troublesome overlays. Well, I followed the tutorial exactly and while revision 2 got me into white screen battle music, revision 3 didn't even get me past the little encounter jingle, as it crashed right before the music would've played... I'm not sure what I did... unlike revision 2, I didn't have to relocate anything... a011 didn't have to, but did before, is that the issue?
MeroMero Posted May 9, 2015 Author Posted May 9, 2015 Well, I followed the tutorial exactly and while revision 2 got me into white screen battle music, revision 3 didn't even get me past the little encounter jingle, as it crashed right before the music would've played... I'm not sure what I did... unlike revision 2, I didn't have to relocate anything... a011 didn't have to, but did before, is that the issue? a/0/1/1 doesn't relocate anymore thanks to the fat (file allocation table) file you modified and… WTF am I doing! Of course it won't work, I forgot to update step 9 from Part 6 *facepalm* It should be 02199740 for B2 and 02199780 for W2. Sorry for being a birdbrain lol.
\Topaz/ Posted May 9, 2015 Posted May 9, 2015 a/0/1/1 doesn't relocate anymore thanks to the fat (file allocation table) file you modified and…WTF am I doing! Of course it won't work, I forgot to update step 9 from Part 6 *facepalm* It should be 02199740 for B2 and 02199780 for W2. Sorry for being a birdbrain lol. Don't worry about it, it's fine. Now it works! Thanks! Also, when you talk about the optional step to disable the low hp music, the offset is 0×13F0A, I still figured out what to change, just thought I'd mention it. When you start explaining what to do with overlay 265, you didn't actually refer to it until the step to save it. Other than that, great tutorial! Thanks! EDIT: Actually, I kinda jumped the gun. The overlay 167 works added by itself, but when I add everything else, then it crashes before the music plays. Now I have to pin it down to the problematic file.
MeroMero Posted May 9, 2015 Author Posted May 9, 2015 Good catch! Both steps were fixed. Concerning the crash, do you have any cheat enabled? Because it can cause issues. Otherwise you might want to look first at arm9, overlay 168, a/0/1/1 and fat.bin since those are the likeliest troublemakers. Overlay 265 is loaded for the Hall of Fame only so unlikely. a/0/8/2 and a/2/1/3 are also unlikely since their size is the same. And you already said that overlay 167 works.
\Topaz/ Posted May 9, 2015 Posted May 9, 2015 Good catch! Both steps were fixed.Concerning the crash, do you have any cheat enabled? Because it can cause issues. Otherwise you might want to look first at arm9, overlay 168, a/0/1/1 and fat.bin since those are the likeliest troublemakers. Overlay 265 is loaded for the Hall of Fame only so unlikely. a/0/8/2 and a/2/1/3 are also unlikely since their size is the same. And you already said that overlay 167 works. It seems that fat.bin is causing the issue. Maybe because the new ROM addresses don't work/aren't right? I'm not really experienced with Rom hacking, the only game I've messed around with before this is Smash Bros. Brawl, just changing files, mostly. But as long as I know which values mean what, I can do a few things. Otherwise, it's just a fragile screen with letters and numbers that'll explode if you even slightly breath on it lol. Also, arm9 is not problematic. Haven't touched the others yet. EDIT: Oh yeah! No cheats, by the way.
MeroMero Posted May 10, 2015 Author Posted May 10, 2015 It seems that fat.bin is causing the issue. Maybe because the new ROM addresses don't work/aren't right? I'm not really experienced with Rom hacking, the only game I've messed around with before this is Smash Bros. Brawl, just changing files, mostly. But as long as I know which values mean what, I can do a few things. Otherwise, it's just a fragile screen with letters and numbers that'll explode if you even slightly breath on it lol. Also, arm9 is not problematic. Haven't touched the others yet.EDIT: Oh yeah! No cheats, by the way. I think I know what happened. As I learned, modifying the fat.bin file separately from CrystalTile2 is a no-no. You have to modify it as-is directly in the ROM. As such Part 6 was updated again.
\Topaz/ Posted May 10, 2015 Posted May 10, 2015 I think I know what happened.As I learned, modifying the fat.bin file separately from CrystalTile2 is a no-no. You have to modify it as-is directly in the ROM. As such Part 6 was updated again. Yes! I just tested it, everything works! Thanks for your help!
MeroMero Posted May 11, 2015 Author Posted May 11, 2015 Anytime. Glad my revamped tutorial wasn't for naught haha.
MeroMero Posted January 25, 2016 Author Posted January 25, 2016 Update coming soon that fix the Pokémon summary screen freeze when trying to view a Fairy-type Pokémon or Attack. I already implemented it in Black 2, as soon as I get it working in White 2 I'll update the OP.
Oxnite Posted January 26, 2016 Posted January 26, 2016 Just wanted to let you know: great! Your updates excite me every, single, time.
MeroMero Posted January 27, 2016 Author Posted January 27, 2016 First post updated. Revision 4 brings 3 new updates to the table: A fix that allows the Pokémon summary screen to be loaded on a NDS should it detect a Fairy-type icon (this is not the ideal fix though, I'll give you that, but for its primary goal, this is more than enough for now); Narc a/1/2/5 needing to be tampered with due to the fact that it is loaded when teaching a move via the Move Relearner; Due to a better understanding of ASM, now the type-chart really is a 18×18 type chart now, not a 17×18 weird chart with a hackish way to account the Fairy-type as a defender.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now