Final Fantasy Forums > Scripting and Reverse Engineering

(FF7 PSX) Impossible to win all item drops from multiple enemies?

<< < (7/7)

Livesey:

--- Quote from: NFITC1 on 2012-01-13 16:36:01 ---Level doesn't factor into Item Drops. In fact, item drops are not considered until after the battle is over. Once the battle ends it loops through each defeated enemy and totals the exp, ap, and gil won from each enemy and items are dropped in the process. They're calculated like stealing items, but without initial level considerations.

Basically, if (random number AND 63) <= [drop chance] then the item will drop. The random number is determined completely by the RNGLUT in the KERNEL.BIN. The set is never incremented so it just cruises in a straight line down the numbers checking if they meet the criteria for dropping an item. Take a look at the RNGLUT in WM. I just copied that whole thing and did a MOD 64 on each entry in Excel. It looks like there isn't a place that will let you get six items from six different enemies unless those enemies have a high drop chance. It doesn't look like it's possible to get more than three from a Battery Cap x6 battle.

In order to be able to win six items from six enemies, the drop chances needs to be pretty high for an item.

--- Code: ---Drop rate:    RNGLUT pointer:
27+           31, 32, 33, 120
26+           32, 33, 120
25+           120
--- End code ---

As you can see, there has to be freakishly high rates of dropping for this to occur. A drop rate of 8 is typical for "common" items. Some go as high as 32, but that's Vlakorados and King Behemoth which are singular enemies.
Since most drop rates are 8, then it's impossible to win more than three from any number of enemies in a given battle. There's a 10/256 chance that that will occur.

--- End quote ---

Master of the Kernels you are my friend.

antd:
Is there anything in the code that shows it loops after 65536 frames? Because that is what it does in practice.

In my results I keep seeing the same loop of item drops after 65536 frames. And none of those results have a 3*item drop. This means, in this particular instance, it is not possible to get 3*item drop.

Load it by moving to sstates directory and pressing F1 in the emulaor.

If 3*drop from 3*enemy is possible, then there must be another factor in order to account for my results?

NFITC1:
I can't tell at it loops based on frame at all. I'm not sure if it is incremented on it's own like that.

And you won't be getting 3 items from 3 enemies without hacking. The most you'll get is two.

antd:
Ok great. Nice to know it is in the code then :D
Thanks