PHO - Pokémon Hackers Online
Go Back   PHO - Pokémon Hackers Online > Discussion Board > Archive

Notices

Archive Old threads that serve no purpose are here.

 
 
Thread Tools Display Modes
Old 6th July 2013, 04:46 PM   #1
karatekid552
What does this button do?.....
Ex-Staff
 
karatekid552's Avatar
 
Join Date: Feb 2013
Location: Stalker.......
Posts: 229
karatekid552 karatekid552
Post Particle Effects for Move Animations

I'm pulling this from a discussion on RHM, so each separate post will be in quotes:
-------------------------------------------------------------------------

This is just a start for this thread. What I am looking to do here is create documentation on each type of particle animation and what it's parameters change.

Before you post or try looking into this, make sure you know all about animations and creating new ones from Chaos Rush's thread on PC. Once you have mastered this, then you can begin to work in particles.

Particles are the things like the Karate Chop hand or the Sweet Scent petals that are moved across the screen during an animation. So far, we know that the 02 command does the actual movement, so this is what we want to look into. I already know that the basic syntax for the command is:

02 - <pointer to type of animation and graphics> - <bytes which make small changes to the animation>

Now, for each pointer, there is a specific set of parameters to along with it. My goal right now is to document the parameters for each pointer. I have already done Karate Chop and Sweet Scent, and MrDollSteak has done Tackle (yes, moving the backsprite of the pokemon on screen is particle movement). It would be really cool to get is all done, right here. I will post my findings soon.

When you post findings, it would be nice if you used this format:

02
<XX XX XX 08> (explanation of what the pointer points to)
XX XX (explanation)
XX (explanation)
XX XX (explanation)
XX (explanation)
XX (explanation)
XX (explanation)
XX XX (explanation)
XX (explanation)
XX (explanation)

If you find that two bytes change the same thing, but the second one is more exaggerated, then it is most likely loading a half-word as a parameter so group them together (like the XX XX above).

So, let's see what we can do!


Quote:
Originally Posted by karatekid552
As promissed:

Karate Chop

E0 66 3E 08 Animation data for the chop.
02 Filler/Constant?
08: 1/2 of the number of bytes to follow- gives the command an exact length
F0 FF: horisonal distance to the left of the target
00 00: vertical distance to the top of the target
00 00: horisontal distance to the right of the target
00 00: vertical distance to the bottom of the target
0A 00: amount of time on screen (Frames?)
01 00: 00 = Invisible; 01+ = Visible
03 changed part of image that was displayed 00 = fist; 01 = foot; 02 = bird foot; knife hand; 04 = backwards knife hand; anything else and the image came out in peices or as a fist.
00 Filler
00 Filler
00 Filler

Sweet Scent
02
24 F3 3F 08 Pointer to animation data
02 Casuses major crash. Like, never ending error messages bad.
03: 1/2 of the number of bytes to follow- gives the command an exact length
64 Vertical location of Particle on Screen (Pixel)
00 Causes crash if not 0.
00 Anything over 02 causes a crash. No other apparent use...
00 Filler?
64 Horizonal location of Particle on Screen (Pixel)
00 Filler?

Learned something new that will be quite useful: in the 02 command, there is a pointer, then a constant, then a byte that causes crashing if changed. This byte causes this crashing because it determines the number of bytes to follow. It is exactly 1/2 of the command's remaining bytes to be used as parameters.

Quote:
Originally Posted by MrDollSteak
Hey MrDollSteak here!

I've been helping Karatekid with this project. Mainly with testing certain parameters and general idea bouncing. But anyway, I tested the move 'Tackle' a fairly simple move and made a few discoveries.

This move lists two seperate 02 commands, I won't go into too much detail about the 02 commands since Karatekid has done such a good job with that. But the reason for these two 02 commands is simply because there are two different types of animations playing. The first moves the player's Pokemon while the second is the actual hit or damage particle. It seems to support the idea that the pointer immediately after the 02 loads certain information as changing those parameters did very little to the movement, it instead changed the duration on the screen the type of movement that would occur, the palette and type etc. By looking at the other parameters it's clear that there are a few unknowns but it also supports other information.

Tackle broken down:

02 - Execute an animation
54 4E 3D 08 - Pointer to the particle information located at 3D 4E 54
02 - changing this did nothing
02 - changing this moved different sprites, certain numbers caused it to die
04 - changing this changed how far bulbasaur went to the right
00 - changing this changed the number of times bulbasaur flew across the screen
04 - changing this changed the speed of bulbasaur
00 - ??
04 - ??
06 - ??

02
08 7C 3E 08 - Pointer to the particle information located at 3E 7C 08
02 04 - Unkown bytes
00 - changing this moved it horizontally right
00 - did nothing particle disappeared when second bit was B-F
00 - moved the particle down
00 - nothing
01 - nothing
00 - nothing
02 - changed particle size, 00 was biggest, 01 was big, 02 was smaller than 01, 03 was tiny, 04 and higher broke the particle
00 - nothing
03 F9 89 09 08 - Pointer to an ASM routine that determines where the attack is going
02 05 - end of an animation.

Quote:
Originally Posted by kearnseyboy6
Hello, I am Kearnseyboy6 and I picked a doozey of a move to practise with.

Move: 'Ember' located at 1C7C79

00 - Must be 00 or the flames don't load the correct sprite
2D 27 - Crashes with sprite problems if changed
00 - Dunno
90 00 - Plays a song 100% sure of this, 3B 01 plays garys theme
C0 05 - Did nothing when changed

02
4C 5D 3E - Pointer to first flame
82 - No idea
06 - Half remaining bytes to follow
14 00 - horisonal distance to the left of the target
00 00 - vertical distance to the top of the target
F0 FF - horisontal distance to the right of the target
14 00 - vertical distance to the bottom of the target
14 00 - speed of flame
01 00 - Visibility, 00 00 was invisible
04 04 - This must not be part of the argument??? as parameter is too short. If altered it delays next animation

