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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 548
» Latest member: Billie34
» Forum threads: 1,666
» Forum posts: 12,060

Full Statistics

Online Users
There are currently 233 online users.
» 1 Member(s) | 230 Guest(s)
Bing, Google

Latest Threads
Make it to 10,000
Forum: General Discussion
Last Post: Fifty
2 hours ago
» Replies: 5,792
» Views: 4,243,366
Custom Kart Working on Do...
Forum: Code Support / Help / Requests
Last Post: Billie34
Yesterday, 07:02 AM
» Replies: 2
» Views: 179
Connect to AltWFC again
Forum: Incomplete & Outdated Codes
Last Post: marito_yo
05-03-2024, 06:27 AM
» Replies: 0
» Views: 111
Request: Mission Mode - P...
Forum: Code Support / Help / Requests
Last Post: Wingcapman
05-02-2024, 08:54 PM
» Replies: 0
» Views: 121
Boot into TT cup selectio...
Forum: Misc/Other
Last Post: Vega
04-26-2024, 08:27 PM
» Replies: 3
» Views: 2,984
Request: Custom brsars pe...
Forum: Code Support / Help / Requests
Last Post: lschlick
04-25-2024, 05:45 PM
» Replies: 0
» Views: 81
E-mails not working on th...
Forum: General Discussion
Last Post: Fifty
04-19-2024, 04:56 AM
» Replies: 3
» Views: 509
More missing info from Br...
Forum: Coding & Hacking General Discussion
Last Post: Vega
04-15-2024, 10:04 PM
» Replies: 0
» Views: 357
Request: Custom music vol...
Forum: Code Support / Help / Requests
Last Post: lschlick
04-15-2024, 06:13 PM
» Replies: 0
» Views: 241
Request: Additional sound...
Forum: Code Support / Help / Requests
Last Post: _Ro
04-15-2024, 01:50 AM
» Replies: 6
» Views: 311

 
  "Double Dash!!" Speedometer [Sponge]
Posted by: Sponge - 03-12-2024, 02:23 PM - Forum: Visual & Sound Effects - Replies (2)

"Double Dash!!" Speedometer [Sponge]

A remake of the speedometer from Mario Kart: Double Dash.

Preview:


I've aimed to make this behave and look accurate to the original game, although it's not perfect.

Stars and Bullet Bills both have unique color animations, this was inspired by CTGP-7.

File modifications are needed for this to work. A zip with assets will be provided so you can add them to your own game files.

I made this as a proof of concept. I'm certain this can be optimized in the future.

Note: This code uses addresses 0x80001610 through 0x8000161E. Ensure no other codes read or write to these addresses.

PAL
C2082358 0000001C
809E0000 9421FF70
D8210008 3D80809C
818C18F8 280C0000
418200BC 3C60809C
8063D728 88630B84
818C0020 5463103A
7D8C182E 818C0010
818C0010 C02C0024
FC200A10 FC20081C
D8210010 81810014
3CA07370 60A56565
80DEFFD8 7C053040
40820074 38A00030
88DEFFDF 38A50001
28050033 41810060
7C053040 4082FFF0
39000064 7D2C43D6
28050033 41820028
1D290064 7D496050
3900000A 7D2A43D6
28050032 4182001C
1D29000A 7D295050
4800001C 280C0063
41810014 4800000C
280C0009 41810008
3920000A 1D290860
7C844A14 C8210008
38210090 00000000
C2084628 00000040
80830000 9421FFA0
BDC10008 D8210008
7F0802A6 3D80809C
818C18F8 280C0000
418201CC 3DC0809C
81CED728 89CE0B84
818C0020 55CE103A
7D8C702E 818C0010
824C0010 826C001C
C0320024 FC200A10
FC20081C D8210010
82810014 3DC0645F
61CE626C 81FC00C0
7C0E7840 40820180
39C00030 89FC00C9
39CE0001 280E0037
4181016C 7C0E7840
4082FFF0 48000065
7F7F7FFF 00FFC3FF
55FF00FF AAFF00FF
FFFF00FF FFAA00FF
FF5400FF FF2200FF
00000000 FF80FEFF
FFBFC0FF FFDEA0FF
FFFE80FF FFDEA0FF
FFBFC0FF FF80FEFF
00000000 1E1D1EFF
E64129FF FFA829FF
FFC22BFF FFA829FF
E64129FF 1E1D1EFF
7E0802A6 81D3000C
75CE0800 3A100040
40820058 81D30008
75CE8000 3A10FFE0
40820048 81D30008
71CE0010 3A10FFE0
40820038 A1D20148
280E0000 4181002C
39C0000B 7DD473D6
39EFFFD0 7C0E7840
41800010 1DEF0004
7E30782E 48000090
82300000 48000088
3DC08000 61CE1610
39EFFFD0 7E2E78AE
28110000 40820008
7DF17B78 3AAE0008
7ED578AE 6AD60001
7ED579AE 8AEE0000
28170001 4080001C
28160001 40820014
3A31FFFF 28110000
41810008 3A200007
28110007 40820024
7C117840 4082001C
8ACE0000 3AD60001
28160004 41800008
3AC00000 9ACE0000
7E2E79AE 1E310004
7E30882E 92230000
92230004 92230008
9223000C 7F0803A6
C8210008 B9C10008
38210060 00000000
C260245C 00000008
80A30004 2C05000C
41820028 2C05000E
41820020 2C050012
41820018 2C050040
41820010 2C050042
41820008 48000008
38840001 7C852378
60000000 00000000
C28584D8 00000007
560004E7 40820030
806F0004 2C03000C
41820020 2C03000E
41820018 2C030012
41820010 2C030040
41820008 2C030042
4C421042 00000000
C285853C 00000018
9421FF80 7C0802A6
90010084 BC610008
7C6E1B78 48000039
7C641B78 48000045
7C651B78 48000051
7C661B78 48000065
7C671B78 7DC37378
3D80805C 618C2C60
7D8803A6 4E800021
48000064 7D8802A6
48000051 67616D65
5F696D61 67650000
7D8802A6 4800003D
73706565 646F6D65
74657200 7D8802A6
48000029 4374726C
53706565 646F6D65
7465725F 315F3000
7D8802A6 4800000D
00000000 00000000
7C6802A6 7D8803A6
4E800020 B8610008
80010084 7C0803A6
38210080 00000000
04857A28 60000000
04857A80 48000028

