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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 82
» Latest member: saradk
» Forum threads: 1,023
» Forum posts: 1,707

Full Statistics

Online Users
There are currently 33 online users.
» 0 Member(s) | 32 Guest(s)
Bing

Latest Threads
Automated Perfect License...
Forum: Cheat Codes
Last Post: zak
04-18-2019, 09:43 PM
» Replies: 2
» Views: 66
Timer Clock Display Modif...
Forum: DBZ BT3
Last Post: zak
04-18-2019, 01:03 PM
» Replies: 0
» Views: 18
480p Graphics Fix
Forum: Cheat Codes
Last Post: zak
04-16-2019, 05:51 PM
» Replies: 1
» Views: 121
Random Track Selection Fo...
Forum: Cheat Codes
Last Post: zak
04-14-2019, 02:37 PM
» Replies: 0
» Views: 80
Annoucements/Updates
Forum: Site Advancement
Last Post: zak
04-12-2019, 08:21 PM
» Replies: 36
» Views: 7,461
TAS BKT Sheet
Forum: TAS
Last Post: Cameron_MKW
04-07-2019, 12:13 PM
» Replies: 3
» Views: 1,029
List of Certain Functions...
Forum: Hacking General
Last Post: zak
04-05-2019, 06:23 PM
» Replies: 0
» Views: 106
Graphical In-Game Item Sp...
Forum: Cheat Codes
Last Post: zak
03-31-2019, 09:12 PM
» Replies: 0
» Views: 164
Graphical In-Game Item Sp...
Forum: Cheat Codes
Last Post: zak
03-31-2019, 09:10 PM
» Replies: 0
» Views: 76
Go From Complete Noob to ...
Forum: Guides/How-To's
Last Post: Cameron_MKW
03-31-2019, 02:29 PM
» Replies: 1
» Views: 166

 
  Launch Any Wii Channel
Posted by: zak - 02-18-2019, 08:41 PM - Forum: Cheat Codes - No Replies

Launch Any Wii Channel

Press your button activator at any time to launch the desired Wii Channel of your choice.

NTSC-U
2834XXXX YYYYZZZZ
C20095F4 00000006
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3CA00301 38C00000
3D80801A 618CDEC0
7D8803A6 4E800020
60000000 00000000
E0000000 80008000

PAL
2834XXXX YYYYZZZZ
C2009634 00000006
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3CA00301 38C00000
3D80801A 618CDF60
7D8803A6 4E800020
60000000 00000000
E0000000 80008000

NTSC-J
2834XXXX YYYYZZZZ
C2009590 00000006
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3CA00301 38C00000
3D80801A 618CDE80
7D8803A6 4E800020
60000000 00000000
E0000000 80008000

NTSC-K
2833XXXX YYYYZZZZ
C200973C 00000006
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3CA00301 38C00000
3D80801A 618CE2BC
7D8803A6 4E800020
60000000 00000000
E0000000 80008000

UUUUUUUU = Upper 32 bits of Title ID
LLLLLLLL = Lower 32 bits of Title ID

Example U/L value:
00010002 48414341 = Launch Mii Channel (non-Korean)




Source (Mii channel;non Korean used for Title ID):

#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# PAL Specific Source for Compilation #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#    OSLaunchTitleI Arguments    #
# r3 = Upper 32 bits of Title ID #
# r4 = Lower 32 bits of Title ID #
#        r5 = 0x03010000         #
#           r6 = Zero            #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lis r3, 0x0001 #Load 0x0001 into upper 16 bits of r3, lower 16 bits cleared
ori r3, r3, 0x0002 #Load 0x0002 into lower 16 bits of r3
lis r4, 0x4841 #Load 0x4841 into upper 16 bits of r4, lower 16 bits are cleared
ori r4, r4, 0x4341 # #Load 0x4341 into lower 16 bits of r4
lis r5, 0x0301 #Load 0x0301 into upper 16 bits of r5, lower 16 bits are cleared
li r6, 0x0 #Clear out r6

#~~~~~~~~~~~~~~~~~~~~~#
# Call OSLaunchTitleI #
# NTSC-U = 0x801ADEC0 #
#   PAL = 0x801ADF60  #
# NTSC-J = 0x801ADE80 #
# NTSC-K = 0x801AE2BC #
#~~~~~~~~~~~~~~~~~~~~~#

lis r12, 0x801A #Load 0x801A into upper 16 bits of r12, lower 16 bits are cleared
ori r12, r12, 0xDF60 #Load 0xDF60 into lower 16 bits of r12
mtlr r12 #Copy the value of r12 to the Link Register
blr #Branch to Link Register; Call the function

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#




Code creator: zak
Code credits: Megazig (OSLaunchTitleI)

Print this item

  DWC_Authdata NAND File Modifier
Posted by: zak - 02-17-2019, 09:10 PM - Forum: Cheat Codes - No Replies

DWC_Authdata NAND File Modifier

First thing's first, thank you Star!~

This code will permanently change the User ID within your DWC_Authdata file of the Wii NAND.

I made this code to get rid of the "Error 60000 Bug" that occurs on any ALTWFC type (dwc-network-emulator) custom MKW servers.

Instructions on using this code to get rid of the 'Error 60000 Bug' (usually only happens to Dolphin Default NAND users):
1. Boot MKWii with this code on.
2. Once at MKW Main Menu, delete the license(s) that have the 'Bug'. Do NOT go online yet!!!
3. Shut down your Dolphin Emulator completely OFF (if using an actual console, turn it completely OFF).
4. Boot MKW with NO codes on, make a new License.
5. Connect online with that License. Now reconnect online. The bug will not appear, it is permanently fixed.

XZZ ZZZZZZZ = Your new DWC_Authdata value (in Hex); just use a random value.

X = Any number from 0 thru 8
Z = Any Hex number (0 thru 9; A thru F)

This code makes use of memory addresses 0x80001620 thru 0x80001627. Make sure no other codes in your GCT/Cheat-Manager are using those addresses!!!

NTSC-U
06001620 00000008
00000XZZ ZZZZZZZZ
C253F3E8 00000013
7D8802A6 7C0B0378
9421FF80 BC410008
3FC08016 4800001D
2F736861 72656432
2F445743 5F415554
48444154 41000000
7C6802A6 38800002
63DDADBC 7FA803A6
4E800021 2C030000
41800038 7C7F1B78
3C808000 60841620
38A00008 63DDB220
7FA803A6 4E800021
2C030008 40820014
7FE3FB78 63DDB2E4
7FA803A6 4E800021
B8410008 38210080
7D605B78 7D8803A6
80640084 00000000

