It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Greetings Ultima fans! A new version of the U2 Upgrade is available which includes CGE/EGA drivers, custom tilesets, improved character creation, improvements to save games, and support for all CD/digital releases.

http://exodus.voyd.net/2018/06/04/ultima-2-upgrade-v2-0/

Please let me know your feedback!
Regarding the hotel clerk fix:

The original algorithm takes the last three bits of the random number to determine the result. The fix, however, takes the random number modulo 6. This is going to yield different results in most cases.

One particular issue, if we assume the RNG is equally likely to generate numbers anywhere in the 0 to 255 range, I note that values of 4 and 5 are slightly less likely than the others; therefore, the stats corresponding to those two values are less likely to be increased. This is not the case with the original algorithm (again, assuming that all values from 0 to 255 are equally likely, which might not necessarily be the case).

One other way to prevent there from being no stat increase, while preserving the frequency at which the stat increases, and which requires fewer code modifications, is to change the target of the jmp instruction; instead of having it jump past the stat boost logic, have it jump back to where the RNG is called. In other words, instead of not getting a boost if a 6 or 7 is rolled, reroll until you do get a boost.

Of course, I have no evidence that the RNG is fair, and it might very well not be. To determine for sure, one would have to disassemble and study the game's RNG.
avatar
dtgreene: One particular issue, if we assume the RNG is equally likely to generate numbers anywhere in the 0 to 255 range, I note that values of 4 and 5 are slightly less likely than the others; therefore, the stats corresponding to those two values are less likely to be increased. This is not the case with the original algorithm (again, assuming that all values from 0 to 255 are equally likely, which might not necessarily be the case).
Thanks for the feedback!

That's a great point, and one I hadn't considered. This was intended to be a short term thing with the longer-term goal of giving the player a choice to pick which stat to upgrade, and clamping it behind a gameplay config option. So ultimately this change will get modified again anyway, and the original logic restored for those who want it.
avatar
dtgreene: One particular issue, if we assume the RNG is equally likely to generate numbers anywhere in the 0 to 255 range, I note that values of 4 and 5 are slightly less likely than the others; therefore, the stats corresponding to those two values are less likely to be increased. This is not the case with the original algorithm (again, assuming that all values from 0 to 255 are equally likely, which might not necessarily be the case).
The difference in the odds of choosing 4 or 5 would be statistically insignificant. It's far preferable to the 25% chance of wasting the player's time.