Research & DevelopmentGot a well-founded knack with ROM hacking? Love reverse-engineering the Pokémon games? Or perhaps you love your assembly language. This is the spot for polling and gathering your ideas, and then implementing them! Share your hypothesis, get ideas from others, and collaborate to create!
New threads in this forum are to be approved by a moderator before they are displayed. The thread revival limit does not apply here.
Okay, this is my first ASM-related thing. Basically, I have figured out how to alter a Pokemon's index number, while not letting it turn into a bad egg.
First of all, in a Ruby rom, place this routine somewhere. We'll call this "JPAN Routine 1":
What this routine does is, is changes the first Pokemon of your party to whatever value you stored in 0x8005. It only works however, if you called JPAN's first routine before it, and if you call JPAN's second routine after my routine.
Now that you've inserted JPAN's routines and my own routine, here is how you apply them: In any script (like a signpost), place this:
Code:
callasm 0x(offset of JPAN Routine 1, +1)
setvar 0x8005 0x(index number of the Pokemon that it will change into)
callasm 0x(offset of my routine, +1)
callasm 0x(offset of JPAN Routine 2, +1)
end
Now you can easily alter the first Pokemon of your party to anything you want. For example, this is what my signpost looks like:
Spoiler:
Code:
'---------------
#org 0x14D808
callasm 0x8C00001
setvar 0x8005 0x9
callasm 0x8C001C1
callasm 0x8C00141
msgbox 0x816AE50 MSG_SIGN '"I just changed the first Pokémon\n..."
end
'---------
' Strings
'---------
#org 0x16AE50
= I just changed the first Pokémon\nof your party into a Blastoise.\lDeal with it.
This will change the first Pokemon of my party into Blastoise (0x9 is Blastoise's hex number). Let's try it out.
The reason why this might be useful is that I can now do form changes in my 649 Project, and I can "fake" more than 5 evolutions by having certain Pokemon switch into a different index number (but identical stat-wise), such as a second Eevee that can evolve into Leafeon or Glaceon. Hopefully this is useful to some other people as well.
I'll probably use it in my hack after changing it to fire-red, is that alright?
There is absolutely no point in doing that, since I converted it from FireRed to Ruby. Meaning the original code was for FireRed. You could just use JPAN's original code (which I linked to), because it was for FireRed.
Quote:
and this is just a suggestion, but why not do like JPAN did and assemble the routine yourself so people can insert it easier?
People need to learn how to insert ASM routines. ShinyDragonHunter is a perfect example of this.
There is absolutely no point in doing that, since I converted it from FireRed to Ruby. Meaning the original code was for FireRed. You could just use JPAN's original code (which I linked to), because it was for FireRed.
lol no i meant changing the address for var 8005 in ur routine... i dont wanna write one for myself since u've already done it