Qhimm.com Forums

Miscellaneous Forums => Scripting and Reverse Engineering => Topic started by: L. Spiro on 2001-05-13 11:12:00

Title: Other Final Fantasy® VII formulas.
Post by: L. Spiro on 2001-05-13 11:12:00
Firstly, since this is my first time venturing here, allow me to say this is a very nice message board.  I was sent to this board by Ficedula.
I am making a smaller game out of Final Fantasy® VII and the post with the battle formula was extremely helpful to my cause.
But there are many more formulas I will need.
Each time I play through and get Yuffie (for example) she has different statistics.  Obviously there is a formula for her statistics depending on how strong your team is.  And the same is true for each character after Barret.

Also, magical equations.  What formula tells me how much damage I will deal to a regular MP if I cast Ice?  Lightning?

There are also many specific equations that deal with weapons or spells individually.  Because of the actual amount of help I need, instead of asking one person to help, I ask any readers of this post for any input at all (hence coming to a forum [duh]).

If anyone cares to know about the game I am making, it is a text-based chat game playable with any IRC client.  Players will be able to explore the entire world of Final Fantasy® VII, which includes the full storyline and text.  Players will also be able to battle human players, which I believe will be the most fun of it.

Thanks.

Title: Other Final Fantasy® VII formulas.
Post by: The SaiNt on 2001-05-13 12:20:00
I think Terence would probably be able to give you answers for that.

IIRC, the other characters level's are actually determined by Cloud's Lvl. I think Barret is 2 levels lower than you when he joins you and Yuffie joins you at half of Cloud's Lvl.

As for the rest of the stats, I believe there should be a certain formula for the connection between character lvl and the rest of the stats.

Title: Other Final Fantasy® VII formulas.
Post by: Sir Canealot on 2001-05-13 15:53:00
Pretty sure yuffie joins at more then clouds starting level.
Title: Other Final Fantasy® VII formulas.
Post by: Skillster/RedSarg99 on 2001-05-13 20:08:00
no
she joins a few levels lower then clouds CURRENT level, a few levels higher then the rest of the party. untill u go past level 40 i think
Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-14 00:28:00
Well, I've finally started on the FF7 Game Mechanics which, when finished, should be a group of four guides which will eventually cover most, if not all, the various formulas used in various parts of FF7.  (The Date Mechanics would be an unofficial part of the Game Mechanics, since it's already out and finished at this time)

Magic formulas are actually pretty easy.  Base Damage is already (Magic atk + Level), thus all that remains is to work out the modifier.  For example, Fire, Ice and Bolt's modifier is 3, while Fire2, Ice2 and Bolt2's modifier is 7.5.  (You multiply the modifier to the Base Damage)

However, that's obviously not the whole story because you have to factor in the Magic def of the enemy as well, and other factors come into play; most spells when cast against all enemies will do less damage (2/3 of the original power).  Some spells that can only be targeted against all enemies will do more damage if there's only 1 enemy to be targetted.  And certain spells ignore those rules and do full damage to all enemies (Summons are notorious for this).  There's also formulas for Random Variation, Piercing damage, Elemental rules to follow, special weapon formulas, etc....

I'm not going to go into exact detail here, but I will warn you; the Game Mechanics guides will be quite a while coming.  There's still a lot of stuff I need to find out, but most of the hard work is already done.  (Finding out the stats on all the enemies is going to be a pain though)

HTH.  HAND.

Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-14 00:30:00
By the way... I think I remember your name from the GameFAQ boards.  If that's the case... I'm already impressed by you.  Your post on Emerald Weapon and Ruby Weapon was particularly good, and actually managed to come up with reasons why people seem to think they have more HP than they actually have.  (I already knew their respective Lvl, HP and MP totals, but it's been a while since I've done heavy analysis on their attacks)
Title: Other Final Fantasy® VII formulas.
Post by: L. Spiro on 2001-05-14 01:19:00
I was searching the GameFAQs’ board in search of the same answers I seek here and saw some confusion on the statistics of the WEAPONs.  But thank you.