NTSC-U
C20822B8 0000001C
809E0000 9421FF70
D8210008 3D80809C
818CD110 280C0000
418200BC 3C60809C
80638F68 88630B84
818C0020 5463103A
7D8C182E 818C0010
818C0010 C02C0024
FC200A10 FC20081C
D8210010 81810014
3CA07370 60A56565
80DEFFD8 7C053040
40820074 38A00030
88DEFFDF 38A50001
28050033 41810060
7C053040 4082FFF0
39000064 7D2C43D6
28050033 41820028
1D290064 7D496050
3900000A 7D2A43D6
28050032 4182001C
1D29000A 7D295050
4800001C 280C0063
41810014 4800000C
280C0009 41810008
3920000A 1D290860
7C844A14 C8210008
38210090 00000000
C2084588 00000040
80830000 9421FFA0
BDC10008 D8210008
7F0802A6 3D80809C
818CD110 280C0000
418201CC 3DC0809C
81CE8F68 89CE0B84
818C0020 55CE103A
7D8C702E 818C0010
824C0010 826C001C
C0320024 FC200A10
FC20081C D8210010
82810014 3DC0645F
61CE626C 81FC00C0
7C0E7840 40820180
39C00030 89FC00C9
39CE0001 280E0037
4181016C 7C0E7840
4082FFF0 48000065
7F7F7FFF 00FFC3FF
55FF00FF AAFF00FF
FFFF00FF FFAA00FF
FF5400FF FF2200FF
00000000 FF80FEFF
FFBFC0FF FFDEA0FF
FFFE80FF FFDEA0FF
FFBFC0FF FF80FEFF
00000000 1E1D1EFF
E64129FF FFA829FF
FFC22BFF FFA829FF
E64129FF 1E1D1EFF
7E0802A6 81D3000C
75CE0800 3A100040
40820058 81D30008
75CE8000 3A10FFE0
40820048 81D30008
71CE0010 3A10FFE0
40820038 A1D20148
280E0000 4181002C
39C0000B 7DD473D6
39EFFFD0 7C0E7840
41800010 1DEF0004
7E30782E 48000090
82300000 48000088
3DC08000 61CE1610
39EFFFD0 7E2E78AE
28110000 40820008
7DF17B78 3AAE0008
7ED578AE 6AD60001
7ED579AE 8AEE0000
28170001 4080001C
28160001 40820014
3A31FFFF 28110000
41810008 3A200007
28110007 40820024
7C117840 4082001C
8ACE0000 3AD60001
28160004 41800008
3AC00000 9ACE0000
7E2E79AE 1E310004
7E30882E 92230000
92230004 92230008
9223000C 7F0803A6
C8210008 B9C10008
38210060 00000000
C25DDB7C 00000008
80A30004 2C05000C
41820028 2C05000E
41820020 2C050012
41820018 2C050040
41820010 2C050042
41820008 48000008
38840001 7C852378
60000000 00000000
C2836A48 00000007
560004E7 40820030
806F0004 2C03000C
41820020 2C03000E
41820018 2C030012
41820010 2C030040
41820008 2C030042
4C421042 00000000
C2836AAC 00000018
9421FF80 7C0802A6
90010084 BC610008
7C6E1B78 48000039
7C641B78 48000045
7C651B78 48000051
7C661B78 48000065
7C671B78 7DC37378
3D80805B 618CA2CC
7D8803A6 4E800021
48000064 7D8802A6
48000051 67616D65
5F696D61 67650000
7D8802A6 4800003D
73706565 646F6D65
74657200 7D8802A6
48000029 4374726C
53706565 646F6D65
7465725F 315F3000
7D8802A6 4800000D
00000000 00000000
7C6802A6 7D8803A6
4E800020 B8610008
80010084 7C0803A6
38210080 00000000
04835F98 60000000
04835FF0 48000028

NTSC-J
C2082278 0000001C
809E0000 9421FF70
D8210008 3D80809C
818C0958 280C0000
418200BC 3C60809C
8063C788 88630B84
818C0020 5463103A
7D8C182E 818C0010
818C0010 C02C0024
FC200A10 FC20081C
D8210010 81810014
3CA07370 60A56565
80DEFFD8 7C053040
40820074 38A00030
88DEFFDF 38A50001
28050033 41810060
7C053040 4082FFF0
39000064 7D2C43D6
28050033 41820028
1D290064 7D496050
3900000A 7D2A43D6
28050032 4182001C
1D29000A 7D295050
4800001C 280C0063
41810014 4800000C
280C0009 41810008
3920000A 1D290860
7C844A14 C8210008
38210090 00000000
C2084548 00000040
80830000 9421FFA0
BDC10008 D8210008
7F0802A6 3D80809C
818C0958 280C0000
418201CC 3DC0809C
81CEC788 89CE0B84
818C0020 55CE103A
7D8C702E 818C0010
824C0010 826C001C
C0320024 FC200A10
FC20081C D8210010
82810014 3DC0645F
61CE626C 81FC00C0
7C0E7840 40820180
39C00030 89FC00C9
39CE0001 280E0037
4181016C 7C0E7840
4082FFF0 48000065
7F7F7FFF 00FFC3FF
55FF00FF AAFF00FF
FFFF00FF FFAA00FF
FF5400FF FF2200FF
00000000 FF80FEFF
FFBFC0FF FFDEA0FF
FFFE80FF FFDEA0FF
FFBFC0FF FF80FEFF
00000000 1E1D1EFF
E64129FF FFA829FF
FFC22BFF FFA829FF
E64129FF 1E1D1EFF
7E0802A6 81D3000C
75CE0800 3A100040
40820058 81D30008
75CE8000 3A10FFE0
40820048 81D30008
71CE0010 3A10FFE0
40820038 A1D20148
280E0000 4181002C
39C0000B 7DD473D6
39EFFFD0 7C0E7840
41800010 1DEF0004
7E30782E 48000090
82300000 48000088
3DC08000 61CE1610
39EFFFD0 7E2E78AE
28110000 40820008
7DF17B78 3AAE0008
7ED578AE 6AD60001
7ED579AE 8AEE0000
28170001 4080001C
28160001 40820014
3A31FFFF 28110000
41810008 3A200007
28110007 40820024
7C117840 4082001C
8ACE0000 3AD60001
28160004 41800008
3AC00000 9ACE0000
7E2E79AE 1E310004
7E30882E 92230000
92230004 92230008
9223000C 7F0803A6
C8210008 B9C10008
38210060 00000000
C2601BD0 00000008
80A30004 2C05000C
41820028 2C05000E
41820020 2C050012
41820018 2C050040
41820010 2C050042
41820008 48000008
38840001 7C852378
60000000 00000000
C2857B44 00000007
560004E7 40820030
806F0004 2C03000C
41820020 2C03000E
41820018 2C030012
41820010 2C030040
41820008 2C030042
4C421042 00000000
C2857BA8 00000018
9421FF80 7C0802A6
90010084 BC610008
7C6E1B78 48000039
7C641B78 48000045
7C651B78 48000051
7C661B78 48000065
7C671B78 7DC37378
3D80805C 618C25E0
7D8803A6 4E800021
48000064 7D8802A6
48000051 67616D65
5F696D61 67650000
7D8802A6 4800003D
73706565 646F6D65
74657200 7D8802A6
48000029 4374726C
53706565 646F6D65
7465725F 315F3000
7D8802A6 4800000D
00000000 00000000
7C6802A6 7D8803A6
4E800020 B8610008
80010084 7C0803A6
38210080 00000000
04857094 60000000
048570EC 48000028

