Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Making Gecko Codes To Edit RAM

From LMHack

With Gamecube/Wii there is code stored within dol memory locations, and we can actually edit and add to this compiled assembly code within memory with the use of gecko/ar codes. And this page will detail on how to make said codes with help of the documentation from BannerBomb.

8 bits Write & Fill


00______ YYYY00XX

Writes the value XX to YYYY+1 consecutive byte-sized addresses, starting with the address ba+______ To use po instead of ba, change the codetype from 00 to 10. For values of ______ >= 0x01000000, add one to the codetype.

16 bits Write & Fill 02______ YYYYXXXX

Writes the value XXXX to YYYY+1 consecutive halfword-sized addresses, starting with the address ba+______ To use po instead of ba, change the codetype from 02 to 12. For values of ______ >= 0x01000000, add one to the codetype.

32 bits Write 04______ XXXXXXXX

Writes the value XXXXXXXX to ba+______ To use po instead of ba, change the codetype from 04 to 14. For values of ______ >= 0x01000000, add one to the codetype.

String Write (Patch Code) 06______ YYYYYYYY

d1d2d3d4 d5d6....

Writes each byte (d1, d2, d3, ...) consecutively, starting at address ba+______ YYYYYYYY is the number of bytes to write


To use po instead of ba, change the codetype from 06 to 16. For values of ______ >= 0x01000000, add one to the codetype.

Slider/Multi Skip (Serial) 08______ XXXXXXXX

TNNNZZZZ VVVVVVVV

______ + ba = Initial Address X = Initial value for the RAM write T = Value Size (0 = byte, 1 = halfword, 2 = word) N = Amount of additional addresses to write to (the first is assumed) Z = Address Increment; in bytes (How many To skip By) V = Value Increment (How much to add to the value after each additional RAM write)


To use po instead of ba, change the codetype from 08 to 18. For values of ______ >= 0x01000000, add one to the codetype.

IF CODE TYPES
32 bits (endif, then) If equal 20______ XXXXXXXX

Adding 1 to ______ will make this code first apply an Endif. (It will still use ______ for address calculation; without the added 1)

If 32 bits at [ba+______]==XXXXXXXX, then codes are executed (else code execution set to false)


To use po instead of ba, change the codetype from 20 to 30. For values of ______ >= 0x01000000, add one to the codetype.

0x33F8C2 tenjyo.szp
0x33FA02 banaoba.szp