Jump to content

[Tutorial][B2W2] Insert the Fairy-type (revision 4)


Recommended Posts

Ger4jNp.png

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), 3AqO12s.png into fnbM75x.png.

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 DxtyeTA.png into fnbM75x.png.

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.

bN5KrF8.png

Step 2:

Double-click the file to open this window.

MgL9W3d.png

Step 3:

Tick the box and click on the leftmost icon (Extract selected)

N1A1vxm.png

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'

kPpjSWu.png

Step 10:

Select the folder where your extracted files are located and click OK.

h9aqDsX.png

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:

Zl1R9VS.png => zP5P6UT.png

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.

HFNNeVM.png

Offset 0×1698 is the address (in little endian) to the palette table used for this template:

iURnv5j.png

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:

eYBp2cS.png

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:

Ej6Nnf7.png

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.

Gni9q8Q.png

Step 6:

Right-click on overlay9_167.bin and click 'distribution Overlay file location and space'.

eiQ9KEF.png

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 by MeroMero
  • Like 1
Link to comment
Share on other sites

  • 4 weeks later...

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 by Scooters
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:

6KuL9RT.png

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.

Link to comment
Share on other sites

@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.

Link to comment
Share on other sites

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. :/

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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:

Untitled.png

Untitled.png.9f87814d7115b4b15a8cff94cc3

Edited by \Topaz/
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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!

Link to comment
Share on other sites

  • 8 months later...

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.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...