Difference between revisions of "Gamecheats:SimTower"

From Cheat Engine
Jump to navigation Jump to search
(I always forget to mention to tick the MEM_MAPPED box in 16-bit emu. Anyhow, replaced this completly with a better wiki entry)
m (Reverted edits by 67.159.44.103 (Talk) to last revision by Tgp1994)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
==About simtower==
 
==About simtower==
  
Simtower is an 16-bit game designed for windows 3.1
+
Simtower is a 16-bit game designed for windows 3.1
 
This causes 32-bit versions of windows to run it inside a virtual 8086 mode. In NT-Based OS'es this is the ntvdm.exe process. Because 64-bit versions of windows don't have a similar emulation layer the only way to run this game on there is through the use of virtual machines like vmware and install a 32-bit os on there
 
This causes 32-bit versions of windows to run it inside a virtual 8086 mode. In NT-Based OS'es this is the ntvdm.exe process. Because 64-bit versions of windows don't have a similar emulation layer the only way to run this game on there is through the use of virtual machines like vmware and install a 32-bit os on there
  
 
==Cheating==
 
==Cheating==
To cheat in simtower the first thing you have to do is go to settings->scan setting and tick the MEM_MAPPED box. (Probably because the image of the loaded .exe is mapped inside the virtual machine instead of actually loaded there, but not 100% sure. Correct if wrong)
+
To cheat in simtower with Cheat Engine the first thing you have to do is go to settings->scan setting and tick the MEM_MAPPED box. (Probably because the image of the loaded .exe is mapped inside the virtual machine instead of actually loaded there, but not 100% sure. Correct if wrong)
  
 
Also, you have to set the range to scan to all (00000000 to FFFFFFFF)
 
Also, you have to set the range to scan to all (00000000 to FFFFFFFF)
Line 14: Line 14:
 
Population is also stored as a 4 byte value, but there's nothing special about it. 100=100 (just don't do fastscan)
 
Population is also stored as a 4 byte value, but there's nothing special about it. 100=100 (just don't do fastscan)
  
==Table info==
+
==Further research==
{|border="1"
+
Memory address changes whenever the program is started up. Only memory address that writes to the money value is FFFFFFFF with an add[eax],al operation. The value of the EAX address seems unrelated to anything though.
|-
 
! Memory Address
 
! Value Type
 
! Value
 
|-
 
|00050C62
 
|4 Bytes
 
|Money (divided by 100)
 
|-
 
|0005115A
 
|4 Bytes
 
|Population
 
|}
 
These addresses will probably be different on other systems, but you only have to find population, or money, and you can use the "Recalculate all addresses" option to automatically find the address of the other
 

Latest revision as of 13:20, 5 October 2009

About simtower[edit]

Simtower is a 16-bit game designed for windows 3.1 This causes 32-bit versions of windows to run it inside a virtual 8086 mode. In NT-Based OS'es this is the ntvdm.exe process. Because 64-bit versions of windows don't have a similar emulation layer the only way to run this game on there is through the use of virtual machines like vmware and install a 32-bit os on there

Cheating[edit]

To cheat in simtower with Cheat Engine the first thing you have to do is go to settings->scan setting and tick the MEM_MAPPED box. (Probably because the image of the loaded .exe is mapped inside the virtual machine instead of actually loaded there, but not 100% sure. Correct if wrong)

Also, you have to set the range to scan to all (00000000 to FFFFFFFF)

Money is stored divided by 100. So if you have 175000 money, it is stored in memory as 1750
For scanning you can just use a 4 byte scan, but make sure that fastscan is off. The game aligns memory on a 2 byte boundary instead of 4 byte.

Population is also stored as a 4 byte value, but there's nothing special about it. 100=100 (just don't do fastscan)

Further research[edit]

Memory address changes whenever the program is started up. Only memory address that writes to the money value is FFFFFFFF with an add[eax],al operation. The value of the EAX address seems unrelated to anything though.