Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Reload this Page Animated Sprites in Ruby and FireRed

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!
Research & Development programs in this forum are subject to moderator approval before they are displayed.



Reply
 
Thread Tools
  #76    
Old November 5th, 2012 (04:11 AM).
tajaros's Avatar
tajaros tajaros is offline
Hi I'm dawg
 
Join Date: Apr 2012
Location: Philippines
Age: 16
Gender: Male
Nature: Timid
Posts: 857
Send a message via Windows Live Messenger to tajaros
Ok, I got it to work but, i have 2 questions... :D

Does anyone know how to implement this to the enemy only? Cause I don't need the backsprite to be animated. (It's because I'm using Emerald Sprites...)

Do I have to just put another Backsprite to make the Illusion that it's not moving? ? :/
__________________
Reply With Quote
  #77    
Old November 6th, 2012 (06:02 AM).
thjenvuongxh thjenvuongxh is offline
 
Join Date: Mar 2012
Gender: Male
Posts: 23
Animations table in this 308CBC
But not to animate the backsprites
if you do, freeze the battle

I say this because already worked with before Pokemon Emerald.
Reply With Quote
  #78    
Old November 7th, 2012 (01:57 AM).
tajaros's Avatar
tajaros tajaros is offline
Hi I'm dawg
 
Join Date: Apr 2012
Location: Philippines
Age: 16
Gender: Male
Nature: Timid
Posts: 857
Send a message via Windows Live Messenger to tajaros
Quote originally posted by thjenvuongxh:
Animations table in this 308CBC
But not to animate the backsprites
if you do, freeze the battle

I say this because already worked with before Pokemon Emerald.
No, I'm using FireRed but Importing Emerald Sprites... :/

Thanks anyway when you make the 2nd frame like the 1st frame it looks like it doesn't have an animation at all... :D
__________________
Reply With Quote
  #79    
Old November 7th, 2012 (05:30 AM).
thjenvuongxh thjenvuongxh is offline
 
Join Date: Mar 2012
Gender: Male
Posts: 23
Perhaps with a ASM routine would be possible insert a
Pokemon Emerald animation...
...this is my one desire:
"a NEW ANIMATION".
...But I do not know anything about creating ASM routines...
Reply With Quote
  #80    
Old November 11th, 2012 (05:01 PM).
timson733333's Avatar
timson733333 timson733333 is offline
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
Posts: 122
Is it possible to change some animations in Emerald? I'm currently toying around with some sprites in Emerald but it's really annoying when the 2nd frames don't line up with the 2nd frames of the original Pokemon I wrote it over.
__________________
ROM hacking since 2008... and failing miserably still.


Learning how to hex edit. I'm not advanced in any way, and rely on tools most of the time.

deviantArt | YouTube
Reply With Quote
  #81    
Old November 12th, 2012 (04:44 AM).
thjenvuongxh thjenvuongxh is offline
 
Join Date: Mar 2012
Gender: Male
Posts: 23
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

Reply With Quote
  #82    
Old November 19th, 2012 (02:54 PM).
Shiny Quagsire's Avatar
Shiny Quagsire Shiny Quagsire is offline
Working on KARL3DS
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 17
Gender: Male
Nature: Jolly
Posts: 689
Quote originally posted by thjenvuongxh:
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.
__________________



Reply With Quote
  #83    
Old November 19th, 2012 (03:17 PM). Edited November 19th, 2012 by thjenvuongxh.
thjenvuongxh thjenvuongxh is offline
 
Join Date: Mar 2012
Gender: Male
Posts: 23
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...
Reply With Quote
  #84    
Old March 29th, 2013 (02:34 PM).
HyperXhydra's Avatar
HyperXhydra HyperXhydra is offline
 
Join Date: Oct 2011
Gender: Male
Posts: 331
It would be nice if someone makes a patch for this.
Reply With Quote
  #85    
Old March 30th, 2013 (02:44 PM).
Shiny Quagsire's Avatar
Shiny Quagsire Shiny Quagsire is offline
Working on KARL3DS
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 17
Gender: Male
Nature: Jolly
Posts: 689
Quote originally posted by HyperXhydra:
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.
__________________



Reply With Quote
  #86    
Old March 31st, 2013 (06:42 PM).
HyperXhydra's Avatar
HyperXhydra HyperXhydra is offline
 
Join Date: Oct 2011
Gender: Male
Posts: 331
Quote originally posted by shiny quagsire:
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.
Reply With Quote
  #87    
