Graphical Room Size Reader
#1
Graphical Room Size Reader

DOES NOT work on Dolphin Emulator!

NOTE: The code is setup for 480i definition. If 480p is used, the image message will in the exact center of the screen and it will appear squished. Change your TV Resolution accordingly within Wii Settings.

This code will tell you (via a graphical image/message followed by "Plyrs") how many players are in the race/battle. It auto updates whenever anybody leaves/join the race/battle. However the code will not update (to ZERO) when you leave a race/battle. When you first boot the game, you will see the Game ID on the graphical image/message.

To prevent this thread from being super long, I split the code into two parts. The first part of the code (which is listed last, and it's region free), is Y.S.'s easy extender plus his Execute ASM code (shortened by Star). The second part of the code (which is a normal region-specific C2-type ASM code) is listed first. When making your GCT, be sure the add the gigantic region-free part first, then add on the C2-type ASM code afterwards that's for your region/version of MKWii.

-Second Part Of Code-
NTSC-U
C2653664 0000002E
80040040 9421FFB0
BDC10008 3E008000
3B000000 93100000
B3100004 2C000000
41820008 40820010
3F005A45 6318524F
48000128 2C000001
41820008 40820010
3F004F4E 63184500
48000110 2C000002
41820008 40820010
3F005457 63184F00
480000F8 2C000003
41820008 40820014
3F005448 63185245
3B604500 480000DC
2C000004 41820008
40820010 3F00464F
63185552 480000C4
2C000005 41820008
40820010 3F004649
63185645 480000AC
2C000006 41820008
40820010 3F005349
63185800 48000094
2C000007 41820008
40820014 3F005345
63185645 3B604E00
48000078 2C000008
41820008 40820014
3F004549 63184748
3B605400 4800005C
2C000009 41820008
40820010 3F004E49
63184E45 48000044
2C00000A 41820008
40820010 3F005445
63184E00 4800002C
2C00000B 41820008
40820014 3F00454C
63184556 3B60454E
48000010 3F005457
6318454C 3B605645
93100000 B3700004
B9C10008 38210050
60000000 00000000

PAL
C2657AEC 0000002E
80040040 9421FFB0
BDC10008 3E008000
3B000000 93100000
B3100004 2C000000
41820008 40820010
3F005A45 6318524F
48000128 2C000001
41820008 40820010
3F004F4E 63184500
48000110 2C000002
41820008 40820010
3F005457 63184F00
480000F8 2C000003
41820008 40820014
3F005448 63185245
3B604500 480000DC
2C000004 41820008
40820010 3F00464F
63185552 480000C4
2C000005 41820008
40820010 3F004649
63185645 480000AC
2C000006 41820008
40820010 3F005349
63185800 48000094
2C000007 41820008
40820014 3F005345
63185645 3B604E00
48000078 2C000008
41820008 40820014
3F004549 63184748
3B605400 4800005C
2C000009 41820008
40820010 3F004E49
63184E45 48000044
2C00000A 41820008
40820010 3F005445
63184E00 4800002C
2C00000B 41820008
40820014 3F00454C
63184556 3B60454E
48000010 3F005457
6318454C 3B605645
93100000 B3700004
B9C10008 38210050
60000000 00000000

NTSC-J
C2657158 0000002E
80040040 9421FFB0
BDC10008 3E008000
3B000000 93100000
B3100004 2C000000
41820008 40820010
3F005A45 6318524F
48000128 2C000001
41820008 40820010
3F004F4E 63184500
48000110 2C000002
41820008 40820010
3F005457 63184F00
480000F8 2C000003
41820008 40820014
3F005448 63185245
3B604500 480000DC
2C000004 41820008
40820010 3F00464F
63185552 480000C4
2C000005 41820008
40820010 3F004649
63185645 480000AC
2C000006 41820008
40820010 3F005349
63185800 48000094
2C000007 41820008
40820014 3F005345
63185645 3B604E00
48000078 2C000008
41820008 40820014
3F004549 63184748
3B605400 4800005C
2C000009 41820008
40820010 3F004E49
63184E45 48000044
2C00000A 41820008
40820010 3F005445
63184E00 4800002C
2C00000B 41820008
40820014 3F00454C
63184556 3B60454E
48000010 3F005457
6318454C 3B605645
93100000 B3700004
B9C10008 38210050
60000000 00000000

NTSC-K
C2645E04 0000002E
80040040 9421FFB0
BDC10008 3E008000
3B000000 93100000
B3100004 2C000000
41820008 40820010
3F005A45 6318524F
48000128 2C000001
41820008 40820010
3F004F4E 63184500
48000110 2C000002
41820008 40820010
3F005457 63184F00
480000F8 2C000003
41820008 40820014
3F005448 63185245
3B604500 480000DC
2C000004 41820008
40820010 3F00464F
63185552 480000C4
2C000005 41820008
40820010 3F004649
63185645 480000AC
2C000006 41820008
40820010 3F005349
63185800 48000094
2C000007 41820008
40820014 3F005345
63185645 3B604E00
48000078 2C000008
41820008 40820014
3F004549 63184748
3B605400 4800005C
2C000009 41820008
40820010 3F004E49
63184E45 48000044
2C00000A 41820008
40820010 3F005445
63184E00 4800002C
2C00000B 41820008
40820014 3F00454C
63184556 3B60454E
48000010 3F005457
6318454C 3B605645
93100000 B3700004
B9C10008 38210050
60000000 00000000

-First Part Of Code-
F6000002 80008180
3803001F 54030034
48000008 38644000
4C000000 00001858
E0000000 80008000
F6000002 80008180
90A402E0 806502E4
908502E4 2C030000
D600005C 800018A8
E0000000 80008000
F6000003 80008180
9421FF60 7C0802A6
900100A4 BF61008C
7C7B1B78 40860024
4C000000 00001854
E0000000 80008000
68200091 00000001
9421FF80 BC610008
7D6802A6 91610084
480002FD 00000000
00000000 183C3C18
18001800 66662400
00000000 6C6CFE6C
FE6C6C00 183E603C
067C1800 00C6CC18
3066C600 386C3876
DCCC7600 18183000
00000000 0C183030
30180C00 30180C0C
0C183000 00663CFF
3C660000 0018187E
18180000 00000000
00181830 0000007E
00000000 00000000
00181800 060C1830
60C08000 386CC6D6
C66C3800 18381818
18187E00 7CC6061C
3066FE00 7CC6063C
06C67C00 1C3C6CCC
FE0C1E00 FEC0C0FC
06C67C00 3860C0FC
C6C67C00 FEC60C18
30303000 7CC6C67C
C6C67C00 7CC6C67E
060C7800 00181800
00181800 00181800
00181830 060C1830
180C0600 00007E00
007E0000 6030180C
18306000 7CC60C18
18001800 7CC6DEDE
DEC07800 386CC6FE
C6C6C600 FC66667C
6666FC00 3C66C0C0
C0663C00 F86C6666
666CF800 FE626878
6862FE00 FE626878
6860F000 3C66C0C0
CE663A00 C6C6C6FE
C6C6C600 3C181818
18183C00 1E0C0C0C
CCCC7800 E6666C78
6C66E600 F0606060
6266FE00 C6EEFEFE
D6C6C600 C6E6F6DE
CEC6C600 7CC6C6C6
C6C67C00 FC66667C
6060F000 7CC6C6C6
C6CE7C0E FC66667C
6C66E600 3C663018
0C663C00 7E7E5A18
18183C00 C6C6C6C6
C6C67C00 C6C6C6C6
C66C3800 C6C6C6D6
D6FE6C00 C6C66C38
6CC6C600 6666663C
18183C00 FEC68C18
3266FE00 3C303030
30303C00 C0603018
0C060200 3C0C0C0C
0C0C3C00 10386CC6
00000000 00000000
000000FF 30180C00
00000000 0000780C
7CCC7600 E0607C66
6666DC00 00007CC6
C0C67C00 1C0C7CCC
CCCC7600 00007CC6
FEC07C00 3C6660F8
6060F000 000076CC
CC7C0CF8 E0606C76
6666E600 18003818
18183C00 06000606
0666663C E060666C
786CE600 38181818
18183C00 0000ECFE
D6D6D600 0000DC66
66666600 00007CC6
C6C67C00 0000DC66
667C60F0 000076CC
CC7C0C1E 0000DC76
6060F000 00007EC0
7C06FC00 3030FC30
30361C00 0000CCCC
CCCC7600 0000C6C6
C66C3800 0000C6D6
D6FE6C00 0000C66C
386CC600 0000C6C6
C67E06FC 00007E4C
18327E00 0E181870
18180E00 18181818
18181800 7018180E
18187000 76DC0000
00000000 7DC802A6
4800002D 00000000
EB80EB80 10801080
525A52F0 AC26ACAE
D210D292 74477437
29F0296E 26E42670
50CC50B6 7FE802A6
549ED5BA 7E7EF82E
549E15BA 7E9EF82E
3D80CC00 618C2000
8BEC0049 57EF2834
8BEC001D 57FF801E
A3CC001E 7FF0F378
56102834 66108000
5485563E 5486863E
7CC679D6 7FE53214
1FFF0008 7F30FA14
7F38CB78 3863FFFF
8EA30001 2C150000
418200D0 2C15000A
40820014 55FF1838
7F39FA14 7F38CB78
4BFFFFE0 2815007F
41800010 28150020
40800008 3AA00020
3AB5FFE0 56B61838
3BE00008 7FE903A6
3A400080 7EEEB0AE
7EFF9039 41820014
2C140000 41820024
92980000 48000014
2C130000 41820014
92780000 48000004
7C00C06C 7C0004AC
3B180004 5652F87E
28120000 41A1FFC4
3B18FFE0 7F187A14
3AD60001 4220FFAC
1FEF0008 7F1FC050
3B180020 1FEF0008
7FD0C050 7FBEFBD6
7FBDF9D6 7FBDF050
7C1D7840 40820010
55FF1838 7F39FA14
7F38CB78 4BFFFF2C
81610084 7D6803A6
B8610008 38210080
4E800020 592E532E
C0000000 00000013
9421FE80 BC610108
7C6802A6 90610184
38610008 48000011
25732050 6C797273
0A000000 7C8802A6
3CA08000 60A50000
3D008000 81081858
A0C8FFFA 54C6801E
A8E8FFFE 7CC63A14
38C6001F 54C60034
38E67FE0 3D808000
818C1854 7D8903A6
4E800421 38610008
3C800D1A 60840603
3D808000 818C1850
7D8903A6 4E800421
80610184 7C6803A6
B8610108 38210180
4E800020 4E800020

Source (for just the C2 code):
lwz r0, 0x0040 (r4) #Default ASM, Register 0 now contains room size

stwu r1, -80(r1) # Make space for 18 registers
stmw r14, 8(r1) # Push r14-r31 onto the stack

lis r16, 0x8000 #Set Game ID address to write ASCii hex values to
li r24, 0x0 #Clear out Register 18
stw r24, 0 (r16) #Set first Game ID address to zeroes
sth r24, 0x0004 (r16) #Set second Game ID address to zeroes, halfword is only needed, since the two bytes afterwards are always zeroes

#Code will now check the size of the room#

cmpwi r0, 0x0
beq zero_p
bne cmp_1

zero_p:
lis r24, 0x5A45
ori r24, r24, 0x524F
b we_done

cmp_1:
cmpwi r0, 0x1
beq one_p
bne cmp_2

one_p:
lis r24, 0x4F4E
ori r24, r24, 0x4500
b we_done

cmp_2:
cmpwi r0, 0x2
beq two_p
bne cmp_3

two_p:
lis r24, 0x5457
ori r24, r24, 0x4F00
b we_done

cmp_3:
cmpwi r0, 0x3
beq three_p
bne cmp_4

three_p:
lis r24, 0x5448
ori r24, r24, 0x5245
li r27, 0x4500
b we_done

cmp_4:
cmpwi r0, 0x4
beq four_p
bne cmp_5

four_p:
lis r24, 0x464F 
ori r24, r24, 0x5552
b we_done

cmp_5:
cmpwi r0, 0x5
beq five_p
bne cmp_6

five_p:
lis r24, 0x4649
ori r24, r24, 0x5645
b we_done

cmp_6:
cmpwi r0, 0x6
beq six_p
bne cmp_7

six_p:
lis r24, 0x5349
ori r24, r24, 0x5800
b we_done

cmp_7:
cmpwi r0, 0x7
beq seven_p
bne cmp_8

seven_p:
lis r24, 0x5345
ori r24, r24, 0x5645
li r27, 0x4E00
b we_done

cmp_8:
cmpwi r0, 0x8
beq eight_p
bne cmp_9

eight_p:
lis r24, 0x4549
ori r24, r24, 0x4748
li r27, 0x5400
b we_done

cmp_9:
cmpwi r0, 0x9
beq nine_p
bne cmp_A

nine_p:
lis r24, 0x4E49
ori r24, r24, 0x4E45
b we_done

cmp_A:
cmpwi r0, 0xA
beq ten_p
bne cmp_B

ten_p:
lis r24, 0x5445
ori r24, r24, 0x4E00
b we_done

cmp_B:
cmpwi r0, 0xB
beq eleven_p
bne twelve_p

eleven_p:
lis r24, 0x454C
ori r24, r24, 0x4556
li r27, 0x454E
b we_done

twelve_p:
lis r24, 0x5457
ori r24, r24, 0x454C
li r27, 0x5645

we_done:
stw r24, 0 (r16) #Store ascii hex values to first Game ID address so Easy Extender code can display the decimal values on screen
sth r27, 0x0004 (r16) #Store other ascii hex values to second Game ID address

lmw r14, 8(r1) # Pop r14-r31 off the stack
addi r1, r1, 80 # Release the space

Code creator: zak
Code contributor(s): Y.S. (Easy Extender), Star (Shortened version of Y.S.'s Execute ASM portion of Easy Extender)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)