PAL
06001620 00000008
00000XZZ ZZZZZZZZ
C2544924 00000013
7D8802A6 7C0B0378
9421FF80 BC410008
3FC08016 4800001D
2F736861 72656432
2F445743 5F415554
48444154 41000000
7C6802A6 38800002
63DDAE5C 7FA803A6
4E800021 2C030000
41800038 7C7F1B78
3C808000 60841620
38A00008 63DDB2C0
7FA803A6 4E800021
2C030008 40820014
7FE3FB78 63DDB384
7FA803A6 4E800021
B8410008 38210080
7D605B78 7D8803A6
80640084 00000000

NTSC-J
06001620 00000008
00000XZZ ZZZZZZZZ
C25442A4 00000013
7D8802A6 7C0B0378
9421FF80 BC410008
3FC08016 4800001D
2F736861 72656432
2F445743 5F415554
48444154 41000000
7C6802A6 38800002
63DDAD7C 7FA803A6
4E800021 2C030000
41800038 7C7F1B78
3C808000 60841620
38A00008 63DDB1E0
7FA803A6 4E800021
2C030008 40820014
7FE3FB78 63DDB2A4
7FA803A6 4E800021
B8410008 38210080
7D605B78 7D8803A6
80640084 00000000

NTSC-K
06001620 00000008
00000XZZ ZZZZZZZZ
C253297C 00000013
7D8802A6 7C0B0378
9421FF80 BC410008
3FC08016 4800001D
2F736861 72656432
2F445743 5F415554
48444154 41000000
7C6802A6 38800002
63DDAEF8 7FA803A6
4E800021 2C030000
41800038 7C7F1B78
3C808000 60841620
38A00008 63DDB35C
7FA803A6 4E800021
2C030008 40820014
7FE3FB78 63DDB420
7FA803A6 4E800021
B8410008 38210080
7D605B78 7D8803A6
80640084 00000000



 
List of Sources:
Gecko String Write "0x00000XZZ ZZZZZZZZ" at 0x80001620

ISFS Cycle ASM:

#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#~~~~~~~~~~~~~~~~~~~~~~#
# Macros and Variables #
#~~~~~~~~~~~~~~~~~~~~~~#

.macro call_isfs address
    ori r29, r30, \address@l
    mtlr r29
    blrl
.endm

.macro push_stack
    mflr r12
    mr r11, r0
    stwu r1,-0x80(r1)
    stmw r2,8(r1)
.endm

.macro pop_stack
    lmw r2,8(r1)
    addi r1,r1,0x80
    mr r0, r11
    mtlr r12
.endm

.macro default_instruction
    lwz r3, 0x0084 (r4)
.endm


.set region, '' #Fill in E, P, J, or K within the quotes for your region when Compiling! Lowercase letters can also be used.

.if     (region == 'E' || region == 'e') # RMCE
        .set ISFS_Open, 0xADBC
        .set ISFS_Seek, 0xB0CC
        .set ISFS_Write, 0xB220
        .set ISFS_Close, 0xB2E4
.elseif (region == 'P' || region == 'p') # RMCP
        .set ISFS_Open, 0xAE5C
        .set ISFS_Seek, 0xB16C
        .set ISFS_Write, 0xB2C0
        .set ISFS_Close, 0xB384
.elseif (region == 'J' || region == 'j') # RMCJ
        .set ISFS_Open, 0xAD7C
        .set ISFS_Seek, 0xB08C
        .set ISFS_Write, 0xB1E0
        .set ISFS_Close, 0xB2A4
.elseif (region == 'K' || region == 'k') # RMCK
        .set ISFS_Open, 0xAEF8
        .set ISFS_Seek, 0xB208
        .set ISFS_Write, 0xB35C
        .set ISFS_Close, 0xB420
.else # Invalid Region
        .abort
.endif

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Start Register Safety/Backup #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

push_stack

lis r30, 0x8016 #Set 1st half address for ISFS Functions

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#           ISFS_Open Arguments          #
#            r3 = Path to File           #
# r4 = Permission Byte (1 Read, 2 Write) #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

bl file_path

.llong 0x2F73686172656432 #String name of /shared2/DWC_AUTHDATA
.llong 0x2F4457435F415554
.llong 0x4844415441000000

file_path:
mflr r3
li r4, 0x2

call_isfs ISFS_Open
cmpwi r3, 0x0
blt- the_end

mr r31, r3 #Backup file descriptor

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#                 ISFS_Write Arguments                 #
#                 r3 = File Descriptor                 #
# r4 = Address Pointer to String of Data to be Written #
#             r5 = Amount of Bytes to Write            #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lis r4, 0x8000
ori r4, r4, 0x1620
li r5, 0x8

call_isfs ISFS_Write
cmpwi r3, 0x8
bne- the_end

#~~~~~~~~~~~~~~~~~~~~~~#
# ISFS_Close Arguments #
# r3 = File Descriptor #
#~~~~~~~~~~~~~~~~~~~~~~#

mr r3, r31 #Move backed up file descriptor to r3

call_isfs ISFS_Close

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# End Register Safety/Backup; Default Instruction #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

the_end:
pop_stack
default_instruction

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#



Code creator: zak
Code credits: Star (helped with Source), Megazig (ISFS functions founder)

Print this item

  Futury Fly (GCN)
Posted by: DxrkLandon - 02-16-2019, 06:01 AM - Forum: Incomplete/Outdated Codes - Replies (1)

Future Fly (GCN)

For GCN Controller only.

This code is an enhancement of the original Free Fly Code. When the race/battle starts, press Up no the C Stick to Levitate Up. To levitate back down, push the C stick down. Push left to shift left in the air, right to shift right. The XXXX, YYYY, and ZZZZ values are for the deactivation of the code when you are in the air. Use your analog stick to navigate your vehicle when in the air, and use the A button to 'fly' forward or B button to 'fly' backwards.

This code makes use of memory addresses 0x80001600 thru 0x8000161F, make sure no other codes in your GCT/Cheat-Manager are using those addresses!

