The Basics of Wii Cheat Codes & the Gecko Code Handler
In the 32 Bit RAM Write section, why is it that you replace the first two digits of each memory address (04) with 80?

(05-27-2020, 01:03 AM)AvengerFFFF Wrote: In the 32 Bit RAM Write section, why is it that you replace the first two digits of each memory address (04) with 80?


This is because the game's internal memory space always starts at 0x80000000

Since this is always true, we can use the 0x80 part of the address for gecko code identifiers, and then the codehandler substitutes it internally for 0x80

So a gecko code like 04805000 12345678, will write the hex value 0x12345678 to the address 0x80805000

Make sense?
Super Mario Eclipse, what Super Mario Sunshine could've been.
So one thing I struggled with was learning the difference between static and dynamic memory. Mem 80 is not static in the sense that all the data it contains remains the fact, it changes constantly. It is not read-only. If you go to 80343E80 with a gamecube controller plugged in you can watch the so-called "static" memory react to your button presses. From what I can understand now, the only difference between "static" and "dynamic" is where the bytes are stored, not whether the bytes are able to change.
The terms are used very loosely, as there are tons of exceptions to the "rule".

Regardless of what game, mem90 (mem2) is NEVER used as static memory (where executable PPC instructions reside at). This is because, from a hardware specification, mem2 is slower than mem1.

In regards to mem1 (mem80 vs mem81), for the majority of games, the executable PPC instructions will reside somewhere in mem80. These instructions are always at the same location per boot. Hence the term static.

Also, this may help clear some confusion....
Dynamic Memory holds data that would/may used by a PPC store/load instruction. Memory Breakpoints are always used on Dynamic Memory.
Static Memory holds actual PPC instructions, Instruction Breakpoints are always used on Static Memory.
Oh, so maybe I'm wrong then. So would address 80343E80 be considered a dynamic memory address because it changes? Or is it still static because we are in Mem 80?
It would be considered dynamic. Those button values at that address are being stored/loaded via various PPC instructions.

There are plenty of places/spots of memory within Static Memory itself that will be used as Dynamic Memory. It is confusing as it's not concrete. The fact that those button values are stored/loaded via that same address per every boot makes it more confusing for a beginner.

The key factor is understanding when to use Memory BP vs Instruction BP.

Forum Jump:

Users browsing this thread: 3 Guest(s)