Launch Any Wii Channel Instead of MKChannel [Vega, Kazuki]
#1
This code will launch the desired Wii Channel of your choice instead of MKChannel.
if desired Wii Channel is not exsist, system menu will be launched.

This code does not work for launching the Region Select channel.

(NTSC-U)
c20095f4 00000017
3d80809c 818cd508
2c0c0000 418200a4
818c0000 2c0c0000
41820098 818c0000
2c0c007a 40a2008c
3d608016 616cadbc
48000031 2f746974
6c652fXX XXXXXXXX
XXXXXX2f YYYYYYYY
YYYYYYYY 2f636f6e
74656e74 2f746974
6c652e74 6d640000
7c6802a6 38800001
7d8803a6 4e800021
2c030000 41800024
616cb2e4 7d8803a6
4e800021 3c60UUUU
6063UUUU 3c80LLLL
6084LLLL 4800000c
38600001 38800002
3d80801a 618cd960
7d8803a6 4e800020
88030051 60000000



(PAL)
c2009634 00000017
3d80809c 818c1e38
2c0c0000 418200a4
818c0000 2c0c0000
41820098 818c0000
2c0c007a 40a2008c
3d608016 616cae5c
48000031 2f746974
6c652fXX XXXXXXXX
XXXXXX2f YYYYYYYY
YYYYYYYY 2f636f6e
74656e74 2f746974
6c652e74 6d640000
7c6802a6 38800001
7d8803a6 4e800021
2c030000 41800024
616cb384 7d8803a6
4e800021 3c60UUUU
6063UUUU 3c80LLLL
6084LLLL 4800000c
38600001 38800002
3d80801a 618cda00
7d8803a6 4e800020
88030051 60000000



(NTSC-J)
c2009590 00000017
3d80809c 818c0e98
2c0c0000 418200a4
818c0000 2c0c0000
41820098 818c0000
2c0c007a 40a2008c
3d608016 616cad7c
48000031 2f746974
6c652fXX XXXXXXXX
XXXXXX2f YYYYYYYY
YYYYYYYY 2f636f6e
74656e74 2f746974
6c652e74 6d640000
7c6802a6 38800001
7d8803a6 4e800021
2c030000 41800024
616cb2a4 7d8803a6
4e800021 3c60UUUU
6063UUUU 3c80LLLL
6084LLLL 4800000c
38600001 38800002
3d80801a 618cd920
7d8803a6 4e800020
88030051 60000000



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

XXXXXXXXXXXXXXXX = Ascii code of UUUUUUUU
YYYYYYYYYYYYYYYY = Ascii code of LLLLLLLL

Example U/L/X/Y value:

Mii Channel (non-Korean)
UUUUUUUU = 00010002
LLLLLLLL = 48414341
XXXXXXXXXXXXXXXX = 3030303130303032
YYYYYYYYYYYYYYYY = 3438343134333431

Riivolution
UUUUUUUU = 00010001
LLLLLLLL = 52494956
XXXXXXXXXXXXXXXX = 3030303130303031
YYYYYYYYYYYYYYYY = 3532343934393536

HBC (LULZ)
UUUUUUUU = 00010001

LLLLLLLL = 4c554c5a
XXXXXXXXXXXXXXXX = 3030303130303031
YYYYYYYYYYYYYYYY = 3463353534633561

Code creator: Vega, Kazuki

Code credits: Vega (Launch Any Wii Channel, Steal-Mii), Megazig (all isfs functions), MrBean35000vr (menu_pointer)

Source
#inject at 0x800095F4 (NTSC-U)
#inject at 0x80009634 (PAL)
#inject at 0x80009590 (NTSC-J)

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

.if    (region == 'E' || region == 'e') # RMCE
        .set menu_pointer, 0x809CD508
        .set ISFS_Open, 0xADBC
        .set ISFS_Close, 0xB2E4
        .set The_Addr, 0x801AD960
.elseif (region == 'P' || region == 'p') # RMCP
        .set menu_pointer, 0x809C1E38
        .set ISFS_Open, 0xAE5C
        .set ISFS_Close, 0xB384
        .set The_Addr, 0x801ADA00
.elseif (region == 'J' || region == 'j') # RMCJ
        .set menu_pointer, 0x809C0E98
        .set ISFS_Open, 0xAD7C
        .set ISFS_Close, 0xB2A4
        .set The_Addr, 0x801AD920
.else # Invalid Region
        .abort
.endif

lis r12,menu_pointer@h
lwz r12,menu_pointer@l (r12)
cmpwi r12,0
beq- skip_all
lwz r12,0(r12)
cmpwi r12,0
beq- skip_all
lwz r12,0(r12)

cmpwi r12,0x7A #Mario Kart Channel (from Main Menu)
bne+ skip_all

#~~~~~~~~~~~~~~~~~~~~~#
# Call ISFS_Open #
#~~~~~~~~~~~~~~~~~~~~~#
lis r11,0x8016 #Set 1st half address for all ISFS Functions
ori r12, r11, ISFS_Open
bl file_path

.string "/title/00010002/48414341/content/title.tmd\0"

file_path:
mflr r3
li r4,1

mtlr r12
blrl

cmpwi r3,0
blt set_system_menu

#~~~~~~~~~~~~~~~~~~~~~#
# Call ISFS_Close #
#~~~~~~~~~~~~~~~~~~~~~#

ori r12, r11, ISFS_Close
mtlr r12
blrl

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
#    _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
b call_OSLaunchTitle

set_system_menu:
li r3, 1
li r4, 2

#~~~~~~~~~~~~~~~~~~~~~#
# Call _OSLaunchTitle #
#~~~~~~~~~~~~~~~~~~~~~#

call_OSLaunchTitle:

lis r12, The_Addr@h
ori r12, r12, The_Addr@l
mtlr r12
blr

skip_all:
lbz r0, 0x0051 (r3) #default instruction
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)