Jeesh
I just wanna hack Emerald.
- 44
- Posts
- 8
- Years
- Seen Aug 23, 2020
THIS THREAD IS VERY UNFINISHED, BUT IT IS BEING WORKED ON. IF YOU WANT TO CONTRIBUTE, FEEL FREE TO POST IN THIS THREAD AND I WILL ADD IT TO THE MAIN POST.
erhem.
I don't know if there exists a thread for this topic, but it's probably buried, so here's a new one!
Howdy do, my fellow communitees. Lately, somethings been bugging me in my ROM Hacking career: The Pokémon Emerald Battle Sprite animations. Y'know, these things:
lookit the cute widdle flygon d'awwww
And the question that stirs in my mind: "Are they worth it?" Multiple sources of Emerald ROM hackers say its best to disable them, because they cause to much unnecessary work to be done, whether it be in sprites, animation paths, or frame delays.
However, I say NAY!
I am a firm believer that the animation aspect of Pokémon Emerald is one of the elements that distinguishes it from the rest of the Gen 3 ROM hacking roster, and for that reason, I have decided to help spread my knowledge on the topic, hopefully encouraging hackers young and old, novice and veteran, to include this cool stuff in your hack.
In this thread, the discussion of animation encoding, such as hex values, offsets, and other little goodies will be partaken, to give those Emerald hackers an easier approach to the topic.
Now you might be thinking: "Oh, no! But I only have 1 frame sprites! How am I supposed to make 2 frames? I can't art!" Well have no fear, because there is already a thread where ROM hackers and pixel artists throughout the community are working their magic to make that a reality! You can check out their snazzy work by clicking this beautiful string of blue words.
Without further ado, lets get into the data. Lets start with...
Front Animation Table
In your average Pokémon Emerald ROM, the average offset for this will be located at 3299EC. This table decides how the Pokémon will move and change size or color. There are 150 different animation paths, and so far I've only gone up to 52, which is the last seen used path. NOTE: THE PATHS COUNT UP BY HEXADECIMAL CODE.
Here's how you can change the path (and this applies to ALL 1 byte tables): When you find the offset, you'll have to do a bit of manual searching to find the mon you're looking for, but it shouldn't be that hard. Each Pokemon takes up one byte (aka two letters/numbers, like FF or 00) in the code. So changing that simple two digit/letter byte to any of the ones listed in the spoiler below will change that animation to the animation you chose. The spoiler contains a brief explanation, some with examples, of the animation the byte code entails. Again, there are 150 different paths, but 52 is more than enough if you want to do a simple animation hack.
FRONT ANIMATION PATHS
Back Animation Table
This is the table for back animation sprites, or the sprites that show you the butt of the Pokemon. These animations, as least as far as Gen 3 and Diamond and Pearl, are 1 frame, and we don't have a very sure idea as to how to make it 2. However, it is located at offset 60A8C8. As well as the front sprite animation paths, these codes are 1 byte long, but unlike the front animation paths, it starts with the ? 'mon instead of Bulbasaur. Coming soon is a good, long list describing each one.
Animation Delay Table
Not much I know about this as of late, but I believe that it has to do with when and how many times the 'mon changes to it's 2nd animation frame. Most 'mons change their frame once, but those like Tailow who spastically flap their wings, they have a much larger amount of frame changes. This must be the table that decides that. Each code is 1 byte long, starts with Bulbasaur. It is located at the offset 329B87. Coming soon is a good, long list describing each one.
Frame Control Table
...
Oh dang.
Maybe this is the table for the description I just gave.
Advanced hackers if you know pls help
For whichever, I'll be coming atcha with info later.
Animation Rotating and Scaling Table
This is a table that isn't really necessary to touch. It is the table that holds aaaaaaall the info for movement paths and resizing and stuff. Everything that moves or changes in a Pokemon's front sprite movement path. Since it's like the basis of all the other tables, I'd recommend leaving this one alone. Unless you REEEEEAAAALLY want to change a movement path. But AGAIN. 150 PATHS.
It's located at offset 60AA88 btw.
That's all so far. Expect updates as soon as December 5th. I'm just getting started with this.
erhem.
I don't know if there exists a thread for this topic, but it's probably buried, so here's a new one!
Howdy do, my fellow communitees. Lately, somethings been bugging me in my ROM Hacking career: The Pokémon Emerald Battle Sprite animations. Y'know, these things:
![[PokeCommunity.com] [UNFINISHED] Emerald Animations: Codes and Offsets Database [PokeCommunity.com] [UNFINISHED] Emerald Animations: Codes and Offsets Database](https://pldh.net/media/pokemon/gen3/rusa_action/330.gif)
And the question that stirs in my mind: "Are they worth it?" Multiple sources of Emerald ROM hackers say its best to disable them, because they cause to much unnecessary work to be done, whether it be in sprites, animation paths, or frame delays.
However, I say NAY!
I am a firm believer that the animation aspect of Pokémon Emerald is one of the elements that distinguishes it from the rest of the Gen 3 ROM hacking roster, and for that reason, I have decided to help spread my knowledge on the topic, hopefully encouraging hackers young and old, novice and veteran, to include this cool stuff in your hack.
In this thread, the discussion of animation encoding, such as hex values, offsets, and other little goodies will be partaken, to give those Emerald hackers an easier approach to the topic.
Now you might be thinking: "Oh, no! But I only have 1 frame sprites! How am I supposed to make 2 frames? I can't art!" Well have no fear, because there is already a thread where ROM hackers and pixel artists throughout the community are working their magic to make that a reality! You can check out their snazzy work by clicking this beautiful string of blue words.
Without further ado, lets get into the data. Lets start with...
Front Animation Table
In your average Pokémon Emerald ROM, the average offset for this will be located at 3299EC. This table decides how the Pokémon will move and change size or color. There are 150 different animation paths, and so far I've only gone up to 52, which is the last seen used path. NOTE: THE PATHS COUNT UP BY HEXADECIMAL CODE.
Here's how you can change the path (and this applies to ALL 1 byte tables): When you find the offset, you'll have to do a bit of manual searching to find the mon you're looking for, but it shouldn't be that hard. Each Pokemon takes up one byte (aka two letters/numbers, like FF or 00) in the code. So changing that simple two digit/letter byte to any of the ones listed in the spoiler below will change that animation to the animation you chose. The spoiler contains a brief explanation, some with examples, of the animation the byte code entails. Again, there are 150 different paths, but 52 is more than enough if you want to do a simple animation hack.
FRONT ANIMATION PATHS
Spoiler:
00 = Treeko - a little upward stretch
01 = Swellow, Wailmer, Mudkip, Regirock - Stretch and grow motion, in a bouncy manner
02 = Vibrava - Shakes back and forth
03 = Zigzagoon - Sort of "serpentines" back and forth in a slower motion than 02
04 = Marshtomp - Serpentines again, but vertically this time
05 = Ludicolo, Seedot - Hops by tilting left and right
06 = Dustox - Does a few hops in place, then hops back and forth
07 = Snorlax, Slowbro - Tilts back and forth to great distances
08 = Does same as 07, but faster and multiple times
09 = Shakily (?) shrinks in and out, as if screaming. Looks like Electrodes animation from HGSS
0A = Glalie, Duskull - Move in a zig zag vertically
0B = 07 but to...shorter distances?
0C = Is literally 08, I see no difference
0D = Mantike, Jirachi - Swings back and forth like a bell, perfect for Bronzong
0E = 0D...BUT FASTER! AND MORE SWINGS!
0F = Fast serpentine-ing, also to shorter horizontal distances
10 = Corphish, Armaldo, Tropius - Shakes vertically once, unlike Cradily and Aggron who shake twice
11 = Shakes EVERYWHERE spastically
12 = Clamperl, Anorith - ACTUAL shaking on a center axis
13 = Wartortle, Slowking - An in n' out stretch in size
14 = Regice - Float around very fast in a circle
15 = Gastly, Sableye - Fades in and out a black silhouette overlap
16 = Stretches outward, flattens a tad bit
17 = Ivysaur, Arbok - An upward stretch
18 = The classic floaty animation, but starts by going upward, maybe there's another for Shedinja, Shuppet, Wailord, Gorebyss, etc.
19 = Cradily, Bagon, Aggron - Shakes vertically twice
1A = The Growlithe charge.
1B = Deoxys? Is that you? The 'mon tilts widely up and down, rotating in the process to a slight degree.
1C = Shuppet, Wailord, Shedinja - THIS is the average floaty thing. It starts by floating downward.
1D = Chimeco - Horizontal floateh.
1E = The Charmander hop in place.
1F = Theeeeeeres Spheal! Two 360 degree rotations happen.
20 = KAKUNA. The 'mon turns a slight hue of yellow.
21 = Same as Kakuna, but 'mon turns a slight hue of red. It'd be good for Magmoratar, tho.
22 = Milotic - 'Mon turns a hue of blue. (That rhymed!)
23 = WOAH. 'Mon turns a BRIGHTER hue of yellow in this one. I guess I can call Kakuna's animation a hue of orange now.
24 = If you're a rather flamboyant Pokemon, this is the animation for you. Turn a slight shade of purple!
25 = Charmeleon - The "swiper" move.
26 = An unused one where the 'mon moves diagonally forward and does a 360. Dope.
27 = Flashin' in and out. Kinda like Kecleon.
28 = A much bigger movement of 26.
29 = A...um...26? Just look at it yourself.
2A = Magnemite. Just. Magnemite.
2B = Fearow - Flying left and right, flipping sprite horizontally.
2C = Elekid, Pikachu, Magneton - The yellow sparky flashing silhouette, for all your classic electric Pokemon
2D = Another fast 07...short distance, only happens once.
2E = A fast 0D
2F = Golem, Venusaur - STOMPIN'!
30 = Almost completely flattens, then almost ompletely thins out. In that order.
31 = Hoppedy hop. A few simple hops. Not as precise as Rattata, though. They're just tiny jumps.
32 = Poliwhirl - Big hops. 2 big jumps. Boing!
33 = Fast. Big. 07.
34 = HARIYAMA.
35 = KECLEON.
36 = Looks like it was unused, cuz I can't think of any that have used it! Nonetheless, the 'mon tilts like 45 degrees then bounces forward a bit. Check it out for yourself, it could be interesting.
37 = Also another unused one. There are 2 bounces involed, and its really hard to explain it in words, just look at it yourself.
38 = Another unused one, but this ones pretty cool. It tilts upward, stops and shakes as if its roaring, then falls back down. Neat.
39 = REALLY SPASTICAL SHAKING. MOST LIKELY AN UNUSED ANIMATION.
3A = Good ol' Lugia. The sprite enlargens and gets up in your face.
3B = An unused one. IT LOOKS LIKE THE 'MON IS ACTUALLY JUMPING ITS SO COOL.
3C = Looks like 3B, but its not 3B. It's a lot...wavier.
3D = 3B, but slowly rising.
3E = 3B, but horizontally.
3F = A much larger 3E.
40 = A perspective one. The 'mon shrinks in and out. Once to the left, then to the right.
41 = Dodrio, Heracross - Bulges out, bounce-like, twice.
42 = 40, but perspectively, IN A CIRCLE. Ooooooo.
43 = Rattata. The shimmying left and right.
44 = Flying around in random directions.
45 = Ralts - Press down for bounce and then spring up.
46 = Back to the serpentine. Its probably a different variant, but I see no difference.
47 = Cacturne - The serpentine up and down. Pretty slow.
48 = Cacnea, Whiscash, Feebas - Hops and tilts left and right a few times.
49 = A slower 48.
4A = Another slower 48.
4B = A slow Duskull/Glalie zigzag.
4C = A really fast serpentine left and right.
4D = Fast serpentine up and down.
4E = The Clamperl shake, but TWICE.
4F = Moves in small circles, a smaller and slower Regice.
50 = Literally Aggron and Cradily again.
51 = A slower Shedinja/Shuppet float.
52 = The hoppity-hop seen on Charmander
01 = Swellow, Wailmer, Mudkip, Regirock - Stretch and grow motion, in a bouncy manner
02 = Vibrava - Shakes back and forth
03 = Zigzagoon - Sort of "serpentines" back and forth in a slower motion than 02
04 = Marshtomp - Serpentines again, but vertically this time
05 = Ludicolo, Seedot - Hops by tilting left and right
06 = Dustox - Does a few hops in place, then hops back and forth
07 = Snorlax, Slowbro - Tilts back and forth to great distances
08 = Does same as 07, but faster and multiple times
09 = Shakily (?) shrinks in and out, as if screaming. Looks like Electrodes animation from HGSS
0A = Glalie, Duskull - Move in a zig zag vertically
0B = 07 but to...shorter distances?
0C = Is literally 08, I see no difference
0D = Mantike, Jirachi - Swings back and forth like a bell, perfect for Bronzong
0E = 0D...BUT FASTER! AND MORE SWINGS!
0F = Fast serpentine-ing, also to shorter horizontal distances
10 = Corphish, Armaldo, Tropius - Shakes vertically once, unlike Cradily and Aggron who shake twice
11 = Shakes EVERYWHERE spastically
12 = Clamperl, Anorith - ACTUAL shaking on a center axis
13 = Wartortle, Slowking - An in n' out stretch in size
14 = Regice - Float around very fast in a circle
15 = Gastly, Sableye - Fades in and out a black silhouette overlap
16 = Stretches outward, flattens a tad bit
17 = Ivysaur, Arbok - An upward stretch
18 = The classic floaty animation, but starts by going upward, maybe there's another for Shedinja, Shuppet, Wailord, Gorebyss, etc.
19 = Cradily, Bagon, Aggron - Shakes vertically twice
1A = The Growlithe charge.
1B = Deoxys? Is that you? The 'mon tilts widely up and down, rotating in the process to a slight degree.
1C = Shuppet, Wailord, Shedinja - THIS is the average floaty thing. It starts by floating downward.
1D = Chimeco - Horizontal floateh.
1E = The Charmander hop in place.
1F = Theeeeeeres Spheal! Two 360 degree rotations happen.
20 = KAKUNA. The 'mon turns a slight hue of yellow.
21 = Same as Kakuna, but 'mon turns a slight hue of red. It'd be good for Magmoratar, tho.
22 = Milotic - 'Mon turns a hue of blue. (That rhymed!)
23 = WOAH. 'Mon turns a BRIGHTER hue of yellow in this one. I guess I can call Kakuna's animation a hue of orange now.
24 = If you're a rather flamboyant Pokemon, this is the animation for you. Turn a slight shade of purple!
25 = Charmeleon - The "swiper" move.
26 = An unused one where the 'mon moves diagonally forward and does a 360. Dope.
27 = Flashin' in and out. Kinda like Kecleon.
28 = A much bigger movement of 26.
29 = A...um...26? Just look at it yourself.
2A = Magnemite. Just. Magnemite.
2B = Fearow - Flying left and right, flipping sprite horizontally.
2C = Elekid, Pikachu, Magneton - The yellow sparky flashing silhouette, for all your classic electric Pokemon
2D = Another fast 07...short distance, only happens once.
2E = A fast 0D
2F = Golem, Venusaur - STOMPIN'!
30 = Almost completely flattens, then almost ompletely thins out. In that order.
31 = Hoppedy hop. A few simple hops. Not as precise as Rattata, though. They're just tiny jumps.
32 = Poliwhirl - Big hops. 2 big jumps. Boing!
33 = Fast. Big. 07.
34 = HARIYAMA.
35 = KECLEON.
36 = Looks like it was unused, cuz I can't think of any that have used it! Nonetheless, the 'mon tilts like 45 degrees then bounces forward a bit. Check it out for yourself, it could be interesting.
37 = Also another unused one. There are 2 bounces involed, and its really hard to explain it in words, just look at it yourself.
38 = Another unused one, but this ones pretty cool. It tilts upward, stops and shakes as if its roaring, then falls back down. Neat.
39 = REALLY SPASTICAL SHAKING. MOST LIKELY AN UNUSED ANIMATION.
3A = Good ol' Lugia. The sprite enlargens and gets up in your face.
3B = An unused one. IT LOOKS LIKE THE 'MON IS ACTUALLY JUMPING ITS SO COOL.
3C = Looks like 3B, but its not 3B. It's a lot...wavier.
3D = 3B, but slowly rising.
3E = 3B, but horizontally.
3F = A much larger 3E.
40 = A perspective one. The 'mon shrinks in and out. Once to the left, then to the right.
41 = Dodrio, Heracross - Bulges out, bounce-like, twice.
42 = 40, but perspectively, IN A CIRCLE. Ooooooo.
43 = Rattata. The shimmying left and right.
44 = Flying around in random directions.
45 = Ralts - Press down for bounce and then spring up.
46 = Back to the serpentine. Its probably a different variant, but I see no difference.
47 = Cacturne - The serpentine up and down. Pretty slow.
48 = Cacnea, Whiscash, Feebas - Hops and tilts left and right a few times.
49 = A slower 48.
4A = Another slower 48.
4B = A slow Duskull/Glalie zigzag.
4C = A really fast serpentine left and right.
4D = Fast serpentine up and down.
4E = The Clamperl shake, but TWICE.
4F = Moves in small circles, a smaller and slower Regice.
50 = Literally Aggron and Cradily again.
51 = A slower Shedinja/Shuppet float.
52 = The hoppity-hop seen on Charmander
Back Animation Table
This is the table for back animation sprites, or the sprites that show you the butt of the Pokemon. These animations, as least as far as Gen 3 and Diamond and Pearl, are 1 frame, and we don't have a very sure idea as to how to make it 2. However, it is located at offset 60A8C8. As well as the front sprite animation paths, these codes are 1 byte long, but unlike the front animation paths, it starts with the ? 'mon instead of Bulbasaur. Coming soon is a good, long list describing each one.
Animation Delay Table
Not much I know about this as of late, but I believe that it has to do with when and how many times the 'mon changes to it's 2nd animation frame. Most 'mons change their frame once, but those like Tailow who spastically flap their wings, they have a much larger amount of frame changes. This must be the table that decides that. Each code is 1 byte long, starts with Bulbasaur. It is located at the offset 329B87. Coming soon is a good, long list describing each one.
Frame Control Table
...
Oh dang.
Maybe this is the table for the description I just gave.
Advanced hackers if you know pls help
For whichever, I'll be coming atcha with info later.
Animation Rotating and Scaling Table
This is a table that isn't really necessary to touch. It is the table that holds aaaaaaall the info for movement paths and resizing and stuff. Everything that moves or changes in a Pokemon's front sprite movement path. Since it's like the basis of all the other tables, I'd recommend leaving this one alone. Unless you REEEEEAAAALLY want to change a movement path. But AGAIN. 150 PATHS.
It's located at offset 60AA88 btw.
That's all so far. Expect updates as soon as December 5th. I'm just getting started with this.
Last edited: