Making Gecko Codes To Edit RAM: Difference between revisions
More actions
No edit summary |
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. | ||
|- | |- | ||
| | |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 | | 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
|
| 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)
|
| 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)
|
| 0x33F8C2 | tenjyo.szp |
| 0x33FA02 | banaoba.szp |