Old April 12th, 2013 (03:13 PM).
robin22gongon's Avatar
robin22gongon robin22gongon is offline
 
Join Date: Sep 2012
Location: Want to know? VM me.
Age: 17
Gender: Male
Nature: Quirky
Posts: 396
Send a message via Windows Live Messenger to robin22gongon
So everyone what's the final code for FR that loops the animation and has no bugs?
__________________
LET'S PARTY!
Reply With Quote
  #88    
Old April 12th, 2013 (10:22 PM).
Shiny Quagsire's Avatar
Shiny Quagsire Shiny Quagsire is offline
Working on KARL3DS
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 17
Gender: Male
Nature: Jolly
Posts: 689
Quote originally posted by robin22gongon:
So everyone what's the final code for FR that loops the animation and has no bugs?
The answer is D, none of the above.
__________________



Reply With Quote
  #89    
Old April 12th, 2013 (11:35 PM).
robin22gongon's Avatar
robin22gongon robin22gongon is offline
 
Join Date: Sep 2012
Location: Want to know? VM me.
Age: 17
Gender: Male
Nature: Quirky
Posts: 396
Send a message via Windows Live Messenger to robin22gongon
Quote originally posted by shiny quagsire:
The answer is D, none of the above.
Wait, I didn't quite catch that? I put
Code:
DF FF 00 00
?
__________________
LET'S PARTY!
Reply With Quote
  #90    
Old April 13th, 2013 (02:13 AM).
Spherical Ice's Avatar
Spherical Ice Spherical Ice is offline
Moderator
CS
 
Join Date: Nov 2007
Location: UK
Posts: 3,425
Send a message via Skype™ to Spherical Ice
Quote originally posted by robin22gongon:
Wait, I didn't quite catch that? I put
Code:
DF FF 00 00
?
No, it was a joke; there is no version for FireRed yet that loops the animation and has no bugs.
__________________
Reply With Quote
  #91    
Old April 14th, 2013 (06:09 PM).
robin22gongon's Avatar
robin22gongon robin22gongon is offline
 
Join Date: Sep 2012
Location: Want to know? VM me.
Age: 17
Gender: Male
Nature: Quirky
Posts: 396
Send a message via Windows Live Messenger to robin22gongon
Then there is still no way to ASM hack it?
__________________
LET'S PARTY!
Reply With Quote
  #92    
Old April 14th, 2013 (06:10 PM).
Shiny Quagsire's Avatar
Shiny Quagsire Shiny Quagsire is offline
Working on KARL3DS
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 17
Gender: Male
Nature: Jolly
Posts: 689
In theory, it can be done. It's just a matter of whether anyone even wants to do it.
__________________



Reply With Quote
  #93    
Old April 14th, 2013 (06:33 PM). Edited April 15th, 2013 by robin22gongon.
robin22gongon's Avatar
robin22gongon robin22gongon is offline
 
Join Date: Sep 2012
Location: Want to know? VM me.
Age: 17
Gender: Male
Nature: Quirky
Posts: 396
Send a message via Windows Live Messenger to robin22gongon
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.
__________________
LET'S PARTY!
Reply With Quote
  #94    
Old April 15th, 2013 (01:03 PM).
Shiny Quagsire's Avatar
Shiny Quagsire Shiny Quagsire is offline
Working on KARL3DS
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 17
Gender: Male
Nature: Jolly
Posts: 689
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.
__________________



Reply With Quote
  #95    
Old April 16th, 2013 (09:03 PM).
Shadowraze's Avatar
Shadowraze Shadowraze is offline
Love and Peace
 
Join Date: Apr 2013
Location: Philippines
Age: 16
Gender: Male
Nature: Adamant
Posts: 589
Send a message via Skype™ to Shadowraze
Quote originally posted by shiny quagsire:
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
__________________
Reply With Quote
  #96    
Old November 8th, 2013 (06:17 AM). Edited March 31st, 2014 by BugMania.
BugMania's Avatar
BugMania BugMania is offline
The Bug Master
 
Join Date: Jun 2013
Gender: Male
Nature: Quiet
Posts: 32
I discovered a way of letting an animation similar to BW.
Spoiler:




Well, if we know that an offset as 0x2FF7D00 is an area of ​​memory that can change.
We can go to 0x082349BC 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.
__________________
Even the smallest of beings can achieve the greatest of obstacles!
Click in the spoiler, if you dare!
Spoiler:


L
et's dream bigger than our bodies can endure!
G
et to the extreme!

See my works here

Reply With Quote
  #97    
