BluRose
blu rass
- 814
- Posts
- 11
- Years
- Age 24
- ds hacking
- Seen Apr 24, 2025
Adding a New Type to HG - Using Fairy as an Example
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/wDtG8t7.png)
Over the past long while, I have been delving into hacking Heart Gold with a new project in mind.
Pokeruby has spoiled me, needless to say.
The NDS Pokémon games are also another beast that introduced a file system! This can be read by Tinke and Crystal Tile 2. EDIT: Most importantly, ndstool.
First thing's first though, shout-outs to MeroMero for the beginnings of what's here.
However, one thing that never really seems to get published is the data (specifically the gfx) side of things.
EDIT (July 30 2021): massive overhaul time
Basically, doing this manually was very painstaking and took a very long time. There is a very simple way to do this now, and similar to projects like the follow me implementations or the mega evolution projects for the gba, this involves running a few commands in the command line. Unlike those, this doesn't require python or anything similar and all the tools required come bundled with the code. On Windows machines, the process to build literally just involves running a few batch files from the root directory.
Covered in This Repository
* Summary Screen Icon
* PokéDex Icon
* Move Highlighting in the Move Selection Screen
* Editing Type Effectiveness
* Adding in the Pixie Plate
* Arceus' Fairy Form
* Setting Judgment's Type to Fairy
* Changing Curse to be Ghost instead of Fairy
What needs to be done
* PokéDex Search for Fairy Type - overlay 18?
* Roseli Berry
Firstly, download this branch of this repository.
Extract the folder from the zip file.
Place your Heart Gold ROM in the folder as "base.nds."
Open the command line in the folder.
In the command line, type:
Code:
scripts\extract
Then, type:
Code:
scripts\decompress
Finally, in the command line, type:
Code:
scripts\makefairytype
scripts\compile
These instructions are also in the README of the project.
Spoilered here is the manual way of doing it if you want to keep track of the changes exactly. Or you can poke around the repository that you downloaded and see exactly what changes are happening there as well.
Poking around would also significantly help in editing for a new type (people have used these instructions previously to implement a Light type, for example). The instructions to do all of this manually are thus archived in this spoiler.
Spoiler:
Prerequisites
* narchive, a command line tool for creating NDS narcs.
* Crystal Tile 2, a pretty amazing hex editor for NDS hacking.
* Tinke, an image viewer and overall another neat tool for viewing the NDS filesystem.
* armips, what I personally use for compiling assembly code. Works really well for GBA, N64, NDS, and even PlayStation assembly packages (all speaking from personal experience). Another command line tool.
* ndstool is another neat tool. Primarily used to extract all of the NARC files from a ROM before editing anything, to absolutely prevent any sort of bugs in the tools that I may not know about--in a sense, minimizing the interaction that happens with the ROM itself.
This MEGA archive houses every binary file that is necessary for this tutorial. These are primarily images and palettes, but there is also an assembly file in there too.
This tutorial assumes a basic understanding of how the NDS, and specifically the HGSS, file system is structured. There's no real tutorial to teach the prerequisites for this, it's mostly just opening the ROM in Tinke and snooping around a bit to see what is found. For example, you should recognize what I mean when I say NARC a008 in the context of HGSS.
Covered in This Tutorial
* Summary Screen Icon
* PokéDex Icon
* Move Highlighting in the Move Selection Screen
* Editing Type Effectiveness
* Adding in the Pixie Plate
* Arceus' Fairy Form
* Setting Judgment's Type to Fairy
* Changing Curse to be Ghost instead of Fairy
What needs to be done
* PokéDex Search for Fairy Type - overlay 18?
* Roseli Berry
Summary Screen Icon
For this part, we're going to be looking at NARC a/0/0/8.
Open up your HGSS ROM in Tinke and navigate to a008, unpacking it:
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/hI78xBX.png)
a008_236 is the gfx for the ??? icon, and a008_74 is the file that contains all 3 palettes used across the types. There are 3 of them separately.
Here, you would export it and edit it with the colors of your choice. The colors are 4BPP, and the colors for the ??? type specifically are right at the end of the 3rd palette in the file.
Here, either make the gfx for your own type (USING THE FIRST TWO COLORS FROM THE FIRST PALETTE LIKE THE EXAMPLE HERE) or just import the provided picture (a008_236.bin.png) for the Fairy icon:
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/VHQisUO.png)
Then, edit a008_74 as you like (this does involve a little bit of hex editing) and import that over the existing one.
If you're just inserting the Fairy type, the binary is provided for you (a008_74.bin).
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/FSpkX2h.png)
Repack the NARC, save the ROM, and now we move on to the dex icon.
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/5RmMs2O.png)
PokéDex Icon
So, when the game reads the ??? type from a mon's base stats, it loads the Normal icon to be shown:
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/HVBH6lj.png)
Here, we fix that. Once again, pre-compiled binaries are provided for easy insertion :)
Navigate to NARC a/0/6/8. Here is where all the PokéDex gfx are bundled.
We extract it then unpack it using narchive, and then add a file to the end before repacking and reinserting. This becomes file 123 in the narc that you reinsert. This file is the gfx for the Fairy type! The Fairy type is convenient because it can be made using colors already loaded in the Dex--that is, no need to mess around with palette things.
Finally, decompress and extract overlay9_0018 using crystal tile 2 and make the following byte changes:
Code:
0x16505 - 03
0x16534 - 7B (the gfx subfile id that you just inserted)
This tells the game to load different files instead of the default ones configured.
These, once recompressed and inserted, will result in this:
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/AAG2nsR.png)
Move Highlighting in the Move Selection Screen
Currently, a ???-type move will look like this in the move selection screen:
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/Ot0g5Y7.png)
The problem? The highlighting around the move box doesn't match the type.
This one's very simple, extract overlay9_0006 and navigate to 0x290. Here, there's a palette which needs editing to reflect whatever colors you want.
For the Fairy type, I've used:
Code:
DF 7E 3F F2 1E 6A DD 59 5B CD 17 C1 D6 B4 37 7F
Recompress and insert the edited file (or use the one I have precompiled) and then bam:
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/6T8XaSj.png)
Editing Type Effectiveness
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/HQmXvoa.gif)
Here, we can see that my Fairy-type Tackle does neutral damage on the Fire-type Cyndaquil.
Well, this makes no sense, right?
So, just like in Gen 3, there's a type effectiveness table.
Unlike in Gen 3, there's not much repointing that can be done within files.
So what we can do here is repoint from overlay9_0012 to overlay9_0018 (there's a bit of space reserved at the end of overlay9_0018 when it's loaded into the RAM).
Note: This research is from this tutorial, by MeroMero. I will not be doing this, but I am just mentioning that it is possible.
Now this table is formatted exactly like Gen 3's:
Code:
one byte - attacking type
one byte - defending type
one byte - effectiveness multiplier (0x00, 0x05, 0x0A, or 0x14 - no effect, not very effective, normal effective, and supereffective)
Now, a small bit about overlays and how there are loaded, primarily why this works:
Overlay 1 and overlay 18 are loaded into the same RAM section, size and all (depending on the context - overworlds load overlay 1 while battles have 18). Enough space is set aside for overlay 1, which happens to be quite a bit larger than overlay 18. Because of this, we can effectively extend overlay 18 to be the size of overlay 1.
We can thus add the type effectiveness table to the end of overlay 18.
But here's the thing:
Later on in this tutorial, we repoint the table that is 0x42 bytes before the type effectiveness table to some space that we free up later on as well. In doing so, we can effectively move back the type chart by 0x42 bytes (or 22 new interactions). If your type chart has more than 22 new type interactions, then you will have to repoint the table. If not, then you will be fine.
For this tutorial, repoint 0x0226CC7C to 0x0226CC3C, 0x0226CC7D to 0x0226CC3D, and 0x0226CC7E to 0x0226CC3E.
Paste your type effectiveness table to 0x3537C of the overlay 12 binary that you can extract using Crystal Tile 2. This corresponds to RAM address 0x0227CC3C above.
Attached with the rest of the .zip file is my personal type chart for the Fairy type. It's also included here:
Spoiler:
Code:
000505
000805
010014
010205
010305
010514
010605
010814
010905
010E05
010F14
011114
020114
020505
020614
020805
020C14
020D05
030305
030405
030505
030705
030800
030914
030C14
040200
040314
040514
040605
040814
040A14
040C05
040D14
050105
050214
050405
050614
050805
050A14
050F14
060105
060205
060305
060705
060805
060905
060A05
060C14
060E14
061114
070000
070714
070E14
071005
080514
080805
080914
080A05
080B05
080D05
080F14
08110A
090114
090305
090805
090A05
091014
091114
0A0505
0A0614
0A0814
0A0A05
0A0B05
0A0C14
0A0F14
0A1005
0B0414
0B0514
0B0A14
0B0B05
0B0C05
0B1005
0C0205
0C0305
0C0414
0C0514
0C0605
0C0805
0C0A05
0C0B14
0C0C05
0C1005
0D0214
0D0400
0D0B14
0D0C05
0D0D05
0D1005
0E0114
0E0314
0E0805
0E0E05
0E1100
0F0214
0F0414
0F0805
0F0A05
0F0B05
0F0C14
0F0F05
0F1014
100805
100900
110105
110714
110905
110E14
111105
FEFE00
000700
010700
FFFFFF
This step doesn't include the binary because it is further edited in the steps following.
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/BjyKSVK.gif)
Adding in the Arceus Plate
![[PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example [PokeCommunity.com] [HG] - Adding a New Type to Heart Gold - Using Fairy as an Example](https://i.imgur.com/j6OTYlr.png)
So, what's all in an item? We're going to be using Item 0x71, the limbo slot immediately after the Griseous Orb, for our new Plate.
Firstly, we need to elucidate some strings in a027, or this game's messages narc. Message banks 221, 222, 223, and 224 all need to be edited with the description, name,
Article: name, and plural forms of the item (respectively). a027 is included for easy insertion. This can be done using a Pokémon DS Text Editor. All will need to be edited for types that aren't Fairy.
a017 has all of the item data things. These are things like price, pocket, and the like.
a018 holds item gfx data.
There is a table at 0x100194 in the ARM9 that contains the following:
Code:[2 bytes - data id in a017] [2 bytes - plate gfx id in a018] [2 bytes - pal gfx id in a018] [2 bytes - id in gen 3 games (for pal park purposes, 00 if it didn't exist)]
In many of the routines accessing the data loaded from a017, there is a limiter on the amount loaded. Because of this, I personally have decided to go the route of bumping the Enigma Stone off (for primarily battle purposes) and then using the limbo slots for the plate that we're adding in.
There is no such limiter for archive a018. We can add to that as we please.
We can use the existing plate image as our new item's image. We'll need a new file for the item's palette. For the Fairy type, this is included in the pack.
The limbo slots for the items start at item 0x71. This corresponds to 0x10051C in the aforementioned table. Edit it as you please with the structure above in mind.
What I have inserted here is 71 00 6B 02 1D 03 00 00.
Code:Item data - 0x71 in a017 Item picture - 0x26B in a018 Item palette - 0x31D in a018, so a file that we have to append ID in Gen 3 - Didn't exist in Gen 3, so 0
But here's the problem:
![]()
We need to move all the later indices.
In the item data narc (a017), we need to add in an entry for item 0x71. We base it off the plate's entry.
I don't know what half the contents are, but most plates look like this:
![]()
I have attached the Flame Plate data. That third byte is the hold effect (for flame plate, 0x7E). We change that to 0x93 (the new held effect) and then repack the narc with the file at index 0x71 using narchive. That will take a little bit of tinkering around to get, but it should come around to you.
Don't know what that means? That's alright; I provide an already-edited binary, just like everything else.
Because of the way that I chose to do this (with bumping off the Enigma Stone), I have provided a modified table (edited_item_table) to be inserted. Just paste it over 0x100194 and it is all good to go.
I also provide a rebuilt a017 and a018 that will automatically perform the corresponding actions that need to be done for you. If you're inserting just a new plate, a017 should be perfectly fine for you regardless of your type. a018 will need some modification for types that aren't Fairy.
Basically, I rearranged all the item datas to fit the Plate's data in there and then added the graphics to the end of a018. With that done, I inserted the edited_item_table from before and now it's all good to go. See image below.
The edited ARM9 binary is included in the folder under the next step.
![]()
Arceus' Typed Form
![]()
Alright. So we got Arceus' Plate set up, but it won't change Arceus just yet. Here's where we dig into the code.
I included the source for this here. No more of HackMew's thumb compiler or anything like that here, not anymore. I use KingCom's armips to build this, and honestly may very well switch to it for anything that I do related to any ASM ever. It's very useful, and I'm surprised that we haven't used it overall as a community anyway (as it's also open source).
Spoiler:Code:.nds .create "fairyarceus.bin", 0 .thumb .headersize 0x02071C28 .org 0x02071C28 // until 0x02071CA0, we rewriting the whole subroutine /* r0 = held item effect returns: r0 = type from the held item basic premise: 7e - flame 7f - water 80 - electric 81 - grass 82 - ice 83 - fight 84 - poison 85 - ground 86 - flying 87 - psychic 88 - bug 89 - rock 8a - ghost 8b - dragon 8c - dark 8d - steel 93 - fairy */ // original size: 120 bytes, new size: 42 bytes including table // ARM9 OFFSET 0x71C28 get_arceus_type_from_held_effect: // a much simpler routine that uses a table instead of some weird jumptable sub r0, #0x7e cmp r0, #21 bhi @@normal // this catches negative numbers too ldr r1, =plate_to_type_table ldrb r0, [r1, r0] bx lr @@normal: mov r0, #0 bx lr .align 2 .pool plate_to_type_table: // 21 bytes .byte 0xa // 7e .byte 0xb // 7f .byte 0xd // 80 .byte 0xc // 81 .byte 0xf // 82 .byte 1 // 83 .byte 3 // 84 .byte 4 // 85 .byte 2 // 86 .byte 0xe // 87 .byte 6 // 88 .byte 5 // 89 .byte 7 // 8a .byte 0x10 // 8b .byte 0x11 // 8c .byte 8 // 8d // it should be noted that 0 is the default return value .byte 0 // 8e .byte 0 // 8f .byte 0 // 90 .byte 0 // 91 .byte 0 // 92 .byte 9 // 93 - new fairy held type /* OVERLAY 10 */ .org 0x0221F172 // 0x1AD54A in the generated file // ARM9 OVERLAY 10 OFFSET 0x3352 hook_subroutine_0221F172_ov_0A: bl get_arceus_type_from_held_effect mov r7, r0 b 0x221F3B4 // continue with the routine .org 0x221F1E7 .byte 0xFF // the ff is here so that the user can know when to stop copying data over // this frees up until 221F1E8 .org 0x0221F4C0 // ARM9 OVERLAY 10 OFFSET 0x36A0 hook_subroutine_0221F4C0_ov_0A: bl get_arceus_type_from_held_effect mov r5, r0 b 0x221F5E4 // continue with the routine .org 0x221F535 .byte 0xFF // this frees up until 221F536 /* OVERLAY 12 */ .org 0x022584FE // ARM9 OVERLAY 12 OFFSET 0x20C3E hook_subroutine_022584FE_ov_0C: bl get_arceus_type_from_held_effect mov r4, r0 b 0x2258572 .org 0x2258571 .byte 0xFF // this frees up until 2258572 .org 0x022586CC // ARM9 OVERLAY 12 OFFSET 0x20E0C hook_subroutine_022586CC_ov_0C: bl get_arceus_type_from_held_effect mov r5, r0 b 0x22587F0 .org 0x2258741 .byte 0xFF // this frees up until 2258742 .org 0x02258C1A // ARM9 OVERLAY 12 OFFSET 0x2135A hook_subroutine_02258C1A_ov_0C: bl get_arceus_type_from_held_effect mov r5, r0 b 0x2258D66 .org 0x2258C8F .byte 0xFF // this frees up until 2258C90 .close
There are edits that need to be made to the ARM9 binary and overlays 10 and 12. The code that was changed is detailed in the source spoiler immediately above this.
When Arceus holds an item with held effect 0x93, he will change to be type 0x9, the one we're replacing.
For a precompiled version, see the following spoiler (and ready-to-insert binaries in the zip provided):
Spoiler:Code:ARM9 Binary: - 0x71C28 - 7E 38 15 28 02 D8 02 49 08 5C 70 47 00 20 70 47 3C 1C 07 02 0A 0B 0D 0C 0F 01 03 04 02 0E 06 05 07 10 11 08 00 00 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Overlay 10: - 0x3352 - 52 F6 59 FD 07 1C 1C E1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 0x36A0 - 52 F6 B2 FB 05 1C 8D E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Overlay 12: - 0x20C3E - 19 F6 93 FB 04 1C 35 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 0x20E0C - 19 F6 AC FA 05 1C 8D E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 0x2135A - 19 F6 05 F8 05 1C A1 E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
![]()
We know our code is working because the Arceus has changed types to our new type!
Now we just need to use a few tools to replace all the ???-form Arceus gfx with our modified Fairy form Arceus.
In a114, replace items 212 and 213 with normalarceuspal.bin and shinyarceuspal.bin respectively. a114 is the narc containing all of the alternate form gfx data, and Arceus is no exception. Here we replace the ??? form things with our custom fairy form palettes. Change as you please.
In the overworld narc (a081), change file 854 to arceus-fairy.btx0. This is the Fairy Arceus' overworld follower sprite. Edit for your type as you please.
If you so desire, I have included my a114 and a081 narcs with the required edits.
Overlay 12's pre-edited binary is finally included in the next step, as there's one more edit that needs to be made...
![]()
![]()
Setting Judgment's Type to the New One
This is a really simple modification involving replacement of a battle script:
In a030, replace file 268 with a030_268.bin. This will change Judgment to be the new type.
Now, you know all those items like the Charcoal and the Miracle Seed that boost the Fire- and Grass-types? Well the Plate acts like one of those as well.
If you followed this tutorial to a T, you used the space that this table used to occupy to expand the type effectiveness array. This was intended.
In overlay 12 once again, there is a table at 0x226CC3A that we will need to repoint. This is the "type booster array," which lists the following:
We're going to repoint it to some space that we freed up when inserting the Fairy Arceus code.Code:1 byte - held effect 1 byte - type that the effect boosts
Repoint 0x0226CC3A to 0x02258C22. Or, in your favorite hex editor within overlay 12, replace 3A CC 26 02 with 22 8C 25 02.
At 0x21362 in overlay 12, place the following table:
Bold in that table is our added entry for held effect 0x93 boosting our new type.Code:39 06 44 08 48 04 49 05 4A 0C 4B 11 4C 01 4D 0D 4E 0B 4F 02 50 03 51 0F 52 07 53 0E 54 0A 55 10 56 00 7E 0A 7F 0B 80 0D 81 0C 82 0F 83 01 84 03 85 04 86 02 87 0E 88 06 89 05 8A 07 8B 10 8C 11 8D 08 [b]93 09[/b]
The type booster array has been restored to the ROM, and all is well.
Finally, at 0x0225732C (0x1FA6C overlay 12), put 0x22 there. This changes the loop to check for 0x22 entries in the table above instead of 0x21.
That should wrap up the Plate for the new type.
![]()
disclaimer: no cyndaquil were harmed in the implementation of this type
Changing Curse to be Ghost
And now, one cherry for the top of the cake: Changing the type of Curse so that it doesn't appear to be our new type. I honestly only included it in this tutorial for some sort of completionist purposes.
Following this link, you can download Buffel Salt's Nightmare module for attack editing. Select Open ROM, choose narc a011, and then you can edit all the attacks. Scroll down to Curse and then edit it so that it's not the ??? type. Bam.
![]()
Article: ![]()
disclaimer: no cyndaquil were harmed in the implementation of this type
This concludes my tutorial for inserting the Fairy type in Heart Gold.
Hoping to look into the Roseli Berry more, but honestly I've just been sitting on a lot of this for a long time. Just finally got around to making the whole post and going through the tutorial a number of times.
Included in the download is actually a .xdelta patch to be applied to an English Heart Gold ROM (CRC32 C180A0E9). Will not be applicable with in progress hacks, nor will it ever be. If you're looking into Gen 4 ROM Hacking, you definitely need to start familiarizing yourself with the filesystem used for these games. EDIT: This patch is actually a little bit dysfunctional, but importing the included binaries for overlay 18 and a017 in their respective places using CrystalTile2 fixes the errors made. I do not recommend using the patch, but it is here.
I have precompiled binaries attached as well that just inserting those will have everything functional for the Fairy type for you (and with an in-progress game too!). Check everything out.
Hope you are staying safe amidst the pandemic and that you have a nice night.
Last edited: