a. the settings (galaxy size and minor races setting),
b. the minor race density,
c. star frequency.
b and c have already been covered. The minor race density can be found among the Galaxy Control Values, and there's also a topic about star frequency.
The connection with the settings can be found in subroutine 4B22A0, and the following numbers are used:
Code: Select all
address size minors default
------
4B22BD small none 0
4B22DE few 3
4B22E5 some 5
4B22EC many 8
------
4B22BD medium none 0
4B22EC few 8
4B22F3 some 15
4B22FA many 21
------
4B22BD large none 0
4B2301 few 12
4B2308 some 24
4B230F many 30
As long as there are plenty of available star systems, then you'll consistently (100% accurately during my tests) get one less minor race than the number in the table, except if the number in the table is 4 or less (then you get exactly that many minor races).
If star systems are scarce, then there might be fewer minors. But we can use the star frequency reference values to keep this from happening

The highest default number is 30, but setting it 31 works and leads to 30 minor races. Setting a value to 32 or more is NOT a good idea

-----
There's another subroutine at position 4B2350 which looks exactly as sub_4B22A0, but with other (always lower) numbers. For some strange reason, changing these numbers did not have any effect. Maybe they're not used, at least not for the frequency of minor races.