[NTSC-U]
04001600 43700000
04001604 42F00000
04001608 43400000
0400160C 43700000
04001610 BD500000
04001614 BD800000
04001618 00000001
C27E4C9A 00000003
3DE08000 5460063E
1E600004 926F1534
60000000 00000000
0400161C 00000000
2C34C204 FF0000A0
C25AA6FC 00000032
EC7A01F2 3E408000
3DE08035 3DC0809C
81CED110 81CE0020
82721534 7DCE9A14
81CE0000 81CE0024
81CEFFF8 81CE0008
81CE0008 39CE0010
7C0EF000 40820150
C03E0068 C33E006C
C2FE0070 C232161C
D23E00E4 D23E00E8
3DC0808B C20E053C
89CFC205 C2321608
2C0E00A0 40810008
EF39882A 2C0E0058
40800008 EF398828
89CFC204 C232160C
FE408850 FE30946E
2C0E0058 4080000C
FE208850 4800000C
2C0E00A0 4081001C
C27EFF8C EE730472
EC219828 C27EFFAC
EE730472 EEF79828
A1CFC200 C2521610
FE209050 FE508CAE
C2321600 71D30280
2C130280 40820014
C2321604 FE208850
FE409050 48000010
71D30180 2C130180
40820050 A1D2161A
2C0E0001 41820020
C27EFFAC EE730472
EC219828 C27EFF8C
EE730472 EEF7982A
48000028 C27EFF94
EE730472 EC21982A
C27EFFA4 EE730472
EF39982A C27EFFB4
EE730472 EEF7982A
89CFC202 2C0E00A0
40810008 D25E00E8
2C0E0058 4080000C
FE609050 D27E00E8
89CFC203 C2321614
2C0E0058 40800008
D23E00E4 2C0E00A0
4081000C FE608850
D27E00E4 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
045AA6FC EC7A01F2
E0000000 80008000

[PAL]
04001600 43700000
04001604 42F00000
04001608 43400000
0400160C 43700000
04001610 BD500000
04001614 BD800000
04001618 00000001
C27EEFA8 00000003
3DE08000 5460063E
1E600004 926F1534
60000000 00000000
0400161C 00000000
2C350584 FF0000A0
C25B5624 00000032
EC7A01F2 3E408000
3DE08035 3DC0809C
81CE18F8 81CE0020
82721534 7DCE9A14
81CE0000 81CE0024
81CEFFF8 81CE0008
81CE0008 39CE0010
7C0EF000 40820150
C03E0068 C33E006C
C2FE0070 C232161C
D23E00E4 D23E00E8
3DC0808B C20E4BEC
89CF0585 C2321608
2C0E00A0 40810008
EF39882A 2C0E0058
40800008 EF398828
89CF0584 C232160C
FE408850 FE30946E
2C0E0058 4080000C
FE208850 4800000C
2C0E00A0 4081001C
C27EFF8C EE730472
EC219828 C27EFFAC
EE730472 EEF79828
A1CF0580 C2521610
FE209050 FE508CAE
C2321600 71D30280
2C130280 40820014
C2321604 FE208850
FE409050 48000010
71D30180 2C130180
40820050 A1D2161A
2C0E0001 41820020
C27EFFAC EE730472
EC219828 C27EFF8C
EE730472 EEF7982A
48000028 C27EFF94
EE730472 EC21982A
C27EFFA4 EE730472
EF39982A C27EFFB4
EE730472 EEF7982A
89CF0582 2C0E00A0
40810008 D25E00E8
2C0E0058 4080000C
FE609050 D27E00E8
89CF0583 C2321614
2C0E0058 40800008
D23E00E4 2C0E00A0
4081000C FE608850
D27E00E4 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
045B5624 EC7A01F2
E0000000 80008000

[NTSC-J]
04001600 43700000
04001604 42F00000
04001608 43400000
0400160C 43700000
04001610 BD500000
04001614 BD800000
04001618 00000001
C27EE614 00000003
3DE08000 5460063E
1E600004 926F1534
60000000 00000000
0400161C 00000000
2C34FF04 FF0000A0
C25B4FA4 00000032
EC7A01F2 3E408000
3DE08035 3DC0809C
81CE0958 81CE0020
82721534 7DCE9A14
81CE0000 81CE0024
81CEFFF8 81CE0008
81CE0008 39CE0010
7C0EF000 40820150
C03E0068 C33E006C
C2FE0070 C232161C
D23E00E4 D23E00E8
3DC0808B C20E3D4C
89CFFF05 C2321608
2C0E00A0 40810008
EF39882A 2C0E0058
40800008 EF398828
89CFFF04 C232160C
FE408850 FE30946E
2C0E0058 4080000C
FE208850 4800000C
2C0E00A0 4081001C
C27EFF8C EE730472
EC219828 C27EFFAC
EE730472 EEF79828
A1CFFF00 C2521610
FE209050 FE508CAE
C2321600 71D30280
2C130280 40820014
C2321604 FE208850
FE409050 48000010
71D30180 2C130180
40820050 A1D2161A
2C0E0001 41820020
C27EFFAC EE730472
EC219828 C27EFF8C
EE730472 EEF7982A
48000028 C27EFF94
EE730472 EC21982A
C27EFFA4 EE730472
EF39982A C27EFFB4
EE730472 EEF7982A
89CFFF02 2C0E00A0
40810008 D25E00E8
2C0E0058 4080000C
FE609050 D27E00E8
89CFFF03 C2321614
2C0E0058 40800008
D23E00E4 2C0E00A0
4081000C FE608850
D27E00E4 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
045B4FA4 EC7A01F2
E0000000 80008000

[NTSC-K] (not working)
04001600 43700000
04001604 42F00000
04001608 43400000
0400160C 43700000
04001610 BD500000
04001614 BD800000
04001618 00000001
C27DD368 00000003
3DE08000 5460063E
1E600004 926F1534
60000000 00000000
0400161C 00000000
2C33E584 FF0000A0
C25A367C 00000032
EC7A01F2 3E408000
3DE08034 3DC0809B
81CEFF38 81CE0020
82721534 7DCE9A14
81CE0000 81CE0024
81CEFFF8 81CE0008
81CE0008 39CE0010
7C0EF000 40820150
C03E0068 C33E006C
C2FE0070 C232161C
D23E00E4 D23E00E8
3DC0808B C20E3D4C <--right side word instruction needs porting
89CFFF05 C2321608 <--left side word instruction needs porting
2C0E00A0 40810008
EF39882A 2C0E0058
40800008 EF398828
89CFFF04 C232160C <--left side word instruction needs porting
FE408850 FE30946E
2C0E0058 4080000C
FE208850 4800000C
2C0E00A0 4081001C
C27EFF8C EE730472
EC219828 C27EFFAC
EE730472 EEF79828
A1CFFF00 C2521610 <--left side word instruction needs porting
FE209050 FE508CAE
C2321600 71D30280
2C130280 40820014
C2321604 FE208850
FE409050 48000010
71D30180 2C130180
40820050 A1D2161A
2C0E0001 41820020
C27EFFAC EE730472
EC219828 C27EFF8C
EE730472 EEF7982A
48000028 C27EFF94
EE730472 EC21982A
C27EFFA4 EE730472
EF39982A C27EFFB4
EE730472 EEF7982A
89CFFF02 2C0E00A0 <--left side word instruction needs porting
40810008 D25E00E8
2C0E0058 4080000C
FE609050 D27E00E8
89CFFF03 C2321614 <--left side word instruction needs porting
2C0E0058 40800008
D23E00E4 2C0E00A0
4081000C FE608850
D27E00E4 00000000
E0000000 00000000
2833XXXX YYYYZZZZ
045A367C EC7A01F2
E0000000 80008000

