The PokéCommunity Forums  

Go Back   The PokéCommunity Forums > ROM Hacking > Research & Development
Sign Up Rules/FAQ Live Battle Blogs Mark Forums Read

Notices

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
  #1    
Old June 2nd, 2012, 12:43 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
So I've managed to figure out enough to make decent custom battle animations. So far, I've managed to splice multiple animations together, and to add backgrounds to an animation action.


From what I've figured out so far, there are at least two types of actions:
1) a background
2) a movement of a graphic (requires loading correct graphics)

Note: Everything in this document/tutorial is designed with FireRed in mind. There are pointers within the animation scripts, meaning that unfortunately, these have to be ROM-specific. These will work with FireRed, and only FireRed.

Here's what I've got of the scripting language so far: (credits at bottom of post for people who found these)
------------------------------------------------------------------
00 XX 27 = loads image data, XX is an argument
00 XX 28 = same thing as above, but loads from a different bank of graphics

02 = executes current animation segment
05 = waits for current animation segment to finish
06 = does absolutely nothing
07 = does absolutely nothing
08 = ends the animation script (DO NOT CONFUSE WITH POINTER!!!)

0E XX XX XX 08 = jumps to another animation, continues execution of original script when finished (can be used to combine multiple animations to play right after another)
11 XX XX XX 08 = same as above, haven't figured out the difference yet

19 XX XX = plays a sound

Display a non-scrolling, static background: (note: if you change 17 to 16, then transparency effects will be deactivated)
Code:
14 WW 17
Display a scrolling background: (note: if you change 17 to 16, then transparency effects will be deactivated)
Code:
14 WW 17 03 2D B8 0B 08 05 04 00 XX 00 YY ZZ 00 FF FF
-WW = selects which background graphics to display