NTSC-K
C20823B8 0000001C
809E0000 9421FF70
D8210008 3D80809B
818CFF38 280C0000
418200BC 3C60809B
8063BD68 88630B84
818C0020 5463103A
7D8C182E 818C0010
818C0010 C02C0024
FC200A10 FC20081C
D8210010 81810014
3CA07370 60A56565
80DEFFD8 7C053040
40820074 38A00030
88DEFFDF 38A50001
28050033 41810060
7C053040 4082FFF0
39000064 7D2C43D6
28050033 41820028
1D290064 7D496050
3900000A 7D2A43D6
28050032 4182001C
1D29000A 7D295050
4800001C 280C0063
41810014 4800000C
280C0009 41810008
3920000A 1D290860
7C844A14 C8210008
38210090 00000000
C2084688 00000040
80830000 9421FFA0
BDC10008 D8210008
7F0802A6 3D80809B
818CFF38 280C0000
418201CC 3DC0809B
81CEBD68 89CE0B84
818C0020 55CE103A
7D8C702E 818C0010
824C0010 826C001C
C0320024 FC200A10
FC20081C D8210010
82810014 3DC0645F
61CE626C 81FC00C0
7C0E7840 40820180
39C00030 89FC00C9
39CE0001 280E0037
4181016C 7C0E7840
4082FFF0 48000065
7F7F7FFF 00FFC3FF
55FF00FF AAFF00FF
FFFF00FF FFAA00FF
FF5400FF FF2200FF
00000000 FF80FEFF
FFBFC0FF FFDEA0FF
FFFE80FF FFDEA0FF
FFBFC0FF FF80FEFF
00000000 1E1D1EFF
E64129FF FFA829FF
FFC22BFF FFA829FF
E64129FF 1E1D1EFF
7E0802A6 81D3000C
75CE0800 3A100040
40820058 81D30008
75CE8000 3A10FFE0
40820048 81D30008
71CE0010 3A10FFE0
40820038 A1D20148
280E0000 4181002C
39C0000B 7DD473D6
39EFFFD0 7C0E7840
41800010 1DEF0004
7E30782E 48000090
82300000 48000088
3DC08000 61CE1610
39EFFFD0 7E2E78AE
28110000 40820008
7DF17B78 3AAE0008
7ED578AE 6AD60001
7ED579AE 8AEE0000
28170001 4080001C
28160001 40820014
3A31FFFF 28110000
41810008 3A200007
28110007 40820024
7C117840 4082001C
8ACE0000 3AD60001
28160004 41800008
3AC00000 9ACE0000
7E2E79AE 1E310004
7E30882E 92230000
92230004 92230008
9223000C 7F0803A6
C8210008 B9C10008
38210060 00000000
C25F087C 00000008
80A30004 2C05000C
41820028 2C05000E
41820020 2C050012
41820018 2C050040
41820010 2C050042
41820008 48000008
38840001 7C852378
60000000 00000000
C2846898 00000007
560004E7 40820030
806F0004 2C03000C
41820020 2C03000E
41820018 2C030012
41820010 2C030040
41820008 2C030042
4C421042 00000000
C28468FC 00000018
9421FF80 7C0802A6
90010084 BC610008
7C6E1B78 48000039
7C641B78 48000045
7C651B78 48000051
7C661B78 48000065
7C671B78 7DC37378
3D80805B 618C0CC4
7D8803A6 4E800021
48000064 7D8802A6
48000051 67616D65
5F696D61 67650000
7D8802A6 4800003D
73706565 646F6D65
74657200 7D8802A6
48000029 4374726C
53706565 646F6D65
7465725F 315F3000
7D8802A6 4800000D
00000000 00000000
7C6802A6 7D8803A6
4E800020 B8610008
80010084 7C0803A6
38210080 00000000
04845DE8 60000000
04845E40 48000028

Credits:
Stebler - 3rd and 4th ASM sources (Used in Pretty Speedometer)
Kazuki - 5th ASM Source (Modified source from KZ-RTD)

Quote:ASM 1: Change the loaded digit textures based on our current speed
Code:
#Inject at 0x80082358 PAL
#Inject at 0x800822B8 NTSC-U
#Inject at 0x80082278 NTSC-J
#Inject at 0x800823B8 NTSC-K

.set region, '' # Specify which region to compile for
.if    (region == 'P' || region == 'p') # RMCP
        .set RaceData, 0x809BD728
        .set PlayerHolder, 0x809C18F8
.elseif (region == 'E' || region == 'e' || region == 'U' || region == 'u') # RMCE
        .set RaceData, 0x809B8F68
        .set PlayerHolder, 0x809BD110
.elseif (region == 'J' || region == 'j') # RMCJ
        .set RaceData, 0x809BC788
        .set PlayerHolder, 0x809C0958
.elseif (region == 'K' || region == 'k') # RMCK
        .set RaceData, 0x809ABD68
        .set PlayerHolder, 0x809AFF38
.else # Invalid Region
        .abort
.endif

.macro pushStack
  stwu     r1, -0x90(r1)
  stfd     f1, 0x8(r1)
.endm

.macro popStack
  lfd     f1, 0x8(r1)
  addi     r1, r1, 0x90
.endm

.macro setPlayerBase
  lis     r12, PlayerHolder@ha
  lwz     r12, PlayerHolder@l(r12)
.endm

.macro setPlayerSlot
  lis     r3, RaceData@ha
  lwz     r3, RaceData@l(r3)
  lbz     r3, 0xB84(r3)
.endm


  lwz     r4, 0(r30) # Default instruction

  pushStack

  setPlayerBase
 
  cmplwi     r12, 0
  beq     end

  setPlayerSlot

  lwz     r12, 0x0020(r12) # Load Word from 1st Level Pointer
  slwi     r3, r3, 2 # Shift the bits of r3 by 2 to the left. This is the same as multiplying by 0x4.
  lwzx     r12, r12, r3 # Load into 2nd Level Pointer
  lwz     r12, 0x0010(r12) # Load into 3rd Level Pointer
  lwz     r12, 0x0010(r12) # Load into 4th Level Pointer
  lfs     f1, 0x0024(r12) # Load the speed value
  fabs     f1, f1 # Handle negatives
  fctiw     f1, f1 # Convert to int
  stfd     f1, 0x10(r1)
  lwz     r12, 0x14(r1) # Load the speed value as an int
  lis     r5, 0x7370
  ori     r5, r5, 0x6565 # Load part of the digit string
  lwz     r6, -0x28(r30)
  cmplw     r5, r6 # Check if the loaded texture is related to the digits
  bne     end
  li    r5, 0x30
  lbz     r6, -0x21(r30)
 
  digitLoop:
  addi     r5, r5, 1
  cmplwi     r5, 0x33
  bgt     end # Exit the code as we're not dealing with the digits
  cmplw     r5, r6
  bne     digitLoop # Loop if the texture name doesn't match
  li    r8, 100
  divw     r9, r12, r8
  cmplwi     r5, 0x33
  beq     showHundred
  mulli     r9, r9, 100
  sub     r10, r12, r9
  li    r8, 10
  divw     r9, r10, r8
  cmplwi     r5, 0x32
  beq     showTens
  mulli     r9, r9, 10
  sub     r9, r10, r9
  b        skipHide # Don't hide the ones digit, it's always shown

  showHundred:
  cmplwi     r12, 0x63 # Hide the hundreds digit if your speed is below 100
  bgt     skipHide
  b         hideDigit
 
  showTens:
  cmplwi     r12, 0x9 # Hide the tens digit if your speed is below 10
  bgt     skipHide
 
  hideDigit:
  li    r9, 0xa
 
  skipHide:
  mulli     r9, r9, 0x860
  add     r4, r4, r9

  end:
 
  popStack

ASM 2: Update block color based on speed and status effects
Code:
#Inject at 0x80084628 PAL
#Inject at 0x80084588 NTSC-U
#Inject at 0x80084548 NTSC-J
#Inject at 0x80084688 NTSC-K

.set colorEVA, 0x80001610
.set region, '' # Specify which region to compile for
.if    (region == 'P' || region == 'p') # RMCP
        .set RaceData, 0x809BD728
        .set PlayerHolder, 0x809C18F8
.elseif (region == 'E' || region == 'e' || region == 'U' || region == 'u') # RMCE
        .set RaceData, 0x809B8F68
        .set PlayerHolder, 0x809BD110
.elseif (region == 'J' || region == 'j') # RMCJ
        .set RaceData, 0x809BC788
        .set PlayerHolder, 0x809C0958
.elseif (region == 'K' || region == 'k') # RMCK
        .set RaceData, 0x809ABD68
        .set PlayerHolder, 0x809AFF38
.else # Invalid Region
        .abort
.endif

.macro     pushStack
  stwu    r1, -0x60(r1)
  stmw    r14, 0x8(r1)
  stfd     f1, 0x8(r1)
  mflr    r24
.endm

.macro     popStack
  mtlr    r24
  lfd     f1, 0x8(r1)
  lmw        r14, 0x8(r1)
  addi    r1, r1, 0x60
.endm

.macro     setPlayerBase
  lis     r12, PlayerHolder@ha
  lwz     r12, PlayerHolder@l(r12)
.endm

.macro     setPlayerSlot
  lis     r14, RaceData@ha
  lwz     r14, RaceData@l(r14)
  lbz     r14, 0xB84(r14)
.endm


  lwz     r4, 0(r3) # Default instruction

  pushStack

  setPlayerBase
 
  cmplwi     r12, 0
  beq     end

  setPlayerSlot
 
  lwz     r12, 0x0020 (r12) # Load Word from 1st Level Pointer
  slwi     r14, r14, 2 # Shift the bits of r14 by 2 to the left. This is the same as multiplying by 0x4.
  lwzx     r12, r12, r14 # Load into 2nd Level Pointer
  lwz     r12, 0x0010(r12) # Load into 3rd Level Pointer
  lwz     r18, 0x0010(r12) # Load into PlayerSub10
  lwz     r19, 0x001c(r12) # Load into PlayerSub1c
  lfs     f1, 0x0024 (r18) # Load the speed value
  fabs     f1, f1 # Handle negatives
  fctiw     f1, f1 # Convert to int
  stfd     f1, 0x10(r1)
  lwz     r20, 0x14(r1) # Load the speed value as an int
  lis     r14, 0x645f
  ori     r14, r14, 0x626c # Load part of the block string
  lwz     r15, 0xC0(r28)
  cmplw     r14, r15 # Check if the loaded texture is related to the blocks
  bne     end
  li    r14, 0x30
  lbz     r15, 0xc9(r28)
 
  blockLoop:
  addi     r14, r14, 1
  cmplwi     r14, 0x37
  bgt     end # Exit the code as we're not dealing with the blocks
  cmplw     r14, r15
  bne     blockLoop # Loop if the texture name doesn't match

  bl    storeColors # Do the bl trick to store the colors and load them later on

  .long     0x7F7F7FFF
  .long     0x00FFC3FF
  .long     0x55FF00FF
  .long     0xAAFF00FF
  .long     0xFFFF00FF
  .long     0xFFAA00FF
  .long     0xFF5400FF
  .long     0xFF2200FF
  .long     0x00000000
  .long     0xFF80FEFF
  .long     0xFFBFC0FF
  .long     0xFFDEA0FF
  .long     0xFFFE80FF
  .long     0xFFDEA0FF
  .long     0xFFBFC0FF
  .long     0xFF80FEFF
  .long     0x00000000
  .long     0x1E1D1EFF
  .long     0xE64129FF
  .long     0xFFA829FF
  .long     0xFFC22BFF
  .long     0xFFA829FF
  .long     0xE64129FF
  .long     0x1E1D1EFF

  storeColors:
  mflr     r16

  lwz     r14, 0xc(r19)
  andis.     r14, r14, 0x0800
  addi     r16, r16, 0x40
  bne     beginCycling # Point towards Bullet Bill color set and begin cycling colors

  lwz     r14, 0x8(r19)
  andis.     r14, r14, 0x8000
  subi     r16, r16, 0x20
  bne     beginCycling # Point towards Star color set and begin cycling colors

  lwz     r14, 0x8(r19)
  andi.     r14, r14, 0x10
  subi     r16, r16, 0x20
  bne     beginCycling # Start cycling regular colors if we're in a cannon...

  lhz     r14, 0x148(r18)
  cmplwi     r14, 0
  bgt     beginCycling # ...or if we have offroad invincibility

  li         r14, 11 # Load normal behavior otherwise
  divw     r14, r20, r14
  subi     r15, r15, 0x30
  cmplw     r14, r15 # Double Dash lights up one block around every 11 units. Here we compare the current block relative to the speed and grey it out if we aren't going fast enough.
  blt     greyBlock
  mulli     r15, r15, 0x4
  lwzx     r17, r16, r15 # Load color based on current speed
  b        storeColor

  greyBlock:
  lwz     r17, 0(r16)
  b        storeColor

  beginCycling:
  lis     r14, colorEVA@ha
  ori     r14, r14, colorEVA@l
  subi     r15, r15, 0x30
  lbzx     r17, r14, r15
  cmplwi     r17, 0
  bne     validColor
  mr    r17, r15 # Required as the cycles will start at the wrong color due to blank EVA

  validColor:
  addi     r21, r14, 0x8
  lbzx     r22, r21, r15
  xori     r22, r22, 1
  stbx     r22, r21, r15 # Store the bit for later use
  lbz     r23, 0(r14)
  cmplwi     r23, 1 # Required for "four frame" behavior
  bge     colorFreeze
  cmplwi     r22, 0x1 # Double Dash only updates the color every second frame, so we compare against the bit we flipped
  bne     colorFreeze
  subi     r17, r17, 1
  cmplwi     r17, 0
  bgt     colorFreeze # Reset to the end of the colors if we hit 0
  li    r17, 7

  colorFreeze:
  cmplwi     r17, 0x7 # Check if we're loading the final color in the set...
  bne     fourFrameSkip
  cmplw     r17, r15 # ...and if we're referencing the final block, if not skip the "four frame" behavior
  bne     fourFrameSkip
  lbz     r22, 0x0(r14)
  addi     r22, r22, 1
  cmplwi     r22, 4 # Double Dash will also delay color updates for four frames if said two conditions above are met, so we make a counter and reset it once the four frames have finished
  blt     fourFrameStore
  li    r22, 0

  fourFrameStore:
  stb     r22, 0(r14)

  fourFrameSkip:
  stbx     r17, r14, r15 # Store value for later use
  mulli     r17, r17, 0x4
  lwzx     r17, r16, r17 # Load up the color based on the current value

  storeColor:
  stw     r17, 0(r3)
  stw     r17, 0x4(r3)
  stw    r17, 0x8(r3)
  stw    r17, 0xc(r3)
 
  end:

  popStack

ASM 3: Increment the child count of the single player gameplay screens other than time trial (by Stebler)
Code:
#Inject at 0x8060245C PAL
#Inject at 0x805DDB7C NTSC-U
#Inject at 0x80601BD0 NTSC-J
#Inject at 0x805F087C NTSC-K

  lwz r5, 0x4 (r3)

  cmpwi r5, 0xc # Grand Prix
  beq increment

  cmpwi r5, 0xe # 1P offline VS
  beq increment

  cmpwi r5, 0x12 # 1P Battle
  beq increment

  cmpwi r5, 0x40 # 1P Worldwide/Regional VS
  beq increment

  cmpwi r5, 0x42 # 1P Friend Room VS
  beq increment

  b end

  increment:
  addi r4, r4, 0x1

  end:
  mr r5, r4 # Original instruction

ASM 4: Add the "GHOST DATA CANNOT BE SAVED" element to single player gameplay screens other than time trial (by Stebler)
Code:
#Inject at 0x808584D8 PAL
#Inject at 0x80836A48 NTSC-U
#Inject at 0x80857B44 NTSC-J
#Inject at 0x80846898 NTSC-K

  rlwinm. r0, r16, 0x0, 19, 19 # Original instruction
  bne end

  lwz r3, 0x4 (r15)

  cmpwi r3, 0xc # Grand Prix
  beq invert

  cmpwi r3, 0xe # 1P offline VS
  beq invert

  cmpwi r3, 0x12 # 1P Battle
  beq invert

  cmpwi r3, 0x40 # 1P Worldwide/Regional VS
  beq invert

  cmpwi r3, 0x42 # 1P Friend Room VS

  invert:
  crnot 4 * cr0 + eq, 4 * cr0 + eq

  end:

ASM 5: Load our custom control instead of the ghost message control (by Kazuki)
Code:
#Inject at 0x8085853C PAL
#Inject at 0x80836AAC NTSC-U
#Inject at 0x80857BA8 NTSC-J
#Inject at 0x808468FC NTSC-K

.macro pushStack
  stwu sp, -0x80 (sp)
  mflr r0
  stw r0, 0x84 (sp)
  stmw r3, 8 (sp)
.endm

.macro popStack
  lmw r3, 8 (sp)
  lwz r0, 0x84 (sp)
  mtlr r0
  addi sp, sp, 0x80
.endm


.set region, '' # Specify which region to compile for

.if    (region == 'P' || region == 'p') # RMCP
    .set LayoutUIControl__setMessageAll, 0x8063DDB4
    .set ControlLoader__Load, 0x805C2C60
.elseif (region == 'E' || region == 'e' || region == 'U' || region == 'u') # RMCE
    .set LayoutUIControl__setMessageAll, 0x8060C994
    .set ControlLoader__Load, 0x805BA2CC
.elseif (region == 'J' || region == 'j') # RMCJ
    .set LayoutUIControl__setMessageAll, 0x8063D420
    .set ControlLoader__Load, 0x805C25E0
.elseif (region == 'K' || region == 'k') # RMCK
    .set LayoutUIControl__setMessageAll, 0x8062C0CC
    .set ControlLoader__Load, 0x805B0CC4
.else # Invalid Region
        .abort
