I began writing Pharaoh Desire Calculator(PDCalc) primarily as a way to test city block layout ideas for Pharaoh's predecessor Caesar3. I seemed to consistently build cities where most areas worked well, but small "dead" zones appeared where the housing would complain about some nearby un-desirable building. Looking at the desirability overlay did not really help me much, and often expensive local changes or improvements did not seem to fix the problem. I needed a way to calculate the exact desirability matrix for an area the size of a small city block. Enter the model files.
Both Pharaoh and Caesar3 have thoughtfully included set of text files that describe most of the relevant information needed to model the various buildings and housing levels in the game. In Pharaoh the files are different for the various difficulty levels supported in the game so the model information for the "Hard" game setting is stored in the file "Pharaoh_Model_Hard.txt". The information from all five of these files is included as part of PDCalc and you can switch between various difficulty levels by changing a single setting.
Even with the model data for all buildings, trying to calculate the exact desire value for a particular location by hand is really tedious. And to make things worse, moving any object or building requires a large number of recalculations. So I put together this spreadsheet tool to do the work for me. More information about the model files and specifically the desire matrix information is in the Pharaoh Desirability Calculation chapter.
There are five major areas of PDCalc where you can edit or view the desire matrix information. Most of these areas are discussed in detail in their own chapters of this readme file. The Working Matrix is the large rectangular "viewscreen" for all of the desire matrix information. The Overlay Matrices "memory" area stores the past desire matrix state so that more than 4 buildings can be tested together. The Building Entry area allows you to dynamically place and view the Pharaoh model information for up to four buildings at a time. The Working Matrix Settings area allows you to change the Pharaoh difficulty model and set some flags that determine what is visible in the Working Matrix. Finally, the Housing Info area allows you to view a chosen subset of the Pharaoh model data for each housing level.