Author Topic: (FF7 PSX) Impossible to win all item drops from multiple enemies?  (Read 14609 times)

NFITC1

  • *
  • Posts: 2944
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
The scope of the variable is 6 bits rather than a whole byte. I don't know what those other two bits signify - maybe they're flags for 'always drop' and 'null'?

The lower of the two doesn't appear to be used at all. The upper one signifies the item can be stolen and not won.

antd

  • *
  • Posts: 49
    • View Profile
I have tried out the 3 Sneaky Steps battle and easily won 3 M-Tentacles after having adjusted the drop rate to 63.
Is this the same in the PSX version?

Changing the drop rate manually may not show if it is possible in a real game.
Anyone have the memory address for 'drop rate' or a way that i can easily find it?

Also, can someone explain why I have not seen 3*item drops after 400,000 (and counting) consecutive attempts? Possibly too low level to win all items?
« Last Edit: 2012-01-13 01:20:27 by antd »

Livesey

  • *
  • Posts: 148
    • View Profile
The 100% chance showed that it is possible in thoery and it wouldn't break the game.

Does anyone know if changing the drops in ProudClod enables 3 item drops?

Vgr

  • Global moderator
  • *
  • Posts: 2163
  • If it quacks like a duck, it must be a duck
    • View Profile
Oh damn right andt!

The probability might be too low since you are at low levels. I'm not sure. I assume, though, that finding an address would do no good if you can't replicate it without cheating. NxK showed that it is theoretically possible.

NFITC1

  • *
  • Posts: 2944
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
Also, can someone explain why I have not seen 3*item drops after 400,000 (and counting) consecutive attempts? Possibly too low level to win all items?

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: [Select]
Drop rate:    RNGLUT pointer:
27+           31, 32, 33, 120
26+           32, 33, 120
25+           120

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.

Livesey

  • *
  • Posts: 148
    • View Profile
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: [Select]
Drop rate:    RNGLUT pointer:
27+           31, 32, 33, 120
26+           32, 33, 120
25+           120

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.

Master of the Kernels you are my friend.

antd

  • *
  • Posts: 49
    • View Profile
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.

Here is the savestate: http://www.multiupload.com/UDRDKFIBAC
Here is the emulator which can load it: http://code.google.com/p/pcsxrr/
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

  • *
  • Posts: 2944
  • I just don't know what went wrong.
    • View Profile
    • WM/PrC Blog
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

  • *
  • Posts: 49
    • View Profile
Ok great. Nice to know it is in the code then :D
Thanks