The purpose of this post is to provide a unified surface for collecting, and hopefully helping to fix, any bugs that still remain in Master of Magic. While it was compiled by me, it is in no way my own achievement. Many of these (in fact, over half) came from [Dirk P], or Nodemaster, a great contributor to the original MoM FAQ over at gamefaqs. Others are from various people who also sent notes to said FAQ, and yet another chunk was collected by TumuRulez and posted here on the wiki.
The list is divided into several sections.
- These are bugs I have read about, but either have not tested them myself at all, or do not know whether they still appear in the latest unofficial version (v1.51 RCx). Any information on these is welcome: p…
The following is my rendition of the function that chooses which spell the AI will research next, in C(++). I don't actually code in C, so as always, feel free to point out all the mistakes I've made =P
v1.51 condenses the AI_Res_Pri groups so they matter less, making research even more linear with regards to the actual research costs. It also replaces with in the list of special priority research; while group 33 is no longer prioritized, instead giving a squared boost to (always /50, it's the only spell in its category, and has a default priority of 1, reduced to 0 by the division). However, v1.50 also does not remove either of the bugs, so profile traits still don't make any difference.Read more >
The following is my rendition of the function called to populate the list of spells from which the game will randomly select a research candidate (whenever one is needed, the list is redone from scratch). This is the v1.31 version, I may do one for kyrub's later. This was changed in Insecticide due to the "disproportionate" amount of spells it yields. That has to do with the first half of the function, which stops evaluating the spells of a realm as soon as the rarity increases after finding at least one spell that can be researched, but is not already a candidate.
PS: I have no idea whether that second argument declaration is actually legal or not (I don't really code in C/++), but I hope it is sufficient for the purpose of illustration. …
Read more >
The game stores wizard data for the neutral player. Starting at $21D0 in the save file, or ds:$B6B2 in memory, the sixth Wizard Data structure belongs to this player. It can be used to set things like Retorts, for example Alchemy and Warlord, which will then affect all neutral units. Global Enchantments may also work in theory, although they seem to have a weird coloring issue on the Magic screen (I only checked Crusade), and I have no idea how their upkeep works (probably skipped altogether, which would be really cool).Read more >
Large Shield icon.Read more >