• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • 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: Creating New Battle Animations

xGal

Mhm
241
Posts
12
Years
EDIT: Figured it out, I am so dumb...

See more on VM :/
 
Last edited:
13
Posts
10
Years
  • Age 28
  • Seen Nov 19, 2014
I'm a newbie and the tutorial is too advanced for me to understand. Could somebody please guide me easier to understand? Such as where must I put these code?
 
76
Posts
15
Years
  • Age 31
  • Seen Aug 8, 2021
So, if nobody else is going to try to help out Emerald hackers, I guess I'll do my bit. Just don't be mad if I get literally everything wrong, because I haven't got a ****ing clue what I'm doing - I'm just blindly stumbling around, trying to search for the non-pointer byte patterns from this tutorial. I'd appreciate it if Chaos Rush would put this stuff in the OP, so other people don't have to guess at this stuff, but...

14 WW 16 03 61 76 11 08 05 04 00 XX 00 YY ZZ 00 FF FF
The fragment of hex used in Emerald for background movement (the pointer is different). All the background IDs are still accurate. Haven't tested, but I presume replacing 16 with 17 has the same effect as in Fire Red.

As a side note, because I couldn't for the life of me find any information for this, the pointer for the second animation for Sky Attack is 2CD28E in Emerald. Still no idea where Skull Bash is.
 
Last edited:
89
Posts
10
Years
For Ruby hackers, the command to clear background is 0E F3 61 1D 08 before you add the 08 byte at the end.
Most of Chaos Rush's commands work, except for any command with an "08" (pointer) inside.

Edit: I found the commands. They are:
14 XX 17 03 59 3A 0E 08 05 04 00 00 00 YY 0Z 00 00 FF FF (Scrolling BG Left-to-Right)
14 XX 17 03 59 3A 0E 08 05 04 00 00 00 YY FZ 00 00 FF FF (Scrolling BG Right-to-Left)

Now, I would like some help with finding the Psychic Background command for Ruby.


 
Last edited:
252
Posts
10
Years
  • Age 27
  • Seen Jul 6, 2019
If a person experienced in Emerald animations would help me with this, I would be very grateful.
I'm trying to make a new animation, with the Dark background and the slash animation, but the game freezes every time the animation finishes. I did add an extra 08 and everything, and I'm pretty sure I found the right commands, so I'm not really sure what's going wrong. I really want to squash this bug so I can move on to implementing custom backgrounds in Emerald.
Anyways, here's my code:
Code:
14 00 17 00 C7 27 02 2C 2D 59 08 82 03 01 00 F8 FF 00 00 19 88 00 3F 04 04 02 2C 2D 59 08 82 03 01 00 08 00 00 00 03 D1 52 0D 08 02 05 01 00 04 00 00 00 12 00 01 00 19 88 00 3F 05 FF 0E DD 7C 2D 08 08

EDIT: Nvm I realized what went wrong. It's funny how one byte changes everything.
 
Last edited:
9
Posts
10
Years
  • Age 28
  • Seen Mar 25, 2015
If a person experienced in Emerald animations would help me with this, I would be very grateful.
I'm trying to make a new animation, with the Dark background and the slash animation, but the game freezes every time the animation finishes. I did add an extra 08 and everything, and I'm pretty sure I found the right commands, so I'm not really sure what's going wrong. I really want to squash this bug so I can move on to implementing custom backgrounds in Emerald.
Anyways, here's my code:
Code:
14 00 17 00 C7 27 02 2C 2D 59 08 82 03 01 00 F8 FF 00 00 19 88 00 3F 04 04 02 2C 2D 59 08 82 03 01 00 08 00 00 00 03 D1 52 0D 08 02 05 01 00 04 00 00 00 12 00 01 00 19 88 00 3F 05 FF 0E DD 7C 2D 08 08

EDIT: Nvm I realized what went wrong. It's funny how one byte changes everything.

What was the one byte that went wrong? I want to use this code too, and I'm getting the same problem you were having.
 
