
			Memory Hacker 
			version 0.12

	-------------------------------------------------------

	Memory Hacker (MH) - a tool to explore the game memory.
	The game has to be running in order to work with.

	Supported games: San Andreas v1.0 (and maybe v1.1)


	Features:

	-------------------------------------------------------

		1. The active threads list.

	-------------------------------------------------------

	The left list at the tab 'Threads' being active contain
	all the active game threads.

	**
	  Q: The list is empty!
	  A: maybe, you use a stripped main that actually could not have
	  any threads.
	  À: It's a bug. Report me (with the game's version you use).
	**

	Opposite to the name of the thread its ~type and ~status are present.

	~~~ Thread types ~~~ 
	'thread'  - the thread created by the opcodes 00D7 or 004F
	'mission' - mission thread
	'script'  - external script

	~~~ Thread status ~~~
	In normal condition should be 'active'	

	Total threads number are shown in the status bar 


	-------------------------------------------------------

		2. Local variables list

	-------------------------------------------------------
	
	After selecting a thread, right list will contain the local
	variables of that thread (0@..33@ for a thread/script; 0@..1023@ 
	for a mission) and their values.
	By default a variable are present with the integer values, but
	you may convert its type to get (for example) 2.55 (float) 
	instead of 1076048691 (Int).
	
	More info about a convertation see below.

		
	-------------------------------------------------------

		3. Changing the variable's value

	-------------------------------------------------------

	When you select a variable name, the very lower edit line will
	contain its value and the types radiogroup will be active
	with its type.
	

	The following types are present:

	-------------------------------------------------------
	~~Integer - common type. Any other type could be represented with
	integer value.

	~~Float - floating-point value. Allowed using of the exponential number 
	for example 1E-0007.0 instead of 0.0000001

	~~String - a string with max length of 7 chars

	~~LongString - a string with max length of 15 chars

	~~Hexadimal - hexadimal representation of the type ~Integer.

	~~Timer - representation of the number in the Time format,
	which is:
	00h : 00m : 00s : 00ms

	-------------------------------------------------------
	(!) When input new values with the type Timer, the line has to constain
	the separators : and time unit pointers after the number 

	Time units:
	h - hour
	m - minute
	s - second
	ms - millisecond

	It's not necessary that all four numbers are being present. 
	For example, to set a timer to ten millisecond it's enough 
	to write 10ms in the edit line.

	Also, you could specify time units in any order:
	5m : 10h - a timer will have a value equalled to 10 hours and 5 minutes.
	-------------------------------------------------------

	For sure, you could input new values in any format you like.
	For example use type Integer to set new time, or Hexadimal to
	input the characters.

	After writing of new value press the button 'Change' or [Enter] in
	order that the variable value will be changed.

	-------------------------------------------------------

		4. Changing the thread's data

	-------------------------------------------------------

	You can change the name of the selected thread and their
	stutus.
	
	To change the name, input new one (7 chars max) in the very
	upper edit line ('Thread name') and press the button 'Apply'.

	Also you can TRY to stop the current thread.
	In order to do that, uncheck the box 'Active' nearly to the
	edit line 'Thread name' and press the button 'Apply'.
	(!) This feature is not tested and could sometime work 
	incorrectly.
	


	-------------------------------------------------------

		5. Refreshing the data

	-------------------------------------------------------

	Below on the right of the threads list the button Refresh is
	present. It can work in two ways.

	When the threads list is focused, the button refreshes 
	all threads data.
	When the variables list is focused, the button refreshes all 
	variables data.


	-------------------------------------------------------

		6. Global variables

	-------------------------------------------------------

	When the tab 'Globals' is active you can explore the list of
	the global variables and their values. The work with them is
	same as with locals (see clause 3).

	-------------------------------------------------------

	**
	If you find a bug, have a suggestion, an idea or any thoughts
	about this, feel free to contact me by e-mail: mail@sannybuilder.com

	-------------------------------------------------------