Jump to content

Unexplained Choppy Animation


nightgale
 Share

Recommended Posts

After completing my small hack using event assembler, Inoticed that the cavalier javelin throwing animation looks a little choppy andjerky. I am confused because I didn’t touch any of the animationsin Feditor. The only think I touched were portraits and text and that’s it. Has anyone else experienced this weirdness? Does anyone knowwhat might cause this to happen and if there is an easy way to fix it?

Link to comment
Share on other sites

Give the process outlined here and here a try and if it's still screwing up let us know.

Sorry, but I am a little confused about what this is saying. Where am I looking for this "dropable item pointer?" I check Jerme in Nightmare who has the last item drop as his fourth ability; but I didn't see any strange pointer. Does the it matter which character I check for the last item drop?

Link to comment
Share on other sites

Does the it matter which character I check for the last item drop?

Yes, it does matter. I'll explain below.

Note: please please please back up your ROM before you do this

Okay, so basically what happens is that either FEditor or the EA try to replace all pointers that are 00 00 00 08. Now, a generic enemy who has "Last item droppable" as their ability will also have 00 00 00 08 in their data despite it not being a pointer. The cavalier animation also has a 00 00 00 08 worked in somewhere in its animation, which is why yours has glitched. So whichever program it is that does it inadvertently replaces that as well.

Hence, if all strings of 00 00 00 08 have been replaced, if you go into the Nightmare Editor and check a generic enemy who should have 0x08 Last item droppable you'll see that the character abilities won't be like this:

Ability 1: 0x00

Ability 2: 0x00

Ability 3: 0x00

Ability 4: 0x08 Last item droppable

It'd be like:

Ability 1: 0xFD

Ability 2: 0x54

Ability 3: 0xCE

Ability 4: 0x09

(the numbers are examples)

The reason you must find a generic enemy is because looking at a boss (like Jerme) won't give you anything irregular because a boss's character ability wouldn't be 00 00 00 08, it'd be something like 00 80 00 08 because 0x80 designates a boss. Since the two programs will only replace 00 00 00 08, Jerme's character abilities won't have been replaced, and his abilities will show up as per usual in the Nightmare editor.

So find a generic enemy who normally has Last item droppable (0x79 Laus does, for example). If you can't remember or find which character have it, just keep scrolling through each generic enemy and checking their abilities until you see a bunch of weird values for their abilities.

If your abilities were like this:

Ability 1: 0xFD

Ability 2: 0x54

Ability 3: 0xCE

Ability 4: 0x09

Then open up your ROM in HxD and hit ctrl + F and search up FD54CE09. Then use Replace All and replace all instances of FD54CE09 with 00000008. IIRC there are 86 instances that will be replaced.

Take a look at my glitched ROM (the same thing just happened to me a few hours ago):

buggedcavalierexample.png

That's what my generic Laus soldier's character ability looks like. It should be 0x00 0x00 0x00 0x08, but it's 0xD4 0xFD 0x50 0x09 instead. What do I do? Search and replace D4 FD 50 09 with 00 00 00 08. This should fix the problem. The enemy that I checked is 0x79 Laus so if you haven't modified that character you should be able to check there as well.

(As a side note, if your generic enemies ever pop up with weird abilities like having the boss shield icon on them, the same or a similar glitch has happened and you can just do exactly the same thing with them as you did her)

Edited by Agro
Link to comment
Share on other sites

Ah yes, I think I follow. Thank you so much for the detailed explanation. I will check this out and play around with it tomorrow. I am still baffled that this is what could be causing weirdness in the cavalier animation, but hey, stranger things have happened.

Link to comment
Share on other sites

Okay, so basically what happens is that either FEditor or the EA try to replace all pointers that are 00 00 00 08. Now, a generic enemy who has "Last item droppable" as their ability will also have 00 00 00 08 in their data despite it not being a pointer.

EA does no such replacing, the only (simple) way to write a pointer in EA is something like this:

ORG PointerOffset
POIN OffsetToPointTo

and that writes only to offset you specify.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...