Last edited:
252
Posts
10
Years
  • Age 27
  • Seen Jul 6, 2019
What was the one byte that went wrong? I want to use this code too, and I'm getting the same problem you were having.
Ah my apologies, I didn't see this. It's been a while since I made this code, but I believe the FF byte near the end caused the problem; just take that out and you should be fine, I think.
 
9
Posts
10
Years
  • Age 28
  • Seen Mar 25, 2015
Ah my apologies, I didn't see this. It's been a while since I made this code, but I believe the FF byte near the end caused the problem; just take that out and you should be fine, I think.

Maybe you have the code stashed away somewhere? I changed the FF byte to 00 but that restarted my ROM when the attack was executed, so I instead took out the FF byte completely and my ROM broke.
 
Last edited:
252
Posts
10
Years
  • Age 27
  • Seen Jul 6, 2019
Maybe you have the code stashed away somewhere? I changed the FF byte to 00 but that restarted my ROM when the attack was executed, so I instead took out the FF byte completely and my ROM broke.
Ok, I'm on my computer now, I'll look at it and tell you what the problem is.

EDIT: Ok, here's my revised code. This definitely works. If this doesn't work, then you're probably doing something wrong. (I tested this myself) :

Code:
14 00 16 00 C7 27 02 2C 2D 59 08 82 03 01 00 F8 FF 00 00 19 88 00 3F 04 04 02 2C 2D 59 08 82 03 01 00 08 00 00 00 03 D1 52 0D 08 02 05 01 00 04 00 00 00 12 00 01 00 19 88 00 3F 05 0E DD 7C 2D 08 08
 
Last edited:
9
Posts
10
Years
  • Age 28
  • Seen Mar 25, 2015
Ok, I'm on my computer now, I'll look at it and tell you what the problem is.

EDIT: Ok, here's my revised code. This definitely works. If this doesn't work, then you're probably doing something wrong. (I tested this myself) :

Code:
14 00 16 00 C7 27 02 2C 2D 59 08 82 03 01 00 F8 FF 00 00 19 88 00 3F 04 04 02 2C 2D 59 08 82 03 01 00 08 00 00 00 03 D1 52 0D 08 02 05 01 00 04 00 00 00 12 00 01 00 19 88 00 3F 05 0E DD 7C 2D 08 08

Thanks, it worked!

25charmanderlimit
 
89
Posts
10
Years
Here's some animation codes for Ruby:
Ice Fang
Spoiler:

Thunder Fang
Spoiler:

Drain Punch
Spoiler:
Spoiler:
Spoiler:

Seed Bomb
Spoiler:

And I have some questions:
-What command allows you to play a sound multiple times?
-How would a pointer to offset 1 00 00 00 be written? Would it be 00 00 00 01 08, 00 00 00 18, or 00 00 00 09?
 
Last edited:

destinedjagold

You can contact me in PC's discord server...
8,593
Posts
16
Years
  • Age 33
  • Seen Dec 23, 2023
I have successfully made a simple animation for Night Slash in a Ruby ROM. :P
Adding backgrounds seemed to be easier than I thought.
Many thanks to Chaos Rush for this tutorial, and to dreamengine and Artemis64 for your Ruby contributions~ ^^

But I'm having trouble understanding how to add some hues of blue and green and other colors to the screen, like Absorb and Water Pulse. =/
 
252
Posts
10
Years
  • Age 27
  • Seen Jul 6, 2019
I have successfully made a simple animation for Night Slash in a Ruby ROM. :P
Adding backgrounds seemed to be easier than I thought.
Many thanks to Chaos Rush for this tutorial, and to dreamengine and Artemis64 for your Ruby contributions~ ^^

