Hacking Post your WiiU cheat codes here!

  • Thread starter Thread starter LawnMeower
  • Start date Start date
  • Views Views 2,119,149
  • Replies Replies 9,274
  • Likes Likes 52
My ETA for Uwizard Gecko is 1 - 3 weeks. It depends on how long it takes me to understand tcp Gecko dotNET's source code. :P Here is a list of the features it will have:

Memory searching in Wii U or dumps.
Pointer searching in Wii U or dumps.
Memory viewing in Wii U or dumps. (with snapshots too)
Disassembler in Wii U or dumps.
Address watcher.
GCT code handler.
Raw memory dump.
Multi-poke and single poke.

If someone knows how to pause and unpause the game from gecko, that would also be a great feature!
I have found addresses to pause the game for 2 games. Maybe this could be helpful in any way
 
You might eat your last message
Not quite. You can save memory but only at the cost of performance so have fun. On depth 1 pointers this may be slim but tell me how you're going to do pointer in pointers that way with having crazy memory reading overhead. :P
I realized that I could make my pointer in pointer searches faster still since I unfortunately check same addresses multiple times. It will be fixed. Nope, that was wrong

Anyway, go ahead and realize all of your programming plans for Uwizard, I wasn't going to do them myself anyway. Thanks a lot for your contributions (no sarcasm!) :)
Also I need some help with that item code, like I swear I'm doing it right, but it won't really do anything. And I am on 4.0. I am using the memory viewer
Your version of Mario Kart 8 is not compatible with the code. I use 1.0 or whatever the basic version is called. The tutorial works for any valid pointer though.
Let me guess, it crashes when you try to go to the pointer destination in the memory viewer. I don't know how BullyWiiPlaza got Gecko dotNET to let the memory viewer display upwards of 45000000 without crashing.
I did nothing actually, it just worked. I'm using the one by wj44 :$
 
Last edited by BullyWiiPlaza,
  • Like
Reactions: LawnMeower
Well, it couldn't hurt to post them! :yay: (These are for the total freeze-pause and not the pause screen right?)
They seem to pause the CPU and SPU. Even in pause menus :)
Here are the 2 codes:
EDGE (PAL)
CPU Pause/Run
1005FD08
pause 40000000
resume 3F800000

Pikmin 3 (PAL/Disc)
CPU Pause/Run
10858B08 ????????
3F800000 unpaused
40000000 paused

Unpausing can mess up the audio sometimes.
Well, there's no special method on finding them. I have found them as I was messing around with floats
 
Not quite. You can save memory but only at the cost of performance so have fun. On depth 1 pointers this may be slim but tell me how you're going to do pointer in pointers that way with having crazy memory reading overhead. :P
Here is how I do pointer-in-pointer searches:

It opens a stream from the dump file on the disk.
It checks every value to see if either it points to the destination or it points to a pointer to the destination.
If a value passes one of these checks, it is then saved to a txt list on the disk.
This process repeats until every address in the dump has been checked.
The next dump is then opened.
The same search process starts, and any results are compared with the previous list. Only matches are kept.
After all the dumps have been checked, the txt file should contain only a few addresses! :D

I do have an SSD that can read data at 500 MB/s. That probably helps.

BTW, I will add a low memory mode to the pointer search in Uwizard for those people like me with pathetic RAM from ancient computers.
Fun fact: Some big webpage servers sometimes have TERRABYTES of RAM!
 
Last edited by Mr. Mysterio,
or it points to a pointer to the destination.
How do you solve this without reading more than your 100 MB block? If you find a possible pointer and it points somewhere else, you still don't know if another pointer is close to the first one that actually points to the destination so you need to read more memory to find out, don't you?
 
  • Like
Reactions: Mr. Mysterio
How do you solve this without reading more than your 100 MB block? If you find a possible pointer and it points somewhere else, you still don't know if another pointer is close to the first one that actually points to the destination so you need to read more memory to find out, don't you?
Yes, but that would at most be 4 bytes more that 100 MB. The potential pointer to a pointer is also checked to see if the possible destination is valid. (eg: 0x0000000 is not a valid address.) That saves time also.
 
Last edited by Mr. Mysterio,
Yes, but that would at most be 4 bytes more that 100 MB. The potential pointer to a pointer is also checked to see if the possible destination is valid. (eg: 0x0000000 is not a valid address.) That saves time also.
Alright but I still believe it will kill your performance. Let's say 10.000 possible pointers are found so you need to read 100 MB each time when it takes 0.1 seconds it will delay your application by (0.1 * 10000 / 60) 16.7 minutes just due to reading. Also that is for SSD users and not people with "regular" (slower) hard drives. I also have an SSD :P
 
Last edited by BullyWiiPlaza,
  • Like
Reactions: Mr. Mysterio
Yes, it would, but changes are a bit smaller to find a working pointer code. For me,
These codes seem to be region-depended. You could upload a RAM dump from range 10000000 - 48000000 and I could try porting it :)

That would be awesome man, I could finally beat the last boss. I'll get right on it. Thanks
 
