Launch Any Wii Channel
Press your button activator at any time to launch the desired Wii Channel of your choice.
This code does not work for launching the Region Select channel.
NTSC-U
2834XXXX YYYYZZZZ
C20095F4 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CD960
7D8803A6 4E800020
60000000 00000000
E0000000 80008000
PAL
2834XXXX YYYYZZZZ
C2009634 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CDA00
7D8803A6 4E800020
60000000 00000000
E0000000 80008000
NTSC-J
2834XXXX YYYYZZZZ
C2009590 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CD920
7D8803A6 4E800020
60000000 00000000
E0000000 80008000
NTSC-K
2833XXXX YYYYZZZZ
C200973C 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CDD5C
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:
#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#
#
.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 The_Addr, 0x801AD960
.elseif (region == 'P' || region == 'p') # RMCP
.set The_Addr, 0x801ADA00
.elseif (region == 'J' || region == 'j') # RMCJ
.set The_Addr, 0x801AD920
.elseif (region == 'K' || region == 'k') # RMCK
.set The_Addr, 0x801ADD5C
.else # Invalid Region
.abort
.endif
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# _OSLaunchTitle Arguments #
# r3 = Upper 32 bits of Title ID #
# r4 = Lower 32 bits of Title ID #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
lis r3, 0x0001 #Example value used just for compilation
ori r3, r3, 0x0002
lis r4, 0x4841
ori r4, r4, 0x4341
#~~~~~~~~~~~~~~~~~~~~~#
# Call _OSLaunchTitle #
#~~~~~~~~~~~~~~~~~~~~~#
lis r12, The_Addr@h
ori r12, r12, The_Addr@l
mtlr r12
blr
#
#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#
Press your button activator at any time to launch the desired Wii Channel of your choice.
This code does not work for launching the Region Select channel.
NTSC-U
2834XXXX YYYYZZZZ
C20095F4 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CD960
7D8803A6 4E800020
60000000 00000000
E0000000 80008000
PAL
2834XXXX YYYYZZZZ
C2009634 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CDA00
7D8803A6 4E800020
60000000 00000000
E0000000 80008000
NTSC-J
2834XXXX YYYYZZZZ
C2009590 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CD920
7D8803A6 4E800020
60000000 00000000
E0000000 80008000
NTSC-K
2833XXXX YYYYZZZZ
C200973C 00000005
3C60UUUU 6063UUUU
3C80LLLL 6084LLLL
3D80801A 618CDD5C
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:
#~~~~~~~~~~~~~~~~#
# START ASSEMBLY #
#~~~~~~~~~~~~~~~~#
#
.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 The_Addr, 0x801AD960
.elseif (region == 'P' || region == 'p') # RMCP
.set The_Addr, 0x801ADA00
.elseif (region == 'J' || region == 'j') # RMCJ
.set The_Addr, 0x801AD920
.elseif (region == 'K' || region == 'k') # RMCK
.set The_Addr, 0x801ADD5C
.else # Invalid Region
.abort
.endif
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
# _OSLaunchTitle Arguments #
# r3 = Upper 32 bits of Title ID #
# r4 = Lower 32 bits of Title ID #
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
lis r3, 0x0001 #Example value used just for compilation
ori r3, r3, 0x0002
lis r4, 0x4841
ori r4, r4, 0x4341
#~~~~~~~~~~~~~~~~~~~~~#
# Call _OSLaunchTitle #
#~~~~~~~~~~~~~~~~~~~~~#
lis r12, The_Addr@h
ori r12, r12, The_Addr@l
mtlr r12
blr
#
#~~~~~~~~~~~~~~#
# END ASSEMBLY #
#~~~~~~~~~~~~~~#