.endif

  pushStack
 
  mr r14, r3
  bl get_data0 # Use the bl trick throughout to grab the string data we need
  mr r4, r3
  bl get_data1
  mr r5, r3
  bl get_data2
  mr r6, r3
  bl get_data3
  mr r7, r3
  mr r3, r14
  lis r12, ControlLoader__Load@h
  ori r12, r12, ControlLoader__Load@l # Call a function to load the speedometer control instead of the ghost message control
  mtlr r12
  blrl
  b end

  get_data0:
  mflr r12
  bl blTrickCommonEnd
  .string "game_image"
  .balign 4

  get_data1:
  mflr r12
  bl blTrickCommonEnd
  .string "speedometer"
  .balign 4

  get_data2:
  mflr r12
  bl blTrickCommonEnd
  .string "CtrlSpeedometer_1_0"
  .balign 4

  get_data3:
  mflr r12
  bl blTrickCommonEnd
  .long 0
  .long 0

  blTrickCommonEnd:
  mflr r3
  mtlr r12
  blr

  end:
 
  popStack



Attached Files
.zip   Double_Dash_Speedometer.zip (Size: 8.15 KB / Downloads: 25)
Print this item

  Frameskip [Wiimmfi Team]
Posted by: Sponge - 03-09-2024, 11:39 AM - Forum: Incomplete & Outdated Codes - No Replies

Frameskip [Wiimmfi Team]

Posted here should other people want to look at it. Extracted from v93 of the payload.

Originally wanting to convert the entire code into C2 format, I gave up due to the length and difficulty with reading the code. Some parts are in C2 whilst most parts are written in 06 format.

This only contains the actual frameskip related code. There were other parts related to debugging, but I removed them as I think it's pointless to include here and further increased the code length (It's also not even usable; Despite being downloaded and hooked by the Wiimmfi payload, a value is read that prevents the code from being executed. Another thing is that it's also similar, if not the same as the version used in CTGP to monitor performance. I would add comparison images, but I've lost this part of the code along with images of me using it.)

Technically supersedes this version as most internal systems will now run at full speed under 30 FPS with this code, but I'll post it here as I don't like the way I've converted and I don't want to port it as a result.

This code uses addresses 0x80001614 through 0x8000166B. Ensure no other codes read or write to these addresses

PAL
040095e4 60000000
040095f4 60000000
0451b69c 480000dc
04654400 60000000
C2562AD0 00000010
3C608000 88831621
2C040000 41A20028
3C808000 80841624
2C040000 40820058
38800000 98831621
38000000 981E0088
48000040 3C608000
88831620 2C040001
40A20030 2C000000
40A20028 3C808000
80841624 2C040000
41A20018 38000001
981E0088 3C808000
98041621 48000008
98031620 2C000000
60000000 00000000
C254DF88 00000007
3C60809C 80631E38
80630000 80630000
2C030021 4182001C
2C030025 41820014
2C030029 4182000C
38600001 48000008
38600000 00000000
C20095c4 00000086
7EA3AB78 7F24CB78
9421FFD8 93810018
3F808000 813C1628
93C10020 2F890000
83C3004C 419E0028
2F9E0000 419E0020
89430069 39200000
913C1628 312AFFFF
7D295110 39290001
993E0008 2F840000
39200000 419E011C
3D20809C 93E10024
892938BC 7C7F1B78
2F890000 60000000
2F9E0000 39200001
419E0248 7C0802A6
93010008 9001002C
9321000C 3F208000
93410010 93610014
93A1001C 3D80801A
618C65AC 7D8903A6
4E800421 7C7A1B78
3D808036 618C32A8
7D8903A6 4E800421
8139162C 3D008000
83BE0068 7C781B78
8B7F0069 7FA9EA14
815E006C 3B7B0001
7FBDDA14 93681630
7F8AE840 419C0098
3D408000 814A1634
7F895000 409C0088
2F890000 419E02F8
891E0008 3CE08000
81471638 7D3B4A14
7D1B4214 7F43D378
991E0008 7F6ADA14
39000000 3D408000
9139162C 93671638
910A163C 3D80801A
618C65D4 7D8903A6
4E800421 39200000
8001002C 83010008
8321000C 7C0803A6
83410010 83610014
83A1001C 83E10024
7D234B78 83810018
83C10020 38210028
480002A4 2F890000
409D0150 3D408000
912A1640 3D80801A
618CAD5C 7D8903A6
4E800421 815E006C
3D208000 39291644
39000000 7FBD5050
39400001 34FD0001
90690000 90890004
9119162C 915C1628
4081007C 3D20809C
3D008000 81291F50
9148164C 2F890000
419E0064 89490000
2F8A0000 419E0058
A9490012 2F8A0000
41BD004C 3D40809C
814AD728 814A0B74
2F8A0006 419E0038
895F0069 2F8A0000
419E0010 70EA0001
41820008 38FD0002
3CC08000 A1090010
81461650 7D074214
7D4A3A14 B1090010
91461650 3FE08000
7FC3F378 3BFF1654
3D808020 618CFE24
7D8903A6 4E800421
815F0000 3D208000
817F0004 3929165C
91490000 91690004
3D80801A 618CAD5C
7D8903A6 4E800421
907F0000 3D208000
39400001 7F43D378
9149163C 909F0004
3D80801A 618C65D4
7D8903A6 4E800421
39200001 4BFFFE94
83E10024 7D234B78
83810018 83C10020
38210028 48000150
3D208000 39400000
91491640 3D80801A
618CAD5C 7D8903A6
4E800421 3CE08000
3D408000 89071622
394A1668 3D208000
906A0000 2F880000
39291644 908A0004
39600000 39400000
91690004 91490000
419E000C 3908FFFF
99071622 2F980000
4BFFFF14 3FE0809C
813F1F50 2F890000
41BEFF04 89490000
2F8A0000 41BEFEF8
A9290012 2F890000
419DFEEC 3D20809C
8129D728 81290B74
2F890006 41BEFED8
7FC3F378 3D808020
618CFE24 7D8903A6
4E800421 3D808016
618CEAB0 7D8903A6
4E800421 815F1F50
3D008000 A12A0010
7D3B4A14 5529043E
B12A0010 91281664
4BFFFE94 7C0802A6
7FC3F378 9001002C
3D808020 618CFE24
7D8903A6 4E800421
8001002C 39200001
83E10024 7D234B78
83810018 7C0803A6
83C10020 38210028
4800002C 3D80801A
618CAD5C 7D8903A6
4E800421 3D408000
394A1668 8139162C
906A0000 908A0004
4BFFFCE8 7C791B78
2C190000 00000000
063632a8 000000FC
3D20809C 81291F50
2F890000 419E00D4
3D40809C 814AD728
2F8A0000 419E00C4
3D00809C 80E820D8
2F870000 419E00B4
89090000 2F880000
419E00A8 A9090012
2F880000 41BD009C
814A0B74 2F8A0006
419E0090 8147291C
3D008000 A0090010
396727A0 1D4A0058
39870180 90081664
3900000C 7D475214
39200000 38E70150
88CA0059 7D0903A6
48000024 7D07202E
80A80004 81050008
80850004 7F882000
419E0048 39290001
42400038 7F864800
41BEFFF4 806A0048
55282834 7C634E30
70630001 41A2FFE0
7D0B402E 5524103A
2F880000 41BEFFB8
7D0C202E 4BFFFFB4
38600000 4E800020
81050000 A108000C
7F880040 409DFFB0
4E800020 00000000
04001614 000F7709
04001634 00000006

