(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
04-27-24 12:40 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Fire Emblem 7 Animation Hack New poll | |
Add to favorites | Next newer thread | Next older thread
User Post
Zeld

Red Paragoomba








Since: 11-05-06

Last post: 6281 days
Last view: 6278 days
Posted on 11-12-06 01:38 PM Link | Quote
I'm working on a fire emblem 7 patch; have been for some time. I had sorted out how to hack text, graphics, and stats pretty fast and decided that I had plenty of time to make custom battle animations as well.

Contrary to most peoples' understanding of how animation data is stored, Fire Emblem 7 (actually, Fire Emblem in general) does not have individual pictures for each frame of the animation. For it to be that way seems illogical to me, and the way that it is stored, that is, with a graphical sheet of tiles and nearby data that calls these tiles and gives them an X and Y position on the screen makes much more sense. I imagine it's much easier to condense. Anyhow, I found all of this data. The data that arranges the tiles, the tiles themselves, how long each frame lasts, and the special flags that call events such as the white screen flash from hitting an enemy. I haven't found rotation flags in this data, but I'm sure it's in there.

But I'm having a problem; I searched for a string of the X and Y position data for the tiles of the Hero class's Sword animation in the rom. I searched for only the first few bytes, knowing they wouldn't be compressed, even though the rest of the data is. I found a match and opened unLZ-GBA to go to a nearby address and decompress the rest of the data, but unLZ didn't find it. What the hell? Are there other compression methods?

What really gets me is that the similar data for the Hero's Hand Axe animation is nearby, and unLZ-GBA found it no problem.

I'm including the folder I've been keeping my findings attached to this post; a bunch of ram dumps and a couple of decompressed rom dumps, etc. Perhaps someone with more experience can give me a method for decompressing the animation data for other animations in instances where unLZ fails, because I'm positive I've found the data, and being able to edit it is essential for making entirely customized animations. Well, actually, I could throw the custom stuff at the end of the rom after expanding it with a bunch of empty space and find some way to point to it. But I've never hacked a pointer table before so I don't know how to find one in the first place. Tips on that would be nice, too.

Also, in the pictures in the folder, the first picture is a result of me editing the animation data while it was in the ram, and the second is also from editing the ram, except I found that data in the rom as well (it's the file called "3167"; a rawdump from unLZ). The data I edited for the first picture is somewhere near the address I mention in the text file "animation tile7"; that's where I found the first of two matches (the second match being at the location labeled "wtf mirror?") is in the rom. Like I said, I can find it, but I can't edit it because unLZ won't recognize it, even with a deep scan.

I even tried editing the SPR file that contains pointers to compressed data generated by unLZ and tacked on a pointer that I thought was the beginning of the compressed data. All that did was crash my hex editor.

Edit: I decided to quit being lazy and searched for the addresses of the animation data I found and I think I've stumbled upon the pointer tables of the data. Now, I think I have enough data to construct my own custom battle animations.

I don't plan to compress my custom animations because I'm afraid something bad will happen if I do. So, before I get to writing my own animations, I'd like to know if the decompression instruction that the game usually runs on this data will interfere with my animations by trying to decompress data that isn't even compressed. I'm pretty sure that the function will recognize that every single byte is uncompressed and leave it alone, but it'll be awhile before I've decompressed some data, moved it to the end of the rom, and pointed it, in order to test if that will be a problem or not.

Ugh, I hate compression...I can't wait to finish my patch, damn compression getting in the way...

Oh, I never bothered to try telling unLZ to write to a custom address. I don't know why I didn't think of it earlier. The game doesn't recognized that the data is already uncompressed just as I had feared, but I can compress my data to solve that problem anyway. The problem I have left is being able to hack existing animations, and all I really care to do is make custom ones. I could use custom animations to replace existing ones as well as adding new ones anyway. Now comes the tedious programming part...and the spriting...I'll have to make the sprite sheet first, since I'll need to refer to it to program the tile arrangement...

Attachments

Animation Hack.rar (650105b) - views: 76



(edited by Zeld on 11-13-06 10:31 AM)
(edited by Zeld on 11-13-06 05:30 PM)
interdpth

Mole
MZM rapist


 





Since: 11-18-05

Last post: 6277 days
Last view: 6277 days
Posted on 11-14-06 04:24 PM Link | Quote
There's an easier way then just going straight through unlz, download VBA developer version then before you get to the place you want, go to tools -> Logging -> check swi, then leave this window open and play the game, when you go through the place you want and your graphic appears look for any uncomp results.
Zeld

Red Paragoomba








Since: 11-05-06

Last post: 6281 days
Last view: 6278 days
Posted on 11-14-06 05:15 PM Link | Quote
I've found all the animation data in the rom and I can just use ram snapshots if I need it to be decompressed. Only problem being that I can't tell where the data in the ram ends, just where it begins.

I suppose I can do a half assed hack of all the types of animation data for a single battle animation and post a patch here, to give a small example of all the stuff I can do with the data I found. So far everyone that's hacked battle animations for Fire Emblem has only edited the graphics and not the animation.

Is there a patch file that can make patches for roms of different sizes? Making custom animations means adding space at the end of a rom, and lunar ips doesn't make patches that compensate for a change in file size. I could always tell people how many 0s to add to the end of the file in order for the patch to work, but that seems like a step that can be skipped with the right patch maker.


(edited by Zeld on 11-14-06 04:16 PM)
Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Fire Emblem 7 Animation Hack |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.014 seconds; used 365.02 kB (max 437.02 kB)