How to "poke" Cheat Codes while playing/probing addresses
Once you are connected with the game the tab's content within TCPGecko and JGecko U will be available to edit.
on the Search tab, above the "connect" button, you have two empty text field.
The following types of data can be poked:
8-bits: LLLLLLLL XX
16-bits: LLLLLLLL XXXX
32-bits: LLLLLLLL XXXXXXXX
JGecko U additionally features the following:
64-bits: LLLLLLLL XXXXXXXXXXXXXXXX
96-bits: LLLLLLLL XXXXXXXXXXXXXXXXXXXXXXXX
LLLLLLLL represents the address/location
XX represents the value where XX (two X) represent a byte
About pointers code
Pointers are noted like this :
[[LLLLLLLL] + QQQQQQQQ] XXXXXXXX
pointer-in-pointer like this:
[[[LLLLLLLL] + QQQQQQQQ] + QQQQQQQQ] XXXXXXXX
LLLLLLLL represents the address/location of the (first) pointer. QQQQQQQQ is the offset to the value or next pointer. XXXXXXXX represents the value.
the difference is that instead of poking the value of XXXXXXXX to address LLLLLLLL, you need to look at the address located at [LLLLLLLL] and add QQQQQQQQ to it. this is the location where you need to poke XXXXXXXX.
Example :
[10123456] + 1A BBBBBBBB
1. go to 10123456
2. open your calculator and write the value you found at that position.
3. add 1A to get a new address (the result is the location where you need to poke).
4. go to that result address
5. poke BBBBBBB
More help on pointers can be found
here and
here.
a full tutorial about pointers can be found
here.
Searching Codes - Known values
To search code follow the guide above to connect TCPGecko to the game. and go to Search tab (the first one).
You will have to search the WiiU memory for the value you want to edit.
For example, if you have 10 lives and want 99 lives, then you will have to "play" with the live count.
Step1: initialize the search engine with your current live count
Select the memory range: 10, replace 50000000 to 40000000 (access to memory above 4 is not allowed by some game and will crash). If the gae still crashes during the search process reduce the range a bit more (to 3C000000 for instance)
If the maximum possible value is smaller than 255/0xFF you will have to do an 8-bit search. If the maximum possible value is smaller than 65535 but can be bigger than 255 use a 16-bit search instead. If the value can be higher than 65535 do a 32-bit search.
JGecko U will allow you to do 64-bit and 96-bit searches. They are made to search for up to 3 consecutive floats (to make it easier to find size modifiers).
Select "specific value" and enter 10 (for 10 lives). right-click the "10" and select "Dec to Hex" to convert 10 to hexadecimal A
Be sure you will not lose any lives in game for 10-15min (don't move, or press Start to pause the game). Attention, do not press Home to pause!
Press Search button, TCPGecko/Jgecko U will now search all the memory range for your value.
when completed, it will display a list of found address (few thousands!)
Note: to speed up the search, you can limit the range from 10000000 to 150000000, if nothing is found then start from 15000000 to 30000000, etc.
It requires restarting the search from the start with different ranges, but will fasten the user's input.
Step2: Refine address
Play the game, change map, change any content of your inventory, HP, lives, etc. whatever you want.
if your live is now 8, Select Specific value and enter 8.
Press search button and wait until TCPGecko/JGecko U has compared all the addresses of the previous search with the current one. All addresses of which value has changed from 10 to 8 will be kept. All other will be removed from the list.
Step3: Refine more
Repeat Step2 with different values.
Step4: Try possible address
right-click one of the address in the list and select "poke".
The address will be copied to the field on the bottom. in the "value" field, enter 63 (99 in hex) and click the "poke" button.
If nothing happens on the game side, it's not the correct address. try another one.
If your lives number in the game became 99 you found a cheat ! Note the address and the value.
There are a lot of "pseudo cheats" that change the displayed text but not the value itself. Once you gain a life/coin/rupee the value will be reset +1. Try another address and collect a life/coin/whatever. If the amount jumps to you poked value +1 you have found the right address.
Searching Codes - unknown values
To search codes with unknown values, you will have to compare memory (equal, bigger, smaller, different, etc.)
Step1: initiate search.
Select "unknown value" and "equal". Click search button.
TCPGecko/JGecko U will store that 'unknown' value in "column1"
Remember that your current game state is column1.
Step2: Refine step
play, change values.
Select "column1" in the search condition, and determine if the current value in game is equal to column1, bigger to column1, smaller, different, etc.
Press Search. The current state of the game will be stored in "column2".
Step3: Refine more.
repeat step2, select the column you want to compare with the current game's state until TCPGecko provide a small address list.
Then Poke the possible address to see if it works.
If TCPGecko does not find any matched, Select "no" and it will reset all the search engine.