MF was completely (*completely*) different pre-LoD. There were no treasure classes, no boss bonuses, I don't know how it worked exactly but it was nothing like now.

The current system has indeed only changed in places since 1.07 came out.

The information you quote from the 1.07 guide is correct. The base chance back then was 1000 for uniques, 500 for class-specific. The guide mentions the ilvl-qlvl modification.

The equation is combining two steps. I might as well explain the whole thing in depth...

Start with your base chance (from itemratio.txt - this chance has changed every patch, was 1000 in 1.07, 800 in 1.08, 500 in 1.09 and now 400 in 1.10).

Subtract (ilvl-qlvl)/divisor. Divisor is also from itemratio.txt and has changed.

Multiply by 128. This is just done for extra precision. Instead of storing X and your chance being 1/X, they store 128*X and your chance is 128/(128*X). That is why all the 128s in the equation you quote.

The next three steps have not always been the same. I will list them, then explain the history.

A) Apply boss bonus. Each monster has a bonus to finding each quality type called Cx. This is a number between 0 and 1024. Higher is better. It is applied by this equation:

new chance = chance - (chance * Cx / 1024)

Effectively that improves the chance by 1024/(1024-Cx). For act bosses, Cx has always been 983, which turns into roughly a 25 times bonus.

B) Apply MF. The way they have done this changed dramatically early on (because the way they first did it was, to put it mildly, rteraded).

Originally (1.07) they simply subtracted your MF*X as your equation lists. X was 1/4/9 in norm/NM/Hell respectively.

If you know a little maths you can see that this results in a curve which starts off really flat and then suddenly curves up steeply (the opposite of what happens now, more or less). For example, if your odds are 1 in 100 and you add 1 MF, you get 1 in 99 - almost the same. If your odds are 1 in 100 and you add 50 MF, you get 1 in 2 - much better. If your odds are 1 in 100 and you add 99 MF then it becomes automatic! This resulted in there being critical values of MF that would *always force* certain monsters to drop a given quality, set, rare, even unique - though you could only reach the unique critical on Hell bosses. However, the cost of that was that at low levels MF was completely useless.

In 1.08, they "fixed" this, sorta. They reduced the difficulty bonus to 1/2/3 instead of 1/4/9. Now, you couldn't reach the critical points anymore. But it still sucked at low levels though. So in 1.08, you might as well forget MF altogether.

In 1.09 they fixed it properly, and it is unchanged in 1.10. MF is now diminished through a formula like

effective MF = MF * 250 / (MF + 250)

The 250 value is only for uniques, there are others for set and rare.

It is then applied by

new chance = chance * 100 / (100 + effective MF)

Which means if you have 100 effective MF (which is 167 actual MF), you exactly halve your 1 in "chance" number, ie doubling your chances.

C) The min chance cap. This was only brought in in 1.09, and has only been working since 1.10. In itemratio.txt is another value for each quality which is a minimum value for your chance number. The idea is that if you have a billion MF they didn't want you to get uniques every drop (even though the diminishing returns actually already achieves this, meh). So here they simply say if the bonuses have reduced your chance below the cap, set it to the cap.

Unfortunately, when they wrote the caps into 1.09 they forgot about Mr 128. All their caps in that version were the actual cap they wanted when it should have been 128 times the cap. For example, they wanted unique chance to never be better than 1/50, but because of the 128 scaling, putting 50 there meant your odds were never better than 128/50. Not surprisingly.

They fixed this in 1.10, now the cap for uniques is 6400 (128/6400 = 1/50) as they intended.

Now, like I said the order changed too.

In 1.07 and 1.08 it went A then B, giving the equation you quote.

In 1.09 they added the cap, but the cap was only supposed to affect MF and not rob you of your boss bonus. So since then it has been B then C then A.

Finally your actual chance is 128/(total chance) as produced by all the steps.

I'm not going to try to decribe a single equation for 1.10. It is possible but it would be very messy without an equation editor that can handle nested fractions. Also it is important to remember that Diablo is almost entirely done in integer arithmetic. Every division sign you see above is a round-down division. That can make a big difference.

I know this is a lot to take in all at once. Feel free to ask questions. Also, Doc Tenshi consulted with me at length when writing Atma and I am confident that the chance calculations in there are correct for all 4 versions. There is an issue or two when combining the chances in the more complex TCs, but the individual MF calculations are all good.