Code creator: mdmwii

Print this item

  Freeze Certain Menu/Screen Animations
Posted by: zak - 02-14-2019, 05:05 PM - Forum: Cheat Codes - No Replies

Freeze Certain Menu/Screen Animations

This code will freeze menu/screen animations such as the pop-up feature of selecting a certain license, the animation of an option selection when choosing the selection, plus other various little things. If used in a race, this causes the position rank animation not to update to your real position. It also causes opponents' tag names to stick in certain locations of your screen.

If activated during track vote, and once you have voted, you won't be able to see the track picks. The WW will continue for everyone else but stall at the lakitu screen (before countdown is first initiated). The stalling of the WW will go for about 3 minutes. You are still on the lottery screen but everyone else is at the lakitu screen. In smaller WW's, once you D/C, this may cause everyone else to D/C.

NTSC-U
2834XXXX YYYYZZZZ
0460B524 3B200000
E0000000 00000000
2834XXXX YYYYZZZZ
0460B524 7C992378
E0000000 80008000

PAL
2834XXXX YYYYZZZZ
0463C944 3B200000
E0000000 00000000
2834XXXX YYYYZZZZ
0463C944 7C992378
E0000000 80008000

NTSC-J
2834XXXX YYYYZZZZ
0463BFB0 3B200000
E0000000 00000000
2834XXXX YYYYZZZZ
0463BFB0 7C992378
E0000000 80008000

NTSC-K
2833XXXX YYYYZZZZ
0462AC5C 3B200000
E0000000 00000000
2833XXXX YYYYZZZZ
0462AC5C 7C992378
E0000000 80008000

'Source':
mr 25, r4 changed to li 25, 0

Code creator: zak