Also, if you can figure out a minimum of three enemies’ statistics (Str, Att, Att%, Def, Def%, MgDef, etc.), then I can figure out the rest fairly easily.

So if you get me started by giving me three enemies’ full statistics, I will get the rest and then we can trade my statistics for your formulas.

Also, how is miss/hit calculated?

My ICQ: 56016742.

Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-14 02:16:00
Unfortunately, I don't know where the entire statistics of each enemy is kept, even in battle.  (I've recently been looking for speed and Absorb stats...)

Best I know is where Def and MDf is stored.  Attack (Strength wouldn't be stored; enemies can't wear equipment, so there's no point) is extremely tricky, and I'm not even sure it exists; it might be that each enemy ability simply has its own personal strength.

I'll give you Airbuster and Guard Scorpion's Def and MDf, because I have them close at hand.  (I do have Ruby and Emerald's too, but they're not here; I have them on my home PC, not at Uni)

Airbuster:
 Def:  80
 MDf: 320

Guard Scorpion:
 Def:  40
 MDf: 256
(while it has its tail up:
 Def: 255
 MDf: 384)

Hope that helps.

(And sorry, but I don't have ICQ or AIM or anything like that)

Title: Other Final Fantasy® VII formulas.
Post by: Skillster/RedSarg99 on 2001-05-14 02:20:00
well we got TWO mathmatical geniuses here,
Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-14 02:21:00
Oh, and as for Hit/Miss, I can only guess, until someone actually lifts the battle code out from the EXE.  My intuition tells me it's Rnd(0..99) < (Att% - Def%).

But it could indeed be more complicated... it's hard to say.  But since Att% can go well above 100 and Def% rarely climbs above 50... I'd say it would be a fair guess for now.  (I need to actually study it more, but that won't happen until I've got damage mostly out of the way)

Title: Other Final Fantasy® VII formulas.
Post by: L. Spiro on 2001-05-14 06:00:00
Those statistics have allowed me to find all enemies’ Defense and Magic Defense.
Nerosuferoth, for example, has 34 Defense and 24 Magic Defense.
Sweeper (level 8 Sweeper) has 20 Defense and 4 Magic Defense.
And I can now find any and all other enemies’.

If you have any other statistics from any other enemies, my e-mail is [email protected].

Title: Other Final Fantasy® VII formulas.
Post by: Skillster/RedSarg99 on 2001-05-14 10:49:00
how do u work out the rest of the enemies stats by just looking at terrence's examples??
Title: Other Final Fantasy® VII formulas.
Post by: The SaiNt on 2001-05-14 13:39:00
If you guys really want to know the enemy stats, i'll search those address's located in memory next on my list after I'm done with what Qhimm needs to know.  :)
Title: Other Final Fantasy® VII formulas.
Post by: Qhimm on 2001-05-14 19:14:00
Hey Terence, wouldn't Luck play a part in hit/miss calculations...?
Title: Other Final Fantasy® VII formulas.
Post by: L. Spiro on 2001-05-14 20:16:00
If I know three or four enemy statistics I can battle each enemy and search for the enemy statistic as it changes from battle to battle.
Exactly like using a GameSharkâ„¢.
Once I have found the address that stores the enemy statistic during battle, all I have to do is simply enter a battle with any other enemies and their statistics will be displayed for me.

Although there are a ton of enemies, so finding them all and joining battles with them is tedious, it is much faster than hitting them and running reverse calculations.  And overall more accurate.

Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-14 22:53:00
Qhimm> Possibly... Luck is an anomalous factor really though, and I'd hate to work on it until I've got the battle code (assembler or not) sitting in front of me.  If it does play a factor, it's either a small one or devoted just to critical hits... or it may just not be involved in hit/miss at all.  

SLG> That's exactly how I do it; although I'd love to be able to grab the data structure of all monsters from the data files.  Would save me a heck of a lot of time, even though I'd still have to fight every enemy again to confirm stuff.

Title: Other Final Fantasy® VII formulas.
Post by: Sir Canealot on 2001-05-14 22:58:00
Isnt there a random geberator(He look this is a great word) to the atack though? I mean one atack might do 104 damge while the next might do 98. How does that work then resident genius's?

[This message has been edited by Sir Canealot (edited May 14, 2001).]

Title: Other Final Fantasy® VII formulas.
Post by: The SaiNt on 2001-05-15 13:04:00
Actually, what I was aiming was the exact block where all the enemy stats would be located.

It's a hell of a lot easier than looking each enemy up.

Title: Other Final Fantasy® VII formulas.
Post by: Aaron on 2001-05-15 19:37:00
There's a random generator in all of the FF battle stuff, for any game.  It does attack/defense calculations to find the damage and then adds or takes away, say like 2% or 5% or something, randomly, to make the damage not always be exactly the same.

Some games don't have a random damage modifier, i.e. Paper Mario (haha).

Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-15 20:22:00
Canealot> I already explained how the RV works: [dam * 15/16] ... (dam - 1) is the variation used.

The SaiNt> I would really like to get my hands on the stats for each enemy block seperately, but:

It's not stored in memory.  Only the current enemies are.

If it's in any of the LGP files, it's encrypted/compressed.

If it's in any of the other files, it's encrypted/compressed.


The only time I've seen relevant battle information unencrypted is when they're pulled out for use in memory.  Until then, the information lies hidden within the data files.


If you manage to find the data file(s) where the information is kept, I can finally start making comparisons between my formulas and where 'modified damage' might be held, which could be very useful.

Good luck.

Title: Other Final Fantasy® VII formulas.
Post by: Srethron Askvelhtnod on 2001-05-16 21:27:00
Some-Loser-Girl: Belated welcome.

Terence: I can't wait for the finished product. One question about the Date Mechanics guide. This is just something I've wondered about, but you know the scene in Sector 7 that contains 7th Heaven and all those other shops? Well, the first (only) time you go there, when Barret runs into 7th Heaven and drives everyone out, while he's doing that, the Avalanche and Tifa come out and run around before going back in. If you run up to Barret and talk to him while the Avalanche is still outside, you'll get some extra dialogue. Barret will say, "Heh, want to see your little baby?" and you have 2 choices on how to respond. I've idly wondered if that exchange affects the love points in any way.

About Luck. Personally, I'd bet that it *doesn't* play much of a role in hit/miss. Luck seems to have to do more with enemy encounter rates.
My case in point: the higher your luck, the less often you seem to have enemy encounters. IIRC, doesn't your Luck also effect your likelyhood of encountering Yuffie when in a forest? Materia stats seem to back this up. For instance, Enemy Lure, Enemy Away, and Chocobo Lure. Enemy Lure decreases Luck by 1. Enemy Away increases Luck by 1. Chocobo Lure also increases Luck by 1. Coincidence?

About enemy stats. I'd suggest reading the speculations about the battle files in this thread: http://qhimm.3dstream.net/ubb/Forum4/HTML/000007.html
We've made a guess as to where the enemy stats are all stored. We don't have proof, but it might help you out. See the thread for more info.

Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-16 23:13:00
Srethron: I know the scene you mean, and I have a feeling I've already checked it and find it doesn't do anything (if only because I'd have been a fool to miss it).  I hope to one day compare the Date Mechanics next to the decompiled scripts to see how accurate I was ^_^

It'll be a long time before I test Luck properly.  I do believe it may have something to do with Enemy Encounters... but I have no idea exactly how it would factor in.


And finally, I'd bet with No.2, judging by what's in memory: all enemy and boss data for a single area is contained somewhere, and when needed, all enemies for that area are loaded into memory (or close to that, anyway).  For example, one area is defined as the entire space from when you first start the game to just before you enter the Mako Reactor proper (the music is the same for all these areas).  You face three types of enemies here, although not all at the same time: MP, Guard Hound, Drill Drive.  As soon as you reach the scene where Barret joins, you've entered a new area, where Grunts, Laser Cannons and Drill Drives appear.  And then when you're deeper near the bottom, Grunts, Sweepers and Guard Scorpion are loaded.

I can only verify this by the fact that all their attack names are loaded into memory during any battle in those areas, regardless of what you're actually fighting.

Hope that helps.

Title: Other Final Fantasy® VII formulas.
Post by: Srethron Askvelhtnod on 2001-05-17 02:05:00
(1) Heh.
(2) Ditto.
(3) Thanks for the info. Personally, I'm putting my money on it being a combo of #s 2 and 3. My current theory is that all of the enemy data for various enemies, formations, and backgrounds is kept in 2 files (enemy012.dat and enemy331.dat). Their 3D models are the files in battle.lgp. The two .DAT files probably have a list of all of the enemies they contain (with all of them starting out labeled as "inactive" via a flag or switch).
This would mean that when the game decides which formation you'll encounter in the next battle, it sets a switch or a flag inside the appropriate .DAT file which in turn "activates" the appropriate enemies (or, conversely, just removes their inactive status). All enemies are once again "reset" (rendered inactive) after the battle ends.
The "field" files also play a part. When loaded, they probably also call up the enemies they use (which are probably defined and loaded in a similar way to how we think that field models are "cached").

What I suggest the people with more know-how (unfortunately I'm not one of them...yet) should do is:
1. Check for references to enemies in the field locations. Most importantly, try to figure out whether they point to data in other files or seem to be held in a certain block in the field file.
2. Once we know where the enemy data is, either in the field files or somewhere else(such as the enemy.dats), start poking through them.

[This message has been edited by Srethron Askvelhtnod (edited May 16, 2001).]

Title: Other Final Fantasy® VII formulas.
Post by: The SaiNt on 2001-05-17 10:30:00
IIRC, the battle encounters are defined in the field files. I believe the all the enemy stats are loaded into memory from "some file" and are kept in memory all the time.  don't think the file is read everytime you encounter an enemy.
Title: Other Final Fantasy® VII formulas.
Post by: Terence Fergusson on 2001-05-18 12:36:00
They are.  Enemy stats don't even exist when you start/load a game until you encounter an enemy.
Title: Other Final Fantasy® VII formulas.
Post by: Srethron Askvelhtnod on 2001-05-18 23:29:00
Thanks for the info guys. Do you have any info at all on what file(s) the data is loaded from?
Title: Other Final Fantasy® VII formulas.
Post by: Dry Ice CO2 on 2001-05-19 12:13:00
Wow, I thought I was the only math geek here... guess I was wrong. Or, more properly worded:

code:

if math_geek_count > 1 then
  math_geek_count = math_geek_count + 1
  if lonely = 1 then
    put "There were already math geeks before, no change here"
  else
    lonely = 1
    put "You were the only math geek here... until now!"
  end if
end if
[/quote]

I've received the Academic Acheivement Award for Grade 10 Mathematics in my school, so I guess I'm at liberty to say "I'm one of you".

And what's up with the Trademark and Copyright symbols? Are you a lawyer or something? Jesus Christ†, we don't need that here, stop wasting your time in charmap.exe.

- Dry Ice CO2

† Copyright © 4 AD Word of God Enterprises. All Rights Reserved. Any duplication in whole or in part, in any way, shape, or form, is grounds for being prosecuted and/or sentenced to hell.

[This message has been edited by Dry Ice CO2 (edited May 19, 2001).]

Title: Other Final Fantasy® VII formulas.
Post by: Qhimm on 2001-05-19 12:47:00
I suppose one could find out which files were loaded, the hard way... Start FF7, enter a battle, kill the program (not alt+F4, kill its thread so it doesn't have a chance to do anything). Then check the file dates to see which files were accessed latest...

oh wait, access dates in FAT are just the date... damn. oh well.

Title: Other Final Fantasy® VII formulas.
Post by: J*** H******* on 2001-05-19 17:41:00
Message.
Title: Other Final Fantasy® VII formulas.
Post by: The SaiNt on 2001-05-19 19:39:00
Exactly the link I was looking for!

I didn't know Jari read this forums...

Title: Other Final Fantasy® VII formulas.
Post by: L. Spiro on 2001-05-26 05:49:00
I be no lawyer.  I take care of bidness, not business.
No, but I do type as properly as is achievable.
ficedula, get on ICQ.  I have a speak for you about GoldenEye 007â„¢ and Perfect Darkâ„¢ (two of my other projects).

[This message has been edited by Some-Loser-Girl (edited May 26, 2001).]

Title: Other Final Fantasy® VII formulas.
Post by: ficedula on 2001-05-26 07:08:00
If you want to get in touch with me ICQ isn't the best way. I'm at uni at the moment so there's a few obstables to running ICQ; one, the firewall kills ICQ now and then (resulting in lost messages). Secondly, the Solaris boxes don't have ICQ. I run an ICQ clone but it aint the real thing.

When I'm back home I *do* run ICQ but I'm not on as much then; parents don't have a permenant 'net connection...

So, you're best off emailing me. That always works  :) If we do need to chat then that can always be arranged; IRC works perfectly for some reason; go figure.

Title: Other Final Fantasy® VII formulas.
Post by: Ant on 2001-05-27 17:07:00
Perfect Dark eh?

I love that game.

can the rest of us be privy to it?

Title: Other Final Fantasy® VII formulas.
Post by: L. Spiro on 2001-05-29 01:31:00
Okay.
I play online multiplayer first-person fighting/shooting games a great deal and long ago I had a job making maps for them.
I was once paid $60 for one of my maps for Starsiege: Tribesâ„¢.
Though the company for whom I worked (XGN [Xtreme Gaming Network]) has long died, my map-making love has suffered no such distress.

A friend and I recently embarked to make a complete translation from both GoldenEye 007â„¢ and Perfect Darkâ„¢ into Starsiege: Tribesâ„¢, Half-Lifeâ„¢, Unrealâ„¢, Quakeâ„¢ III, and such similar games.

This includes maps, textures, sounds, gameplay, guns, and possibly models.

I have been able to make 100%-accurate FLOOR maps out of GoldenEye 007â„¢ maps, but walls are a different story.  And I have a sound ripper I have used to extract all the sounds from both GoldenEye 007â„¢ and Perfect Darkâ„¢.
So I have 100%-perfect sounds from each game, and 98%-perfect maps from one game.

I was hoping ficedula (or anyone with the know-how for that matter) could help me extract the 3-D models used to make guns and maps, and the textures.

I mention it in these forums because it should be rather similar to extracting files from Final Fantasy® VII, after major modifications, and also because Ant wanted to know.

But the rest is not to do with Final Fantasy® VII so I will now be taking the rest of this to an e-mail to ficedula.

If I get enough help, you should be able to play GoldenEye 007â„¢ and Perfect Darkâ„¢ online with many many people in high resolutions and great framerates.

I have screen shots of what I have done so far if anyone wants them.  Use ICQ, but mention these forums.

Title: Other Final Fantasy® VII formulas.
Post by: Sir Canealot on 2001-05-29 14:44:00
A very intresting project Loser-Girl I wish you luck with it! I have played Golden eye quite a bit and I quite like it. But please spare us from low res N64 textures? Well good luck with it. I shall keep my eye on you. Has this project been going on long? There was a mod for Half Life like this age ago. Or was that Jedi Knight? No. It was Jedi Knight.
Title: Other Final Fantasy® VII formulas.
Post by: Skillster/RedSarg99 on 2001-05-30 11:28:00
there IS a golden eye mod for half life but it doesnt feel the same, maybe too many weapons or no music?
________________________________________
1 post to go...
Title: Other Final Fantasy® VII formulas.
Post by: Skillster/RedSarg99 on 2001-05-30 11:29:00
there IS a golden eye mod for half life but it doesnt feel the same, maybe too many weapons or no music?
________________________________________
1 post to go...

ACK!!!
damn thing double posted!!! NOOOO
i was going to make a new post for this, oh well

[This message has been edited by The Skillster (edited May 30, 2001).]