Riivolution Memory Patch Generator
Quick and simple Riivoution Patch and Gecko Code generators (this description is a work in progress)

Riivolution
1. XML Memory Patch Generator
2. Branch to 0x80002388
3. Branch Anywhere

ASM (PowerPC)
1. ASM Generator

Gecko Codes
1. C2 and 04 Code Generator
2. Conditional Code
3. Button Activator

Other
1. C2 Code to Riivolution Patch Generator

-----


Memory Patch Type 1:


Enter An Address in Memory:
Enter the value you want to insert at that address:
Riivotion Patch Output:
 

 

EXAMPLE:

Enter An Address in Memory: 80000004
Enter the value you want to insert at that Address: FFFFFFFF

Output:
<memory value="ffffffff" offset="0x80000004" />

 



Memory Patch Type 2: (Branch to 0x80002388)

Enter an Address in memory: 
# 0x80002388 - Inputted Address Above
Branch Instruction Output:

 


 


 

 

 

Memory Patch Type 3: (Branch Anywhere)


Enter the address you want to branch from: 
Enter the destination address: 
Riivotion Patch Output:

 

 

 

EXAMPLE:


Example #1

Enter the address you want to branch from: 80000000
Enter the destination address: 80000064

output:
48000064

Example #2
Enter the address you want to branch from: 80000064
Enter the destination address: 80000000

output:
4BFFFF9C


 

 

 

 

 

 

 

 

 





 


ASM GENERATOR: (04 to Memory Patch - 1 Line)

Enter the Address that holds the value you want to replace:
Enter the value you want to insert at said Address:
Enter an empty register for said Address: 
Enter another empty register for the value you want to insert at said Address: 
ASM Output:

 

 

EXAMPLE:

Enter the Address that holds the value you want to replace: 802c9210
Enter the value you want to insert at said Address: 2C1811FF
Enter an empty register for said Address: r14
Enter another empty register for the value you want to replace at said Address: r15

 


 

Gecko Code Generators

Value Replacement

Enter the Address that holds the value you want to replace: 
Enter the value you want to insert at said Address: 
Code Type: 

Output:

 

 

EXAMPLE (For C2 codes)

 

Enter the Address that holds the value you want to replace: 80456780
Enter the value you want to insert at said Address: 4E800020
Code Type: Default (C2)

The output would be:

C2456780 00000001
4E800020 00000000

 

EXAMPLE (For 04 codes)

Enter the Address that holds the value you want to replace: 80456780
Enter the value you want to insert at said Address: 4E800020
Code Type: Force the game to replace the value (04)

The output would be:

04456780 4E800020


If the user enters an address starting with "90" the output would be:

42000000 90000000

04456780 4E800020


If the user enters an address starting with "91" the output would be:

42000000 90000000

05456780 4E800020

If the user enters an address starting with "92" the output would be:

42000000 92000000

04456780 4E800020

If the user enters an address starting with "93" the output would be:

42000000 92000000

05456780 4E800020
 

 


Conditional Code

If  is equal to ...

Output:

 

 

 

 

 

 




Button Activator

Game         Button    

Output:

 

 

EXAMPLE:

The first line of the code will change based on what the user sets the Game to

Wii Sports:  2040E158
Super Mario Sluggers: 20317bb0


(All of the button values are included in the "value" field of the selection box IN THE HTML)

If  the (A) Button is pressed in Super Mario Sluggers... the output would be

20317BB0 00000800
# Your code here (This message is included in the output)

e0000000 80008000

 




 



Other
C2 --> Riivolution Memory Patch
Enter a C2 Code:

                        

Output:

      


 

EXAMPLE:

The following C2 code will be used as an example:

C2000004 00000003
38A00000 7CC43378
38A00006 38A00007
60000000 00000000


The output would be the following:

<memory value="48002334" offset="0x80000004" />
 <memory value="38A00000" offset="0x80002338" />
<memory value="7CC43378" offset="0x8000233c" />
<memory value="38A00006" offset="0x80002340" />
<memory value="38A00007" offset="0x80002344" />
<memory value="4bffdcc0" offset="0x80002348" />

 


Explanation
C2000004 --> <memory value="48002334" offset="0x80000004" /> --> The insertion address. 0x80000004 in this code. This instruction makes it branch to 0x80002338. It will do this for every insertion address.

00000002 ---> Number of lines the code has. Not important.


38A00000 ---> <memory value="38A00000" offset="0x80002338" /> ---> The first line in the code. Always inserted at 0x80002338


7CC43378 ---> <memory value="7CC43378" offset="0x8000233c" />


38A00006 ---> <memory value="38A00006" offset="0x80002340" />


38A00007 ---> <memory value="38A00007" offset="0x80002344" />


60000000 00000000 ---> If the very next line in the C2 code is "00000000" with nothing after it or "60000000 00000000," it will not be converted and will be replaced with a branch instruction to the insertion address + 0x4.


<memory value="4bffdcc0" offset="0x80002348" /> ---> Branches from 0x80002348 to 0x80000008 (Insertion address + 0x4)
 



 



Coded by LlamaTrauma