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

  • Thread starter Thread starter obesebear
  • Start date Start date
Status
Not open for further replies.
To be clear, that instruction sets the menu back to what it was with the PSX...  i.e. a full 60fps frame rate, which will look correct at 60fps.  It also sets the camera back to what it was on the PSX (30fps, on PSX double frames to compensate).  Obviously, 30fps is still too slow for 60fps on PC (which doesn't do the doubling up that the PSX does).

That instruction also fixes some other things like damage calculation, and hit times.  (At least it should).
 
To be clear, that instruction sets the menu back to what it was with the PSX...  i.e. a full 60fps frame rate, which will look correct at 60fps.  It also sets the camera back to what it was on the PSX (30fps, on PSX double frames to compensate).  Obviously, 30fps is still too slow for 60fps on PC (which doesn't do the doubling up that the PSX does).

That instruction also fixes some other things like damage calculation, and hit times.  (At least it should).
Is there any way to make the PC version double it's frames?  It's a classic disney trick.

In an ideal situation where you want movement to look ultra-realistic in an environment, your camera moves every frame while your animations move only every other frame.  I'm not sure if that would even be possible here, but it's fun to see in action.

However, if you double every frame, the timings of all of the animations should line up and everything would retain the 'smooth' nature of the 60 fps look you guys are all looking for.  Ultra-fast mode doesn't really do it for me...  Does it still function the way it looks in the YouTube videos?
 
Is there any way to make the PC version double it's frames?  It's a classic disney trick.

In an ideal situation where you want movement to look ultra-realistic in an environment, your camera moves every frame while your animations move only every other frame.  I'm not sure if that would even be possible here, but it's fun to see in action.

However, if you double every frame, the timings of all of the animations should line up and everything would retain the 'smooth' nature of the 60 fps look you guys are all looking for.  Ultra-fast mode doesn't really do it for me...  Does it still function the way it looks in the YouTube videos?
Right now the AI script, SFX, and Animations, are 60fps and the camera technically has 30 unique frames per second but moves correctly with the 60fps models.   The only thing still moving too fast are magic effects and limit breaks
 
Right now the AI script, SFX, and Animations, are 60fps and the camera technically has 30 unique frames per second but moves correctly with the 60fps models.   The only thing still moving too fast are magic effects and limit breaks
Would there be any way to double the frames of the magic effects or limit breaks?  To have the game call the same frame twice in a row every time?  that might make it possible to slow them down and keep them looking the same as everything else.  I know I'm really late to this, but I love the concept and I am really blown away by all the great work done on this!
 
Limit breaks are VERY close to being able to be interpolated if NFITC1 can work a little magic.   

Texture animations and magic are a different story.  From what they've found so far it looks like they will have to be edited one at a time in the exe.  Currently trying to find a more feasible way of doing things.
 
Camera animations... 90% (Thanks to NFITC1. Victory animation needs extending.  Battle square transitions run at 30fps instead of 60. )
As I told you in chat the other day, I'm content to leave the battle square transitions (and by extention, the Hojo battle transition or any other transition that move a camera to a new position before the next battle) alone since they don't come up too often. However, it's possible that I found some fixes for it. I'm almost certain I found the fix for the victory cam extension.

Code: [Select]
Code:
0x4310F6 (0x0304F6) 1E -> 780x431131 (0x030531) 08 -> 200x4311AE (0x0305AE) 31 -> C40x4313DE (0x0307DE) 10 -> 40
That ought to make it last the correct amount of time. It's slightly possible that this will affect next battle transition too. Not likely the camera motion, but the length of time it pauses while it "should" be adjusting the camera.

Fade out might be a bit fast, though. You might also need to change
Code: [Select]
Code:
0x4313B7 (0x0307B7) 03 -> 00
that's a shot in the dark and may mess something up. Don't do that unless fade out is still too fast.

EDIT:
Battle Interface... 99% (Thanks to DLPB.  Damage display cuts out too quickly)
I also just proved that AB opcode C2 and F7 queue up the damage indicator. Thanks to knowing that, I've found that 0x5BB410 controls displaying the damage done. Duration is set just a little ways into that method:
Code: [Select]
Code:
0x5BB464 (0x1BA864) 0B -> 2C
RE-EDIT:
So that change does make the damage stay on longer. It does not behave after the regular 11 frames it was intended to stay up. I think, however, that those values that control its position are coupled right there a little lower in that same function. Of course it's not in front of me right now so I'll have to explain later
 
Last edited:
These are some more things I have found, if helpful to you:

Code: [Select]
Code:
{Option control6CE98A{controls time bar.6CE9EE = 75 14{Unknown40ABB9{Refresh for textures41BB4F{model movement41FBB4{camera42DA55 42DA84{display of damage42DAB9{Unknown5B9CE2{Main call to magic5BF065
Obviously since I am dealing with pause (doubling up frames), those addresses will point to those areas.  The main jumps.

By analyzing things that access
00DC0E70, 009AD1AC  and especially 00DC0E6C, you will find pretty much every main part of the battle structure.  All the main counters are jumped using 00DC0E6C.

You *may* also find, like me, that the intro to battle cam skips.  If it does, I think I have an explanation.


Also, yeah, I sent that exact damage change to Obese the other day, and we found it messes something else and so won't display on screen right :P  I asked that that be sent to you, because I'm out of ideas in how to fix it.
 
Last edited:
Also, yeah, I sent that exact damage change to Obese the other day, and we found it messes something else and so won't display on screen right :P  I asked that that be sent to you, because I'm out of ideas in how to fix it.
Haha. Yeah, I have some ideas how to fix it. Give me some time.
 
I think you'll appreciate this, NFITC :P  Not that it helps this mod.  It's just my code to stop knights disappearing (so I guess if someone wanted to be really thorough they could use this as a fix for them disappearing on pause).  Basically, when the 13 knights functions are being called, they must be called even on pause.  I have no idea why...  because by that logic, so should everything else.

But I had to rearrange the assembly to fit mine in, and I did it with no bytes to spare:P

>

Code: [Select]
Code:
5BF047 = 0F 8D AF 00 00 00 8B 04 8D 58 28 BF 00 85 C0 74 7D 83 3D AC D1 9A 00 00 75 12 31 C9 B1 0D 39 04 8D 65 42 91 00 74 05 E3 65 49 EB F2 FF D0and the list of knight functions914265 = B0 AB 47 00 93 C7 47 00 AE CB 47 00 76 D9 47 00 6A DD 47 00 5E E0 47 00 67 E3 47 00 92 EB 47 00 A0 EF 47 00 7D FB 47 00 C2 FF 47 00 4E 03 48 00 76 07 48 00
I actually made use of that jecxz to save me a much needed byte :)  Could have arranged below that to fit it easily, but that's more messy.
 
Last edited:
I'm not sure if it's just me, but the idle animation seems to be running too fast for the sweeper. Or rather it seems a bit jerky if it isn't.

Fresh install of FF7 with no mods fixed my issue with being unable to battle
 
Oh yeah, you guys may need this change too:

{battle menu active value
429C0C = C6 05 F4 D0 BF 00 F4

My mod did...

Basically, the time until the menu becomes active has to be set correctly.  Above F4 is four times the default.  If you don't set this, the menu becomes active early, and the camera skips. It's pretty cool the stuff that uses these counters too...  you can see how the game adds in the enemy, characters, menu and so forth, in an order.  Placing in values 1 through 5.  The one above is for the main options.
 
Last edited:
NFITC1, your values are spot on.  The camera stays on screen the correct amount of time, but at least one of the victories causes very fast camera movement.  It also seems like certain magic spells and attacks the camera still moves too fast (albeit at 30fps now).  I would doubt the camera info would be stored within each particular magic file, but is it possible?

DLPB, I tried your value for the menu, and it does delay the amount of time before the atb begins moving (it even says WAIT) but  everyone is standing around for a second or two before it begins.  Maybe it's set to wait for too long?
 
As far as I am aware, that's precisely what the original game does... because sometimes the lead-in is longer.  See Midgardsormr.  Any less will break camera on certain enemies.

edit

<DLPB> It's just you only realize it's needed on certain enemies
<DLPB> i quadrupled the value, which means at 60fps it should be the same
<obesebear> what would double the value be then?
<DLPB> #Against Midgardsormr the controls should appear almost at same time as the camera stops
<DLPB> hmm given how nfitc has used the cam, perhaps it's now out.  Double would be >
<DLPB> 429C0C = C6 05 F4 D0 BF 00 7A
<obesebear> ah ok lemme try
<DLPB> that's only if it was miles out...  against sormr the cam should stop at same time as controls are given
<obesebear> perfect
<obesebear> it begins moving just as soon as the camera is done panning
<DLPB> must be how NFITC has done things
<DLPB> Anyhow... nice to see that;s fixed
<obesebear> Yep, slowly but surely :)
Or perhaps that's why my own cam is broken... cause im limiting it to 1 in 4 frames instead of 1 in 2.
 
Last edited:
NFITC1, your values are spot on.  The camera stays on screen the correct amount of time, but at least one of the victories causes very fast camera movement.  It also seems like certain magic spells and attacks the camera still moves too fast (albeit at 30fps now).  I would doubt the camera info would be stored within each particular magic file, but is it possible?
I suppose in some cases it might be. I would suspect that some of them actually have camera scripts embedded in them. I suppose it's also possible that I missed one or two codes that make movement increments.
 
Have a ton of fixes today.

-battle swirl fix
-ATB starts once camera finishes opening pan
-fixed Eligor
-fixed Moth Slasher
-fixed Aero Combatant propeller rotation
-fixed Bull Motor
-slightly fixed Motor Ball. Still has rotation issues.
-fixed Razor Weed
-fixed Hard Attacker
-fixed Christopher

Remaining are Death Dealer and Motor Ball.  All other problems are likely unnoticeable in game.   Tomorrow I'll hopefully figure out limit breaks! If so we'll do another release.
 
You guys are on a warpath!  :evil:

Is the battle swirl now 60 fps?
 
Status
Not open for further replies.
Back
Top