The following describes how to use a Hex-Editor to get money and change options.
You will need a Binary-Editor (sometimes called a Hex-Editor) like
Norton Utilities DiskEdit, HexEd or PC-Tools. Any Binary-Editor will work.
If you don't have a Binary-Editor, ClubOpolis can send one to you. Just ask!
An ordinary text editor like DOS's EDIT or WORD will not work!
IMPORTANT: Always make a backup-copy of your city BEFORE you use
a Binary-Editor on it. It's easy to make a mistake and
screw up your city file so it won't work!
Once you have gotten your SimCity 2000 city into the Binary-Editor you
should see a lot of two-digit numbers and letters. It will look something
like this:
00000000 46 4F 52 4D 00 00 EF FC - 53 43 44 48 4D 49 53 43
00000010 00 23 7F 20 1C 00 00 20 - 55 F7 40 00 00 10 09 01
00000020 CC D1 02 08 D1 71 F3 EF - 01 00 02 08 D6 3D 1D FF
and so on ...
If you're city has $20,000, search for: 00 02 4E 20
Changing this to: 7F 02 4E 20
Gives you over $2 billion!
4E 20 in Hex is 20,000 in Decimal.
You can change any of the digits to 0 thru 9, or A thru F.
Do NOT change the 02. This will screw up your city file.
IF your city does not have exactly $20,000 then you'll have to search for
the fourth 02. Once you find it, you can change the the two digits two
the left of it and the four digits to the right.
00 02 00 00 <-- only change where I've put zeros (you won't have zeros)
The bytes in order (lowest address to highest):
b0 = highest order byte ($billions) ranging from 00 to 7F hex.
b1 = Flag byte; always contains 02 hex. Don't change it.
b2 = middle byte of budget (multiples of $256)
b3 = lowest byte of budget ($0 - $256)
If b0 goes above 7F, the money goes negative. That's because 7F in hex
is 01111111 in binary. Add 1 to 7F and you get 80 hex which is
10000000 binary. The 1 is a sign-bit. 0=positive 1=negative.
Remember we're in Hex now, which is base 16, not base 10 so if you change
"00 02 00 00" to "00 02 10 00" you don't have $1000. You have $4096.
To do Hex Arithmetic, either find a calculator that has Hex <--> Decimal
conversion (there's one in DiskEdit), or figure it out on paper.
First of all, A=10, B=11, C=12, D=13, E=14, F=15
Now, say you wanted to know how ED7B was:
Convert letters to numbers (column ONE).
Mutliply each one by a power of 16, starting with 0 (right to left)
show in columns TWO and THREE.
ONE TWO THREE
| B = 11 | 16^0= 1 | 11 x 1 = 11 |
| 7 = 7 | 16^1= 16 | 7 x 16 = 112 |
| D = 13 | 16^2= 256 | 13 x 256 = 3328 |
| E = 14 | 16^3= 4096 | 14 x 4096 = 57344 |
Add those numbers up and you get 60795.
That's how you convert from Hex to Decimal (Base 16 to Base 10).