Print this item

  Freeze Certain Menu/Screen Animations (zak's original version)
Posted by: zak - 02-14-2019, 05:03 PM - Forum: Incomplete/Outdated Codes - No Replies

Freeze Certain Menu/Screen Animations (zak's original version)

NOTE: Outdated by my version in main codes forum

This code will freeze menu/screen animations such as the pop-up feature of selecting a certain license, the animation of an option selection when choosing the selection, plus other various little things. If used in a race, this causes the position rank animation not to update to your real position. It also causes opponents' tag names to stick in certain locations of your screen.

If activated during track vote, and once you have voted, you won't be able to see the track picks. The WW will continue for everyone else but stall at the lakitu screen (before countdown is first initiated). The stalling of the WW will go for about 3 minutes. You are still on the lottery screen but everyone else is at the lakitu screen. In smaller WW's, once you D/C, this may cause everyone else to D/C.

NTSC-U
2834XXXX YYYYZZZZ
C260B5F0 00000002
3B200000 933F0038
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
0460B5F0 933F0038
E0000000 80008000

PAL
2834XXXX YYYYZZZZ
C263CA10 00000002
3B200000 933F0038
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
0463CA10 933F0038
E0000000 80008000

NTSC-J
2834XXXX YYYYZZZZ
C263C07C 00000002
3B200000 933F0038
60000000 00000000
E0000000 00000000
2834XXXX YYYYZZZZ
0463C07C 933F0038
E0000000 80008000

NTSC-K
2833XXXX YYYYZZZZ
C262AD28 00000002
3B200000 933F0038
60000000 00000000
E0000000 00000000
2833XXXX YYYYZZZZ
0462AD28 933F0038
E0000000 80008000

Source:
li r25, 0x0 #Load the value of 0 into Register 25
stw r25, 0x0038 (r31) #Store the word of Register 25 to the address of Register 31 plus offset 0x0038
nop #Nop needed for odd amount of ASM instructions

Code creator: zak

Print this item

  Lightning & Thunder Cloud Shrunk Time Modifier
Posted by: zak - 02-13-2019, 07:44 PM - Forum: Cheat Codes - No Replies

Lightning & Thunder Cloud Shrunk Time Modifier

Works everywhere. This code allows you to modify the time being shrunk from a TC zap. If used online, the visual effects (of growing back quicker/slower/etc) only happen on your screen.

NTSC-U
04572F14 XXXXXXXX

PAL
04579778 XXXXXXXX

NTSC_J
045790F8 XXXXXXXX

NTSC-K
045677D0 XXXXXXXX

XXXXXXXX Values:
38030000 = Shrunk Forever til you use next Power Item
3803FFFF = Default (subi r0, r3, 1)
3803FFFE = Half the Time compared to Default
3803FFFD = 1/3 of the Time 
38000000 = Don't get shrunk when zapped, you will still spin out and lose speed

Code creator: mdmwii

Print this item

  Ultimate Region ID Cycler In Between Races
Posted by: zak - 02-12-2019, 07:11 PM - Forum: Cheat Codes - No Replies

Ultimate Region ID Cycler In Between Races

I have made this code in honor of Nutmeg who was the first person ever (in Feb 2012) to change Region ID's in between races online. Nutmeg would also change the default geo-location too, not just the Region ID line color itself. Only thing he didn't change was the flag image if said Region ID had one, which I decided to include in this code since I like the look of the flag images.

This code will cycle through all 7 Region IDs in ascending order and then repeat once China has been used. It's automated, no button activators required. Your Region ID (on your screen AND opponents' screen) along with the Region ID's default geo-location, and your flag image (if country code has a flag available) will cycle after every single race.

For example, your first race online will have all your normal Region ID, flag, and globe settings. But once you go to the next race of the session, your Region ID value will increment by 1 (the Region ID's default geolocation will be applied, and flag too if available). This cycle will repeat once per race. Once China's Region ID is used, the cycle will reset at Japan's Region ID.

Let's say you end your current WW session, and you were at Korea Region ID from the last cycle. You will see that you will now be at Seoul, S.Korea with the Korean Flag on the globe. Opponents will see these effects too if you are in a Room. Obviously whatever Region ID cycle you are on during the middle of a WW session, opponents will see the current Region ID Cycle's Globe & Flag settings when they join your WW.

NOTE: This code makes use of memory addresses 0x80001648 thru 0x8000164B, make sure no other codes you have on are using those addresses!

NTSC-U
C2612330 0000000E
89080228 9421FFB0
BDC10008 3DC08024
61CE5A90 3DE08042
61EF67E7 3E008000
82301648 8A5100C5
3A520001 2C120007
41A00008 3A400000
1E720008 7E8E9A14
82B40000 82D40004
9A4F0000 92AF0071
92CF1075 9A5100C5
92B100B8 92D100BC
B9C10008 38210050
60000000 00000000
C2661090 00000002
3FC08000 93FE1648
981F00C5 00000000

PAL
C2643750 0000000E
89080228 9421FFB0
BDC10008 3DC08024
61CE5DA8 3DE08042
61EFAB67 3E008000
82301648 8A5100C5
3A520001 2C120007
41A00008 3A400000
1E720008 7E8E9A14
82B40000 82D40004
9A4F0000 92AF0071
92CF1075 9A5100C5
92B100B8 92D100BC
B9C10008 38210050
60000000 00000000
C2663174 00000002
3FC08000 93FE1648
981F00C5 00000000

NTSC-J
C2642DBC 0000000E
89080228 9421FFB0
BDC10008 3DC08024
61CE5758 3DE08042
61EFA4E7 3E008000
82301648 8A5100C5
3A520001 2C120007
41A00008 3A400000
1E720008 7E8E9A14
82B40000 82D40004
9A4F0000 92AF0071
92CF1075 9A5100C5
92B100B8 92D100BC
B9C10008 38210050
60000000 00000000
C26627E0 00000002
3FC08000 93FE1648
981F00C5 00000000

NTSC-K
C2631A68 0000000E
89080228 9421FFB0
BDC10008 3DC08024
61CE5B88 3DE08041
61EF8B87 3E008000
82301648 8A5100C5
3A520001 2C120007
41A00008 3A400000
1E720008 7E8E9A14
82B40000 82D40004
9A4F0000 92AF0071
92CF1075 9A5100C5
92B100B8 92D100BC
B9C10008 38210050
60000000 00000000
C265148C 00000002
3FC08000 93FE1648
981F00C5 00000000




List of Sources:

Source (Region ID Cycler; NTSC-K):

#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#                        Varying Static Mem Address Notes                       #
# 0x80245A90 (NTSC-U, Start of List of Country/Res Codes + Default Geolocation) #
#   0x80245DA8 (PAL, Start of List of Country/Res Codes + Default Geolocation)  #
# 0x80245758 (NTSC-J, Start of List of Country/Res Codes + Default Geolocation) #
# 0x80245B88 (NTSC-K) Start of List of Country/Res Codes + Default Geolocation) #
#                                       --                                      #
#          0x804267E7 (NTSC-U, Reg ID Changer Address for your screen)          #
#            0x8042AB67 (PAL, Reg ID Changer Address for your screen)           #
#          0x8042A4E7 (NTSC-J, Reg ID Changer Address for your screen)          #
#          0x80418B87 (NTSC-K, Reg ID Changer Address for your screen)          #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Default Instruction, Start Register Safety #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lbz r8, 0x0228 (r8)
stwu r1,-80(r1)
stmw r14,8(r1)

#~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Static Mem Address Config #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lis r14, 0x8024 #Set 1st half address (NTSC-K) where default Japan country code word then geo-location word are stored
ori r14, r14, 0x5B88 #Set 2nd half address

lis r15, 0x8041 #Set 1st half address (NTSC-K) to Region ID byte location of Anarions' Region ID Changer Code
ori r15, r15, 0x8B87 #Set 2nd half address

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Load Pointer, Load Red ID byte from USER Record Pointer #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lis r16, 0x8000 #Set 1st half address to load pointer from
lwz r17, 0x1648 (r16) #Load Word (pointer) from 0x80001648

lbz r18, 0xC5 (r17) #Load the byte from the address of the pointer plus offset 0xC5, this will be the region ID byte in your USER Record

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Cycle Region ID, Make Comparison Check #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

addi r18, r18, 1 #Add one to the current value of the Region ID User Record byte

cmpwi r18, 0x7 #Compare Region ID byte to 0x7 (1 beyond China)
blt+ dont_zero #If less than 7 (most likely to be), branch to dont_zero label

#~~~~~~~~~~~~~#
# Reset Cycle #
#~~~~~~~~~~~~~#

li r18, 0x0 #If NOT less than 7, reset Region ID byte to 0, we only need to use Region ID's 0 thru 6

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# dont_zero label (Don't Reset Cycle) #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

dont_zero:
mulli r19, r18, 0x8 #Multiple Region ID byte by 0x8 to get offset amount to add to address of Japan country code + residence code word value
add r20, r14, r19 #Add result of r19 to address of r15. r20's result will hold exact address location to corresponding Region ID's country code + res code word location

lwz r21, 0x0 (r20) #Load current Region ID's country code + residence code word value (0000 follows country code and res. code bytes) from address of r20
lwz r22, 0x4 (r20) #Load current Region ID's default geo location word value from address of 20 plus 0x4

stb r18, 0 (r15) #Store Region ID byte to proper location of Anarion's Region ID Changer Code
stw r21, 0x0071 (r15) #Store Country Code + Region Residence Code to proper location of Anarion's Country Flag Changer Code
stw r22, 0x1075 (r15) #Store Globe Location to proper location of Anarion's Globe Location Changer Code

stb r18, 0xC5 (r17) #Store Region ID byte to proper location in USER Record (the pointer)
stw r21, 0xB8 (r17) #Store Country Code + Region Residence Code to proper location in USER Record (the pointer with negative 0xD offset)
stw r22, 0xBC (r17) #Store Globe Location to proper location in USER Record (the pointer with negative 0x9 offset)

#~~~~~~~~~~~~~~~~~~~~~#
# End Register Safety #
#~~~~~~~~~~~~~~~~~~~~~#

lmw r14,8(r1)
addi r1,r1,80

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#

USER Record Pointer Save ASM:

#r30 safe for use, gets written to two steps later in subroutine#

lis r30, 0x8000 #Set 1st half address of where pointer will be stored in the crash handler
stw r31, 0x1648 (r30) #Store word of r31 (our pointer) to 0x80001648
stb r0, 0x00C5 (r31) #Default instruction, store Region ID Byte to spot in USER record when a room is first imitated




Code creator: zak  Blush
Code credits: Anarion (used his Reg ID, Flag, Globe Loc code addresses to make effects appear on your screen); Atlas (addresses for Default Geolocations in memory)

Print this item

  Graphical Item Warning Online
Posted by: zak - 02-11-2019, 08:27 PM - Forum: Cheat Codes - No Replies

Graphical Item Warning Online

Works Online only.

This code will place a graphical image on the bottom on your screen saying "ALERT!" whenever someone is holding an item (in inventory) that you have chosen in the code to monitor.

XX Value = Item to Monitor

XX Values:
00 = Green Shell
01 = Red Shell
02 = Banana
03 = Fib
04 = Shroom
05 = Triple Shrooms
06 = Bomb
07 = Blue Shell
08 = Shock
09 = Star
0A = Golden
0B = Mega
0C = Blooper
0D = POW
0E = TC
0F = Bullet Bill
10 = Triple Greens
11 = Triple Reds
12 = Triple Nanas
14 = Nothing / No Item Available

NOTE: This code makes use of the following memory addresses...
0x81660000 thru 0x8166002F
0x81670000 thru 0x81670003

Make sure no other codes in your GCT/Cheat-Manager are using those addresses.

NTSC-U
C200A3F0 00000007
9421FF80 BC610008
806DA358 80630044
80630000 3D808002
618C23E0 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C2009640 00000012
3D808167 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC08165 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1DF0 7D8803A6
4E800021 3D808002
618C1DD0 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C265EE14 00000003
88030001 1D960004
3D8C8166 900C0000
60000000 00000000
C265EE30 00000004
88100011 1D960004
3D8C8166 900C0000
3D608167 920B0000
60000000 00000000

PAL
C200A430 00000007
9421FF80 BC610008
806DA360 80630044
80630000 3D808002
618C2480 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C2009680 00000012
3D808167 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC08165 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1E90 7D8803A6
4E800021 3D808002
618C1E70 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C265E18C 00000003
88030001 1D960004
3D8C8166 900C0000
60000000 00000000
C265E1A8 00000004
88100011 1D960004
3D8C8166 900C0000
3D608167 920B0000
60000000 00000000

NTSC-J
C200A38C 00000007
9421FF80 BC610008
806DA360 80630044
80630000 3D808002
618C23A0 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C20095DC 00000012
3D808167 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC08165 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1DB0 7D8803A6
4E800021 3D808002
618C1D90 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C265D7F8 00000003
88030001 1D960004
3D8C8166 900C0000
60000000 00000000
C265D814 00000004
88100011 1D960004
3D8C8166 900C0000
3D608167 920B0000
60000000 00000000

NTSC-K
C200A538 00000007
9421FF80 BC610008
806DA380 80630044
80630000 3D808002
618C24E0 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C2009788 00000012
3D808167 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC08165 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1EF0 7D8803A6
4E800021 3D808002
618C1ED0 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C264C4A4 00000003
88030001 1D960004
3D8C8166 900C0000
60000000 00000000
C264C4C0 00000004
88100011 1D960004
3D8C8166 900C0000
3D608167 920B0000
60000000 00000000



List of Sources:
1st ASM (When Game loads StaticR.rel, Get Render Mode & Call Direct Print Setup Frame Buffer)

#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#       Register Notes:      #
# No need to backup r0 or LR #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~#
# Macros & Statements #
#~~~~~~~~~~~~~~~~~~~~~#

.macro push_stack
stwu r1, -0x80 (r1)
stmw r3, 0x8 (r1)
.endm

.macro pop_stack
lmw r3, 0x8 (r1)
addi r1, r1, 0x80
.endm

.macro call_link address
lis r12, \address@h
ori r12, r12, \address@l
mtlr r12
blrl
.endm

.macro default_instruction
lwz r0, 0x0014 (r1)
.endm

.set region, '' #Must set region value, or else source will not compile

.if (region == 'E' || region == 'e') # RMCE
.set nw4r_db_DirectPrint_SetupFB, 0x800223E0
.elseif (region == 'P' || region == 'p') # RMCP
.set nw4r_db_DirectPrint_SetupFB, 0x80022480
.elseif (region == 'J' || region == 'j') # RMCJ
.set nw4r_db_DirectPrint_SetupFB, 0x800223A0
.elseif (region == 'K' || region == 'k') # RMCK
.set nw4r_db_DirectPrint_SetupFB, 0x800224E0
.else # Invalid Region
.abort
.endif

#~~~~~~~~~~~~~~~~~~~~~~~#
# Start Register Safety #
#~~~~~~~~~~~~~~~~~~~~~~~#

push_stack

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Get Render Mode (RKSystem->mpVideo()->pRenderMode) #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

.if (region == 'E' || region == 'e') # RMCE
lwz r3, -0x5CA8(r13)
.elseif (region == 'P' || region == 'p') # RMCP
lwz r3, -0x5CA0(r13)
.elseif (region == 'J' || region == 'j') # RMCJ
lwz r3, -0x5CA0(r13)
.elseif (region == 'K' || region == 'k') # RMCK
lwz r3, -0x5C80(r13)
.endif

lwz r3, 0x0044(r3)
lwz r3, 0x0 (r3)

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Call nw4r::db: DirectPrint_SetupFB #
#         r3 = Render Mode           #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

call_link nw4r_db_DirectPrint_SetupFB

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# End Register Safety; Default Instruction #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

pop_stack
default_instruction

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#

==========

2nd ASM Source:

#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#       Register Notes:      #
# No need to backup r0 or LR #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~#
# Macros & Statements #
#~~~~~~~~~~~~~~~~~~~~~#

.macro push_stack
stwu r1, -0x80 (r1)
stmw r3, 0x8 (r1) 
.endm

.macro pop_stack
lmw r3, 0x8 (r1)
addi r1, r1, 0x80
.endm

.macro call_link address
lis r12, \address@h
ori r12, r12, \address@l
mtlr r12
blrl
.endm

.macro default_instruction
lwz r12, 0x0 (r3)
.endm

.set region, '' #Must set region value, or else source will not compile

.if (region == 'E' || region == 'e') # RMCE

.set nw4r_db_DirectPrint_Printf, 0x80021DF0
.set nw4r_db_DirectPrint_StoreCache, 0x80021DD0

.elseif (region == 'P' || region == 'p') # RMCP

.set nw4r_db_DirectPrint_Printf, 0x80021E90
.set nw4r_db_DirectPrint_StoreCache, 0x80021E70

.elseif (region == 'J' || region == 'j') # RMCJ

.set nw4r_db_DirectPrint_Printf, 0x80021DB0
.set nw4r_db_DirectPrint_StoreCache, 0x80021D90

.elseif (region == 'K' || region == 'k') # RMCK

.set nw4r_db_DirectPrint_Printf, 0x80021EF0
.set nw4r_db_DirectPrint_StoreCache, 0x80021ED0

.else # Invalid Region
.abort
.endif

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#     Check to See if a Race is Active:    #
#       Load Status Word from Mem 81       #
# If not zero, we know to execute the code #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lis r12, 0x8167
lwz r12, 0x0 (r12)
cmpwi r12, 0x0
beq- dont_execute

#~~~~~~~~~~~~~~~~~~~~~~~#
# Start Register Safety #
#~~~~~~~~~~~~~~~~~~~~~~~#

push_stack

#~~~~~~~~~~~~~~~~~#
# Pre-Loop Config #
#~~~~~~~~~~~~~~~~~#

lis r14, 0x8165 #Set address 0x4 before player slot 0 item word address location of 0x81660000
ori r14, r14, 0xFFFC
li r15, 0xXX #User's set item value to Monitor; set a value here when compiling
li r16, 0xC #Run loop max of 12 times for 12 possible players

#~~~~~~#
# Loop #
#~~~~~~#

the_loop:
lwzu r17, 0x0004 (r14)
cmpw r17, r15 #Compare item value of current read player to monitored item value
beq- item_found #If item monitored is held by opponent, jump to item_found label
subic. r16, r16, 1
bne+ the_loop

b not_found #Item not found, skip rest of code, go to pop_stack

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Item Found, Create ASCII String #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

item_found:
bl ascii_string

.llong 0x414C455254210000 #String for "ALERT!"

ascii_string:
mflr r6 #4th Argument set for DirectPrint Printf

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#              DirectPrint Printf & Store Cache               #
#             r3 = X coordinate (starts far left)             #
#           r4 = Y coordinate (starts at very top)            #
#                   r5 = 0 No Wrap; 1 Wrap                    #
# r6 = Address Pointer to String that will be Drawn on Screen #
#               r7 thru r10 printf format args                #
#            f1 thru f13 printf float format args             #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

li r3, 0x80
li r4, 0xD8
li r5, 0x1

call_link nw4r_db_DirectPrint_Printf
call_link nw4r_db_DirectPrint_StoreCache

#~~~~~~~~~~~~~~~~~~~~~#
# End Register Safety #
#~~~~~~~~~~~~~~~~~~~~~#

not_found:
pop_stack

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# dont_execute label; Default Instruction #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

dont_execute:
default_instruction

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#


==========

3rd ASM Source:
lbz r0, 0x1 (r3) #Default instruction
mulli r12, r22, 0x4 #Multiple Player slot by 4, store in r12. Thus lower 16 bits of r12 will hold second half of mem81 address
addis r12, r12, 0x8166 #Add 0x8166 to upper 16 bits of r12. The player slot will increment/separate the address by 0x4 depending on slot value
stw r0, 0x0 (r12) #Store current read player's item to r12 plus offset 0x0193 (address for that player's item is now finalized)

==========

4th ASM Source:
lbz r0, 0x0011 (r16) #Default instruction
mulli r12, r22, 0x4 #Multiple Player slot by 4, store in r12. Thus lower 16 bits of r12 will hold second half of mem81 address
addis r12, r12, 0x8166 #Add 0x8166 to upper 16 bits of r12. The player slot will increment/separate the address by 0x4 depending on slot value
stw r0, 0x0 (r12) #Store current read player's item to r12 plus offset 0x0193 (address for that player's item is now finalized)
lis r11, 0x8167 #Set 1st Half Address for Race-Status Word Check
stw r16, 0 (r11) #We need anything not zero at 0x81670000, store r16 to that spot



Code creator: zak
Code credits: Star & RiiDefi (Draw Text to Screen Code); Bully (Both Item Spy ASMs)

Print this item

  Graphical Item Warning Offline
Posted by: zak - 02-11-2019, 08:26 PM - Forum: Cheat Codes - No Replies

Graphical Item Warning Offline

Works Offline only.

This code will place a graphical image on the bottom on your screen saying "ALERT!" whenever someone is holding an item (in inventory) that you have chosen in the code to monitor.

XX Value = Item to Monitor

XX Values:
00 = Green Shell
01 = Red Shell
02 = Banana
03 = Fib
04 = Shroom
05 = Triple Shrooms
06 = Bomb
07 = Blue Shell
08 = Shock
09 = Star
0A = Golden
0B = Mega
0C = Blooper
0D = POW
0E = TC
0F = Bullet Bill
10 = Triple Greens
11 = Triple Reds
12 = Triple Nanas
14 = Nothing / No Item Available

NOTE: This code makes use of the following memory addresses...
0x81500000 thru 0x8150002F
0x81510000 thru 0x81510003

Make sure no other codes in your GCT/Cheat-Manager are using those addresses.

NTSC-U
C200A3F0 00000007
9421FF80 BC610008
806DA358 80630044
80630000 3D808002
618C23E0 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C2009640 00000012
3D808151 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC0814F 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1DF0 7D8803A6
4E800021 3D808002
618C1DD0 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C278EEF8 00000004
801D008C 1D9B0004
3D8C8150 900C0000
3D608151 93AB0000
60000000 00000000

PAL
C200A430 00000007
9421FF80 BC610008
806DA360 80630044
80630000 3D808002
618C2480 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C2009680 00000012
3D808151 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC0814F 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1E90 7D8803A6
4E800021 3D808002
618C1E70 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C2797F04 00000004
801D008C 1D9B0004
3D8C8150 900C0000
3D608151 93AB0000
60000000 00000000


NTSC-J
C200A38C 00000007
9421FF80 BC610008
806DA360 80630044
80630000 3D808002
618C23A0 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C20095DC 00000012
3D808151 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC0814F 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1DB0 7D8803A6
4E800021 3D808002
618C1D90 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C2797570 00000004
801D008C 1D9B0004
3D8C8150 900C0000
3D608151 93AB0000
60000000 00000000


NTSC-K
C200A538 00000007
9421FF80 BC610008
806DA380 80630044
80630000 3D808002
618C24E0 7D8803A6
4E800021 B8610008
38210080 80010014
60000000 00000000
C2009788 00000012
3D808151 818C0000
2C0C0000 41820078
9421FF80 BC610008
3DC0814F 61CEFFFC
39E000XX 3A00000C
862E0004 7C117800
41820010 3610FFFF
4082FFF0 48000040
4800000D 414C4552
54210000 7CC802A6
38600080 388000D8
38A00001 3D808002
618C1EF0 7D8803A6
4E800021 3D808002
618C1ED0 7D8803A6
4E800021 B8610008
38210080 81830000
60000000 00000000
C27862C4 00000004
801D008C 1D9B0004
3D8C8150 900C0000
3D608151 93AB0000
60000000 00000000



List of Sources:
1st ASM (When Game loads StaticR.rel, Get Render Mode & Call Direct Print Setup Frame Buffer)

#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#       Register Notes:      #
# No need to backup r0 or LR #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~#
# Macros & Statements #
#~~~~~~~~~~~~~~~~~~~~~#

.macro push_stack
stwu r1, -0x80 (r1)
stmw r3, 0x8 (r1)
.endm

.macro pop_stack
lmw r3, 0x8 (r1)
addi r1, r1, 0x80
.endm

.macro call_link address
lis r12, \address@h
ori r12, r12, \address@l
mtlr r12
blrl
.endm

.macro default_instruction
lwz r0, 0x0014 (r1)
.endm

.set region, '' #Must set region value, or else source will not compile

.if (region == 'E' || region == 'e') # RMCE
.set nw4r_db_DirectPrint_SetupFB, 0x800223E0
.elseif (region == 'P' || region == 'p') # RMCP
.set nw4r_db_DirectPrint_SetupFB, 0x80022480
.elseif (region == 'J' || region == 'j') # RMCJ
.set nw4r_db_DirectPrint_SetupFB, 0x800223A0
.elseif (region == 'K' || region == 'k') # RMCK
.set nw4r_db_DirectPrint_SetupFB, 0x800224E0
.else # Invalid Region
.abort
.endif

#~~~~~~~~~~~~~~~~~~~~~~~#
# Start Register Safety #
#~~~~~~~~~~~~~~~~~~~~~~~#

push_stack

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Get Render Mode (RKSystem->mpVideo()->pRenderMode) #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

.if (region == 'E' || region == 'e') # RMCE
lwz r3, -0x5CA8(r13)
.elseif (region == 'P' || region == 'p') # RMCP
lwz r3, -0x5CA0(r13)
.elseif (region == 'J' || region == 'j') # RMCJ
lwz r3, -0x5CA0(r13)
.elseif (region == 'K' || region == 'k') # RMCK
lwz r3, -0x5C80(r13)
.endif

lwz r3, 0x0044(r3)
lwz r3, 0x0 (r3)

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Call nw4r::db: DirectPrint_SetupFB #
#         r3 = Render Mode           #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

call_link nw4r_db_DirectPrint_SetupFB

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# End Register Safety; Default Instruction #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

pop_stack
default_instruction

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#

==========

2nd ASM Source:

#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#

#

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#       Register Notes:      #
# No need to backup r0 or LR #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

#~~~~~~~~~~~~~~~~~~~~~#
# Macros & Statements #
#~~~~~~~~~~~~~~~~~~~~~#

.macro push_stack
stwu r1, -0x80 (r1)
stmw r3, 0x8 (r1) 
.endm

.macro pop_stack
lmw r3, 0x8 (r1)
addi r1, r1, 0x80
.endm

.macro call_link address
lis r12, \address@h
ori r12, r12, \address@l
mtlr r12
blrl
.endm

.macro default_instruction
lwz r12, 0x0 (r3)
.endm

.set region, '' #Must set region value, or else source will not compile

.if (region == 'E' || region == 'e') # RMCE

.set nw4r_db_DirectPrint_Printf, 0x80021DF0
.set nw4r_db_DirectPrint_StoreCache, 0x80021DD0

.elseif (region == 'P' || region == 'p') # RMCP

.set nw4r_db_DirectPrint_Printf, 0x80021E90
.set nw4r_db_DirectPrint_StoreCache, 0x80021E70

.elseif (region == 'J' || region == 'j') # RMCJ

.set nw4r_db_DirectPrint_Printf, 0x80021DB0
.set nw4r_db_DirectPrint_StoreCache, 0x80021D90

.elseif (region == 'K' || region == 'k') # RMCK

.set nw4r_db_DirectPrint_Printf, 0x80021EF0
.set nw4r_db_DirectPrint_StoreCache, 0x80021ED0

.else # Invalid Region
.abort
.endif

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#       Check to See if a Race is Active:       #
#         Load Status Word from Mem 81          #
# If not zero, we know to execute the Draw Code #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

lis r12, 0x8151
lwz r12, 0x0 (r12)
cmpwi r12, 0x0
beq- dont_execute

#~~~~~~~~~~~~~~~~~~~~~~~#
# Start Register Safety #
#~~~~~~~~~~~~~~~~~~~~~~~#

push_stack

#~~~~~~~~~~~~~~~~~#
# Pre-Loop Config #
#~~~~~~~~~~~~~~~~~#

lis r14, 0x814F #Set address 0x4 before player slot 0 item word address location of 0x81660000
ori r14, r14, 0xFFFC
li r15, 0xXX #User's set item value to Monitor; set a value here when compiling
li r16, 0xC #Run loop max of 12 times for 12 possible players

#~~~~~~#
# Loop #
#~~~~~~#

the_loop:
lwzu r17, 0x0004 (r14)
cmpw r17, r15 #Compare item value of current read player to monitored item value
beq- item_found #If item monitored is held by opponent, jump to item_found label
subic. r16, r16, 1
bne+ the_loop

b not_found #Item not found, skip rest of code, go to pop_stack

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# Item Found, Create ASCII String #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

item_found:
bl ascii_string

.llong 0x414C455254210000 #String for "ALERT!"

ascii_string:
mflr r6 #4th Argument set for DirectPrint Printf

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#              DirectPrint Printf & Store Cache               #
#                   Purpose: Draw on Screen                   #
#             r3 = X coordinate (starts far left)             #
#            r4 = Y coordinate (starts at very top)           #
#                   r5 = 0 No Wrap; 1 Wrap                    #
# r6 = Address Pointer to String that will be Drawn on Screen #
#              r7 thru r10 printf format args                 #
#           f1 thru f13 printf float format args              #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

li r3, 0x80
li r4, 0xD8
li r5, 0x1

call_link nw4r_db_DirectPrint_Printf
call_link nw4r_db_DirectPrint_StoreCache

#~~~~~~~~~~~~~~~~~~~~~#
# End Register Safety #
#~~~~~~~~~~~~~~~~~~~~~#

not_found:
pop_stack

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# dont_execute label; Default Instruction #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#

dont_execute:
default_instruction

#

#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#


==========

3rd ASM Source:
lwz r0, 0x8C (r29) #Default Instruction, r0 holds current Player/CPU's Held Item
mulli r12, r27, 0x4 #Multiple Player Slot value in r27 by 0x4, put result in r11
addis r12, r12, 0x8150 #Add 0x8150 to upper 16 bits of r12. The player slot will increment/separate the address by 0x4 depending on slot value
stw r0, 0x0 (r12) #Store current Player/CPU's Held Item value to address of r12
lis r11, 0x8151 #Set 1st Half Address for Race-Status Word Check
stw r29, 0x0 (r11) #We need anything not zero at 0x81510000, store r29 to that spot



Code creator: zak
Code credits: Star & RiiDefi (Draw Text to Screen Code); Bully (Item Spy ASM)

Print this item

  Change Earth Rotation Speed
Posted by: zak - 02-10-2019, 08:10 PM - Forum: Cheat Codes - No Replies

Change Earth Rotation Speed

This code allows you to modify the rotating speed of the WiFi globe.

NTSC-U
0489E8AC XXXXXXXX

PAL
048A3164 XXXXXXXX

NTSC-J
048A22C4 XXXXXXXX

NTSC-K
048915C4 XXXXXXXX

Default value = 3C8EFA35

Code creator: Atlas

Print this item