Code:
Choose one of these for the WW byte:
00 = Dark-type BG, example: Faint Attack
01 = same as 00
02 = Ghost-type BG, can scroll horizontally, example: Shadow Punch
03 = Psychic-type BG, example: Psychic (EXCEPT IT DOESN'T ANIMATE)
04 = high-impact BG, light coming from top right, example: Focus Punch
05 = high-impact BG, light coming from bottom left
06 = high-impact BG, light coming from top left
07 = Horn Drill BG, can scroll horizontally and vertically, example: Horn Drill
08 = same as 07, but image is mirrored horizontally
09 = high-speed BG, can scroll horizontally, example: Mach Punch
0A = same as 09, but image is mirrored horizontally
0B = Thunder BG, can scroll horizontally, example: Thunder
0C = Guillotine BG, light coming from top right, example: Guillotine
0D = Guillotine BG, light coming from bottom left
0E = Guillotine BG, light coming from top left
0F = Ice-type BG, can scroll horizontally, example: Sheer Cold
10 = Space-oriented BG, can scroll horizontally and vertically, example: Cosmic Power
11 = Seismic Toss/Sky Uppercut BG, can scroll horizontally and vertically, example: Sky Uppercut
12 = Flying-type BG, can scroll horizontally and vertically, example: Sky Attack
13 = same as 12, but image is mirrored horizontally
14 = Aurora Beam BG, can scroll horizontally, example: Aurora Beam
15 = Fissure BG, can scroll horizontally (but it artistically makes no sense to do so), example: Fissure
16 = Silver Wind BG, can scroll horizontally, example: Silver Wind
17 = same as 16, but image is mirrored horizontally
18 = SolarBeam BG, light coming from top right, example: SolarBeam
19 = SolarBeam BG, light coming from bottom left
1A = SolarBeam BG, light coming from top left
-XX = how fast background scrolls horizontally
-YY = how fast background scrolls vertically
-ZZ = not sure but its either 00 or 01

Here is what each background looks like:
Spoiler:
00:


01:


02:


03:


04:


05:


06:


07:


08:


09:


0A:


0B:


0C:


0D:


0E:


0F:


10:


11:


12:


13:


14:


15:


16:


17:


18:


19:


1A:


Judging by unLZ, these backgrounds are simply tilesets+tilemaps. If we could find the table(s), we could theoretically expand them and have custom backgrounds.

To display the Psychic-background correctly, do not use the scrolling background command, instead use the 0E command, using it like this:
Code:
0E BB 59 1D 08
This will display the Psychic-type BG, while also animating it correctly.

To end any scrolling background (also works with the Psychic-BG animation):
Code:
0E C7 59 1D 08
Usually this is placed at the end of the script. If you're going to place it at the end of the script, make sure you add an extra 08 byte to the end of it, otherwise the game will freeze.

The table for the battle backgrounds starts at 0x3ADE18, and ends at 0x3ADF5B. The format goes like:
[XX XX XX 08] [YY YY YY 08] [ZZ ZZ ZZ 08] XX = pointer to graphics, YY = pointer to palette, ZZ = pointer to tilemap
Repoint and extend it, and you can create custom backgrounds:


Some other info (remember, these are FireRed offsets):
0x247094 = Attack names
0x250C04 = Attack data
0x4886E8 = Attack description pointers
0x1D65A8 = Battle script pointers
0x1C68F4 = Attack Animation pointers

To find the offset of an animation, follow these instructions:
Spoiler:

1. Open up this link: http://bulbapedia.bulbagarden.net/wiki/List_of_moves
2. Find the move you want (for the sake of this example, we'll be using Surf)
3. According to the list, Surf is #57 in the game index
4. Open up Windows Calculator, switch to Programmer mode
5. (make sure the option on the left tab is set to, "Dec") type in 57 (or whatever number your attack is)
6. Click on "Hex"
7. Multiply it by 4
8. Add it by 1C68F4
9. Whatever the sum is, that offset contains the pointer to your animation. Open up a Hex editor, and go to that offset
10. The sum I got was 1C69D8. The bytes there are 01 FA 1C 08. The 08 indicates its a pointer.
11. If you know how to calculate pointers manually, good for you. If you don't, go find a Pointer Calculator on Google or something, or figure out how. With that said, the bytes 01 FA 1C 08 means its pointing to offset 0x1CFA01.
12. 0x1CFA01 is the Surf animation. Congratulations, you found the offset of your animation!

(To figure out when the animation starts and ends, simply make a new attack (assuming you've already looked at Jambo51's thread on adding new moves), and expand the attack animation table, and then paste the data of the Surf animation (or whatever attack) into free space and point one of the new attacks to that data. Then open up VBA, open up its Memory Viewer, and go to that data. Then replace the bytes and the end with FF, and keep testing it until the animation crashes (it should only crash when you change an 08 byte) Once it crashes, open up your hex editor, and go to the offset of the data, then make it look like how it does in VBA's memory viewer, then add an 08 at the end with the hex editor.

Eventually I will post a list of all the animation offsets, I haven't finished typing them all out yet.

Step-by-step example at creating a custom animation:
Example 1: Adding a background to an existing animation
Spoiler:

So let's say we wanted to create a 4th Gen move. How about... Night Slash. We'll use Slash with the Dark-type background.

1. Using the steps I showed earlier in this thread, find the offset of whatever animation you want to base it by. The Slash animation is at 0x1caf7b. Insert the Slash animation data into free space, and then go to Night Slash's (or whatever your move is called) slot in the animation table and point to the animation data you just inserted.

2. For anyone else using it off of Slash's animation, this is the hex data for the Slash animation:
Code:
00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08
Right now, our animation looks exactly like Slash:


3. Now earlier in this thread, I mentioned the scrolling background animation command. Use it, and set WW as the Dark-BG. Place it at the beginning of the animation, and the Slash animation right afterwords. Our animation data should now look like this:
Code:
14 00 16 03 2D B8 0B 08 05 04 00 00 00 00 00 00 FF FF 00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08

Now we got the Dark-background! ...except that it doesn't disappear after the attack is done. That's because we need to add the BG-clear command.

4. As I mentioned earlier, the BG clear command is: 0E C7 59 1D 08. Remove the 08 byte from our current animation (NOT THE BG COMMAND!!!), then add the BG clear command at the end, and add an extra 08 byte to end the animation, otherwise the game will crash. Our script should now look like this:
Code:
14 00 16 03 2D B8 0B 08 05 04 00 00 00 00 00 00 FF FF 00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 0E C7 59 1D 08 08

Now we have a flawless Night Slash animation! And yes, the background will return to normal after execution of the attack.

Just for giggles, you can alter the second byte of the BG command (which also happens to be the second byte of our entire Night Slash animation) to change the background (I referred to it as the WW byte):

(lol Aurora Slash)


(lol Twinkle Slash)

And that, is essentially how you take a non-BG animation and add a BG to it.


Example 2: Merging two animations to play right after another
Spoiler:
Just find two separate animation hex data, and then remove the 08 byte from the end of one of them (except if its a pointer), then place the data of the second animation right after it. Alternatively, you can use the 0E or 11 command and point directly to it, but this will limit you to merging only 2 animations. By manually placing the data, you can have as many as you want, meaning you can create a move like, "Ridiculous Tackle", and have an animation that has the player Tackling the opponent 6 times.

If there's an 05 byte before the 08 byte, remove it, and then they'll play at the same time (perhaps with a slight delay)

Eventually I'll update this example with an attack called "Ridiculous Tackle" which has the player tackling the opponent 6 times (roflmao)


Right now, this is what we can/can't do:
[x] Add backgrounds to existing animations
[x] Combine multiple animations to play right after another
[ ] Make custom particles (Absorb, Ice Beam, Slash, etc)
[ ] Control how particles move

However, with the first two alone, we can create a whole bunch of decent-looking custom animations anyway.

Credits:
-Jambo51 for explaining how to add new attacks, and the offset of several tables, which helped me test animations
-DoestKnowHowToPlay for already documenting some of the commands
-Darthatron for finding the table containing all the animation command routines, hopefully these can be used to find out what each command does


EDIT: Some useful information found by DoestKnowHowToPlay and dreamengine:
http://www.pokecommunity.com/showpos...4&postcount=32
http://www.pokecommunity.com/showpos...1&postcount=37
http://www.pokecommunity.com/showpos...0&postcount=38
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete

Last edited by Chaos Rush; February 10th, 2013 at 01:23 PM.
Reply With Quote
  #2    
Old June 2nd, 2012, 06:54 PM
Gamer2020's Avatar
Gamer2020
This love is a sickness...
 
Join Date: Jun 2008
Location: Violet city!
Gender: Male
Nature: Bold
Send a message via AIM to Gamer2020 Send a message via Windows Live Messenger to Gamer2020 Send a message via Yahoo to Gamer2020 Send a message via Skype™ to Gamer2020
I added animation repointing to the attack editor in PGE weeks ago but just haven't released the update. There is no need for such complex instructions on repointing
__________________
I find it amusing how people my steal ideas and then claim to be the first one to do something.

A present to people learning to make ROM hacking tools. - https://dl.dropboxusercontent.com/u/..._Functions.zip

If you want a successor to PGE then download this: http://www.pokecommunity.com/showthread.php?t=311461

If someone can create a Pokémon colosseum remake with graphics and scripting that are very appealing to my eyes I will help them with implementing actual shadow Pokémon.
Reply With Quote
  #3    
Old June 2nd, 2012, 07:10 PM
Full Metal's Avatar
Full Metal
C(++) Developer.
Community Supporter
 
Join Date: Jan 2008
Location: In my mind.
Age: 18
Gender: Male
Nature: Timid
Send a message via Windows Live Messenger to Full Metal
Congrats on working things out! (:
Hopefully somebody with more talent than me will figure out the last two abilities. o:
__________________

★ full metal.

I like to push it,
and push it,
until my luck is over.
Reply With Quote
  #4    
Old June 2nd, 2012, 07:31 PM
Darthatron's Avatar
Darthatron
巨大なトロール。
Community Supporter Tier 2
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 22
Gender: Male
Nature: Modest
Very nice. :D We could almost make an animation editor with this data. *ponders*
__________________
あなた は しきしゃ です
わたし は ばか です
Reply With Quote
  #5    
Old June 2nd, 2012, 08:43 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
Quote:
Originally Posted by Gamer2020 View Post
I added animation repointing to the attack editor in PGE weeks ago but just haven't released the update. There is no need for such complex instructions on repointing
Haha, but because you haven't released it yet, I didn't exactly have a choice. It's the only way I can find the animation offsets, as I have no knowledge of tool making. But I'm glad you're still improving PGE.

Quote:
Originally Posted by Full Metal View Post
Congrats on working things out! (:
Hopefully somebody with more talent than me will figure out the last two abilities. o:
From what I know, particle movement is controlled by the 0E XX XX XX 08 command, so its simply a matter of loading correct graphics and correct movement to match. But I don't even know where to start for custom particle movement :/


I also apologize for the poor quality of the second attack example, I will fix it soon. Also I realized that you can use either the 11 command or the 0E command, and place a pointer right after it to any existing attack animation, allowing you to sequentially do attacks. For instance, if you take the animation data of Tackle, remove the 08 byte at the end of it, then place 0E XX XX XX 08, and say we place the pointer to Earthquake's animation in the XX spots, then Tackle's animation will play the Earthquake animation right after it. This saves a lot of space, since it means you don't have to manually place Earthquake's animation data, it just means you can use the 0E or 11 command and point directly to it.
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete
Reply With Quote
  #6    
Old June 2nd, 2012, 08:45 PM
Gamer2020's Avatar
Gamer2020
This love is a sickness...
 
Join Date: Jun 2008
Location: Violet city!
Gender: Male
Nature: Bold
Send a message via AIM to Gamer2020 Send a message via Windows Live Messenger to Gamer2020 Send a message via Yahoo to Gamer2020 Send a message via Skype™ to Gamer2020
Quote:
Originally Posted by Darthatron View Post
Very nice. :D We could almost make an animation editor with this data. *ponders*
I think it would have to be some sort of script editor, that's the only way I see it working.
__________________
I find it amusing how people my steal ideas and then claim to be the first one to do something.

A present to people learning to make ROM hacking tools. - https://dl.dropboxusercontent.com/u/..._Functions.zip

If you want a successor to PGE then download this: http://www.pokecommunity.com/showthread.php?t=311461

If someone can create a Pokémon colosseum remake with graphics and scripting that are very appealing to my eyes I will help them with implementing actual shadow Pokémon.
Reply With Quote
  #7    
Old June 2nd, 2012, 09:27 PM
Darthatron's Avatar
Darthatron
巨大なトロール。
Community Supporter Tier 2
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 22
Gender: Male
Nature: Modest
Quote:
Originally Posted by Gamer2020 View Post

I think it would have to be some sort of script editor, that's the only way I see it working.
Yes, but with some kind of real-time loading of it would be cool.
__________________
あなた は しきしゃ です
わたし は ばか です
Reply With Quote
  #8    
Old June 3rd, 2012, 01:55 AM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
I'm pretty sure I just found the table containing the Battle BG's at: 0x3ADE18.

The format goes like:
[XX XX XX 08] [YY YY YY 08] [ZZ ZZ ZZ 08]
XX = pointer to graphics
YY = pointer to palette
ZZ = pointer to tilemap

I haven't tried expanding it, but I will tomorrow (or whenever). This means we can use custom backgrounds, that's actually pretty big.
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete
Reply With Quote
  #9    
Old June 3rd, 2012, 06:10 AM
Darthatron's Avatar
Darthatron
巨大なトロール。
Community Supporter Tier 2
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 22
Gender: Male
Nature: Modest
The routines for each of the "commands" for these animations are located in a table at 0x083ADF5C in the ROM. From this, I can say for sure that there are 0x30 commands (0x00-0x2F) and that commands 0x6 and 0x7 do nothing.

With this we can at least see how many parameters each command has.

EDIT1: I here-by name command 0x6 "nop" and command 0x7 "darthnop".

EDIT2:

Code:
00:
01:
02:
03: something <word> <byte> <byte2> (<hword> * byte2) 
04:
05: waitstate
06: nop
07: nop2
08:
09: playsound <hword ID>
0A:
0B:
0C:
0D:
0F:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
1A:
1B:
1C:
1D:
1E:
1F:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
2A:
2B:
2C:
2D:
2E:
2F:
Edit3: I think when Gamefreak coded this, they set the compiler to "annoy hackers" mode.
__________________
あなた は しきしゃ です
わたし は ばか です

Last edited by Darthatron; June 3rd, 2012 at 11:08 PM. Reason: haxxx
Reply With Quote
  #10    
Old June 3rd, 2012, 07:30 PM
NintendoBoyDX
Togepi
 
Join Date: Jul 2010
Gender: Male
There's probably couple of tables for these image data. Most likely one for backgrounds, and one for "particles". If we can find these we'll be able to expand them and put our own tilemaps and images in...

As far as manipulating them, that'd take some assembly work, unless we could find values like how far data moves across the screen, how many times, etc. That way we could reuse the animation, but with slight alterations.

Edit:
I've found the table of the "particles" / image data. Darth helped me find with researching a bit.
It's at 0x083ACC08, and is arranged in 8 byte entries, like so:
4: word - pointer to image data
2: hword - something to do with size?
2: hword - index number

For example, the first entry...
0x080D02520 - pointer to the bone image, used in bone rush
0x0002 - hword that may have something to do with size? not sure needs more research
0x2710 - hword thats the index number, when calculating, 0x2710 is subtracted from it, no idea why, but 0x2710 is the first one

083AD510 - seems to have the palette entries that each image uses:
4: [pointer to palette]
2: [index number in same format as above]
2: [unknown]

Last edited by NintendoBoyDX; June 3rd, 2012 at 10:16 PM.
Reply With Quote
  #11    
Old June 4th, 2012, 03:23 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
I can now confirm that it is possible to create custom battle backgrounds by expanding the battle background table:



This custom battle background takes up slot 0x1B (which does not exist in the original FireRed rom)

The table starts at 0x3ADE18, and ends at 0x3ADF5B. There's another table right after it, which I mistook as part of the same table, so just remember that it ends at 0x3ADF5B, even though it looks like it doesn't.

I inserted my tileset, palette, and tilemap all with unLZ (I made the tilemap with NTME). Simply insert into free space, then manually point to the offsets you used in your new table with a hex editor.


For anyone that wants to experiment, here is my tileset and tilemap (the palette is included within the tileset because it's indexed). To test it, insert these with unLZ, keep track of the offsets you inserted the tileset, palette, and tilemap, then repoint and expand the table (make sure you don't mistake the table right after it as part of the original table!!! just look at the start and end offsets I gave earlier in this post), then have the new entries in the table point to your tileset, palette, and tilemap, then make a custom battle animation (or edit an existing one) and use the background slot 0x1B. And yes, I designed the graphics so that it can scroll horizontally.
Attached Files
File Type: zip backgrounds.zip‎ (1.2 KB, 93 views) (Save to Dropbox)
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete

Last edited by Chaos Rush; June 4th, 2012 at 04:51 PM.
Reply With Quote
  #12    
Old July 29th, 2012, 06:18 PM
Fahreza's Avatar
Fahreza
 
Join Date: Sep 2010
Location: Cidamar, Bandung
Gender: Male
Nature: Timid
Ruby Version Please. I make Hack with Ruby Not Fire Red
Reply With Quote
  #13    
Old July 30th, 2012, 02:57 PM
FRANKTANK
 
Join Date: May 2010
Age: 18
Gender: Male
Quote:
Originally Posted by Fahreza View Post
Ruby Version Please. I make Hack with Ruby Not Fire Red
He's not making it specifically for you. Besides, do you know how much work it would take for him to redo all of it for Ruby?
Reply With Quote
  #14    
Old July 31st, 2012, 05:51 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
I'd like to know if it's possible to make a tool to do all of this editing.
__________________
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
  #15    
Old July 31st, 2012, 08:48 PM
Darthatron's Avatar
Darthatron
巨大なトロール。
Community Supporter Tier 2
 
Join Date: Jan 2006
Location: Melbourne, Australia
Age: 22
Gender: Male
Nature: Modest
Quote:
Originally Posted by timson733333 View Post
I'd like to know if it's possible to make a tool to do all of this editing.
Yes it's possible. Just a matter of someone finding the time to do it.
__________________
あなた は しきしゃ です
わたし は ばか です
Reply With Quote
  #16    
Old August 1st, 2012, 05:24 AM
Jambo51's Avatar
Jambo51
Glory To Arstotzka
 
Join Date: Jun 2009
Gender: Male
Nature: Quiet
Quote:
Originally Posted by Fahreza View Post
Ruby Version Please. I make Hack with Ruby Not Fire Red
Quote:
Originally Posted by FRANKTANK View Post
He's not making it specifically for you. Besides, do you know how much work it would take for him to redo all of it for Ruby?
Actually, because it's a scripting language, it may well work for Ruby (and Emerald) without any modifications, apart from ROM pointers.
__________________
Hey guys, please check out my recreations of the gen 1 and 2 music on my custom engine at my SoundCloud! - Here!
Reply With Quote
  #17    
Old August 1st, 2012, 12:18 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
Quote:
Originally Posted by Jambo51 View Post
it may well work for Ruby (and Emerald) without any modifications, apart from ROM pointers.
yay Emerald

But for now, time to pull up the hex editor and try adding some new moves/animations manually. :P
__________________
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
  #18    
Old August 3rd, 2012, 08:33 AM
ShadowTails's Avatar
ShadowTails
I'm working on a better Avatar
 
Join Date: Aug 2005
Age: 22
Gender:
Nature: Relaxed
Am I on to something here?
http://www.youtube.com/watch?v=bRguM5EI09o
I basically just copied and pasted Super Fang over Slash without changing any pointers to see if I had actually found the animation data.

Yeah, embed isn't working...

I'll see if I can play around more with this later and repoint the data. Slash is at 2CD3DB. (or atleast, the data I was playing around with, attempting to copy Substitute over Slash made the game crash, so I just tried the one before it and it worked other than not loading the correct graphics, which obviously it wouldn't since I didn't change any pointers)
__________________
Who needs a fancy signature full of crap?
Reply With Quote
  #19    
Old August 22nd, 2012, 12:59 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
I compared Slash's code from FireRed with Slash's code from Emerald, and this is what I got:

FireRed:

Code:
00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08
Emerald:

Code:
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 08
Since the codes are different, would using the scrolling animation code not work? Or would it have to be tweaked? Problem is, I don't know how to tweak it.
__________________
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
  #20    
Old August 22nd, 2012, 02:54 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
Quote:
Originally Posted by timson733333 View Post
I compared Slash's code from FireRed with Slash's code from Emerald, and this is what I got:

FireRed:

Code:
00 C7 27 02 A4 35 3E 08 82 03 01 00 F8 FF 00 00 19 81 00 3F 04 04 02 A4 35 3E 08 82 03 01 00 08 00 00 00 03 1D 8B 09 08 02 05 01 00 04 00 00 00 12 00 01 00 19 81 00 3F 05 08
Emerald:

Code:
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 08
Since the codes are different, would using the scrolling animation code not work? Or would it have to be tweaked? Problem is, I don't know how to tweak it.
The codes are exactly the same, except for the pointers. The scrolling animation code I had in the first post is for FireRed, so you would need to find the corresponding Emerald pointers and then replace it, then it should work.
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete
Reply With Quote
  #21    
Old August 22nd, 2012, 03:23 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
Quote:
Originally Posted by Chaos Rush View Post
The codes are exactly the same, except for the pointers. The scrolling animation code I had in the first post is for FireRed, so you would need to find the corresponding Emerald pointers and then replace it, then it should work.
How would I find them?

Also, I'd like to know whether it's possible to remove a background from an existing animation, like Mach Punch or ExtremeSpeed.
__________________
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
  #22    
Old August 22nd, 2012, 04:12 PM
Chaos Rush's Avatar
Chaos Rush
im sexy and i know it
 
Join Date: May 2007
Location: Taylor Swift
Gender: Male
Nature: Adamant
Quote:
Originally Posted by timson733333 View Post
How would I find them?

Also, I'd like to know whether it's possible to remove a background from an existing animation, like Mach Punch or ExtremeSpeed.
You could do one of these:

1. Using a hex editor with a search function, such as GoldFinger, search the FireRed code byte-by-byte in an Emerald ROM, but have blank spots where the pointers are. I can guarantee that this is the easiest and fastest way, but you have to know how to use a hex editor.

or

2. Calculate the offsets of the pointers in the FireRed code, go to that offset in a FireRed ROM, and then search the exact same bytes of that offset in an Emerald rom, and then reverse-calculate that offset for Emerald to get a pointer (just write it down in Notepad or MS Word or something), then use a search function to find that new pointer in an Emerald ROM.
__________________

The Chaos Emerald ROM Base (it's gonna take awhile)

DS-style 64x64 Pokémon Sprite Resource NOW COMPLETED
Custom Sugimori-style Pokémon Sprite Resource IN PROGRESS


My PM box is full and I am choosing to keep it that way.

Non-Pokémon hacks I support:
Sonic Classic Heroes
Sonic 3 Complete
Reply With Quote
  #23    
Old August 22nd, 2012, 06:05 PM
MarinoKadame's Avatar
MarinoKadame
 
Join Date: May 2012
Age: 26
Gender: Male
Anyone tried to do the same thing with BW and B2W2 ?
Reply With Quote
  #24    
Old August 23rd, 2012, 06:12 PM
Mr155555's Avatar
Mr155555
 
Join Date: Apr 2011
Age: 33
Gender: Male
Nature: Adamant
Can You Do A Video Explaining Everything That Would Be Very Helpful
__________________
Feraligatr and Krookodile Best Pokemon Ever
my pokemon omega ruby team
swampert-ludicolo-altaria-hariyama-torkoal-froslass
Reply With Quote
  #25    
Old August 23rd, 2012, 06:37 PM
timson733333's Avatar
timson733333
Me gusta.
 
Join Date: Mar 2007
Location: Stealth!
Gender: Male
Nature: Quiet
Quote:
Originally Posted by MarinoKadame View Post
Anyone tried to do the same thing with BW and B2W2 ?
Why would anyone want to add new moves to the games that have all the moves that people want already? I'm pretty sure that B/W and B2/W2 have a completely different hex language than the GBA games, anyways, so it'd be very hard to do.

Also, I recently tried adding the new animations to FireRed. I grabbed the False Swipe animation and pasted your background code for Night Slash before it (because I think that False Swipe's animation fits Night Slash better than regular Slash, but that's just me.) Then, I repointed (using PGE's Attack Editor) to the offset that I pasted the animation code in. It didn't work; it did the animation for Pound instead. So I grabbed the Night Slash code you made and repointed to that instead. Same thing, didn't work. Am I doing something wrong?
__________________
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

Last edited by timson733333; August 23rd, 2012 at 06:44 PM.
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
Minimum Characters Per Post: 25



All times are UTC -8. The time now is 03:58 AM.


Style by Nymphadora, artwork by Sa-Dui.
Like our Facebook Page Follow us on Twitter © 2002 - 2014 The PokéCommunity™, pokecommunity.com.
Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, The Pokémon Company or The Pokémon Company International. We just love Pokémon.
All forum styles, their images (unless noted otherwise) and site designs are © 2002 - 2014 The PokéCommunity / PokéCommunity.com.
PokéCommunity™ is a trademark of The PokéCommunity. All rights reserved. Sponsor advertisements do not imply our endorsement of that product or service. User generated content remains the property of its creator.