But I'm having trouble understanding how to add some hues of blue and green and other colors to the screen, like Absorb and Water Pulse. =/
destinedjagold: Same principle applies. Just add the code to activate the background at the front, put your animation in between, and put the clear code at the end. Except you don't really need to add an extra 08 here. Here's my modified night slash example for Emerald, with the Giga Drain background, but you can substitute in the codes for Ruby (I think Artemis64 has the codes somewhere) :
Code:
02 74 72 59 08 02 05 01 00 01 00 00 00 04 00 ED 33 05 00 C7 27 02 2C 2D 59 08 82 03 01 00 F8 FF 00 00 19 88 00 3F 04 04 02 2C 2D 59 08 82 03 01 00 08 00 00 00 03 D1 52 0D 08 02 05 01 00 04 00 00 00 12 00 01 00 19 88 00 3F 05 02 74 72 59 08 02 05 01 00 01 00 04 00 00 00 ED 33 05 0B 03 0D 08
 
89
Posts
10
Years
Here are the codes:
To enable such a background: 02 C4 B3 3D 08 02 05 01 00 SS 00 00 00 II 00 CC CC 05
To clear the background: 02 C4 B3 3D 08 02 05 01 00 SS 00 II 00 00 00 CC CC 05 0B 03 0D
SS refers to speed at which the battle becomes colored CC CC, and II controls at what intensity. For CC CC, all you have to do is open up Advance Map, go to the block editor then the palette editor, and pick the color you want. The 15-bit value there, however, has to be reversed to be usable in the thing.
I was thinking about adding new attack backgrounds, however. Using tajaros' tutorial, and substituting the offset 0x37F374, and adding his example Waterfall background, it failed when I placed the pointers at the end of the table. However, if I use it to overwrite BG 0x1 (the extra Dark-type BG) I can load it, and it works perfectly fine as far as I can see. Which makes me think there is some limiter that is preventing the game from loading more than 0x1A (26) backgrounds, in Ruby at least. Unfortunately, I have no idea how to go about finding limiter bytes. If someone can explain the process to me, I'd be more than willing to do it myself.
Edit: Wow, I even forgot what I originally wanted to post (my Flame Charge animation bytes, and my adapted Gen 4 flame sprites):
Flame Charge:
Spoiler:

View attachment 72021
Edit 2: Here are some more animated background commands:
Animated Psychic : 0E E7 61 1D 08
High-power BG command: 0E E9 85 1C 08
Flying type BG : 0E FB 61 1D 08
As usual, all of them are for Ruby.
 
Last edited:
457
Posts
10
Years
  • Age 28
  • Seen Mar 17, 2024
Wow! Very interesting! This really helped me a lot and I get to create on my own. :)

Draco Meteor (noGIF):
twilightfr_0027_insert_sprites_2___elite_four_by_raileysxerilyasrx-d7je4bd.png

I like it a lot. :)

Leaf Storm (noGIF):
twilightfr_0027_insert_sprites_2___elite_four_by_raileysxerilyasrx-d7je4b5.png

Well, kinda bit simple for a powerful move. :3

If you want the Hex codes, just download the attachments below:
View attachment 72102
View attachment 72103
Just open it in an hex editor and you got it. :)
 
Last edited:
89
Posts
10
Years
Here's some more data on the commands/pointers:
To recap, the 0E command not only loads a sprite, but also loads complex movements e.g. the rotating fire of Fire Spin, the Mud-Slap. The 02 command loads a sprite with some basic movements e.g. the moving upwards before falling downwards in a curve of Acid and Water Gun.
So I was intending to create a custom Emerald animation for Acid Spray by using Mud Slap and replacing the mud particles with A6 27, which is the Acid poison particle command. However, the 02 command didn't load the spherical Acid properly, but rather loaded half of it and combined it with the acid droplets. Therefore I was digging through the 02 command's 0x18 bytes to see how to get it fixed. What I found was the structure of the 02 command:
(1st 2 bytes, image data)(Next 2 bytes, palette data)(2 pointers to what should be extracted from the image and used and how to piece it together)(4 00 bytes, still haven't figured out what they do)(2 pointers containing movement data)
 
Back
Top