I no longer have the code, but it was last written in Delphi 7. The algorithm is fractal in nature, using Brownian motion calculations, and uses recursion. The output of the file has to have dimensions which are a power of 2, plus 1. The first time through the function, the "altitudes" of the main 9 points are calculated. The main 9 are upper-left, upper-center, upper-right, left-center, center, right-center, lower-left, lower-center, and lower-right. The map is then divided into four quadrants and each of those is sent into the recursive function. The function randomly calculates the "altitudes" of any unassigned points of the main 9 within the quadrant. The recursive function divides the quadrant into four smaller quadrants, and once again sends those into the recursive algorithm. The further away two points are, the larger the variance in "altitude" at the midpoints. At the smallest level, a 9-pixel box is submitted to the algorithm. Since there is no more to subdivide, the function exits. It did not use threads, so it's kind of slow, but computers are getting faster. The "altitude" is a value between 1 and 255, I believe, which is a color of grey. A color map then maps these values into RGB values. The download includes sample color maps, which are customizeable and you can add more.

Can someone at least give me a list of chapter headings for what's in Volumes I and II? Since I have Champions Complete, Champions Powers, and Hero Designer, I think I only need Volume II, but I'm not sure. What do each of the books actually talk about?

In the Hero system, movement is measured in meters per phase. Meters aren't used in the U.S. culture. Phases are "measured" by speed (SPD), and phases are within turns, which last 12 seconds. The number of miles per hour achieved by a character is dependent on their movement (purchased or unpurchased) and their SPD characteristic. This chart, when printed, provides a handy reference to know how fast, in U.S. terms, a character can go given these two variables.
Since normal humans are given SPD 2 and running at 12 m, you can see this computes to about 4.5 MPH, which an average, healthy, human adult can run.
The chart is also helpful if you want to build a character that moves a certain number of miles per hour. If you have already bought the character's SPD, then you can do a reverse look-up and buy the appropriate movement in meters for the movement ability you are building (such as flying, swimming, running, or tunneling, etc.). For instance, to fly at 40 miles an hour, you buy about 70 m of Flight at SPD 3, about 55 m of Flight at SPD 4, about 45 m of Flight at SPD 5, etc.
You are also free to change the Movement column values, and the whole grid will update to reflect your changes (it IS Excel, after all).

Several years ago I wrote a terrain generator for SimCity 3000. It was later used to create terrains for Auran Trainz simulator. The code was never part of either of these software packages, but users could save the grey-scale output from my program and import it as terrain inside these other programs.
Internally, the program uses a random mid-point displacement algorithm to generate the grey-scale bitmap you see in the middle of the program. A color-map bitmap in the same folder acts as a palette to render the grey-scale bitmap to the right-hand side of the program. The right-hand map is what you should save for your adventures. The size of bitmap (in pixels) is always a power of 2, plus 1. It's not multi-threaded, so the larger the output, the longer you wait.
You can do whatever you want with the color output in any graphics editor. You can add cities, hide-outs, political boundaries, rivers, points of interest, and label the seas, bays, mountain ranges, beaches, and forests, all with simple graphic editing programs like Microsoft Paint.

If you want your Characteristic totals to show negative numbers when you "sell back" Characteristic points, change the formulas using this pattern:
=CEILING((B9-F9)*H9,SIGN(B9-F9))
For those that aren't as familiar with Excel functions, I'll explain this.
By subtracting the F column from the B column, you're seeing how much more than "normal" your character's Characteristic value is. Like, if your PC has 15 STR, the default is 10, so the result of that subtraction will be 5.
It multiplies this value by the other value in column H, which is the cost. If the cost is 3, then 5 would be multiplied by 3 and end up with a whole number. But if it's a partial cost, then it would end up being divided by a whole number (or multiplied by a fraction, however you see it). In the case of END and STUN, you could end up with a fraction. The CEILING function will round UP if there's any fractional part.
The second parameter of CEILING is what direction you want to round and how many places. We always want to round to an integer (a whole number) in the case of costs. BUT, if the player is selling back points, the result of the division will be negative, and you can't round to a positive integer.
The SIGN function will return a positive 1, if the parameter is positive, a 0 if the parameter is 0, and a -1 if the parameter is negative. So if the character wants to have less than the starting number of Characteristic points, the subtraction will be negative, and the rounding will be to a negative integer.

I found a few problems with the character sheet and thought I'd post a solution rather than complain, since this was great of this member to post. Please note that I am going off of Champions Complete 6th Edition, which is a subset of the Hero System, 6th Edition. Perhaps costs are not the same; I don't know:
Cell H13 should be 1 not 2 (for EGO cost)
Cell H22 should be 1 not 2 (for REC cost)
Cell H23 should be .2 not .5 (for END cost)
Cell H25 should be .5 not 1 (for STUN cost), then the Format needs to be changed to Fraction
From page 13 of CC6e, "When an ability cost 1 CP for more than 1 "unit" (such as END, STUN, ...), the character may voluntarily accept less than the full unit if desired, but the cost is the same as buying the whole unit. For example, an END of 35 costs 3 CP; and END of 36, 37, 38, or 39 costs 4 CP, just like an END of 40 would."
Because of this, the calculations for J23 and J25 need to change:
J23 -> =CEILING((B23-F23)*H23,1), then change Format to General
J25 -> =CEILING((B25-F25)*H25,1), then change Format to General
In fact, the above calculation column could be applied to all of column J in the Characteristics section, allowing GM's to create fraction costs for other characteristics, specific to his campaign. Also, Excel won't complain about an odd calculation in the middle of the others.