[FF7PC-98/Steam] Smoother 60FPS Battles (v0.95)

  • Thread starter Thread starter obesebear
  • Start date Start date
Status
Not open for further replies.
BPPMQcu.jpg

Project work is picking up again.

It was pretty defeating spending all that time interpolating the models only to find out they were messed up and completely unusable.  However, I recently quit my job, and after skimming this old topic it seems that everything (aside from those damn animation files) is in place to make this a reality.

I'm currently reinstalling FF7 and will begin work on it today.  But first this thread needs to be purged of all the old unhelpful information and I need to find a link to "multi.dll" that DLPB made.  I also couldn't find info on the limit break animations, but I know they were found and posted about somewhere...
 
and I need to find a link to "multi.dll" that DLPB made.
You might have an easier time with HextLaunch. It can launch any app and inject as many DLLs as you want. In the long run I think it'll be easier to use, at least for testing and development, than multi.dll.
 
Yeah, multi.dll has been retired.  HextLaunch combines 3 of my tools into 1 :)

Also, the reels were fixed by Dziugo.  So that is ready for the day everything is sorted :)
 
Great!  Trying to update the first post with all the correct, up-to-date, important information.  If there's something I missed or is wrong do let me know.  Like, I need to get rid of those manual .exe edits now.
 
Tifa, Cait's limit slots, battle square slots updated... 100% (Pretty sure Dziugo and DLPB got this taken care of)


<

Yup.  It's sorted.  Dziugo worked his magic.  I have the values needed for that.
 
I've been looking into increasing some of the animations in the same way I increased the cameras (which should work 100%). I haven't made much progress since I'm not certain of the structure of the animation loaders. I've definitely narrowed down where Ultima sets lots of its values and gets added to the animation queue.

I also couldn't find info on the limit break animations, but I know they were found and posted about somewhere...
What do you need to know?
 
Last edited:
I found the limit break animations in a random thread Borde created, so that should be taken care of. It's up on the first post now.

If you want to jump on IRC, DLPB is messing with the exe right now trying to do the same
 
Last edited:
NFITC1...

Check Memory address

00424E5F

As you can see this is the main counter for each animation frame. It is adding 1 to each frame, advancing the animations.  Hence, making this value 2 doubles anim speed.

Surely there is a way from here or nearby to make it count 4x slower.  I am not sure what calls this function, or how it all ties in.  I only know that the key to animation is here, and this appears to be the main thing.
 
Last edited:
NFITC1...

Check Memory address

00424E5F

As you can see this is the main counter for each animation frame. It is adding 1 to each frame, advancing the animations.  Hence, making this value 2 doubles anim speed.

Surely there is a way from here or nearby to make it count 4x slower.  I am not sure what calls this function, or how it all ties in.  I only know that the key to animation is here, and this appears to be the main thing.
I'm sure this would be relatively easy, but even if you slow the counter to make it increment once every four frames the effect will retain the 15 fps animation. That'll look odd for most animations. This should be fine for 2D effects, but 3D would stand out.

Still, it's worth a look and I'll check it out in the morning.
 
We could make the animations longer with Kimera. It's acually very simmple.
 
I'm sure this would be relatively easy, but even if you slow the counter to make it increment once every four frames the effect will retain the 15 fps animation. That'll look odd for most animations. This should be fine for 2D effects, but 3D would stand out.

Still, it's worth a look and I'll check it out in the morning.
It is advancing the animations though.  Perhaps my choice of word frame is wrong...  Anyway, see what you can find in there.  Looks like potential to me.  But there will no doubt be issues..  :-D

We could make the animations longer with Kimera. It's acually very simmple.
That's what's being attempted by Obesebear, but it ain't simple... Kimera is broken, and there are tons and tons of animations to do...  :'(
 
Last edited:
It is advancing the animations though.  Perhaps my choice of word frame is wrong...  Anyway, see what you can find in there.  Looks like potential to me.  But there will no doubt be issues..  :-D
I understand what you're saying completely, but I guess I'm not explaining well. If you tell any animation to advance a frame every four frames then it will still appear to be 15 fps. Otherwise if it advances once a frame it will play four times the speed.

EDIT:
...Check Memory address

00424E5F...
I have this marked as an actor-specific animation frame. This doesn't affect magic effects which is what I've been talking about. Sorry I didn't clarify earlier.
 
Last edited:
Yeah, this seems to work for model animations only.  But it can't be that hard to locate the same thing for special effects?

See , from my point of view, having it duplicate frames is ok.. because my only gripe with the PC battles is that the slots are broken.
 
The effects are definitely being handled by 0x5BF01F.
here's a pseudo-code of that method:

Code: [Select]
Code:
for( x = 0; x < 100; x ++){   if( *HandlerQueue(x) && dword_9AD1AC)   {      call handler x      If (AnimationData(x*32) == -1 )      {         remove handler from queue   }   else   {      if( *HandlerQueue(x) == 0x42782A )      {         call handler x      }   }}x = 0;
That's being called twice per frame and can call 100 handlers per invocation. Ultima requires as many as 79 and I've found where the sparkles (0x579A97) and the dome (0x57A082) handles are. It's not handling 2D effects though. I believe I can control the speeds of the sparkles and how long they stay on screen. I just don't know how to control when they rotate through their graphics.
 
That's what's being attempted by Obesebear, but it ain't simple... Kimera is broken, and there are tons and tons of animations to do...  :'(
Well yes, the downside is the amount of work. I haven't test the interpolate all animations button myself.

But you are right the game is able to interpolate frames by itself. This is used in the field mkt_s1 (the boutique of the wallmarket) for Cloud to play a animation slower as it really is. So if we can use this command to interpolate the battle animation then it would spare us a lot work.
 
5D4596 seems to speed up Cure anim?  So must be close to there?

Actually no... that seems to just be speeding up the time allocated to it.  Not the actual anim speed.
 
Last edited:
Well I certainly did increase the duration of Ultima's sparks. They stay on screen a lot longer and don't seem to be adversely affected by the increased duration. I just have to figure out how to delay the rest of it.
 
Finished all main characters and bombing mission enemies.  Playtesting now
 
Enemy AI scripts need to be slowed down

Camera cuts out too fast during victory animation

Some sfx are being triggered too early.  Say Barret's shooting animation is #10 and is 20 frames in length, and that animation #9 is a 3 frame animation of him getting ready to shoot, it looks like the sfx is being called during #9 instead of #10.  So it may be that those small animations like #9 needn't be interpolated.

What's happening is the sfx is being called on a certain frame of an animation string.  So while Barret's shot used to sync up perfectly if the sfx was triggered on frame 4/20, it's now out of sync because it needs to be triggered on 16/80.
 
Last edited:
I've confirmed the location of the speeds of the ultima sparks, but there's still some random element to it and I'm only slowing down one group of them.

Enemy AI scripts need to be slowed down
Do you mean the timers?
 
Status
Not open for further replies.
Back
Top