Welcome, Guest
You have to register before you can post on our site.

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 642
» Latest member: 456
» Forum threads: 1,812
» Forum posts: 13,960

Full Statistics

Online Users
There are currently 98 online users.
» 1 Member(s) | 94 Guest(s)
Bing, Discord, Google

Latest Threads
Code request???
Forum: Code Support / Help / Requests
Last Post: Warwick92xD
10 hours ago
» Replies: 2
» Views: 4,811
Make it to 10,000
Forum: General Discussion
Last Post: Cealgair
Yesterday, 08:58 PM
» Replies: 7,325
» Views: 5,621,439
Always Show Friend Code o...
Forum: Visual & Sound Effects
Last Post: Vega
Yesterday, 01:51 PM
» Replies: 2
» Views: 48
A Bit Faster Menu Navigat...
Forum: Visual & Sound Effects
Last Post: 456
Yesterday, 09:45 AM
» Replies: 0
» Views: 31
"Double Dash!!" Speedomet...
Forum: Visual & Sound Effects
Last Post: Vega
Yesterday, 01:53 AM
» Replies: 0
» Views: 41
Change Mii Shirt Color In...
Forum: Online Non-Item
Last Post: Vega
Yesterday, 01:52 AM
» Replies: 0
» Views: 21
f_itembox Never Respawns ...
Forum: Offline; Item
Last Post: Vega
Yesterday, 01:52 AM
» Replies: 0
» Views: 24
Remove Voice Delay [Spong...
Forum: Visual & Sound Effects
Last Post: Vega
Yesterday, 01:50 AM
» Replies: 0
» Views: 13
See Bullet Bills in Onlin...
Forum: Time Trials & Battle
Last Post: Vega
Yesterday, 01:50 AM
» Replies: 0
» Views: 16
Country Flag Randomizer [...
Forum: Online Non-Item
Last Post: Vega
Yesterday, 01:49 AM
» Replies: 0
» Views: 14

 
  Gecko Codetype Documentation
Posted by: Star - 05-15-2018, 10:50 PM - Forum: Resources and References - No Replies

This Gecko Codetype Documentation based on work from: kenobi, Nuke, Link, Brkirch, dcx2, Skiller, wiiztec, hetoan2, Romaap, mugwhump, and James0x57.





Direct Ram Writes




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 Codes




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.



32 bits (endif, then) If not equal
22______ 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 22 to 32.
For values of ______ >= 0x01000000, add one to the codetype.



32 bits (endif, then) If greater than (unsigned)
24______ 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 24 to 34.
For values of ______ >= 0x01000000, add one to the codetype.



32 bits (endif, then) If lower than (unsigned)
26______ 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 26 to 36.
For values of ______ >= 0x01000000, add one to the codetype.



16 bits (endif, then) If equal
28______ MMMMXXXX

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

If 16 bits at ([ba+______] & not(MMMM))==XXXX,
then codes are executed (else code execution set to false)


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



16 bits (endif, then) If not equal
2A______ MMMMXXXX

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

If 16 bits at ([ba+______] & not(MMMM))!=XXXX,
then codes are executed (else code execution set to false)


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



16 bits (endif, then) If greater than
2C______ MMMMXXXX

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

If 16 bits at ([ba+______] & not(MMMM))>XXXX,
then codes are executed (else code execution set to false)


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



16 bits (endif, then) If lower than
2E______ MMMMXXXX

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

If 16 bits at ([ba+______] & not(MMMM))<XXXX,
then codes are executed (else code execution set to false)


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



Base Address




Load into Base Address
40TYZ00N XXXXXXXX

40000 : ba = [XXXXXXXX]
40001 : ba = [grN+XXXXXXXX]
40010 : ba = [ba+XXXXXXXX]
40011 : ba = [ba+grN+XXXXXXXX]

40100 : ba += [XXXXXXXX]
40101 : ba += [grN+XXXXXXXX]
40110 : ba += [ba+XXXXXXXX]
40111 : ba += [ba+grN+XXXXXXXX]

50010 : ba = [po+XXXXXXXX]
50011 : ba = [po+grN+XXXXXXXX]

50110 : ba += [po+XXXXXXXX]
50111 : ba += [po+grN+XXXXXXXX]



Set Base Address to
42TYZ00N XXXXXXXX

42000 : ba = XXXXXXXX
42001 : ba = grN+XXXXXXXX
42010 : ba = ba+XXXXXXXX
42011 : ba = ba+grN+XXXXXXXX

42100 : ba += XXXXXXXX
42101 : ba += grN+XXXXXXXX
42110 : ba += ba+XXXXXXXX
42111 : ba += ba+grN+XXXXXXXX

52010 : ba = po+XXXXXXXX
52011 : ba = po+grN+XXXXXXXX

52110 : ba += po+XXXXXXXX
52111 : ba += po+grN+XXXXXXXX



Store Base Address at
440YZ00N XXXXXXXX

44000 : [XXXXXXXX] = ba
44001 : [XXXXXXXX+grN] = ba
44010 : [XXXXXXXX+ba] = ba
44011 : [XXXXXXXX+ba+grN] = ba

54010 : [XXXXXXXX+po] = ba
54011 : [XXXXXXXX+po+grN] = ba



Put next code's location into the Base Address
4600XXXX 00000000

XXXX is a signed 16bits value : 0xFFFF=-1
ba will hold the address at which the next line of code is stored + XXXX



Pointer Address




Load into Pointer Address
48TYZ00N XXXXXXXX

48000 : po = [XXXXXXXX]
48001 : po = [grN+XXXXXXXX]
48010 : po = [ba+XXXXXXXX]
48011 : po = [ba+grN+XXXXXXXX]

48100 : po += [XXXXXXXX]
48101 : po += [grN+XXXXXXXX]
48110 : po += [ba+XXXXXXXX]
48111 : po += [ba+grN+XXXXXXXX]

58010 : po = [po+XXXXXXXX]
58011 : po = [po+grN+XXXXXXXX]

58110 : po += [po+XXXXXXXX]
58111 : po += [po+grN+XXXXXXXX]



Set Pointer Address to
4ATYZ00N XXXXXXXX

4A000 : po = XXXXXXXX
4A001 : po = grN+XXXXXXXX
4A010 : po = ba+XXXXXXXX
4A011 : po = ba+grN+XXXXXXXX

4A100 : po += XXXXXXXX
4A101 : po += grN+XXXXXXXX
4A110 : po += ba+XXXXXXXX
4A111 : po += ba+grN+XXXXXXXX

5A010 : po = po+XXXXXXXX
5A011 : po = po+grN+XXXXXXXX

5A110 : po += po+XXXXXXXX
5A111 : po += po+grN+XXXXXXXX



Store Pointer Address at
4C0YZ00N XXXXXXXX

4C000 : [XXXXXXXX] = po
4C001 : [XXXXXXXX+grN] = po
4C010 : [XXXXXXXX+ba] = po
4C011 : [XXXXXXXX+ba+grN] = po

5C010 : [XXXXXXXX+po] = po
5C011 : [XXXXXXXX+po+grN] = po



Put next code's location into the Pointer Address
4E00XXXX 00000000

XXXX is a signed 16bits value : 0xFFFF=-1
po will hold the address at which the next line of code is stored + XXXX



Flow Control




Set Repeat
6000NNNN 0000000P

Store next code address and NNNN (number of times to repeat) in bP.



Execute Repeat
62000000 0000000P

If NNNN stored in bP is >0, it is decreased by 1 and the code handler jumps to the "next code address" stored in bP



Return
64000000 0000000P
If the code execution status is true, the code handler jumps to the "next code address" stored in bP (NNNN in bP is not touched).

64100000 0000000P
If the code execution status is false, the code handler jumps to the "next code address" stored in bP (NNNN in bP is not touched).

64200000 0000000P
No matter what the code execution status is, the code handler jumps to the "next code address" stored in bP (NNNN in bP is not touched).



Goto
6600XXXX 00000000
If the code execution status is true, the code handler jumps to (next line of code + XXXX lines). XXXX is signed.

6610XXXX 00000000
If the code execution status is false, the code handler jumps to (next line of code + XXXX lines). XXXX is signed.

6620XXXX 00000000
The code handler jumps to (next line of code + XXXX lines). XXXX is signed.



Gosub
6800XXXX 0000000P
If the code execution status is true, the code handler stores the next code address in bP, then it jumps to (next line of code + XXXX lines). XXXX is signed.

6810XXXX 0000000P
If the code execution status is false, the code handler stores the next code address in bP, then it jumps to (next line of code + XXXX lines). XXXX is signed.

6820XXXX 0000000P
No matter what the code execution status is, the code handler stores the next code address in bP, then it jumps to (next line of code + XXXX lines). XXXX is signed.



Gecko Register




Set Gecko Register to
80SY000N XXXXXXXX

8000 : grN = XXXXXXXX
8001 : grN = XXXXXXXX+ba

8010 : grN += XXXXXXXX
8011 : grN += XXXXXXXX+ba

9001 : grN = XXXXXXXX+po
9011 : grN += XXXXXXXX+po



Load into Gecko Register
82UY000N XXXXXXXX

8200 : grN = 8bits at [XXXXXXXX]
8210 : grN = 16bits at [XXXXXXXX]
8220 : grN = 32bits at [XXXXXXXX]

8201 : grN = 8bits at [XXXXXXXX+ba]
8211 : grN = 16bits at [XXXXXXXX+ba]
8221 : grN = 32bits at [XXXXXXXX+ba]

9201 : grN = 8bits at [XXXXXXXX+po]
9211 : grN = 16bits at [XXXXXXXX+po]
9221 : grN = 32bits at [XXXXXXXX+po]



Store Gecko Register at
84T0YYYN XXXXXXXX : Starting Address is XXXXXXXX
84T1YYYN XXXXXXXX : Starting Address is XXXXXXXX+ba
94T1YYYN XXXXXXXX : Starting Address is XXXXXXXX+po

T = 0 : byte
T = 1 : halfword
T = 2 : word

Write grN's T to YYY+1 consecutive T-sized addresses.



Gecko Register / Direct Value Operations
86TY000N XXXXXXXX

86T0 : grN = (grN ? XXXXXXXX)
86T1 : [ grN ] = ([ grN ] ? XXXXXXXX)
86T2 : grN = (grN ? [XXXXXXXX])
86T3 : [ grN ] = ([ grN ] ? [XXXXXXXX])

T : ?
0 : add (+)
1 : mul (*)
2 : or (|)
3 : and (&)
4 : xor (^)
5 : slw (<<)
6 : srw (>>)
7 : rol (rotate left)
8 : asr (arithmetic shift right)
9 : fadds (single float add)
A : fmuls (single float mul)



Gecko Register Operations
88TY000N 0000000K

88T0 : grN = (grN ? grK)
88T1 : [ grN ] = ([ grN ] ? grK)
88T2 : grN = (grN ? [ grK ])
88T3 : [ grN ] = ([ grN ] ? [ grK ])

T : ?
0 : add (+)
1 : mul (*)
2 : or (|)
3 : and (&)
4 : xor (^)
5 : slw (<<)
6 : srw (>>)
7 : rol (rotate left)
8 : asr (arithmetic shift right)
9 : fadds (single float add)
A : fmuls (single float mul)



Memory Copy 1
8AYYYYNK XXXXXXXX
copy YYYY bytes from [ grN ] to [ grK ]+XXXXXXXX, grK can't be F.

8AYYYYNF XXXXXXXX
copy YYYY bytes from [ grN ] to ba+XXXXXXXX

9AYYYYNF XXXXXXXX
copy YYYY bytes from [ grN ] to po+XXXXXXXX



Memory Copy 2
8CYYYYNK XXXXXXXX
copy YYYY bytes from [ grN ]+XXXXXXXX to [ grK ], grN can't be F.

8CYYYYFK XXXXXXXX
copy YYYY bytes from ba+XXXXXXXX to [ grK ]

9CYYYYFK XXXXXXXX
copy YYYY bytes from po+XXXXXXXX to [ grK ]



Gecko Register If Codes




16 bits (endif, then) If equal
A0______ KN00MMMM

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

If ([ grN ] and not(MMMM))==([ grK ] and not(MMMM)) then codes are executed (else code execution set to false).

If N or K is F, it will use ba+______ instead of grF!


To use po instead of ba (when grN or grK is F), change the codetype from A0 to B0.
For values of ______ >= 0x01000000, add one to the codetype.



16 bits (endif, then) If not equal
A2______ KN00MMMM

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

If ([ grN ] and not(MMMM))!=([ grK ] and not(MMMM)) then codes are executed (else code execution set to false).

If N or K is F, it will use ba+______ instead of grF!


To use po instead of ba (when grN or grK is F), change the codetype from A2 to B2.
For values of ______ >= 0x01000000, add one to the codetype.



16 bits (endif, then) If greater
A4______ KN00MMMM

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

If ([ grN ] and not(MMMM))>([ grK ] and not(MMMM)) then codes are executed (else code execution set to false).

If N or K is F, it will use ba+______ instead of grF!


To use po instead of ba (when grN or grK is F), change the codetype from A4 to B4.
For values of ______ >= 0x01000000, add one to the codetype.



16 bits (endif, then) If lower
A6______ KN00MMMM

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

If ([ grN ] and not(MMMM))<([ grK ] and not(MMMM)) then codes are executed (else code execution set to false).

If N or K is F, it will use ba+______ instead of grF!


To use po instead of ba (when grN or grK is F), change the codetype from A6 to B6.
For values of ______ >= 0x01000000, add one to the codetype.



Counter If Codes




16 bits (endif, then) If counter value equal
A80ZZZZT MMMMXXXX

ZZZZ : The code's counter.
Code's Operation : If current execution status is true, increase counter by 1. If it's false, reset counter to 0.
Condition : If (XXXX and not(MMMM))==ZZZZ, codes following this are executed (else code execution set to false).

T = 0 : Do Code's Operation, then run Condition.
T = 1 : Apply an Endif, then do Code's Operation, finally run Condition.
T = 8 : Do Code's Operation, then run Condition (and if it is true, reset counter to 0).
T = 9 : Apply an Endif, then do Code's Operation, finally run Condition (and if it is true, reset counter to 0).



16 bits (endif, then) If counter value not equal
AA0ZZZZT MMMMXXXX

ZZZZ : The code's counter.
Code's Operation : If current execution status is true, increase counter by 1. If it's false, reset counter to 0.
Condition : If (XXXX and not(MMMM))!=ZZZZ, codes following this are executed (else code execution set to false).

T = 0 : Do Code's Operation, then run Condition.
T = 1 : Apply an Endif, then do Code's Operation, finally run Condition.
T = 8 : Do Code's Operation, then run Condition (and if it is true, reset counter to 0).
T = 9 : Apply an Endif, then do Code's Operation, finally run Condition (and if it is true, reset counter to 0).



16 bits (endif, then) If counter value greater
AC0ZZZZT MMMMXXXX

ZZZZ : The code's counter.
Code's Operation : If current execution status is true, increase counter by 1. If it's false, reset counter to 0.
Condition : If (XXXX and not(MMMM))>ZZZZ, codes following this are executed (else code execution set to false).

T = 0 : Do Code's Operation, then run Condition.
T = 1 : Apply an Endif, then do Code's Operation, finally run Condition.
T = 8 : Do Code's Operation, then run Condition (and if it is true, reset counter to 0).
T = 9 : Apply an Endif, then do Code's Operation, finally run Condition (and if it is true, reset counter to 0).



16 bits (endif, then) If counter value lower
AE0ZZZZT MMMMXXXX

ZZZZ : The code's counter.
Code's Operation : If current execution status is true, increase counter by 1. If it's false, reset counter to 0.
Condition : If (XXXX and not(MMMM))<ZZZZ, codes following this are executed (else code execution set to false).

T = 0 : Do Code's Operation, then run Condition.
T = 1 : Apply an Endif, then do Code's Operation, finally run Condition.
T = 8 : Do Code's Operation, then run Condition (and if it is true, reset counter to 0).
T = 9 : Apply an Endif, then do Code's Operation, finally run Condition (and if it is true, reset counter to 0).



ASM Codes




Execute ASM
C0000000 NNNNNNNN
ZZZZZZZZ ZZZZZZZZ
ZZZZZZZZ ZZZZZZZZ
4E800020 00000000

Executes the NNNNNNNN lines of instruction placed under the code.
The instructions MUST end with a blr (0x4E800020).



Insert ASM
C2______ NNNNNNNN
ZZZZZZZZ ZZZZZZZZ
ZZZZZZZZ ZZZZZZZZ
ZZZZZZZZ 00000000

This code will replace the instruction at ba+______ with a branch that will point to ZZZZZZZZ.
The replaced is not saved, the code creator must then put it in his code manualy (if needed).
The instruction MUST end with ONE 00000000, because the code handler will add a "b (ba+______)" instruction there.
If your asm code fills all the line, add a 60000000 00000000 under it (and count this line in NNNNNNNN).


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



Create a branch
C6______ YYYYYYYY

Writes, at ______+ba, a "b YYYYYYYY" instruction.


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



Other




On/Off Switch
CC000000 00000000

This code will only work correctly if an If... code is placed before it.
Each time the code execution status goes from true to false to true, and the switch code is reached, the "switch" is moved. The switch moves from on<->off, and set the code execution accordingly to its state. The value of the switch is stored inside the code.
It is NOT an If... code. It only changes the current code executions status.



Address Range Check
CE00000T XXXXYYYY

T = 0, Don't apply Endif.
T = 1, Apply Endif.
Then check if ba >= 0xXXXX0000 and ba < 0xYYYY0000.
If XXXX>=YYYY, then the code will always set the code execution to false.

To use po instead of ba, change the codetype from CE to DE.



Full Terminator
E0000000 XXXXYYYY

Clears the code execution status.
If XXXX<>0, ba = 0xXXXX0000
If YYYY<>0, po = 0xYYYY0000



Endif (+else)
E2T000VV XXXXYYYY

T = 0, Applies VV Endifs.
T = 1, Applies VV Endifs and inverse the code execution status (="else").

If XXXX<>0, ba = 0xXXXX0000
If YYYY<>0, po = 0xYYYY0000



End of Codes
F0000000 00000000

Tells the code handler that there are no more codes in the code list. The code handler exits.



Gecko 1.8+ Only




Insert ASM With 16 bit XOR Checksum
F2______ YYZZZZNN
ZZZZZZZZ ZZZZZZZZ
ZZZZZZZZ ZZZZZZZZ
ZZZZZZZZ 00000000

YY (signed) 16-bit values after (if positive) or before (if negative) [ba + ______] will be XOR'ed together. If the result is equal to ZZZZ, the code will be executed.
The rest of the code functions the exact same way as the C2 codetype (Insert ASM), with NN as the number of lines.


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



(If) Search, Set Pointer
F60000NN XXXXYYYY
ZZZZZZZZ ZZZZZZZZ
ZZZZZZZZ ZZZZZZZZ

Creates an if (so this code requires an endif), then searches for the NN lines of Z values between XXXX0000 and YYYY0000 (or, if XXXX is 8000, between 80003000 and YYYY0000).
To prevent this code from causing game lag, it will only search the first time it is read by the code handler (the result is saved to the code and reused).
If the Z values are found, set po to the starting address of the values (SSSSSSSS) and replace the F6 line with F60003NN SSSSSSSS.
If the Z values are not found, then set code execution status to false and replace the F6 line with F60001NN XXXXYYYY.




Appendix




Codetypes in depth
A hex digit actually represents 4 bits, and you need to look at the underlying bits to understand why the code types are defined the way they are. Normally, we refer to a 32-bit RAM write as an "04 code type", but this is actually a misnomer. It misleadingly implies that the 8 bits belonging to the two hex digits "04" are the code type, when the actual code type only has 7 bits! The 8th bit belongs to the address, which creates the "05" code type. People also think that the address is only comprised of 24 bits (the other 6 hex digits), when the address is actually 25 bits (the other 6 hex digits + the last bit of the second digit).

A picture may help; Here's the binary breakdown of the first word of a code.

Hex Digit  |         First         |        Second         |        Third     |   Fourth ...
Bit#       |   0   1   2   |   3   |   4   5   6   |   7   |   8   9  10  11  |   12     ...
is         |   Code Type   | ba/po | Code Sub Type |  address ..............................



This page was adapted from http://geckocodes.org

Print this item

  Increase Visual Distance [davidevgen]
Posted by: Star - 05-15-2018, 08:50 PM - Forum: Visual & Sound Effects - Replies (4)

Increase Visual Distance [davidevgen]

(NTSC-U)
0488DBE0 4FFFFFFF

(PAL)
04892320 4FFFFFFF

(NTSC-J)
04891970 4FFFFFFF

(NTSC-K)
04880728 4FFFFFFF

Code Creator: davidevgen

Print this item

  Course Size Modifier [davidevgen]
Posted by: Star - 05-15-2018, 08:45 PM - Forum: Offline Non-Item - No Replies

Course Size Modifier [davidevgen]

(NTSC-U)
048A0220 XXXXXXXX

(PAL)
048A4BE0 XXXXXXXX

(NTSC-J)
048A3D40 XXXXXXXX

(NTSC-K)
04893040 XXXXXXXX

[XXXXXXXX Values]
3ED00000 = Smallest
3F800000 = Default
40500000 = Largest

Code Creator: davidevgen

Print this item

  FreeFly [mdmwii]
Posted by: Vega - 05-14-2018, 09:21 PM - Forum: Offline Non-Item - Replies (4)

FreeFly [mdmwii]

This code is like Moon Jump but you can navigate west, east, north, and south anytime. Keep in mind that the directions are in relevance to the start/finish line. So for example: On TF after you take the first right-hand turn (now moving east), if you press your button to go North, you will move west on your screen.

NTSC-U
C25AA700 0000000E
3E408034 A252XXXX
7E600026 3A80TTTT
7E56A038 7C16A000
40A20018 C03E0068
C0BE01C8 EC212828
D03E0068 4800002C
3A80UUUU 7E56A038
7C16A000 40A20018
C03E0068 C0BE01C8
EC21282A D03E0068
48000008 D03E0068
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25AA718 0000000E
3E408034 A252XXXX
7E600026 3A80VVVV
7E56A038 7C16A000
40A20018 C2FE0070
C0BE01C8 EEF72828
D2FE0070 4800002C
3A80WWWW 7E56A038
7C16A000 40A20018
C2FE0070 C0BE01C8
EEF7282A D2FE0070
48000008 D2FE0070
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25AA70C 00000009
3E408034 A252XXXX
7E600026 3A80ZZZZ
7E52A038 7C12A000
40A20018 823E006C
3E000002 7E308A14
923E006C 48000008
D33E006C 7E6FF120
3A400000 3A600000
3A800000 00000000

PAL
C25B5628 0000000E
3E40rrrr A252XXXX
7E600026 3A80TTTT
7E56A038 7C16A000
40A20018 C03E0068
C0BE01C8 EC212828
D03E0068 4800002C
3A80UUUU 7E56A038
7C16A000 40A20018
C03E0068 C0BE01C8
EC21282A D03E0068
48000008 D03E0068
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25B5640 0000000E
3E40rrrr A252XXXX
7E600026 3A80VVVV
7E56A038 7C16A000
40A20018 C2FE0070
C0BE01C8 EEF72828
D2FE0070 4800002C
3A80WWWW 7E56A038
7C16A000 40A20018
C2FE0070 C0BE01C8
EEF7282A D2FE0070
48000008 D2FE0070
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25B5634 00000009
3E40rrrr A252XXXX
7E600026 3A80ZZZZ
7E52A038 7C12A000
40A20018 823E006C
3E000002 7E308A14
923E006C 48000008
D33E006C 7E6FF120
3A400000 3A600000
3A800000 00000000

NTSC-J
C25B4FA8 0000000E
3E408034 A252XXXX
7E600026 3A80TTTT
7E56A038 7C16A000
40A20018 C03E0068
C0BE01C8 EC212828
D03E0068 4800002C
3A80UUUU 7E56A038
7C16A000 40A20018
C03E0068 C0BE01C8
EC21282A D03E0068
48000008 D03E0068
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25B4FC0 0000000E
3E408034 A252XXXX
7E600026 3A80VVVV
7E56A038 7C16A000
40A20018 C2FE0070
C0BE01C8 EEF72828
D2FE0070 4800002C
3A80WWWW 7E56A038
7C16A000 40A20018
C2FE0070 C0BE01C8
EEF7282A D2FE0070
48000008 D2FE0070
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25B4FB4 00000009
3E408034 A252XXXX
7E600026 3A80ZZZZ
7E52A038 7C12A000
40A20018 823E006C
3E000002 7E308A14
923E006C 48000008
D33E006C 7E6FF120
3A400000 3A600000
3A800000 00000000

NTSC-K
C25A3680 0000000E
3E408033 A252XXXX
7E600026 3A80TTTT
7E56A038 7C16A000
40A20018 C03E0068
C0BE01C8 EC212828
D03E0068 4800002C
3A80UUUU 7E56A038
7C16A000 40A20018
C03E0068 C0BE01C8
EC21282A D03E0068
48000008 D03E0068
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25A3698 0000000E
3E408033 A252XXXX
7E600026 3A80VVVV
7E56A038 7C16A000
40A20018 C2FE0070
C0BE01C8 EEF72828
D2FE0070 4800002C
3A80WWWW 7E56A038
7C16A000 40A20018
C2FE0070 C0BE01C8
EEF7282A D2FE0070
48000008 D2FE0070
7E6FF120 3A400000
3A600000 3A800000
3AC00000 00000000
C25A368C 00000009
3E408033 A252XXXX
7E600026 3A80ZZZZ
7E52A038 7C12A000
40A20018 823E006C
3E000002 7E308A14
923E006C 48000008
D33E006C 7E6FF120
3A400000 3A600000
3A800000 00000000

rrrr Values (for PAL Code only):
8034 = For Wheel, Chuck, or Classic
8035 = For GCN

XXXX = Controller Address
TTTT = Button to Move West
UUUU = Button to Move East
VVVV = Button to Move North
WWWW = Button to Move South
ZZZZ = Button to Levitate

Code creator: mdmwii

Print this item

  USB Gecko Item Spy -Online- [Star]
Posted by: Star - 05-14-2018, 05:44 PM - Forum: Online; Item - Replies (4)

USB Gecko Item Spy -Online- [Star]

(NTSC-U)
# Spy Away Items
C265EE30 00000003
A0100011 56CC103A
3D8C8168 B00C0192
88100011 00000000

# Spy Local Items
C265EE14 00000003
A0030001 56CC103A
3D8C8168 B00C0192
88030001 00000000

(PAL)
# Spy Away Items
C265E1A8 00000003
A0100011 56CC103A
3D8C8168 B00C0192
88100011 00000000

# Spy Local Items
C265E18C 00000003
A0030001 56CC103A
3D8C8168 B00C0192
88030001 00000000

(NTSC-J)
# Spy Away Items
C265D814 00000003
A0100011 56CC103A
3D8C8168 B00C0192
88100011 00000000

# Spy Local Items
C265D7F8 00000003
A0030001 56CC103A
3D8C8168 B00C0192
88030001 00000000

(NTSC-K)
# Spy Away Items
C264C4C0 00000003
A0100011 56CC103A
3D8C8168 B00C0192
88100011 00000000

# Spy Local Items
C264C4A4 00000003
A0030001 56CC103A
3D8C8168 B00C0192
88030001 00000000

[Item Values]
00 = Green Shell
01 = Red Shell
02 = Banana
03 = Fake Item Box
04 = Mushroom
05 = Triple Mushrooms
06 = Bob-omb
07 = Blue Shell
08 = Lightning
09 = Star
0A = Golden Mushroom
0B = Mega Mushroom
0C = Blooper
0D = POW Block
0E = Thunder Cloud
0F = Bullet Bill
10 = Triple Green Shells
11 = Triple Red Shells
12 = Triple Bananas
14 = No Item

Notes:
- Address 81680192 and onward will contain all players' held and trailed item values, ordered by player slot.

Code Creator: Star
Code Credits: Bully@Wiiplaza

Print this item

  Random Item From Item Box [Star]
Posted by: Star - 05-14-2018, 12:25 AM - Forum: Online; Item - Replies (4)

Random Item From Item Box [Star]

This code will give you a random item from the roulette, not limited to the item probability of your current position.

(NTSC-U)
A8000008 00000001
80000000 80001574
86010000 00000001
24001574 00000012
04001574 00000000
E0000000 80008000
C27AB704 00000002
3D808000 806C1574
90770020 00000000

(PAL)
A8000008 00000001
80000000 80001574
86010000 00000001
24001574 00000012
04001574 00000000
E0000000 80008000
C27BA164 00000002
3D808000 806C1574
90770020 00000000

(NTSC-J)
A8000008 00000001
80000000 80001574
86010000 00000001
24001574 00000012
04001574 00000000
E0000000 80008000
C27B97D0 00000002
3D808000 806C1574
90770020 00000000

(NTSC-K)
A8000008 00000001
80000000 80001574
86010000 00000001
24001574 00000012
04001574 00000000
E0000000 80008000
C27A8524 00000002
3D808000 806C1574
90770020 00000000

Code Creator: Star
Code Credits: Guru

Print this item

  Freeze Everywhere [Vega]
Posted by: Vega - 05-13-2018, 03:11 AM - Forum: Online Non-Item - No Replies

Freeze Everywhere [Vega]

Freezes everyone except you. Works anytime and anywhere. WW, Room, etc. Doesn't matter.

NOTE: Does NOT work on Wiimmfi due to their security patches.

NTSC-U
0465380C 7C63302E
2834XXXX YYYYZZZZ
0465380C 60000000
E0000000 80008000

PAL
04657C94 7C63302E
2834XXXX YYYYZZZZ
04657C94 60000000
E0000000 80008000

NTSC-J
04657300 7C63302E
2834XXXX YYYYZZZZ
04657300 60000000
E0000000 80008000

NTSC-K
04645FAC 7C63302E
2833XXXX YYYYZZZZ
04645FAC 60000000
E0000000 80008000

Code creator: Vega

Print this item

  Force Live View [Geeh / EvilRobot]
Posted by: Vega - 05-13-2018, 02:29 AM - Forum: Visual & Sound Effects - No Replies

Force Live View [Geeh / EvilRobot]

Also known as Play In Auto Drive Mode.

Works both online and offline

NTSC-U
04597888 38000005

PAL
045A28C0 38000005

NTSC-J
045A2240 38000005

NTSC-K
04590918 38000005

Code creators: Geeh, EvilRobot

Print this item

  Positional Shared Item [Star]
Posted by: Star - 05-13-2018, 02:25 AM - Forum: Online; Item - Replies (14)

Positional Shared Item [Star]

This code will replace the items that you receive in a certain position, with one of your choosing. It is undetectable if the item received is one that can legitimately be received in your current position.

(NTSC-U)
# Single Position
2834XXXX YYYYZZZZ
C27AB704 00000003
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
047AB704 90770020
E0000000 80008000

# Multiple Positions
2834XXXX YYYYZZZZ
C27AB704 00000005
2C19000P 40A2000C
386000WW 48000010
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
047AB704 90770020
E0000000 80008000

(PAL)
# Single Position
2834XXXX YYYYZZZZ
C27BA164 00000003
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
047BA164 90770020
E0000000 80008000

# Multiple Positions
2834XXXX YYYYZZZZ
C27BA164 00000005
2C19000P 40A2000C
386000WW 48000010
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
047BA164 90770020
E0000000 80008000

(NTSC-J)
# Single Position
2834XXXX YYYYZZZZ
C27B97D0 00000003
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
047B97D0 90770020
E0000000 80008000

# Multiple Positions
2834XXXX YYYYZZZZ
C27B97D0 00000005
2C19000P 40A2000C
386000WW 48000010
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
047B97D0 90770020
E0000000 80008000

(NTSC-K)
# Single Position
2833XXXX YYYYZZZZ
C27A8524 00000003
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2833XXXX YYYYZZZZ
047A8524 90770020
E0000000 80008000

# Multiple Positions
2833XXXX YYYYZZZZ
C27A8524 00000005
2C19000P 40A2000C
386000WW 48000010
2C19000P 40A20008
386000WW 90770020
60000000 00000000
E0000000 00000000
2833XXXX YYYYZZZZ
047A8524 90770020
E0000000 80008000

[P and WW Values]
P = Position to Replace Items

1 = 1st Place
2 = 2nd Place
3 = 3rd Place
4 = 4th Place
5 = 5th Place
6 = 6th Place
7 = 7th Place
8 = 8th Place
9 = 9th Place
A = 10th Place
B = 11th Place
C = 12th Place

WW = Item to Obtain

00 = Green Shell
01 = Red Shell
02 = Banana
03 = Fake Item Box
04 = Mushroom
05 = Triple Mushrooms
06 = Bob-omb
07 = Blue Shell
08 = Lightning
09 = Star
0A = Golden Mushroom
0B = Mega Mushroom
0C = Blooper
0D = POW Block
0E = Thunder Cloud
0F = Bullet Bill
10 = Triple Green Shells
11 = Triple Red Shells
12 = Triple Bananas
14 = No Item Available (Mushroom)

Code Creator: Star
Code Credits: Guru

Print this item

  Disc Drive Lighter [Spaghetti Noppers]
Posted by: Vega - 05-12-2018, 08:01 PM - Forum: Misc/Other - No Replies

Disc Drive Lighter [Spaghetti Noppers]

This code will make the disc drive light of the Wii always on, whenever you press your desired activator (while not pressing any other buttons).

Region-Free
C0000000 00000005
3D40CD80 812A00C0
552906F2 3D80WWWW
A16CXXXX 2C0BZZZZ
40A20008 61290020
912A00C0 4E800020

WWWW values:
8034 = NTSC-U, PAL (non-gcn), & NTSC-J
8033 = NTSC-K
8035 = PAL (gcn only)

XXXX = Standard Controller Address value
ZZZZ = Standard Button value



Source:
lis r10, 0xCD80
lwz r9, 0x00C0 (r10)

rlwinm r9, r9, 0, 27, 25

lis r12, 0x8033
lhz r11, 0x6200 (r12)

cmpwi r11, 0x0880
bne+ update_gpio

ori r9, r9, 0x0020

update_gpio:
stw r9, 0x00C0 (r10)

#If compiling with WiiRDGUI...
#Uncomment the blr below, and...
#Change compiled code line of C2000000 to C0000000, and..
#change compiled code line of 00000006 to 00000005, and...
#remove final compiled code line (60000000 00000000)

#blr



Code creator: The Spaghetti Noppers Group

Print this item