• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Our weekly protagonist poll is now up! Vote for your favorite Conquest protagonist in the poll by clicking here.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Development: Animated Sprites in Ruby and FireRed

As I already explained, animations table in this 308CBC.
But the jumps and bumps...
...I have no idea where this...
...editing even less...
BUT IT MUST BE BLESSED WITH ASM ROUTINE
(image no longer exists)
(image no longer exists)
 
As I already explained, animations table in this 308CBC.
But the jumps and bumps...
...I have no idea where this...
...editing even less...
BUT IT MUST BE BLESSED WITH ASM ROUTINE
Chances are the rotations, movement and dilating is done via a table of some sort, or even another script-like bytecode. You could have 1 byte for the type, then 3 for arguments (or less...)

Chances are, however, that it will require some extreme decompiling to even find it.
 
The routine is at 0x011d65

I can say this because I already caught in the pokemon in battle when he was coming!


're getting close... hihihi...
 
Last edited:
It would be nice if someone makes a patch for this.

It's 28 bytes, do we really need a patch for that? No, no we don't.

Just use a hex editor, they don't byte. :)
 
It's 28 bytes, do we really need a patch for that? No, no we don't.

Just use a hex editor, they don't byte. :)

I know nothing about hex editing...
Seriously, people should make more video tutorials, if it's easy then it won't take much of their time.
Cool stuff like battle animation editing also needs a video tutorial.
all I can find on youtube is super simple stuff about hacking, and why does everyone hate Pokemon ruby?...
or how about someone make tools.
 
So everyone what's the final code for FR that loops the animation and has no bugs?
 
I would do it if I only know how to make ASM codes but right now all I know is compiling.
But do you have any idea on how it should be structured?

I think this might be pretty easy if someone could just find out where the code continues after reaching FF FF 00 00.
 
Last edited:
The issue isn't with the looping mechanism, it's the fact that the battle routine pauses until the animation is done. Finding it isn't as easy as you think, you'd have to dig through several, perhaps hundreds of routines before finding out how to fix it.
 
The issue isn't with the looping mechanism, it's the fact that the battle routine pauses until the animation is done. Finding it isn't as easy as you think, you'd have to dig through several, perhaps hundreds of routines before finding out how to fix it.

Woah a hundred routines? :3 That would really take a while.

But how about the routine that makes the sprite move for the backsprite in emerald have you got luck in finding it? :3
 
I discovered a way of letting an animation similar to BW.
Spoiler:

I need help to improve this routine!

...Sorry for bad english.
 
Last edited:
I discovered a way of letting an animation similar to BW.




Well, if we know that an offset as 0x2FF7D00 is an area of ​​memory that can change.
We can go to 0x2349BC and insert these bytes: 00 7D FF 02
Now, go to the Game Boy and go to "Memory view".


Walk to 0x2FF7D00 and insert bytes as follows: 00 00 0A 00 01 00 0A 00 FF FF 00 00
Thus, when in a wild battle, just a touch as FE FF under FF FF will make the pokemon dance.




Let's go to the Hex again. In 0xD7360, we will see what I like to call "routines for setwildbattlemessages".

To facilitate the understanding of what I want to show, put something like this:
64 73 0D C6 08 F1 80 08 30 C6 80 08 60 C6 80 08 80 C6 C1 08 90 C6 80 08 54 76 0D 08


Then, go to 0x80C4BC and put this:
B4 30 05 2D 4D 88 02 4E 35 80 04 48 30 BC 00 47 18 7D FF 02 C0 70 03 02 C2 70 03 02 29 74 0D 08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 30 B4 2D 4D 05 88 02 4E 35 80 04 48 30 BC 00 47 18 7D FF 02 C0 70 03 02 70 03 02 C2 C9 74 0D 08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 05 4D 30 B4 2D 88 02 4E 35 80 04 48 30 BC 00 47 18 7D FF 02 C0 70 03 02 C2 70 03 02 75 0D 08 F1 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 30 4D 04 2D 88 B4 02 4E 35 80 04 48 30 BC 00 47 18 7D FF 02 C0 70 03 02 C2 70 03 02 59 75 0D 08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 30 B4 04 88 02 4D 2D 4D 35 80 04 48 30 BC 00 47 18 7D FF 02 C0 70 03 02 C2 70 03 02 73 7D 0D 08





The routines I did was to load that is within variables 0x8004 and 0x8005 in 0x2FF7D18.

Therefore, before using any battle, run a script like:
setvar 0x8004 0xFFFF
setvar 0x8005 0xFFFE
end
(...)
I need help to improve this routine!

...Sorry for bad english.

Nice, do you think you could also provide the source ASM so that we can get a better insight as to how this works? I'm sure I and several others would also like to have this ASM available to improve on in case any errors or special needs for their hacks arise.
 
Nice, do you think you could also provide the source ASM so that we can get a better insight as to how this works? I'm sure I and several others would also like to have this ASM available to improve on in case any errors or special needs for their hacks arise.
Spoiler:
 
Last edited:
Whoa, are you serious?! Well, I'm not that surprised.
I was wondering how Pokemon Skyline did that trick.
 
I managed to fix some bugs typical of a Asm-Noob.
When you restarted the game, the memory disappeared.
Spoiler:

Let me know about BUGS!
 
Last edited:
Back
Top