Old November 8th, 2013 (02:03 PM).
Shiny Quagsire's Avatar
Shiny Quagsire Shiny Quagsire is offline
Working on KARL3DS
 
Join Date: May 2009
Location: Hoenn Safari Zone
Age: 17
Gender: Male
Nature: Jolly
Posts: 689
Quote originally posted by BugMania:
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.
__________________



Reply With Quote
  #98    
Old November 9th, 2013 (03:39 AM). Edited November 9th, 2013 by BugMania.
BugMania's Avatar
BugMania BugMania is offline
The Bug Master
 
Join Date: Jun 2013
Gender: Male
Nature: Quiet
Posts: 32
Quote originally posted by shiny quagsire:
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:

It is a very simple routine:
(This is to run the animation).

.text
.align 2
.thumb
main:
push {r5, r4, r0}
LDR r5, var2
LDRH r5, [r5]
LDR R6, anim
strh r5, [r6]
LDR R0, go !Continue the Battle
pop {r5, r4, r0}
BX R0

.align 2
anim: .word 0x2FF7D18
var: .word 0x020370c0
var2: .word 0x020370c2
go: .word 0x080XXXXX






This 0x80xxxxx is for a byte that you would continue. Example: 0x80D737D (In table SetwildbattleMessages).

(This is to no run the animation).
.text
.align 2
.thumb
main:
push {r5, r4, r0}
LDR r5, var
LDRH r5, [r5]
LDR R6, anim
strh r5, [r6]
LDR R0, go !Continue the Battle
pop {r5, r4, r0}
BX R0

.align 2
anim: .word 0x2FF7D18
var: .word 0x020370c0
var2: .word 0x020370c2
go: .word 0x080XXXXX
__________________
Even the smallest of beings can achieve the greatest of obstacles!
Click in the spoiler, if you dare!
Spoiler:


L
et's dream bigger than our bodies can endure!
G
et to the extreme!

See my works here

Reply With Quote
  #99    
Old November 9th, 2013 (03:42 AM).
Sniper's Avatar
Sniper Sniper is offline
ふゆかい
 
Join Date: Nov 2013
Location: Philippines
Gender: Male
Nature: Quiet
Posts: 1,363
Whoa, are you serious?! Well, I'm not that surprised.
I was wondering how Pokemon Skyline did that trick.
__________________
Reply With Quote
  #100    
Old November 9th, 2013 (12:16 PM). Edited March 14th, 2014 by BugMania.
BugMania's Avatar
BugMania BugMania is offline
The Bug Master
 
Join Date: Jun 2013
Gender: Male
Nature: Quiet
Posts: 32
I managed to fix some bugs typical of a Asm-Noob.
When you restarted the game, the memory disappeared.
Spoiler:

Go to the byte 0x8040574 and add an offset XXXXXX08

In 08XXXXXX, take this routine:
70 B4 06 48 00 24 00 26 50 2E 03 D0 35 18 2C 60 04 36 F9 E7 70 BC 02 48 00 47 00 00 60 7D FF 02 YY YY YY 08

set at any offset it: *FF FF # FE FF 00 00
warning: the order os needed!

In 08YYYYYY, throw it:

30 B4 04 4D 2D 88 02 4E 35 80 04 48 30 BC 00 47 1C 7D FF 02 AA AA AA 08 BB BB BB 08 ZZ ZZ ZZ 08

... at *, put the pointer in AAAAAA08
and #, is in BBBBBB08

In a free space (0x08 RR RR RR), put something like:

00 00 0A 00 01 00 0A 00 02 00 0A 00 03 00 0A 00 02 00 0A 00 01 00 0A 00 00 00 00 00 FF FF 00 00

at 0x08 ZZ ZZ ZZ, set this:
91 B4 0F 48 00 88 20 28 0E D0 FF D3 0A 4F C7 19 3F 88 0A 4C 04 19 27 80 09 48 00 88 02 30 08 4C 20 80 91 BC 07 48 00 47 05 48 00 88 00 1A 04 4C 20 80 91 BC 04 48 00 47 RR RR RR 08 00 7D FF 02 20 7D FF 02 ZZ ZZ ZZ 08 F3 06 04 08

if in doubt, do not think twice to let me know!

Let me know about BUGS!
__________________
Even the smallest of beings can achieve the greatest of obstacles!
Click in the spoiler, if you dare!
Spoiler:


L
et's dream bigger than our bodies can endure!
G
et to the extreme!

See my works here

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 UTC -8. The time now is 05:15 AM.