The PokéCommunity Forums
The PokéCommunity Forums > Fan Games > ROM Hacking > Research & Development
Research [UNFINISHED] Emerald Animations: Codes and Offsets Database

Notices
For all updates, view the main page.

Research & Development Got 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!


Reply
 
Thread Tools
  #1    
Old November 20th, 2016 (3:31 PM). Edited November 24th, 2016 by Jeesh.
Jeesh's Avatar
Jeesh Jeesh is offline
The Emerald Rights Activist.
 
Join Date: Oct 2016
Gender: Male
Posts: 47
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
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


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.
Reply With Quote

Relevant Advertising!

  #2    
Old November 21st, 2016 (6:12 AM).
DizzyEgg's Avatar
DizzyEgg DizzyEgg is online now
 
Join Date: Feb 2014
Location: Poland
Age: 19
Gender: Male
Nature: Quiet
Posts: 518
Quote:
Originally Posted by Jeesh View Post
Pokemon Animations
*clap* *clap* *clap*

Finally someone who recognized the issue. I've made a post about this recently, though it didn't get many replies. Now, let's throw some offsets:

Code:
083299EC front_animation_table: one byte each entry; starts with Bulbasaur
0860A8C8 back_animation_table: one byte each entry; starts with ? Mon
08329B87 animation_delay_table: one byte each entry; starts with Bulbasaur
08309AAC frame_control_table: it's a pointer to two or three pointers that point to something. The first pointer is always the same. Not sure what this exactly does(It's used in Transform's animation though). Starts with ? Mon and ends on the last Unown.
0860AA88 animation_rot_scaling_table: (the functions responsible for moving a front sprite)
I'd also like to clarify one thing about animations. All animations can be either one or two-frame. The function that checks if a poke has two-frame animation is located at 0806F0D4. Spinda, Deoxys and Unown are the only pokemon who use juts one-frame.

With that in mind we can modify and add new animations as well as keep them and have expanded pokemon use one-frame ones.

And one more thing, the pokemon expansion in my signature expands all those tables.
__________________
Make Emerald Great Again

My works:
Battle Engine Upgrade
Pokemon Expansion
Items/TMs/Tutors Expansion
Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

Emerald Features:
Form Changes (KDS)
Reply With Quote
  #3    
Old November 22nd, 2016 (9:08 AM).
Jeesh's Avatar
Jeesh Jeesh is offline
The Emerald Rights Activist.
 
Join Date: Oct 2016
Gender: Male
Posts: 47
Quote:
Originally Posted by DizzyEgg View Post
*clap* *clap* *clap*

Finally someone who recognized the issue. I've made a post about this recently, though it didn't get many replies. Now, let's throw some offsets:

Code:
083299EC front_animation_table: one byte each entry; starts with Bulbasaur
0860A8C8 back_animation_table: one byte each entry; starts with ? Mon
08329B87 animation_delay_table: one byte each entry; starts with Bulbasaur
08309AAC frame_control_table: it's a pointer to two or three pointers that point to something. The first pointer is always the same. Not sure what this exactly does(It's used in Transform's animation though). Starts with ? Mon and ends on the last Unown.
0860AA88 animation_rot_scaling_table: (the functions responsible for moving a front sprite)
I'd also like to clarify one thing about animations. All animations can be either one or two-frame. The function that checks if a poke has two-frame animation is located at 0806F0D4. Spinda, Deoxys and Unown are the only pokemon who use juts one-frame.

With that in mind we can modify and add new animations as well as keep them and have expanded pokemon use one-frame ones.

And one more thing, the pokemon expansion in my signature expands all those tables.
Gee, thanks! I try to help when I can :D

Also, applied your knowledge to the main thread.

Also, I retried your Pokemon expanding tool after I BootCamp'd Windows 10 and worked it out there. IT WORKED! Thats how I was able to test all this. So thanks! Sorry I doubted you.
Reply With Quote
  #4    
Old November 22nd, 2016 (10:50 AM).
DizzyEgg's Avatar
DizzyEgg DizzyEgg is online now
 
Join Date: Feb 2014
Location: Poland
Age: 19
Gender: Male
Nature: Quiet
Posts: 518
Quote:
Originally Posted by Jeesh View Post
Gee, thanks! I try to help when I can :D

Also, applied your knowledge to the main thread.

Also, I retried your Pokemon expanding tool after I BootCamp'd Windows 10 and worked it out there. IT WORKED! Thats how I was able to test all this. So thanks! Sorry I doubted you.
Just one thing. The delay table is the number of frames to wait before starting animations. So if you were to set it to FF, you'd have to wait a bit before it would move. The in-game pokemon that I know has it set to some 'high' value is Wynaut. Check for yourself it doesn't animate the moment it appears on screen.
__________________
Make Emerald Great Again