Print this item

  Anti Remote Code Execution [Wiimmfi Team]
Posted by: Sponge - 03-09-2024, 11:09 AM - Forum: Incomplete & Outdated Codes - No Replies

Anti Remote Code Execution [Wiimmfi Team]

Posted here in case other people want to take a look at it.

Patches Star's RCE exploit and several crashes related to invalid packets. There's probably more functionality but I'm not bothered to look into it.

Written in 06 format as I did not want to rewrite it in C2 Format.

PAL
04658610 4BD0AD98
063633a8 0000032c
2F86000F 4C9D0020
9421FFE0 7C0802A6
39200000 90010024
9361000C 93810010
7C9C2378 93A10014
7CC43378 93C10018
7CDD3378 93E1001C
7C7F1B78 83650004
7CA32B78 91250004
7CBE2B78 4BE6E8AD
7F9B1800 409E00F0
57892834 937E0004
39292798 391C0060
7CDF4A14 5505103A
85060004 395C0054
3C808036 39200001
2F880000 5543103A
38843610 3B7E0007
3949FFFF 409E0074
7D1F182E 5547103A
7D68382E 7D1B48AE
2F880000 419E0040
2B8A0007 816B0004
419D0014 7D44382E
7D4A2214 7D4903A6
4E800420 2F8B000F
409D000C 2B880010
419E0014 7F885800
419D00B8 2F8B0010
419E00B0 2B890008
419E0040 39290001
85060004 3949FFFF
2F880000 41BEFF94
7D1F282E 5547103A
7D68382E 4BFFFF90
2F8B0017 409D000C
2B880017 409D0074
7F885800 419D006C
7FA6EB78 7FC5F378
7F84E378 7FE3FB78
482F659D 80010024
8361000C 83810010
7C0803A6 83A10014
83C10018 83E1001C
38210020 4E800020
2F8B0007 409D001C
2B880008 41BEFF80
2F8B000F 409D000C
2B880010 41BEFF70
7F885800 419D000C
2F8B0010 409EFF60
7F83E378 480000ED
4BFFFFA4 2F8B00BF
409D000C 2B8800C0
41BEFF44 7F885800
41BDFFE0 2F8B00C0
41BEFFD8 39290001
4BFFFF30 2F8B003F
409D001C 2B880040
41BEFF1C 2F8B007F
409D000C 2B880080
41BEFF0C 7F885800
41BDFFA8 2F8B0080
41BEFFA0 39290001
4BFFFEF8 2F8B0003
409D001C 2B880004
41BEFEE4 2F8B0037
409D000C 2B880038
41BEFED4 7F885800
41BDFF70 2F8B0038
41BEFF68 39290001
4BFFFEC0 2F8B0027
409D000C 2B880028
41BEFEA4 7F885800
41BDFF48 2F8B0028
41BEFF40 2B890008
409EFE94 4BFFFECC
FFFFFE64 FFFFFFD4
FFFFFFD4 FFFFFF9C
FFFFFF64 FFFFFF3C
FFFFFF00 FFFFFEB0
9421FFF8 7C0802A6
9001000C 4800007D
4BE42F6D 3D20809C
81291E38 2F890000
419E0030 81490000
2F8A0000 419E0024
812A0274 2F890000
419E0018 2F89FCA4
419E0010 8109035C
2F880001 419E0018
4BE42F55 8001000C
38210008 7C0803A6
4E800020 814A013C
2F8A0000 41BEFFE4
814A0008 2F8A0001
409EFFD8 39400002
9149035C 4BFFFFCC
3D408036 39200001
810A36D4 7D231830
7C634378 906A36D4
4E800020 00000000

Print this item

  Disable Camera Shake [Sponge]
Posted by: Sponge - 03-09-2024, 10:52 AM - Forum: Visual & Sound Effects - No Replies

Disable Camera Shake [Sponge]

Disables the screen shaking from POW hits and Bob-omb explosions.

PAL
045A9A40 4E800020

NTSC-U
0459EA08 4E800020

NTSC-J
045A93C0 4E800020

NTSC-K
04597A98 4E800020

Print this item

  Always Show Timer After Online Race Results [Sponge]
Posted by: Sponge - 03-09-2024, 10:48 AM - Forum: Visual & Sound Effects - No Replies

Always Show Timer After Online Race Results [Sponge]

Immediately displays the timer after the results screen online.

PAL
0464DB2C 60000000

NTSC-U
0461A818 60000000

NTSC-J
0464D198 60000000

NTSC-K
0463BE44 60000000

Print this item

  Always Show Timer on Vote Screen [Chadderz]
Posted by: Sponge - 03-09-2024, 10:41 AM - Forum: Visual & Sound Effects - No Replies

Always Show Timer on Vote Screen [Chadderz]

Immediately displays the timer during the course vote.

Credit is given to Chadderz as the code is derived from the CTGP 1.02 source

PAL
04650254 60000000

NTSC-U
0461CF40 60000000

NTSC-J
0464F8C0 60000000

NTSC-K
0463E56C 60000000

Print this item

  EVENT Announcement Timer [MrBean]
Posted by: Sponge - 03-09-2024, 10:27 AM - Forum: Online; Item - No Replies

EVENT Announcement Timer [MrBean]

Also referred to as "Anti-Freeze from Item Spam"

Specifies how many frames each EVENT entry is kept in the buffer when sending to players. Lower values will remove entries from the buffer sooner, allowing you to stockpile more entries without crashing.

