Welcome, Guest |
You have to register before you can post on our site.
|
Forum Statistics |
» Members: 646
» Latest member: Luca1337
» Forum threads: 1,814
» Forum posts: 14,000
Full Statistics
|
Online Users |
There are currently 94 online users. » 1 Member(s) | 89 Guest(s) Applebot, Bing, Google, Yandex, Vega
|
Latest Threads |
Top 10 Most Influential C...
Forum: Coding & Hacking General Discussion
Last Post: Vega
3 hours ago
» Replies: 2
» Views: 7,336
|
Show Ice Cube on Online P...
Forum: Online Non-Item
Last Post: _Ro
10 hours ago
» Replies: 0
» Views: 30
|
CPU Control Cycler [Ro]
Forum: Offline Non-Item
Last Post: _Ro
10 hours ago
» Replies: 7
» Views: 1,007
|
Thunder Cloud Effect Modi...
Forum: Offline; Item
Last Post: JerryHatrick
Yesterday, 11:13 PM
» Replies: 11
» Views: 1,085
|
MKW Coder/Developer of th...
Forum: Coding & Hacking General Discussion
Last Post: Vega
Yesterday, 09:10 PM
» Replies: 10
» Views: 13,826
|
Make it to 10,000
Forum: General Discussion
Last Post: Vega
Yesterday, 08:15 PM
» Replies: 7,338
» Views: 5,670,513
|
Miniturbos and Inside Dri...
Forum: Coding & Hacking General Discussion
Last Post: JerryHatrick
Yesterday, 09:54 AM
» Replies: 1
» Views: 858
|
Code request???
Forum: Code Support / Help / Requests
Last Post: DrTap
01-09-2025, 06:06 PM
» Replies: 3
» Views: 4,956
|
CPUs/Online Players Have ...
Forum: Visual & Sound Effects
Last Post: Zeraora
01-09-2025, 02:26 AM
» Replies: 2
» Views: 512
|
Offline Hide and Seek
Forum: Code Support / Help / Requests
Last Post: FelX
01-08-2025, 03:43 PM
» Replies: 11
» Views: 747
|
|
|
Mario Kart 7/8 Style Item Distributions [Sioist] |
Posted by: sioist - 08-14-2021, 02:37 AM - Forum: Online; Item
- No Replies
|
|
This code builds upon XeR's Item Probability Modifier (original post here) for 10 player rooms to now include item tables for all 12 players. This code also now has 11 customizable tiers to simulate the way Mario Kart 7/8 determine item probabilities. This code also works offline.
NTSC-U:
C27ACBC4 00000052
7D8802A6 480001F9
00410000 004B0028
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00140023
00320028 000F0019
00000000 00000000
00000000 00000000
00000000 0000000A
00000019 001E0032
000F000A 00230000
00050000 00000000
00000000 00000000
00050000 0014000A
0014000A 001E0000
0000001E 0014000F
000A0000 00000000
000F000A 000A000F
0000000F 00140000
00000014 00000000
0019001E 000F000F
00000000 00050014
000F000A 000F0000
000A0014 00000000
000A0000 00000014
0032000A 000F0000
00000014 000F000F
000F000A 00000005
000F0000 00000005
00000000 00000041
0000000A 00000019
002D000A 000A000A
000A0000 0000000A
00000000 00000000
00000000 003C0000
00000000 00370046
00000000 00000000
000F0000 00000000
00000000 00000000
00000019 00000000
000F0037 003C0000
00000000 0000002D
00000000 00000000
00000000 00000000
000A0000 00000028
0023002D 00000000
00000000 00460000
00000000 00000000
00000000 00000000
00000000 00F00000
00000000 00000000
000000F0 00000000
00000000 00000000
00000000 00000000
000000F0 00000000
00000000 00000000
00F00000 00000000
PPPPPPPP QQQQQQQQ
RRRRRRRR SSSSSSSS
TTTTTTTT UUUUUUUU
VVVVVVVV WWWWWWWW
XXXXXXXX YYYYYYYY
ZZZZZZZZ 7C8802A6
7D8803A6 3D60809B
616B8F70 816B0000
816B000C 816B0000
396B000C 3980000C
7D8903A6 89970070
1D8C00C4 7D6C5C2E
EDAD6828 C18B0000
FC8C6840 41840008
FDA06090 396B00C4
4200FFEC EDAD5828
ED8C6028 38600000
FC8D6040 41860028
7C8C2378 398C01C8
3960000B 7D6903A6
7D83642E 38630004
FC8D6040 41840008
4200FFF0 5463F0BE
1C630026 00000000
PAL:
C27BB624 00000052
7D8802A6 480001F9
00410000 004B0028
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00140023
00320028 000F0019
00000000 00000000
00000000 00000000
00000000 0000000A
00000019 001E0032
000F000A 00230000
00050000 00000000
00000000 00000000
00050000 0014000A
0014000A 001E0000
0000001E 0014000F
000A0000 00000000
000F000A 000A000F
0000000F 00140000
00000014 00000000
0019001E 000F000F
00000000 00050014
000F000A 000F0000
000A0014 00000000
000A0000 00000014
0032000A 000F0000
00000014 000F000F
000F000A 00000005
000F0000 00000005
00000000 00000041
0000000A 00000019
002D000A 000A000A
000A0000 0000000A
00000000 00000000
00000000 003C0000
00000000 00370046
00000000 00000000
000F0000 00000000
00000000 00000000
00000019 00000000
000F0037 003C0000
00000000 0000002D
00000000 00000000
00000000 00000000
000A0000 00000028
0023002D 00000000
00000000 00460000
00000000 00000000
00000000 00000000
00000000 00F00000
00000000 00000000
000000F0 00000000
00000000 00000000
00000000 00000000
000000F0 00000000
00000000 00000000
00F00000 00000000
PPPPPPPP QQQQQQQQ
RRRRRRRR SSSSSSSS
TTTTTTTT UUUUUUUU
VVVVVVVV WWWWWWWW
XXXXXXXX YYYYYYYY
ZZZZZZZZ 7C8802A6
7D8803A6 3D60809B
616BD730 816B0000
816B000C 816B0000
396B000C 3980000C
7D8903A6 89970070
1D8C00C4 7D6C5C2E
EDAD6828 C18B0000
FC8C6840 41840008
FDA06090 396B00C4
4200FFEC EDAD5828
ED8C6028 38600000
FC8D6040 41860028
7C8C2378 398C01C8
3960000B 7D6903A6
7D83642E 38630004
FC8D6040 41840008
4200FFF0 5463F0BE
1C630026 00000000
NTSC-J:
C27BAC90 00000052
7D8802A6 480001F9
00410000 004B0028
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00140023
00320028 000F0019
00000000 00000000
00000000 00000000
00000000 0000000A
00000019 001E0032
000F000A 00230000
00050000 00000000
00000000 00000000
00050000 0014000A
0014000A 001E0000
0000001E 0014000F
000A0000 00000000
000F000A 000A000F
0000000F 00140000
00000014 00000000
0019001E 000F000F
00000000 00050014
000F000A 000F0000
000A0014 00000000
000A0000 00000014
0032000A 000F0000
00000014 000F000F
000F000A 00000005
000F0000 00000005
00000000 00000041
0000000A 00000019
002D000A 000A000A
000A0000 0000000A
00000000 00000000
00000000 003C0000
00000000 00370046
00000000 00000000
000F0000 00000000
00000000 00000000
00000019 00000000
000F0037 003C0000
00000000 0000002D
00000000 00000000
00000000 00000000
000A0000 00000028
0023002D 00000000
00000000 00460000
00000000 00000000
00000000 00000000
00000000 00F00000
00000000 00000000
000000F0 00000000
00000000 00000000
00000000 00000000
000000F0 00000000
00000000 00000000
00F00000 00000000
PPPPPPPP QQQQQQQQ
RRRRRRRR SSSSSSSS
TTTTTTTT UUUUUUUU
VVVVVVVV WWWWWWWW
XXXXXXXX YYYYYYYY
ZZZZZZZZ 7C8802A6
7D8803A6 3D60809B
616BC790 816B0000
816B000C 816B0000
396B000C 3980000C
7D8903A6 89970070
1D8C00C4 7D6C5C2E
EDAD6828 C18B0000
FC8C6840 41840008
FDA06090 396B00C4
4200FFEC EDAD5828
ED8C6028 38600000
FC8D6040 41860028
7C8C2378 398C01C8
3960000B 7D6903A6
7D83642E 38630004
FC8D6040 41840008
4200FFF0 5463F0BE
1C630026 00000000
NTSC-K:
C27A99E4 00000052
7D8802A6 480001F9
00410000 004B0028
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00140023
00320028 000F0019
00000000 00000000
00000000 00000000
00000000 0000000A
00000019 001E0032
000F000A 00230000
00050000 00000000
00000000 00000000
00050000 0014000A
0014000A 001E0000
0000001E 0014000F
000A0000 00000000
000F000A 000A000F
0000000F 00140000
00000014 00000000
0019001E 000F000F
00000000 00050014
000F000A 000F0000
000A0014 00000000
000A0000 00000014
0032000A 000F0000
00000014 000F000F
000F000A 00000005
000F0000 00000005
00000000 00000041
0000000A 00000019
002D000A 000A000A
000A0000 0000000A
00000000 00000000
00000000 003C0000
00000000 00370046
00000000 00000000
000F0000 00000000
00000000 00000000
00000019 00000000
000F0037 003C0000
00000000 0000002D
00000000 00000000
00000000 00000000
000A0000 00000028
0023002D 00000000
00000000 00460000
00000000 00000000
00000000 00000000
00000000 00F00000
00000000 00000000
000000F0 00000000
00000000 00000000
00000000 00000000
000000F0 00000000
00000000 00000000
00F00000 00000000
PPPPPPPP QQQQQQQQ
RRRRRRRR SSSSSSSS
TTTTTTTT UUUUUUUU
VVVVVVVV WWWWWWWW
XXXXXXXX YYYYYYYY
ZZZZZZZZ 7C8802A6
7D8803A6 3D60809A
616BBD70 816B0000
816B000C 816B0000
396B000C 3980000C
7D8903A6 89970070
1D8C00C4 7D6C5C2E
EDAD6828 C18B0000
FC8C6840 41840008
FDA06090 396B00C4
4200FFEC EDAD5828
ED8C6028 38600000
FC8D6040 41860028
7C8C2378 398C01C8
3960000B 7D6903A6
7D83642E 38630004
FC8D6040 41840008
4200FFF0 5463F0BE
1C630026 00000000
Similar to XeR's code, fill in the item probability weightings as half-words. For 1st place's items, fill in values in the first purple color group. The next color group down (red) is 2nd place's items, then 3rd, then 4th, etc all the way to 12th places items in the final green color group.
The order of the items is the index of each item, so the first half-word (aka 4 digits) is the weighting for green shells, then red shells, bananas, mushrooms, etc.
When you get an item box, your position no longer matters (unless you are in 1st) for which place box you get. It is dependent on your distance to 1st place. There are 11 different tiers of distances, each one corresponding to 2nd place through 12th place boxes. The distance from 1st place is measured by subtracting your race completion from 1st place's.
For example, if the first tier is set at a value of 0.10 (0x3DCCCCCD in hex), you will receive 2nd place boxes if, at the time of pulling the item box, your race completion is within 0.10 of first place. This means that you need to be within 10% of a lap on any track to receive 2nd place boxes. Then if the next tier is set at 0.20 (0x3E4CCCCD in hex), your race completion must be within 0.1 and 0.2 to receive 3rd place boxes. Continue with subsequent tiers until last place.
For the last tier, it is recommended you set a large value (at least 3) so that a player doesn't fall so far behind that they exceed the last tier's value.
PPPPPPPP - Tier 1, 2nd place boxes
QQQQQQQQ - Tier 2, 3rd place boxes
.
.
YYYYYYYY - Tier 10, 11th place boxes
ZZZZZZZZ - Tier 11, 12th place boxes
Here is a decimal to float conversion calculator to translate the race completion values into floats to put into the code.
ASM Source:
Code: .set ptr_playerData, 0x809b8f70
set_up:
mflr r12
bl the_code
# 1st place
.long 0x00410000
.long 0x004b0028
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
# 2nd place, lower halfword
.long 0x00140023
.long 0x00320028
.long 0x000f0019
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x0000000a
.long 0x00000019
# 3rd place
.long 0x001e0032
.long 0x000f000a
.long 0x00230000
.long 0x00050000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00050000
.long 0x0014000a
# 4th place, lower halfword
.long 0x0014000a
.long 0x001e0000
.long 0x0000001e
.long 0x0014000f
.long 0x000a0000
.long 0x00000000
.long 0x000f000a
.long 0x000a000f
.long 0x0000000f
.long 0x00140000
# 5th place
.long 0x00000014
.long 0x00000000
.long 0x0019001e
.long 0x000f000f
.long 0x00000000
.long 0x00050014
.long 0x000f000a
.long 0x000f0000
.long 0x000a0014
# 6th place, lower halfword
.long 0x00000000
.long 0x000a0000
.long 0x00000014
.long 0x0032000a
.long 0x000f0000
.long 0x00000014
.long 0x000f000f
.long 0x000f000a
.long 0x00000005
.long 0x000f0000
# 7th place
.long 0x00000005
.long 0x00000000
.long 0x00000041
.long 0x0000000a
.long 0x00000019
.long 0x002d000a
.long 0x000a000a
.long 0x000a0000
.long 0x0000000a
# 8th place, lower halfword
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x003c0000
.long 0x00000000
.long 0x00370046
.long 0x00000000
.long 0x00000000
.long 0x000f0000
.long 0x00000000
# 9th place
.long 0x00000000
.long 0x00000000
.long 0x00000019
.long 0x00000000
.long 0x000f0037
.long 0x003c0000
.long 0x00000000
.long 0x0000002d
.long 0x00000000
# 10th place, lower halfword
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x000a0000
.long 0x00000028
.long 0x0023002d
.long 0x00000000
.long 0x00000000
.long 0x00460000
.long 0x00000000
# 11th place
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00f00000
.long 0x00000000
.long 0x00000000
.long 0x000000f0
.long 0x00000000
# 12th place, lower halfword
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x000000f0
.long 0x00000000
.long 0x00000000
.long 0x00000000
.long 0x00f00000
.long 0x00000000
# tier data
.long 0x3d23d70a # 4%
.long 0x3da3d70a # 8%
.long 0x3e19999a # 15%
.long 0x3e4ccccd # 20%
.long 0x3e800000 # 25%
.long 0x3eb33333 # 35%
.long 0x3ee66666 # 45%
.long 0x3f19999a # 60%
.long 0x3f4ccccd # 80%
.long 0x3f8ccccd # 110%
.long 0x42000000 # 3200%
the_code:
mflr r4
mtlr r12
# get player race completion pointer
lis r11, ptr_playerData@h
ori r11, r11, ptr_playerData@l
lwz r11, 0 (r11)
lwz r11, 12 (r11)
lwz r11, 0 (r11)
addi r11, r11, 12
li r12, 12
mtctr r12
# get player index and race completion
lbz r12, 0x70 (r23)
mulli r12, r12, 0xc4
lfsx f11, r12, r11
fsubs f13, f13, f13
# find 1st place's race completion
max_loop:
lfs f12, 0 (r11)
fcmpo cr1, f12, f13
blt cr1, 0x8
fmr f13, f12
addi r11, r11, 0xc4
bdnz+ max_loop
# difference in race completion
fsubs f13, f13, f11
fsubs f12, f12, f12 # set to 0
# if player is in 1st
li r3, 0
fcmpo cr1, f13, f12
beq cr1, the_end
mr r12, r4
addi r12, r12, 456
li r11, 11
mtctr r11
# loop through tiers to decide
# what place item box to give
tiers_loop:
lfsx f12, r3, r12
addi r3, r3, 4
fcmpo cr1, f13, f12
blt cr1, the_end
bdnz+ tiers_loop
# multiply to point to correct
# place in probability table
the_end:
srwi r3, r3, 2 # divide by 4
mulli r3, r3, 38
Code created by: Sioist
Code credits: XeR
|
|
|
Accurate CPU Finish Times [CLF78] |
Posted by: CLF78 - 08-13-2021, 11:07 AM - Forum: Offline Non-Item
- Replies (1)
|
|
Makes the CPU's finish times more realistic. This change also affects players not reaching the finish in online races.
NTSC-U
C252F844 00000005
C003000C E061A03F
106318D4 EC630028
3C603E00 90610044
C0810044 EC03013A
60000000 00000000
PAL
C253438C 00000005
C003000C E061A03F
106318D4 EC630028
3C603E00 90610044
C0810044 EC03013A
60000000 00000000
NTSC-J
C2533D0C 00000005
C003000C E061A03F
106318D4 EC630028
3C603E00 90610044
C0810044 EC03013A
60000000 00000000
NTSC-K
C25223E4 00000005
C003000C E061A03F
106318D4 EC630028
3C603E00 90610044
C0810044 EC03013A
60000000 00000000
Source:
Code: # Original instruction
lfs f0, 0xC(r3)
# Load lap count and convert it using GQR2 (u8)
psq_l f3, 0x3F(r1), 1, 2
# Add 1 to it
ps_sum0 f3, f3, f3, f3
# Subtract raceCompletion from it
fsubs f3, f3, f0
# Load multiplier
lis r3, 0x3E00
stw r3, 0x44(r1)
lfs f4, 0x44(r1)
# Multiply and add raceCompletion back
fmadds f0, f3, f4, f0
Code created by: CLF78
|
|
|
Show Quit Confirmation Screen in Single Player [CLF78] |
Posted by: CLF78 - 08-12-2021, 10:33 AM - Forum: Offline Non-Item
- No Replies
|
|
Title is self-explanatory.
NTSC-U
C25FB7B8 00000004
7FE3FB78 3880002C
3D80805F 618C1E54
7D8903A6 4E800421
7FE3FB78 00000000
C25FB8FC 00000004
7FE3FB78 3880002C
3D80805F 618C1E54
7D8903A6 4E800421
7FE3FB78 00000000
PAL
C262C66C 00000004
7FE3FB78 3880002C
3D808062 618C2D08
7D8903A6 4E800421
7FE3FB78 00000000
C262C7B0 00000004
7FE3FB78 3880002C
3D808062 618C2D08
7D8903A6 4E800421
7FE3FB78 00000000
NTSC-J
C262BDB8 00000004
7FE3FB78 3880002C
3D808062 618C2454
7D8903A6 4E800421
7FE3FB78 00000000
C262BEFC 00000004
7FE3FB78 3880002C
3D808062 618C2454
7D8903A6 4E800421
7FE3FB78 00000000
NTSC-K
C261AA64 00000004
7FE3FB78 3880002C
3D808061 618C1100
7D8903A6 4E800421
7FE3FB78 00000000
C261ABA8 00000004
7FE3FB78 3880002C
3D808061 618C1100
7D8903A6 4E800421
7FE3FB78 00000000
Source:
Code: # Address ports
.set region, ''
.if (region == 'P' || region == 'p')
.set CreateScreen, 0x80622D08
.elseif (region == 'U' || region == 'u' || region == 'E' || region == 'e')
.set CreateScreen, 0x805F1E54
.elseif (region == 'J' || region == 'j')
.set CreateScreen, 0x80622454
.elseif (region == 'K' || region == 'k')
.set CreateScreen, 0x80611100
.else
.err
.endif
# Create the screen, the game handles the rest by itself
mr r3, r31
li r4, 0x2C
lis r12, CreateScreen@h
ori r12, r12, CreateScreen@l
mtctr r12
bctrl
# Original instruction
mr r3, r31
Code created by: CLF78
|
|
|
CPUs Always Get Startup Boost [1superchip] |
Posted by: 1superchip - 08-12-2021, 01:37 AM - Forum: Offline Non-Item
- No Replies
|
|
CPUs Always Get Startup Boost [1superchip]
This code causes all CPUs in a race to get the starting boost during the countdown.
NTSC-U:
0472f044 60000000
PAL:
0473ef10 60000000
NTSC-J:
0473e57c 60000000
NTSC-K:
0472d2b8 60000000
Code Creator: 1superchip
|
|
|
Custom Item Probability Distribution Offline [Sioist] |
Posted by: sioist - 08-12-2021, 12:25 AM - Forum: Offline; Item
- Replies (1)
|
|
This code allows you to set custom probabilities for each item in offline VS mode and battle. These probabilities will apply regardless of what position you are in, and also applies to all the CPUs.
Note: This code uses memory addresses from 0x800007b4 to 0x800007c8.
NTSC-U:
040007B4 HHIIJJKK
040007B8 LLMMNNOO
040007BC PPQQRRSS
040007C0 TTUUVVWW
040007C4 XXYYZZ00
C27AB704 00000010
3D808000 618C07B4
39600013 7D6903A6
39400000 398CFFFF
8D6C0001 7D4A5A14
4200FFF8 7C8B2378
38600000 7D445378
3D40800F 614A2E40
7D4903A6 4E800421
7D645B78 398CFFED
39600013 7D6903A6
39600000 8D4C0001
7D6B5214 7C035800
41800008 4200FFF0
7D6902A6 39400013
7D6B5050 7D635B78
90770020 00000000
PAL:
040007B4 HHIIJJKK
040007B8 LLMMNNOO
040007BC PPQQRRSS
040007C0 TTUUVVWW
040007C4 XXYYZZ00
C27BA164 00000010
3D808000 618C07B4
39600013 7D6903A6
39400000 398CFFFF
8D6C0001 7D4A5A14
4200FFF8 7C8B2378
38600000 7D445378
3D40800F 614A2EE0
7D4903A6 4E800421
7D645B78 398CFFED
39600013 7D6903A6
39600000 8D4C0001
7D6B5214 7C035800
41800008 4200FFF0
7D6902A6 39400013
7D6B5050 7D635B78
90770020 00000000
NTSC-J:
040007B4 HHIIJJKK
040007B8 LLMMNNOO
040007BC PPQQRRSS
040007C0 TTUUVVWW
040007C4 XXYYZZ00
C27B97D0 00000010
3D808000 618C07B4
39600013 7D6903A6
39400000 398CFFFF
8D6C0001 7D4A5A14
4200FFF8 7C8B2378
38600000 7D445378
3D40800F 614A2E00
7D4903A6 4E800421
7D645B78 398CFFED
39600013 7D6903A6
39600000 8D4C0001
7D6B5214 7C035800
41800008 4200FFF0
7D6902A6 39400013
7D6B5050 7D635B78
90770020 00000000
NTSC-K:
040007B4 HHIIJJKK
040007B8 LLMMNNOO
040007BC PPQQRRSS
040007C0 TTUUVVWW
040007C4 XXYYZZ00
C27AE524 00000010
3D808000 618C07B4
39600013 7D6903A6
39400000 398CFFFF
8D6C0001 7D4A5A14
4200FFF8 7C8B2378
38600000 7D445378
3D40800F 614A2F58
7D4903A6 4E800421
7D645B78 398CFFED
39600013 7D6903A6
39600000 8D4C0001
7D6B5214 7C035800
41800008 4200FFF0
7D6902A6 39400013
7D6B5050 7D635B78
90770020 00000000
Legend:
HH - Green Shell
II - Red Shell
JJ - Banana
KK - Fake Item Box
LL - Mushroom
MM - Triple Mushrooms
NN - Bomb-ombs
OO - Blue Shell
PP - Lightning
QQ - Star
RR - Golden Mushroom
SS - Mega Mushroom
TT - Blooper
UU - Pow Block
VV - Thunder Cloud
WW - Bullet Bill
XX - Triple Green Shell
YY - Triple Red Shell
ZZ - Triple Banana
Enter in a byte value from 00 to FF for each item. Each value is a weighting for how likely that item is to be pulled, relative to the other item values. For example, to have a 25% chance of pulling a Green Shell, a 75% chance of pulling a Red Shell, and a 0% chance for every other item, the first line would become 040007B4 01030000, with the subsequent lines filled in with zeros. The code will sum the values you entered, which in this case is 4. Now Green Shells have a 1/4 chance of being pulled, and Red Shells have a 3/4 chance.
If an item is pulled that cannot be pulled because of item limits (such as pulling a Bullet Bill when another player/CPU already has a Bullet Bill) you will receive a mushroom by default. To increase these limits, check the two links below.
https://mkwii.com/showthread.php?tid=242
https://mkwii.com/showthread.php?tid=405
ASM Source:
Code: .set base, 0x800007B4 # address where values are stored
.set randomizer, 0x800F2E40
lis r12, base@h
ori r12, r12, base@l
# grab sum of weights
li r11, 19
mtctr r11
li r10, 0
subi r12, r12, 0x1
sum_loop:
lbzu r11, 0x1 (r12)
add r10, r10, r11
bdnz+ sum_loop
# --------------
mr r11, r4 # save r4 value
# setup args
li r3, 0
mr r4, r10
lis r10, randomizer@h
ori r10, r10, randomizer@l
mtctr r10
bctrl
mr r4, r11 # restore r4
subi r12, r12, 0x13
li r11, 19
mtctr r11
li r11, 0
weights_loop:
lbzu r10, 0x1 (r12)
add r11, r11, r10
cmpw r3, r11
blt the_end
bdnz+ weights_loop
the_end:
mfctr r11
li r10, 0x13
sub r11, r10, r11
mr r3, r11
stw r3, 0x0020 (r23)
Code Created by: Sioist
Code Credits: Guru, CLF78
I hope to extend this code to allow probability distributions for each separate position, similar to XeR's God code.
|
|
|
Track Music Expander [CLF78] |
Posted by: CLF78 - 08-09-2021, 09:09 AM - Forum: Visual & Sound Effects
- Replies (6)
|
|
This code lets you apply different music for each track (including Nintendo tracks) on CT-CODE and LE-CODE based distributions. Simply place two BRSTMs named SLOT.brstm and SLOT_F.brstm (where SLOT is the track slot in hex) in the "strm" folder. If the file cannot be found, the game will fall back to the original music file(s).
NTSC-U - CT-CODE
C209E01C 00000015
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
40820088 3CC08000
80C60DF4 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C0ECC 7D8903A6
4E800421 38610024
3D808015 618CDEAC
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C270A5F0 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
NTSC-U - LE-CODE
C209E01C 00000018
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
408200A0 3C608054
6063DDE8 80830000
548401BA 7C632214
7C6903A6 4E800421
7C862378 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C0ECC 7D8903A6
4E800421 38610024
3D808015 618CDEAC
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C270A5F0 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
PAL - CT-CODE
C209E0BC 00000015
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
40820088 3CC08000
80C60DF4 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C1A2C 7D8903A6
4E800421 38610024
3D808015 618CDF4C
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C2712094 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
PAL - LE-CODE
C209E0BC 00000018
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
408200A0 3C608055
60633E08 80830000
548401BA 7C632214
7C6903A6 4E800421
7C862378 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C1A2C 7D8903A6
4E800421 38610024
3D808015 618CDF4C
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C2712094 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
NTSC-J - CT-CODE
C209DFDC 00000015
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
40820088 3CC08000
80C60DF4 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C1950 7D8903A6
4E800421 38610024
3D808015 618CDE6C
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C2711700 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
NTSC-J - LE-CODE
C209DFDC 00000018
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
408200A0 3C608055
60633788 80830000
548401BA 7C632214
7C6903A6 4E800421
7C862378 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C1950 7D8903A6
4E800421 38610024
3D808015 618CDE6C
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C2711700 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
NTSC-K - CT-CODE
C209E11C 00000015
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
40820088 3CC08000
80C60DF4 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C1A94 7D8903A6
4E800421 38610024
3D808015 618CDFC4
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C270043C 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
NTSC-K - LE-CODE
C209E11C 00000018
8861015C 2C03006E
41A20014 2C030053
41A2000C 2C030072
408200A0 3C608054
60631E60 80830000
548401BA 7C632214
7C6903A6 4E800421
7C862378 4800001D
25737374 726D2F25
30337825 732E6272
73746D00 5F460000
7C8802A6 38BD0008
38E40014 391C0150
7D0808AE 2C080066
41820010 2C080046
41820008 38E70002
38610024 3D808001
618C1A94 7D8903A6
4E800421 38610024
3D808015 618CDFC4
7D8903A6 4E800421
2C03FFFF 4182000C
3B410024 48000008
3B410150 00000000
C270043C 00000003
2C000036 40A20008
38800094 38A00000
60000000 00000000
Source 1:
Code: # Hook = 0x8009E0BC PAL, 0x8009E01C NTSC-U, 0x8009DFDC NTSC-J, 0x8009E11C NTSC-K
# Address Ports
.set region, ''
.if (region == 'P' || region == 'p')
.set ctcodething, 0x80000DF4
.set sprintf, 0x80011A2C
.set DVDConvertPathToEntrynum, 0x8015DF4C
.set lecodething, 0x80553E08
.elseif (region == 'U' || region == 'u' || region == 'E' || region == 'e')
.set ctcodething, 0x80000DF4
.set sprintf, 0x80010ECC
.set DVDConvertPathToEntrynum, 0x8015DEAC
.set lecodething, 0x8054DDE8
.elseif (region == 'J' || region == 'j')
.set ctcodething, 0x80000DF4
.set sprintf, 0x80011950
.set DVDConvertPathToEntrynum, 0x8015DE6C
.set lecodething, 0x80553788
.elseif (region == 'K' || region == 'k')
.set ctcodething, 0x80000DF4
.set sprintf, 0x80011A94
.set DVDConvertPathToEntrynum, 0x8015DFC4
.set lecodething, 0x80541E60
.else
.err
.endif
# Track Expansion Mod Type (c = CT-CODE, l = LE-CODE)
.set game, ''
.if (game != 'l' && game != 'c')
.err
.endif
# Check if we are loading a track song by checking the file's first character
lbz r3, 0x15C(r1)
cmpwi r3, 'n'
beq+ isTrack
cmpwi r3, 'S'
beq+ isTrack
cmpwi r3, 'r'
bne originalTrack
# Get the track slot from the exception vector
isTrack:
.if (game == 'c')
lis r6, ctcodething@ha
lwz r6, ctcodething@l(r6)
# Get the instruction from the lecode address and branch to it, slot is returned in r4
.elseif (game == 'l')
lis r3, lecodething@h
ori r3, r3, lecodething@l
lwz r4, 0(r3)
rlwinm r4, r4, 0, 6, 29
add r3, r3, r4
mtctr r3
bctrl
mr r6, r4
.endif
# Do bl trick
bl trick
# Main format string
.string "%sstrm/%03x%s.brstm"
# Last lap string
.string "_F"
.align 2
# Set main format string
trick:
mflr r4
# Set root path
addi r5, r29, 0x8
# Set last lap string
addi r7, r4, 0x14
# Load last character of filename before the extension
addi r8, r28, 0x150
lbzx r8, r8, r1
# Check for an F either lower or uppercase
cmpwi r8, 'f'
beq isFast
cmpwi r8, 'F'
beq isFast
# Add two to fast lap string if not fast
addi r7, r7, 2
# String buffer (this part of the stack is no longer used at this point in the function)
isFast:
addi r3, r1, 0x24
# Call sprintf
lis r12, sprintf@h
ori r12, r12, sprintf@l
mtctr r12
bctrl
# Call DVDConvertPathToEntrynum
addi r3, r1, 0x24
lis r12, DVDConvertPathToEntrynum@h
ori r12, r12, DVDConvertPathToEntrynum@l
mtctr r12
bctrl
# Check if file exists
cmpwi r3, -1
beq originalTrack
# It does, we can use this path!
addi r26, r1, 0x24
b end
# Original instruction
originalTrack:
addi r26, r1, 0x150
# Return
end:
Source 2:
Code: # Hook 0x80712094 PAL, 0x8070A5F0 NTSC-U, 0x80711700 NTSC-J, 0x8070043C NTSC-K
# Check if special slot is Galaxy Arena
cmpwi r0, 0x36
bne+ end
# If so replace final lap music with Rainbow Road's
li r4, 0x94
# Original instruction
end:
li r5, 0
Code created by: CLF78
|
|
|
Your Own Shock Zaps You [stebler] |
Posted by: Vega - 08-09-2021, 12:03 AM - Forum: Online; Item
- No Replies
|
|
Your Own Shock Zaps You [stebler]
If you use a Shock, you will be zapped too.
NTSC-U
047A91FC 60000000
PAL
047B7C5C 60000000
NTSC-J
047B72C8 60000000
NTSC-K
047A601C 60000000
#beq- branch is nop'd
Code Creator: stebler
|
|
|
Activate Bullet Bill at Anytime [Vega] |
Posted by: Vega - 08-08-2021, 12:44 PM - Forum: Offline; Item
- Replies (2)
|
|
Activate Bullet Bill at Anytime [Vega]
This code will allow you to press your desired button(s) on your controller to activate the Bullet Bill whenever you want. There is offline version and online version of the code. The online version is untested, can somebody test please? =p.
- Q (PAL only) 5 for GCN; 4 for Non-GCN
- S (Offline version of code only) = Slot (0 for yourself)
- XXXX = Controller Address
- ZZZZ = Button to Activate (use Wavebird ZZZZ values if using GCN!!)
Link to thread of XXXX and ZZZZ values - https://mkwii.com/showthread.php?tid=44
FINAL NOTE: Regarding the offline version, if you want everybody to all be in a Bill at once, replace "2C1B000S" with "48000008", this gets rid of the Player Slot check.
Video demo - https://www.youtube.com/watch?v=ijF5DqakGdI
Code creator: Vega
Code credits: Stebler (player.h)
Offline version~
NTSC-U
C278EEF8 00000015
4800004D 8078EEFC
8078895C 80788964
8078898C 807889BC
807889C4 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA0807D 63BD68BC
7FA903A6 7D6802A6
3D808034 A18CXXXX
718CZZZZ 41A20014
2C1B000S 40A2000C
394B002C 48000008
394B0014 396BFFFC
39200006 7D2903A6
852A0004 850B0004
91280000 7C00406C
7C0004AC 7C0047AC
4C00012C 4200FFE4
801D008C 00000000
PAL
C2797F04 00000015
4800004D 80797F08
80791968 80791970
80791998 807919C8
807919D0 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA0807A 63BD9AFC
7FA903A6 7D6802A6
3D80803Q A18CXXXX
718CZZZZ 41A20014
2C1B000S 40A2000C
394B002C 48000008
394B0014 396BFFFC
39200006 7D2903A6
852A0004 850B0004
91280000 7C00406C
7C0004AC 7C0047AC
4C00012C 4200FFE4
801D008C 00000000
NTSC-J
C2797570 00000015
4800004D 80797574
80790FD4 80790FDC
80791004 80791034
8079103C 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA0807A 63BD9168
7FA903A6 7D6802A6
3D808034 A18CXXXX
718CZZZZ 41A20014
2C1B000S 40A2000C
394B002C 48000008
394B0014 396BFFFC
39200006 7D2903A6
852A0004 850B0004
91280000 7C00406C
7C0004AC 7C0047AC
4C00012C 4200FFE4
801D008C 00000000
NTSC-K
C27862C4 00000015
4800004D 807862C8
8077FD28 8077FD30
8077FD58 8077FD88
8077FD90 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA08079 63BD7EBC
7FA903A6 7D6802A6
3D808033 A18CXXXX
718CZZZZ 41A20014
2C1B000S 40A2000C
394B002C 48000008
394B0014 396BFFFC
39200006 7D2903A6
852A0004 850B0004
91280000 7C00406C
7C0004AC 7C0047AC
4C00012C 4200FFE4
801D008C 00000000
Online version (untested)~
NTSC-U
C278EEF8 00000017
4800004D 8078EEFC
8078895C 80788964
8078898C 807889BC
807889C4 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA0807D 63BD68BC
7FA903A6 7D6802A6
3D808034 A18CXXXX
718CZZZZ 41A20020
3D40809C 814A8F68
894A0B84 7C0AD800
40A2000C 394B002C
48000008 394B0014
396BFFFC 39200006
7D2903A6 852A0004
850B0004 91280000
7C00406C 7C0004AC
7C0047AC 4C00012C
4200FFE4 801D008C
60000000 00000000
PAL
C2797F04 00000017
4800004D 80797F08
80791968 80791970
80791998 807919C8
807919D0 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA0807A 63BD9AFC
7FA903A6 7D6802A6
3D80803Q A18CXXXX
718CZZZZ 41A20020
3D40809C 814AD728
894A0B84 7C0AD800
40A2000C 394B002C
48000008 394B0014
396BFFFC 39200006
7D2903A6 852A0004
850B0004 91280000
7C00406C 7C0004AC
7C0047AC 4C00012C
4200FFE4 801D008C
60000000 00000000
NTSC-J
C2797570 00000017
4800004D 80797574
80790FD4 80790FDC
80791004 80791034
8079103C 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA0807A 63BD9168
7FA903A6 7D6802A6
3D808034 A18CXXXX
718CZZZZ 41A20020
3D40809C 814AC788
894A0B84 7C0AD800
40A2000C 394B002C
48000008 394B0014
396BFFFC 39200006
7D2903A6 852A0004
850B0004 91280000
7C00406C 7C0004AC
7C0047AC 4C00012C
4200FFE4 801D008C
60000000 00000000
NTSC-K
C27862C4 00000017
4800004D 807862C8
8077FD28 8077FD30
8077FD58 8077FD88
8077FD90 2C000014
7C0320AE 83C60014
83A60018 7FACEB78
7D8903A6 48000084
38000001 3BC00000
3FA08079 63BD7EBC
7FA903A6 7D6802A6
3D808033 A18CXXXX
718CZZZZ 41A20020
3D40809B 814ABD68
894A0B84 7C0AD800
40A2000C 394B002C
48000008 394B0014
396BFFFC 39200006
7D2903A6 852A0004
850B0004 91280000
7C00406C 7C0004AC
7C0047AC 4C00012C
4200FFE4 801D008C
60000000 00000000
List of Sources:
Offline version~
Code: #START ASSEMBLY
#Address Ports
#NTSC-U = 8078EEF8
#PAL = 80797F04
#NTSC-J = 80797570
#NTSC-K = 807862C4
.set region, ''
.if (region == 'E')
.set address1, 0x8078EEFC
.set address2, 0x8078895C
.set address3, 0x80788964
.set address4, 0x8078898C
.set address5, 0x807889BC
.set address6, 0x807889C4
.set regdepinstruction1, 0x3FA0807D
.set regdepinstruction2, 0x63BD68BC
.elseif (region == 'P')
.set address1, 0x80797F08
.set address2, 0x80791968
.set address3, 0x80791970
.set address4, 0x80791998
.set address5, 0x807919c8
.set address6, 0x807919d0
.set regdepinstruction1, 0x3FA0807A
.set regdepinstruction2, 0x63BD9AFC
.elseif (region == 'J')
.set address1, 0x80797574
.set address2, 0x80790FD4
.set address3, 0x80790FDC
.set address4, 0x80791004
.set address5, 0x80791034
.set address6, 0x8079103C
.set regdepinstruction1, 0x3FA0807A
.set regdepinstruction2, 0x63BD9168
.elseif (region == 'K')
.set address1, 0x807862C8
.set address2, 0x8077FD28
.set address3, 0x8077FD30
.set address4, 0x8077FD58
.set address5, 0x8077FD88
.set address6, 0x8077FD90
.set regdepinstruction1, 0x3FA08079
.set regdepinstruction2, 0x63BD7EBC
.else
.err
.endif
#Setup Lookup Table
bl table
.long address1
.long address2
.long address3
.long address4
.long address5
.long address6
.long 0x2C000014 #Default Instructions
.long 0x7c0320ae
.long 0x83c60014
.long 0x83a60018
.long 0x7faceb78
.long 0x7d8903a6
.long 0x48000084 #New Instructions
.long 0x38000001
.long 0x3BC00000
.long regdepinstruction1 #Region dependent instruction for setting the address in the CTR to bl to
.long regdepinstruction2
.long 0x7FA903A6
table:
mflr r11
#Check Controller
lis r12, 0x8035 #PAL GCN Y Button used for compilation, adjust this for your needs
lhz r12, 0xFFFF8200 (r12)
andi. r12, r12, 0x0800
beq+ deactivate_code
#Check Slot
cmpwi r27, 0 #Slot 0 (yourself) used for compilation, adjust this for your needs; #change to b 0x8 to skip slot check and make everybody use a Bill
bne+ deactivate_code #1 out of 12 possible, hence most likely branch
#Activate Code!
addi r10, r11, 0x2C #Point to -0x4 before 1st new instruction
b write_instructions
#Deactivate Code
deactivate_code:
addi r10, r11, 0x14 #Point to -0x4 before 1st Default Instruction
#Write Instructions; setup Loop
write_instructions:
addi r11, r11, -4 #Point to a word before the table for upcoming updating loop
li r9, 6 #6 for 6 instructions to write
mtctr r9
#Loop
loop:
lwzu r9, 0x4 (r10) #Load instruction
lwzu r8, 0x4 (r11) #Load instruction's address
stw r9, 0 (r8) #Write it!
#Clear cache so instructions update instantly
dcbst 0, r8
sync
icbi 0, r8
isync
#Decrement Loop
bdnz+ loop
#Default Instruction
lwz r0, 0x008C (r29)
#END ASSEMBLY
Online version~
Code: #START ASSEMBLY
#Address Ports
#NTSC-U = 8078EEF8
#PAL = 80797F04
#NTSC-J = 80797570
#NTSC-K = 807862C4
.set region, ''
.if (region == 'E')
.set ptr_raceData, 0x809b8f68
.set address1, 0x8078EEFC
.set address2, 0x8078895C
.set address3, 0x80788964
.set address4, 0x8078898C
.set address5, 0x807889BC
.set address6, 0x807889C4
.set regdepinstruction1, 0x3FA0807D
.set regdepinstruction2, 0x63BD68BC
.elseif (region == 'P')
.set ptr_raceData, 0x809bd728
.set address1, 0x80797F08
.set address2, 0x80791968
.set address3, 0x80791970
.set address4, 0x80791998
.set address5, 0x807919c8
.set address6, 0x807919d0
.set regdepinstruction1, 0x3FA0807A
.set regdepinstruction2, 0x63BD9AFC
.elseif (region == 'J')
.set ptr_raceData, 0x809bc788
.set address1, 0x80797574
.set address2, 0x80790FD4
.set address3, 0x80790FDC
.set address4, 0x80791004
.set address5, 0x80791034
.set address6, 0x8079103C
.set regdepinstruction1, 0x3FA0807A
.set regdepinstruction2, 0x63BD9168
.elseif (region == 'K')
.set ptr_raceData, 0x809abd68
.set address1, 0x807862C8
.set address2, 0x8077FD28
.set address3, 0x8077FD30
.set address4, 0x8077FD58
.set address5, 0x8077FD88
.set address6, 0x8077FD90
.set regdepinstruction1, 0x3FA08079
.set regdepinstruction2, 0x63BD7EBC
.else
.err
.endif
#Setup Lookup Table
bl table
.long address1
.long address2
.long address3
.long address4
.long address5
.long address6
.long 0x2C000014 #Default Instructions
.long 0x7c0320ae
.long 0x83c60014
.long 0x83a60018
.long 0x7faceb78
.long 0x7d8903a6
.long 0x48000084 #New Instructions
.long 0x38000001
.long 0x3BC00000
.long regdepinstruction1 #Region dependent instruction for setting the address in the CTR to bl to
.long regdepinstruction2
.long 0x7FA903A6
table:
mflr r11
#Check Controller
lis r12, 0x8035 #PAL GCN Y Button used for compilation, adjust this for your needs
lhz r12, 0xFFFF8200 (r12)
andi. r12, r12, 0x0800
beq+ deactivate_code
#Make sure your slot is the one being executed
lis r10, ptr_raceData@ha
lwz r10, ptr_raceData@l (r10)
lbz r10, 0x0B84 (r10)
cmpw r10, r27
bne+ deactivate_code #1 out of 12 possible, hence most likely branch
#Activate Code!
addi r10, r11, 0x2C #Point to -0x4 before 1st new instruction
b write_instructions
#Deactivate Code
deactivate_code:
addi r10, r11, 0x14 #Point to -0x4 before 1st Default Instruction
#Write Instructions; setup Loop
write_instructions:
addi r11, r11, -4 #Point to a word before the table for upcoming updating loop
li r9, 6 #6 for 6 instructions to write
mtctr r9
#Loop
loop:
lwzu r9, 0x4 (r10) #Load instruction
lwzu r8, 0x4 (r11) #Load instruction's address
stw r9, 0 (r8) #Write it!
#Clear cache so instructions update instantly
dcbst 0, r8
sync
icbi 0, r8
isync
#Decrement Loop
bdnz+ loop
#Default Instruction
lwz r0, 0x008C (r29)
#END ASSEMBLY
|
|
|
|