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: Difference between revisions

From LMHack
GameCubing861999 (talk | contribs)
No edit summary
GameCubing861999 (talk | contribs)
No edit summary
Line 6: Line 6:




00______ YYYY00XX  
|00______ YYYY00XX  
Writes the value XX to YYYY+1 consecutive byte-sized addresses,  
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.
starting with the address ba+______ To use po instead of ba, change the codetype from 00 to 10.
Line 27: Line 27:
For values of ______ >= 0x01000000, add one to the codetype.
For values of ______ >= 0x01000000, add one to the codetype.
|-
|-
| 0x33E3BE
|String Write (Patch Code)


| obake04.szp
|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.
|-
|-
| 0x33E3BE
|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)
 


| topoo.szp
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
|-
|-
| 0x33E3BE
|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)


| skul.szp
|-
| 0x33EBBA


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

Revision as of 09:04, 10 July 2024

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