02
4C 5D 3E - Pointer to second flame (same as flame 1)
82 - No idea
06 - Half remaining bytes to follow
14 00 - horisonal distance to the left of the target
00 00 - vertical distance to the top of the target
F0 FF - horisontal distance to the right of the target
14 00 - vertical distance to the bottom of the target
14 00 - speed of flame
01 00 - Visibility, 00 00 was invisible
04 04 - This must not be part of the argument??? as parameter is too short. If altered it delays next animation

02
4C 5D 3E - Pointer to third flame (DIFFERENT)
82 - No idea
06 - Half remaining bytes to follow
14 00 - horisonal distance to the left of the target
00 00 - vertical distance to the top of the target
F0 FF - horisontal distance to the right of the target
14 00 - vertical distance to the bottom of the target
14 00 - speed of flame
01 00 - Visibility, 00 00 was invisible
04 10 - This must not be part of the argument??? as parameter is too short. If altered it delays next animation

This covers the first flames that fly across the screen, next is the flames that cross the opponents.

19 - Crashes if changed
89 00 - sound for the flames (once again can play any)
3F - ??? Crashes if changed
0E D5 7C 1C 08 - Jumps to animation of 1 flame moving across (these flames are animated)
0E D5 7C 1C 08 - Jumps to animation of 1 flame moving across
0E D5 7C 1C 08 - For 3 animated flames (chaos rush battle animation thread)
08 - Crashes if changed

This next set defines the boundaries of the animation

02
64 5D 3E 08 - Pointer to particles
82 - Still don't know why its there....
07 - Half remaining bytes to follow
E8 FF - horisonal distance to the left of the target
18 00 - vertical distance to the top of the target
18 00 - horisontal distance to the right of the target
18 00 - vertical distance to the bottom of the target
14 00 - amount of time on screen
01 00 - if 00 00 flames shott back at the opponent
01 00 - if set 00 00 flames appear really small
04 04 - Delay again

I thought that was it... but I'm fairly sure 02 05 means the end of an attack so heres the remaining bytes. They do nothing that alter the animation but wait...

0F - Will crash if altered
00 97 27 00 9F 27 0A 01 04 02

'Ember' has a burn effect so I am assuming this is some sort of check for a burn. Messing with these values stop the burn from occurring in game. I'm also assuming if the check is positive then... (Those are different, from battle scripting.)

02
24 7B 3E 08 - Pointer to... the burn animation?

And then I saw

02 05 - End of animation!!

Hope this helped!

Peace

Quote:
Originally Posted by karatekid552
Good work man! Just so you know, command 04 is Delay. At the end of each of your sets is a Delay command that is seperate and yes, 05 does End the animation.

Quote:
Originally Posted by kearnseyboy6
Righto, last one for a while for me.

Bite 1CE190

00 9B 27 - This seems to relate to both teeth pictures, if changed, freeze and crash
00 97 27 - Same thing again, but for the hit marker thingy (like in tackle..)

0A - Crashes if changed
01 - Nothing...?
0C - Crashes if changed
0C 08 - Seems to mess with the colours/ transparency of the teeth 00 00 for black..
19 - crashes if altered
9A 00 - Bite sound!
3F - seems to be the same byte before an animation starts on the opponents side... crashes

02
30 79 3E 08 - Pointer to particle animation
02 - dunno
06 - 6x2 = 12 bytes remaining in animation
00 00 }
E0 FF }
00 00 } Same sort of stuff in all other animations. Movements and positions
00 00 }
33 03 - Path teeth follow
0A 00 - Distance the top teeth moves

Next is the bottom set of teeth, same teeth, same pointer same nearly everything except its flipped somehow...

02
30 79 3E 08 - Same pointer...
02 - dunno
06 - 1/2 bytes to follow
00 00
20 00
04 00
00 00 - Movements of teeth horizontal and vertical same as other posts
CD FC - Sets path the teeth follow (up then down)
0A 00 - Distance the teeth travels
04 0A - Delay

Next is the exact same as tackles last pointer for the hit marker:

02
08 7C 3E 08 - Pointer to the particle information located at 3E 7C 08
02 - Unkown bytes
04 - Half bytes to follow
00 00 - x-position
00 00 - y-position
01 00 - location of hitmarker (01 00 for enemy, 00 00 for hitmarker on your pokemon
02 00 - changed particle size, 00 was biggest, 01 was big, 02 was smaller than 01, 03 was tiny, 04 and higher broke the particle
03 F9 89 09 08 - Pointer to an ASM routine that determines where the attack is going
05 05 - end of an animation.

Starting to see a trend in these in these attacks...
karatekid552 is offline  
Sponsored Links
 

Tags
animations, effects, move, particle, [Ongoing]

Thread Tools
Display Modes

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. The time now is 08:33 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, vBulletin Solutions, Inc. User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Feedback Buttons provided by Advanced Post Thanks / Like (Lite) - vBulletin Mods & Addons Copyright © 2018 DragonByte Technologies Ltd.
Pokémon characters and images belong to Pokémon USA, Inc. and Nintendo.
Pokémon Hackers Online (PHO) is in no way affiliated with or endorsed by Nintendo LLC, Creatures, GAMEFREAK inc,
The Pokémon Company, Pokémon USA, Inc., The Pokémon Company International, or Wizards of the Coast.
All forum/site content (unless noted otherwise) and site designs are © 2006-2013 Pokémon Hackers Online (PHO).
Green Charizard Christos TreeckoLv100

"Black 2" by ARTPOP. Kyurem artwork by XOUS.

no new posts