Alright but I still believe it will kill your performance. Let's say 10.000 possible pointers are found so you need to read 100 MB each time when it takes 0.1 seconds it will delay your application by (0.1 * 10000 / 60) 16.7 minutes just due to reading. Also that is for SSD users and not people with slower hard drives. :P
I'll post the source code of my low-memory pointer searcher after I clean it up and add some comments later today. Then you can see for yourself how well it works. :D

PS. I like that you're asking questions about it. Some people will just take programs for granted and not care a bit about how they work. If programmers share ideas, they can accomplish more than by themselves! :)
 
Last edited by Mr. Mysterio,
PS. I like that you're asking questions about it. Some people will just take programs for granted and not care a bit about how they work. If programmers share ideas, they can accomplish more than by themselves! :)
I care, I want to know everything so tell me. Programmers tell too little :P ;)
 
Last edited by BullyWiiPlaza,
i would imagine its (take this with only a grain of salt)
scan- push A while moving pause - scan(for greater than before?) - un pause (let it slow down a little) pause - scan (for less?) -scan continue slowing down and scanning less?
 
Last edited by Dk_N64,
@Mr. Mysterio
When you use a mushroom, your speed stays consistent. With a star as well. The value is higher when you go faster. It is a floating point value. What was the address you found before? It makes sense that speed will always be around that same memory location so you can restrict your search bounds significantly. You shouldn't have difficulty finding it again though.
 
  • Like
Reactions: Mr. Mysterio
@Mr. Mysterio
When you use a mushroom, your speed stays consistent. With a star as well. The value is higher when you go faster. It is a floating point value. What was the address you found before? It makes sense that speed will always be around that same memory location so you can restrict your search bounds significantly. You shouldn't have difficulty finding it again though.
Ugg, I forgot that it's a float value. *stupid stupid stupid* :ohnoes::whip:
 
  • Like
Reactions: BullyWiiPlaza
@CosmoCortney I'm curious what method you used to find the player's speed. I found it once by seeing how it changed when I used mushrooms and stars, but now I can't seem to find it again. :(
I paused the game as I was going forwards at a really low velocity. Then I made an unknown value search from 46000000 - 47000000 (increase the range a bit because it could be somewhere else on your regional version).
Then I went faster, paused the game again and made a greater than search. After that I went at full speed for the next greater than search. Then I took a mushroom and did the last greater than search. After decelerating a bit I've done a less than search. Decelerated a little bit more for the next less than search. Then I went at mushroom speed again, paused and changed to specific value search. I have searched for every value greater than 0x40000000 and smaller than 0x44000000. Then I was left with about 40 addresses and poked the value of 42000000 until the car suddenly accelerated :p
 
i would imagine its (take this with only a grain of salt)
scan- push A while moving pause - scan(for greater than before?) - un pause (let it slow down a little) pause - scan (for less?) -scan continue slowing down and scanning less?
I want the max speed, not the current speed. The max speed increases when a mushroom or star is in use. (Although the current speed values might be nearby.)

--------------------- MERGED ---------------------------

I paused the game as I was going forwards at a really low velocity. Then I made an unknown value search from 46000000 - 47000000 (increase the range a bit because it could be somewhere else on your regional version).
Then I went faster, paused the game again and made a greater than search. After that I went at full speed for the next greater than search. Then I took a mushroom and did the last greater than search. After decelerating a bit I've done a less than search. Decelerated a little bit more for the next less than search. Then I went at mushroom speed again, paused and changed to specific value search. I have searched for every value greater than 0x40000000 and smaller than 0x44000000. Then I was left with about 40 addresses and poked the value of 42000000 until the car suddenly accelerated :p
Yep, that's pretty close to what I did. I just stupidly forgot that it was a float value. :P
 
@Mr. Mysterio if you're searching for the gravity modifier, you need to find the position modifier instead of the speed code. I have mistaken it before D:

It should be something like this:
position
x 466DC37C
y 466DC380
z 466DC384


Gravity strenght: 466DC3B8 (3f800000 at default) (0x3C away from the x-position)
 
Last edited by LawnMeower,
@Mr. Mysterio if you're searching for the gravity modifier, you need to find the position modifier instead of the speed code. I have mistaken it before D:

It should be something like this:
position
x 466DC37C
y 466DC380
z 466DC384


Gravity strenght: 466DC3B8 (3f800000 at default) (0x3C away from the x-position)
Well then, how do I find the position modifier?
 
Well then, how do I find the position modifier?
well..
start a race and go a little bit ahead of the start/finish line. then pause the game and do an unknown value search from 45000000 - 48000000. After the initial dump is completed go a little bit forwards and pause the game. Do a greater than search, now. Go a bit more forwards for the next greater than search. Do this until you come close to a curve. it is important NOT do go through curves since we concentrate on the position regarding to the z-axis. then go a bit backwards and do less than searches. But do NOT cross the finish line. Do this until you are left with less than 3 pages. the position's value should be between 40000000 and 46000000 or C0000000 and C6000000 if you are not too close to the finish line. by poking any random value you should sooner or later notice that your vehicle gets moved or kicked off the course. then you might have found the position modifier. an offset of 0x3C - 0x34 (depending on which axis' address you have) is the offset to the gravity value :)
 

Site & Scene News

Popular threads in this forum