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

Username
  

Password
  





Search Forums

(Advanced Search)

Forum Statistics
» Members: 525
» Latest member: nade33f
» Forum threads: 1,652
» Forum posts: 11,625

Full Statistics

Online Users
There are currently 89 online users.
» 0 Member(s) | 87 Guest(s)
Bing, Google

Latest Threads
Condition box on Dolphin’...
Forum: Coding & Hacking General Discussion
Last Post: seanmcnally
4 hours ago
» Replies: 5
» Views: 77
Waltress (PPC Assembler)
Forum: Coding & Hacking General Discussion
Last Post: Vega
11 hours ago
» Replies: 13
» Views: 5,989
Finding breakpoint for "C...
Forum: Coding & Hacking General Discussion
Last Post: seanmcnally
Yesterday, 09:23 PM
» Replies: 2
» Views: 62
Make it to 10,000
Forum: General Discussion
Last Post: Fifty
Yesterday, 07:53 PM
» Replies: 5,407
» Views: 4,057,472
Logging game events to te...
Forum: Coding & Hacking General Discussion
Last Post: Vega
Yesterday, 05:20 PM
» Replies: 25
» Views: 671
Assembly Tutorial
Forum: PowerPC Assembly
Last Post: seanmcnally
03-15-2024, 05:54 PM
» Replies: 8
» Views: 35,258
No ESRB Screen (NTSC-U On...
Forum: Misc/Other
Last Post: Vega
03-15-2024, 02:01 AM
» Replies: 10
» Views: 12,779
Stop Time [Ro]
Forum: Incomplete & Outdated Codes
Last Post: _Ro
03-13-2024, 07:48 AM
» Replies: 0
» Views: 81
Always Show Friend Code o...
Forum: Visual & Sound Effects
Last Post: Optllizer
03-13-2024, 03:49 AM
» Replies: 3
» Views: 170
Remove Voice Delay [Spong...
Forum: Visual & Sound Effects
Last Post: Sponge
03-12-2024, 10:48 PM
» Replies: 0
» Views: 74

 
  Finding breakpoint for "Course Overview" cutscene
Posted by: seanmcnally - 03-17-2024, 12:09 AM - Forum: Coding & Hacking General Discussion - Replies (2)

Trying to find a good insertion point for an event that doesn't really have any numbers associated with it, and isn't really triggered by anything other than normal game function - the opening "course overview" cutscene that plays at the beginning of each race.  The eventual idea is that I want to prevent the player from being able to skip this cutscene.  I'm guessing I can either nop out the function that skips it, or maybe find a way of preventing input while the scene is active.

The trouble is I'm unsure how to find the insertion point for something like this.  It's not an item, it doesn't really have to do with regular gameplay.  I tried putting a breakpoint on my controller to see if I could maybe figure out how the instruction is being executed when you skip the cutscene, but nothing I tried seemed to provide anything that made sense.  How would I go about finding the right insertion point?

Any tips greatly appreciated, thank you!

Print this item

  Condition box on Dolphin’s Breakpoint menu?
Posted by: seanmcnally - 03-16-2024, 02:59 AM - Forum: Coding & Hacking General Discussion - Replies (5)

Apologies if this has already been answered elsewhere, but I haven’t been able to find any documentation on this. What exactly does the “condition” box do inside Dolphin’s breakpoint menu?[Image: 38df161860813b8846201.jpg]

Print this item

  Stop Time [Ro]
Posted by: _Ro - 03-13-2024, 07:48 AM - Forum: Incomplete & Outdated Codes - No Replies

Stop Time [Ro]

This code will "stop time" with a press of a button, quite literally. In other words, when this code is enabled, "everything" will "freeze", EXCEPT YOU - Items, CPUs, objects, timer,, UI animations and other elements will completely freeze/stop, EXCEPT FOR YOUR KART! You will be able to control your kart and throw stationary items while everything is frozen, since CPUs will be frozen you can abuse them by placing items in front of them or hitting or bumping them then unfreezing time, all actions done while frozen will be done after unfreezing. It is hard to explain, it is better to watch the demonstration video of the code by clicking here (poor showcase video). Press the set activator, the code will enable, press it again, the code will disable.

Unfortunately, this code is incomplete, there are elements I wanted to implement that I couldn't find or had issues and I have no more time or interest to look into these. These elements are:


Freeze FIB Anim (One that freezes it at the current rotation rather than forcing a specific one)
Freeze Character Anim That is In Play (Freezing character animation while one is playing, for CPUs)
Freeze Object Animation (Some objects are still animated, even though they are frozen)
Freeze Course Texture Animation (Found but instead of freezing it was currently, breaks it as if there was no anim present)
Freeze Explosion (So explosions are frozen during stop)
Better Freeze Items (Unfortunately, it doesn't seem like this game has a main calc function that handles multiple item stuff, including the explosion as well, so it's done in a bad way)
Freeze Kart Animation (Karts are still animated during stop)
No Engine Sound (One that changes live. Actually forgot to look into this)

This code is a recreation of Fosfour5933's Mario Kart 7 Stop Item Hack. I also made my own version of this code in Mario Kart 8 Deluxe just like how I did here for Wii, which is awesome and I could find all elements I wanted (pretty much like Fosfour's code), unlike here in Mario Kart Wii (but I didn't have enough interest and time to look into it all, so instead of fully abandoning it, I'm releasing as how it is). This may or may not be my last MKW code. Thank you for everything.

Credits to JoshuaMK for Kill Lakitu address, 1superchip for Remote Object Freeze address and Vega for POW Check address.

NTSC-U
2834XXXX YYYYZZZZ
04530DBC 4E800020
04589870 2C030001
0458989C 2C030001
0460B39C 4E800020
04678700 4E800020
046898E0 38600000
04701934 4E800020
0471A290 4E800020
04790870 48000010
047960E8 480003A4
04796494 48000038
0479F034 60000000
047C3144 60000000
047C3E04 C025FFB4
047E4CC0 38030000
04816DE0 4E800020
048604E4 4E800020
048A1A04 00000000
CC000000 00000000
04530DBC 9421FFC0
04589870 7C030040
0458989C 7C030040
0460B39C 9421FFE0
04678700 9421FFE0
046898E0 3867FF38
04701934 9421FFC0
0471A290 9421FFE0
04790870 48045801
047960E8 408203A4
04796494 40820018
0479F034 90810054
047C3144 4BFFA475
047C3E04 C0231A00
047E4CC0 38030001
04816DE0 9421FF80
048604E4 9421FFD0
048A1A04 3F800000
E0000000 00000000

PAL
2834XXXX YYYYZZZZ
04535904 4E800020
04590094 2C030001
045900C0 2C030001
0463C7BC 4E800020
0467CB88 4E800020
0468DD68 38600000
047082D8 4E800020
0471E6C0 4E800020
0479987C 48000010
0479F0F4 480003A4
0479F4A0 48000038
047A8040 60000000
047D1BA4 60000000
047D2854 C025FFB4
047EEFD0 38030000
0482A8F4 4E800020
04864914 4E800020
048A6734 00000000
CC000000 00000000
04535904 9421FFC0
04590094 7C030040
045900C0 7C030040
0463C7BC 9421FFE0
0467CB88 9421FFE0
0468DD68 3867FF38
047082D8 9421FFC0
0471E6C0 9421FFE0
0479987C 4800FA35
0479F0F4 408203A4
0479F4A0 40820018
047A8040 90810054
047D1BA4 4BFFA475
047D2854 B01E00FC
047EEFD0 38030001
0482A8F4 9421FF80
04864914 9421FFD0
048A6734 3F800000
E0000000 00000000

NTSC-J
2834XXXX YYYYZZZZ
04535284 4E800020
0458FA14 2C030001
0458FA40 2C030001
0463BE28 4E800020
0467C1F4 4E800020
0468D3D4 38600000
04707944 4E800020
0471DD2C 4E800020
04798EE8 48000010
0479E760 480003A4
0479EB0C 48000038
047A76AC 60000000
047D1210 60000000
047D1EC0 C025FFB4
047EE63C 38030000
04829F60 4E800020
04863F80 4E800020
048A5894 00000000
CC000000 00000000
04535284 9421FFC0
0458FA14 7C030040
0458FA40 7C030040
0463BE28 9421FFE0
0467C1F4 9421FFE0
0468D3D4 3867FF38
04707944 9421FFC0
0471DD2C 9421FFE0
04798EE8 4800FA35
0479E760 408203A4
0479EB0C 40820018
047A76AC 90810054
047D1210 4BFFA475
047D1EC0 B01E00FC
047EE63C 38030001
04829F60 9421FF80
04863F80 9421FFD0
048A5894 3F800000
E0000000 00000000

NTSC-K
2835XXXX YYYYZZZZ
0452395C 4E800020
0457E0EC 2C030001
0457E118 2C030001
0462AAD4 4E800020
0466AF30 4E800020
0467C110 38600000
046F6680 4E800020
0470CA68 4E800020
04787C3C 48000010
0478D4B4 480003A4
0478D860 48000038
04796400 60000000
047BFF64 60000000
047BA480 C025FFB4
047DD390 38030000
04818CB4 4E800020
04852CD4 4E800020
04894B94 00000000
CC000000 00000000
0452395C 9421FFC0
0457E0EC 7C030040
0457E118 7C030040
0462AAD4 9421FFE0
0466AF30 9421FFE0
0467C110 3867FF38
046F6680 9421FFC0
0470CA68 9421FFE0
04787C3C 4800FA35
0478D4B4 408203A4
0478D860 40820018
04796400 90810054
047BFF64 4BFFA475
047BA480 C0231A00
047DD390 38030001
04818CB4 9421FF80
04852CD4 9421FFD0
04894B94 3F800000
E0000000 00000000

XXXX: Controller Address
YYYY: FFFF - ZZZZ
ZZZZ: Button value

Code creator: Ro
Code credits: JoshuaMK (Kill Lakitu address), 1superchip (Remote Object Freeze addresss), Vega (POW Check address)

Print this item

  Remove Voice Delay [Sponge]
Posted by: Sponge - 03-12-2024, 10:48 PM - Forum: Visual & Sound Effects - No Replies

Remove Voice Delay [Sponge]

Removes the delay between character voice lines and removes the limit of how many can play at once. Based on a code by Dea.

This affects both you and opponent characters. To make it only affect you, remove the second line of the code.

PAL
04864ACC 3BE0FFFF
04864ABC 60000000


NTSC-U
0486069C 3BE0FFFF
0486068C 60000000

NTSC-J
04864138 3BE0FFFF
04864128 60000000

NTSC-K
04852E8C 3BE0FFFF
04852E7C 60000000

Print this item

  See Bullet Bills in Online Battle [Sponge]
Posted by: Sponge - 03-12-2024, 10:33 PM - Forum: Online; Item - No Replies

See Bullet Bills in Online Battle [Sponge]

Allows you to see other people using bullet bills in Battle mode during online play. Not useful without some sort of bypass for the item point crash.

PAL
0458D9EC 38800000

NTSC-U
045871C8 38800000

NTSC-J
0458D36C 38800000

NTSC-K
0457BA44 38800000

Print this item

  Country Flag Randomizer [Sponge]
Posted by: Sponge - 03-12-2024, 07:26 PM - Forum: Online Non-Item - No Replies

Country Flag Randomizer [Sponge]

Constantly randomizes the country flag you have set. Only countries with actual flags are set, countries without are ignored.

PAL
C0000000 00000018
7D8802A6 9421FF78
BC610008 38600001
38800089 3D80800F
618C2EE0 7D8803A6
4E800021 5460C00E
64000001 9001007C
38610080 3C808089
60845388 38A40063
38800007 5406463E
4CC63182 3D808001
618C1938 7D8803A6
4E800021 3D80809C
818C1E38 2C0C0000
41820048 818C0000
2C0C0000 4182003C
818C025C 2C0C0000
41820030 386C01C8
38810080 3D808063
618CE328 7D8803A6
4E800021 2C030000
41820010 8161007C
3D808043 916CABD8
B8610008 38210088
7D8803A6 4E800020

NTSC-U
C0000000 00000018
7D8802A6 9421FF78
BC610008 38600001
38800089 3D80800F
618C2E40 7D8803A6
4E800021 5460C00E
64000001 9001007C
38610080 3C808089
6084FA90 38A40063
38800007 5406463E
4CC63182 3D808001
618C0DD8 7D8803A6
4E800021 3D80809C
818CD508 2C0C0000
41820048 818C0000
2C0C0000 4182003C
818C025C 2C0C0000
41820030 386C01C8
38810080 3D808060
618CCF08 7D8803A6
4E800021 2C030000
41820010 8161007C
3D808042 916C6858
B8610008 38210088
7D8803A6 4E800020

NTSC-J
C0000000 00000018
7D8802A6 9421FF78
BC610008 38600001
38800089 3D80800F
618C2E00 7D8803A6
4E800021 5460C00E
64000001 9001007C
38610080 3C808089
608449D8 38A40063
38800007 5406463E
4CC63182 3D808001
618C185C 7D8803A6
4E800021 3D80809C
818C0E98 2C0C0000
41820048 818C0000
2C0C0000 4182003C
818C025C 2C0C0000
41820030 386C01C8
38810080 3D808063
618CD994 7D8803A6
4E800021 2C030000
41820010 8161007C
3D808043 916CA558
B8610008 38210088
7D8803A6 4E800020

NTSC-K
C0000000 00000018
7D8802A6 9421FF78
BC610008 38600001
38800089 3D80800F
618C2F58 7D8803A6
4E800021 5460C00E
64000001 9001007C
38610080 3C808088
60843798 38A40063
38800007 5406463E
4CC63182 3D808001
618C19A0 7D8803A6
4E800021 3D80809B
818C0478 2C0C0000
41820048 818C0000
2C0C0000 4182003C
818C025C 2C0C0000
41820030 386C01C8
38810080 3D808062
618CC640 7D8803A6
4E800021 2C030000
41820010 8161007C
3D808042 916C8BF8
B8610008 38210088
7D8803A6 4E800020

Code:
.set region, '' # Specify which region to compile for
.if    (region == 'P' || region == 'p') # RMCP
    .set utilRandom, 0x800F2EE0
    .set flagString, 0x80895388
    .set snprintf, 0x80011938
    .set menuData, 0x809C1E38
    .set iconPaneExists, 0x8062E328
    .set flagLoc, 0x8042ABD8
.elseif (region == 'E' || region == 'e' || region == 'U' || region == 'u') # RMCE
    .set utilRandom, 0x800F2E40
    .set flagString, 0x8088FA90
    .set snprintf, 0x80010DD8
    .set menuData, 0x809BD508
    .set iconPaneExists, 0x805FCF08
    .set flagLoc, 0x80426858
.elseif (region == 'J' || region == 'j') # RMCJ
    .set utilRandom, 0x800F2E00
    .set flagString, 0x808949D8
    .set snprintf, 0x8001185C
    .set menuData, 0x809C0E98
    .set iconPaneExists, 0x8062D994
    .set flagLoc, 0x8042A558
.elseif (region == 'K' || region == 'k') # RMCK
    .set utilRandom, 0x800F2f58
    .set flagString, 0x80883798
    .set snprintf, 0x800119A0
    .set menuData, 0x809B0478
    .set iconPaneExists, 0x8061C640
    .set flagLoc, 0x80418BF8
.else # Invalid Region
        .abort
.endif

mflr r12
stwu sp, -0x88 (sp)
stmw r3, 0x8 (sp) # Push the stack

li r3, 0x1 # First valid flag entry
li r4, 0x89 # One above the last valid flag entry
lis r12, utilRandom@ha
ori r12, r12, utilRandom@l
mtlr r12
blrl # Call utilRandom to randomize the country byte

slwi r0, r3, 0x18 # Shift the byte 24 bits to the left
oris r0, r0, 0x0001 # Set the city to 1 in order for it to appear
stw r0, 0x7C (sp) # Store for later use
addi r3, sp, 0x80
lis r4, flagString@ha
ori r4, r4, flagString@l # Load flag string for printf call
addi r5, r4, 0x63
li r4, 0x7
rlwinm r6, r0, 8, 24, 31
crclr 6
lis r12, snprintf@ha
ori r12, r12, snprintf@l
mtlr r12
blrl # Call snprintf

lis r12, menuData@ha
lwz r12, menuData@l (r12)
cmpwi r12, 0
beq end
lwz r12, 0 (r12)
cmpwi r12, 0
beq end
lwz r12, 0x25C (r12)
cmpwi r12, 0
beq end # Three checks are needed as all three will cause null pointers due to the C0 codetype executing before they're setup
addi r3, r12, 0x1C8
addi r4, sp, 0x80
lis r12, iconPaneExists@ha
ori r12, r12, iconPaneExists@l
mtlr r12
blrl # Call the pane function

cmpwi r3, 0
beq end # Exit if no flag can be found, we only want to write valid countries
lwz r11, 0x7C (sp) # Load the country value we stored earlier
lis r12, flagLoc@ha
stw r11, flagLoc@l(r12) # Overwrite any previously set country

end:
lmw r3, 0x8 (sp) # Pop the stack
addi sp, sp, 0x88
mtlr r12
#blr # (Uncomment if not compiling with PyiiASMH)

Print this item

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

"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: 8)
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