Extremely helpful, thank you. Lurker emerging, here, as he finally gets his first hack off the ground.
Emerald is indeed different. Enough that it took me a fair few hours in between House of Cards to hammer out the details. LCCoolJ95 here was kind enough to present the offsets for the Image and Palette data as well as the one for the image-to-chart matchup thingy (second part of Step 1). I found a couple more useful ones, though.
Effectiveness chart (Step 2): 31ace8
Types Name List (Step 3): 31ae38
The type matchup/effectiveness data is in a different order than FireRed's, though it still starts with Normal and ends with Dark. As for the type names, there's a fairly major difference - in FireRed, each type name
ends with FF, allowing for some 00's in there for alignment.
Code:
. . . CC C9 BD C5 FF 00 00 BC CF C1 FF 00 00 00 C1 C2 C9 CD CE FF 00 CD . . .
In Emerald, each type name is
capped by FF's - that is to say, it starts and ends with FF, and there are only 00's where there would be 2 or more in a row in Fire Red. Additionally, it'd seem the ending string is FF 00 FF 00.
Code:
. . . CC C9 BD C5 FF 00 FF BC CF C1 FF 00 00 FF C1 C2 C9 CD CE FF FF CD . . . BB CC C5 FF 00 FF 00
One more change that should be noted - in the default image we're working with here, the 5 misc tags are just a touch wider than they are in FireRed - they'll be listed with a width of 2A rather than 28.
So right now, as far as I know, I've got Fairy fully implemented into Emerald. The issue is actually testing/using it. Does anyone know of a way to get the Gen III Rom Hacking Suite to use Fairy as a type? I'd use YAPE, but I've done a little messing around with the Suite, laid groundwork for replacing the ?'s after Celebi with the evolutions introduced in 4th gen, and that's made YAPE crash when opening this particular rom. I could go back and do this from an earlier version, I suppose, but that'd be something of a pain.
I've set numberoftypes = 19 for Emerald in the PokeRoms.ini for the Suite and moved the pointer for the typenames, but it doesn't seem to have helped. It may just be my implementation of Fairy into the name table; I kind of just made something up.
Code:
FF BE BB CC C5 FF 00 00 00 00 00 00 00 FF 00 00 00 00 00 00 FF 00 00 00 00 00 00 FF FF C0 D5 DD E6 ED FF 00 FF 00