Twilight Spectre's GCN Pointer Code Creator v1.2

GCNPCC is very easy to use and makes finding and creating pointers for GameCube ActionReplay codes a breeze. Just place the exe and config file in any folder (or on the desktop) and adjust the settings as wanted!

Update v1.2 Sunday April 22, 2007
Fixed an error with 24-bit values which made GCNPCC output the wrong codes. This error was in v1.0 and v1.1 but was undetected.
Also optimized some areas of the code.


***********What does it do?***********

   GCNPCC takes one value to use for the outputted codes, 2 RAM dumps, and 2 respective locations of a "moving code."
With this information GCNPCC is able to locate all the possible pointers for the code and output them ready for encryption using Parasyte's GCNCrypt program.
Updated in v1.1- Generic output now supported for locating the pointers and offsets for ANY RAM dumps! N64, NDS, GCN, whatever! (Should any system point to addresses lower than 0x80000000, let me know so I can add support for it- or rather subtract what's stopping it!)


*****Getting Started with GCNPCC.*****

   Find the location of the "moving code" to be hacked, record the location and take a RAM dump before it moves again. Name this RAM dump "1.bin" and place it in the same folder as gcnpcc.exe (if it's not already there). Place the location of the code in the GCNPCC Config file beside "Address of code durring RAM dump "1.bin" is: ". Make sure to leave a space after the ':' and not to use the 0x prefix for the hex address.
	~~*Note: the RAM dumps can start at any address in memory
	and can be any length. Just be sure to add the starting
	address of the two ram dumps to the Config file! The RAM
	dumps do not need to include the locations of the "moving codes"
	if the pointer is suspected to be lower/higher in memory.*~~
Now cause the code to move again.
Once the location has changed, find the new location and record this too (in the Config file). And again, take a RAM dump before it moves and name this one "2.bin" and place it with the first one.


****Using GCNPCC- "The Easy Part."****

   Open "GCNPCC Config.txt" to get started. A copy of the default file is at the bottom of this 
	~~*Note: All numbers in the Config file are Hex and must 
	NOT HAVE the "0x" prefix or any other prefix. Please make 
	sure addresses are no longer than 8 digits to avoid 
	arbitrarily bad things (ABT)*~~

First: "Negative offsets: 0" 
This is simple enough to understand. To allow GCNPCC to report pointers with negative offsets to the data, replace the '0' with a '1'.

Next: "Max offset radius: 0000F088"
The offset radius tells GCNPCC what the maximum offset can be. The default (shown above) should be plenty but if no results are found (or if too many are found), change the value accordingly.

Last: "Generic pointer-location and offset report: 0"
With this feature enabled (1 instead of 0), GCNPCC will output the address of the pointer(s) and the respective offset(s). That means that any system's RAM dumps are compatible for pointer searches!

The rest of the Config file needs no further explination.

Launch GCNPCC now and input the value of the codes GCNPCC will report.
	~~*Note: If the Generic option is enabled, the value is
	unimportant but still must be entered.*~~
The value can be 8, 16, 24, or 32 bits in length. GCNPCC will output aligned codes that are already formatted- no matter the input- so don't worry! You can also place letters such as "xx" or "RRGGBB" in for the value and the output will reflect them in that order! Press enter/return once the value is on screen.
	~~*Note: May have to press enter/return twice.*~~
Finally, GCNPCC will begin creating pointer codes. The program will close once it has finished and the output will be organized in "Pointers.txt". This file will be in the same directory/folder as GCNPCC itself.
It's recommended to start checking/testing the outputs with the smallest offset and even before that, check the codes of which have the same "value half" (the right-side, offset and value to write to memory). 


**************************************

If you have questions or comments, have noticed an error in any of the codes, or if you found a working pointer that my program did not, please feel free to contact me through my website:
	http://gcn.jaytheham.com
or under the name "Twilight Spectre" at:
	www.kodewerx.net
Additionally you can email/paypal me at:
	jcathertATnoSPAMdotedu

Disclaimer:
I am not responsible in any way should this program harm your computer or alter anything other than its intended output file.

Thank you for having RTFM. ;)


*******GCNPCC Config.txt Below********

*GCNPCC User Configuration File*
Negative offsets: 0
Max offset radius: 0000F088
Starting address of both RAM dumps: 80000000
Generic pointer-location and offset report: 0
Address of code durring RAM dump "1.bin" is: 817FFFFC
Address of code durring RAM dump "2.bin" is: 80000000