XXXX = value in frames, it is not recommended to go above the default value of 200 frames (0xC8)

PAL
0465B870 38C6XXXX
0465BB40 3864XXXX

NTSC-U
04657254 38C6XXXX
04657524 3864XXXX

NTSC-J
0465AEDC 38C6XXXX
0465B1AC 3864XXXX

NTSC-K
04649B88 38C6XXXX
04649E58 3864XXXX

Print this item

  No Boundary Check [Sponge]
Posted by: Sponge - 03-09-2024, 10:11 AM - Forum: Offline Non-Item - No Replies

No Boundary Check [Sponge]

Also known as Disable Boundaries. You can drive in out of bounds areas without respawning.

Unlike Anarion's version, this does not cause the character to make "drowning" noises when the player does an action and does not cause the camera to have issues online.

Recommended to be paired with this code

PAL
02571714 00004800
02571DC4 00004800
025867CC 00004800
0259BE28 00004800

NTSC-U
0256C8C4 00004800
0256CF74 00004800
0257FFA8 00004800
025B0E10 00004800

NTSC-J
02571094 00004800
02571744 00004800
0258614C 00004800
0259B7A8 00004800

NTSC-K
0255F76C 00004800
0255FE1C 00004800
02574824 00004800
02589E80 00004800

Print this item

  Total No Invincibility [Fishguy, Ro]
Posted by: _Ro - 03-08-2024, 07:27 PM - Forum: Offline Non-Item - No Replies

Total No Invincibility [Fishguy, Ro]

Removes every form of invincibility in the game. You will be able to get hit while in Star, Mega and Bullet by anything that normally gives damage; items, objects, other players Star/Mega/Bullet (but you can't hit them) and more, as well as addition of some fixes and improvements to the code. Recommended to use with "No Team Invincibility" (https://mariokartwii.com/showthread.php?tid=2147).

NTSC-U
045633C0 60000000
0456E330 60000000
0456E34C 60000000
0456D8F4 60000000
04563390 48000020
0456E4A4 48000010
04579AF4 48000040
0457A3E4 48000040
04579F78 48000020
04703254 48000028
047033E4 4800003C
048170C8 48000038
048179D8 38000000
048179EC 38800000
04579AD4 60000000
047D61A4 60000000
047D6310 38000000
047D74D8 60000000
047D8630 60000000
0456AED4 38000000
0456AEEC 60000000
0456AEF4 60000000
C256AEE4 00000004
80C4000C 80640008
80040014 70000002
4182000C 38C00000
38600000 00000000
C256AEE8 00000004
80E5000C 80050008
81640014 716B0002
4082000C 38E00000
38000000 00000000
C257A0B4 00000003
9003000C 39800000
B19C0194 558C023E
9983000E 00000000

PAL
04567740 60000000
04573180 60000000
0457319C 60000000
04572744 60000000
04567710 48000020
045732F4 48000010
04580358 48000040
04580358 48000040
045807DC 48000020
04709BF8 48000028
04709D88 4800003C
0482ABDC 48000038
0482B4EC 38000000
0482B500 38800000
04580338 60000000
047A93E4 60000000
047A9550 38000000
047AFA84 60000000
047B0BDC 60000000
0456FD24 38000000
0456FD3C 60000000
0456FD44 60000000
C256FD34 00000004
80C4000C 80640008
80040014 70000002
4182000C 38C00000
38600000 00000000
C256FD38 00000004
80E5000C 80050008
81640014 716B0002
4082000C 38E00000
38000000 00000000
C2580918 00000003
9003000C 39800000
B19C0194 558C023E
9983000E 00000000

NTSC-J
045670C0 60000000
04572B00 60000000
04572B1C 60000000
045720C4 60000000
04567090 48000020
04572C74 48000010
0457FCD8 48000040
0457FCD8 48000040
0458015C 48000020
04709264 48000028
047093F4 4800003C
0482A248 48000038
0482AB58 38000000
0482AB6C 38800000
0457FCB8 60000000
047A8A50 60000000
047A8BBC 38000000
047AF0F0 60000000
047B0248 60000000
0456F6A4 38000000
0456F6BC 60000000
0456F6C4 60000000
C256F6B4 00000004
80C4000C 80640008
80040014 70000002
4182000C 38C00000
38600000 00000000
C256F6B8 00000004
80E5000C 80050008
81640014 716B0002
4082000C 38E00000
38000000 00000000
C2580298 00000003
9003000C 39800000
B19C0194 558C023E
9983000E 00000000

NTSC-K
04555798 60000000
045611D8 60000000
045611F4 60000000
0456079C 60000000
04555768 48000020
0456134C 48000010
0456E3B0 48000040
0456E3B0 48000040
0456E834 48000020
046F7FA0 48000028
046F8130 4800003C
04818F9C 48000038
048198AC 38000000
048198C0 38800000
0456E390 60000000
047977A4 60000000
04797910 38000000
0479DE44 60000000
0479EF9C 60000000
0455DD7C 38000000
0455DD94 60000000
0455DD9C 60000000
C255DD8C 00000004
80C4000C 80640008
80040014 70000002
4182000C 38C00000
38600000 00000000
C255DD90 00000004
80E5000C 80050008
81640014 716B0002
4082000C 38E00000
38000000 00000000
C256E970 00000003
9003000C 39800000
B19C0194 558C023E
9983000E 00000000

Code creator: Fishguy (Base code), Ro

Print this item

  Upside Down Player [Ro]
Posted by: _Ro - 03-08-2024, 07:26 PM - Forum: Online Non-Item - No Replies

Upside Down Player [Ro]

This code makes you (only you) upside down. The way the code was made is extremely bad and you slide a lot with it. You can only properly move and turn with "Turn in Place" (https://mariokartwii.com/showthread.php?tid=2135) and "Turn in Air" (https://mariokartwii.com/showthread.php?tid=2136).

NTSC-U
C2597350 00000004
3D8042B4 91830088
3980003A 9983008C
99830094 80030008
60000000 00000000

PAL
C25A2388 00000004
3D8042B4 91830088
3980003A 9983008C
99830094 80030008
60000000 00000000

NTSC-J
C25A1D08 00000004
3D8042B4 91830088
3980003A 9983008C
99830094 80030008
60000000 00000000

NTSC-K
C25903E0 00000004
3D8042B4 91830088
3980003A 9983008C
99830094 80030008
60000000 00000000

Code creator: Ro

Print this item