Graphical Region ID Verification
#1
Graphical Region ID Verification

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) what your region ID is once you get past the bootstrap screen. When the game is first booted, you are told your Game ID (followed by the text 'RegID'). Then, after the bootstrap screen, the image will replace the Game ID with your Region ID.

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.

Values:
Japan Region ID (0) = JAPAN
America Region ID (1) = AMER
Europe Region ID (2) = EUROPE
Aus/Nz Region ID (3) = AUS/NZ
Taiwan Region ID (4) = TAIWAN
S.Korea Region ID (5) = KOREA
China Region ID (6) = CHINA
All other Region ID's (7+) = ERROR

--

-Second part of code-
NTSC-U
C253F3E8 00000022
80640084 9421FFB0
BDC10008 3E808000
3A600000 92740000
B2740004 2C030000
41820008 40820014
3EC04A41 62D65041
3AE04E00 480000C0
2C030001 41820008
40820010 3EC0414D
62D64552 480000A8
2C030002 41820008
40820014 3EC04555
62D6524F 3AE05045
4800008C 2C030003
41820008 40820014
3EC04155 62D6532F
3AE04E5A 48000070
2C030004 41820008
40820014 3EC05441
62D64957 3AE0414E
48000054 2C030005
41820008 40820014
3EC04B4F 62D65245
3AE04100 48000038
2C030006 41820008
40820014 3EC04348
62D6494E 3AE04100
4800001C 3EC04552
62D6524F 3AE05200
92D40000 B2F40004
48000010 92D40000
B2F40004 48000004
B9C10008 38210050
60000000 00000000

PAL
C2544924 00000022
80640084 9421FFB0
BDC10008 3E808000
3A600000 92740000
B2740004 2C030000
41820008 40820014
3EC04A41 62D65041
3AE04E00 480000C0
2C030001 41820008
40820010 3EC0414D
62D64552 480000A8
2C030002 41820008
40820014 3EC04555
62D6524F 3AE05045
4800008C 2C030003
41820008 40820014
3EC04155 62D6532F
3AE04E5A 48000070
2C030004 41820008
40820014 3EC05441
62D64957 3AE0414E
48000054 2C030005
41820008 40820014
3EC04B4F 62D65245
3AE04100 48000038
2C030006 41820008
40820014 3EC04348
62D6494E 3AE04100
4800001C 3EC04552
62D6524F 3AE05200
92D40000 B2F40004
48000010 92D40000
B2F40004 48000004
B9C10008 38210050
60000000 00000000

NTSC-J
C25442A4 00000022
80640084 9421FFB0
BDC10008 3E808000
3A600000 92740000
B2740004 2C030000
41820008 40820014
3EC04A41 62D65041
3AE04E00 480000C0
2C030001 41820008
40820010 3EC0414D
62D64552 480000A8
2C030002 41820008
40820014 3EC04555
62D6524F 3AE05045
4800008C 2C030003
41820008 40820014
3EC04155 62D6532F
3AE04E5A 48000070
2C030004 41820008
40820014 3EC05441
62D64957 3AE0414E
48000054 2C030005
41820008 40820014
3EC04B4F 62D65245
3AE04100 48000038
2C030006 41820008
40820014 3EC04348
62D6494E 3AE04100
4800001C 3EC04552
62D6524F 3AE05200
92D40000 B2F40004
48000010 92D40000
B2F40004 48000004
B9C10008 38210050
60000000 00000000

NTSC-K
C253297C 00000022
80640084 9421FFB0
BDC10008 3E808000
3A600000 92740000
B2740004 2C030000
41820008 40820014
3EC04A41 62D65041
3AE04E00 480000C0
2C030001 41820008
40820010 3EC0414D
62D64552 480000A8
2C030002 41820008
40820014 3EC04555
62D6524F 3AE05045
4800008C 2C030003
41820008 40820014
3EC04155 62D6532F
3AE04E5A 48000070
2C030004 41820008
40820014 3EC05441
62D64957 3AE0414E
48000054 2C030005
41820008 40820014
3EC04B4F 62D65245
3AE04100 48000038
2C030006 41820008
40820014 3EC04348
62D6494E 3AE04100
4800001C 3EC04552
62D6524F 3AE05200
92D40000 B2F40004
48000010 92D40000
B2F40004 48000004
B9C10008 38210050
60000000 00000000

--

-First part of code-
Region-Free
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
25732052 65674944
0A000000 7C8802A6
3CA08000 60A50000
3D008000 81081858
A0C8FFFA 54C6801E
A8E8FFFE 7CC63A14
38C6001F 54C60034
38E67FE0 3D808000
818C1854 7D8903A6
4E800421 38610008
3C800D1A 6084091F
3D808000 818C1850
7D8903A6 4E800421
80610184 7C6803A6
B8610108 38210180
4E800020 4E800020


###Source (for just the C2 code)###
lwz r3, 0x0084 (r4) #Default ASM
stwu r1,-80(r1) #Register Safety
stmw r14,8(r1) #Register Safety

lis r20, 0x8000 #Set Register 20 to the very 1st address in RAM (where the Game ID is located)
li r19, 0x0 #Clear out Register 19
stw r19, 0 (r20) #Clear out contents at address of Register 20
sth r19, 0x0004 (r20) Clear out contents at address of Register 20; offset 0x0004

###The following functions are for checking your Region ID number##

cmpwi r3, 0x0
beq japan_0
bne cmp_1

japan_0:
lis r22, 0x4A41 
ori r22, r22, 0x5041
li r23, 0x4E00
b reg_done

cmp_1:
cmpwi r3, 0x1
beq america_1
bne cmp_2

america_1:
lis r22, 0x414D
ori r22, r22, 0x4552
b reg_done

cmp_2:
cmpwi r3, 0x2
beq europe_2
bne cmp_3

europe_2:
lis r22, 0x4555 
ori r22, r22, 0x524F
li r23, 0x5045
b reg_done

cmp_3:
cmpwi r3, 0x3
beq ausnz_3
bne cmp_4

ausnz_3:
lis r22, 0x4155 
ori r22, r22, 0x532F
li r23, 0x4E5A
b reg_done

cmp_4:
cmpwi r3, 0x4
beq taiwan_4
bne cmp_5

taiwan_4:
lis r22, 0x5441 
ori r22, r22, 0x4957
li r23, 0x414E
b reg_done

cmp_5:
cmpwi r3, 0x5
beq korea_5
bne cmp_6

korea_5:
lis r22, 0x4B4F 
ori r22, r22, 0x5245 
li r23, 0x4100
b reg_done

cmp_6:
cmpwi r3, 0x6
beq china_6
bne reg_fail

china_6:
lis r22, 0x4348
ori r22, r22, 0x494e
li r23, 0x4100
b reg_done

##Show an Error if you don't have a valid/legit Region ID number##
reg_fail:
lis r22, 0x4552
ori r22, r22, 0x524F
li r23, 0x5200
stw r22, 0 (r20)
sth r23, 0x0004 (r20)
b code_done

reg_done:
stw r22, 0 (r20)
sth r23, 0x0004 (r20)
b code_done

##Finish off code##
code_done:
lmw r14,8(r1) #End Register Safety
addi r1,r1,80 #End Register Safety

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)