My works:
Battle Engine Upgrade
Pokemon Expansion
Items/TMs/Tutors Expansion
Various Features(Evo Methods, BW Repel, Levels Above 100, Trainers with EV, Nature Colored Stats)

Emerald Features:
Form Changes (KDS)
Reply With Quote
  #5    
Old November 24th, 2016 (12:27 PM).
Lord Comquat's Avatar
Lord Comquat Lord Comquat is offline
 
Join Date: Nov 2015
Location: Not gonna tell you.
Gender: Male
Nature: Quiet
Posts: 50
Very helpful. Really wish there could be a video or something showing all of the animations, including the unused ones, though.
Reply With Quote
  #6    
Old November 24th, 2016 (3:07 PM).
Jeesh's Avatar
Jeesh Jeesh is offline
The Emerald Rights Activist.
 
Join Date: Oct 2016
Gender: Male
Posts: 47
Quote:
Originally Posted by Lord Comquat View Post
Very helpful. Really wish there could be a video or something showing all of the animations, including the unused ones, though.
That can be arranged. If enough people request I might just do one.

Aw heck, I might do one anyway, because visualizing them is so much better than explaining them. No promises though.
Reply With Quote
  #7    
Old November 25th, 2016 (6:01 AM).
Gamer2020's Avatar
Gamer2020 Gamer2020 is offline
Accept no Imitations!
 
Join Date: Jun 2008
Location: Distant Land
Gender: Male
Nature: Bold
Posts: 875
Send a message via Skype™ to Gamer2020
Quote:
Originally Posted by Jeesh View Post
That can be arranged. If enough people request I might just do one.

Aw heck, I might do one anyway, because visualizing them is so much better than explaining them. No promises though.
Gifs of all of them night be a bit better in my opinion but that's just me.
__________________

Pokemon Game Editor Download!
Accept no imitations!
Reply With Quote
  #8    
Old November 27th, 2016 (8:15 AM).
Jeesh's Avatar
Jeesh Jeesh is offline
The Emerald Rights Activist.
 
Join Date: Oct 2016
Gender: Male
Posts: 47
Quote:
Originally Posted by Gamer2020 View Post
Gifs of all of them night be a bit better in my opinion but that's just me.
But I mean, what's an easy tool to make GIFs with? I figure a video is better for this type of stuff.
__________________
>Emerald hacks need to come back.
>Make EMerica great again.
>I'm a Hoenn PROenn.
>Free the E.
>All hacks are created equal...but Emerald is cool.
>Charizard got nothin' on Rayquaza.
>Learn to hack the hard way. Go with Emerald.
Reply With Quote
  #9    
Old November 28th, 2016 (3:54 PM).
Deokishisu's Avatar
Deokishisu Deokishisu is offline
Mr. Magius
 
Join Date: Feb 2006
Location: If I'm online, it's a safe bet I'm at a computer.
Gender: Male
Nature: Relaxed
Posts: 794
Doesn't Bulbapedia have all the GIFs of Emerald Pokemon moving around?
Reply With Quote
  #10    
Old November 28th, 2016 (6:11 PM).
BluRose BluRose is online now
school in a nutshell
 
Join Date: Apr 2014
Location: kissaki city
Age: 15
Gender: Male
Nature: Timid
Posts: 532
Quote:
Originally Posted by Deokishisu View Post
Doesn't Bulbapedia have all the GIFs of Emerald Pokemon moving around?
#canconfirm


EDIT: oh rip, a few pokémon are cut off because of 64x64 limit. not in-game of course, but on bulbapedia
__________________
if i didn't have to sleep then i could do so many more things

please note that when/if i answer questions i am likely doing it from an ipad on which i do not actually have a rom dump of any game/ways to check out the data <3
Reply With Quote
  #11    
Old November 28th, 2016 (6:18 PM). Edited November 28th, 2016 by Jeesh.
Jeesh's Avatar
Jeesh Jeesh is offline
The Emerald Rights Activist.
 
Join Date: Oct 2016
Gender: Male
Posts: 47
Quote:
Originally Posted by Deokishisu View Post
Doesn't Bulbapedia have all the GIFs of Emerald Pokemon moving around?
Well, technically yes, but only up to path 52. There are, like 150 animation paths that average Emerald animations barely even scratch the surface with. New gifs would have to be created for those.

EDIT: As a matter of fact, for the first 300 something Pokemon, heres a website that has the legitimate gifs, displaying the first 52 paths.

And they work in the forum! Watch:


__________________
>Emerald hacks need to come back.
>Make EMerica great again.
>I'm a Hoenn PROenn.
>Free the E.
>All hacks are created equal...but Emerald is cool.
>Charizard got nothin' on Rayquaza.
>Learn to hack the hard way. Go with Emerald.
Reply With Quote
Reply
Quick Reply

Sponsored Links
Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -8. The time now is 2:23 PM.