Three In One Item Max Probability Code [Unnamed]
#1
Three In One Item Max Probability Code [Unnamed]


This code increases the probability of getting an item of your choice to the highest value that the game allows. Also, you can change the behavior of the code by changing certain instructions. Here is an overview of the different modifications:

For the "Perfect Item Code": leave the code as it is. With this you will only get the item if it is allowed in the position for the current In-Race room size.
For the "Selective Item Max Probability": Change "2C000000" to "4C421182". This will give you the item even if it is not allowed in the position for the current In-Race room size.
For the "Positional Selective Item Max Probability": Change "2C000000" to "4C421182" and "4C421242" to "2C0C00PP". You will only get the item if you are in the position you have previously set in the code. Again, you will receive the item even if it is not allowed in the position for the current In-Race room size.

If your item is not available or you are not allowed to get it (Mega in Mega, or Triple Items in Triple Items), this address will not be called and the code will not work. Therefore it follows all item rules. In addition, I included a check of the ItemBoxSetting to make sure the code will not execute on special probability tables (like leafpiles or woodboxes).

NOTE: This code makes use of the adresses 0x8167000C to 0x8167000D. Make sure no other codes in your GCT are using those adresses.


NTSC-U
C27AC9F4 00000003
3E408167 9892000C
98B2000D 7D124378
60000000 00000000
2834XXXX YYYYZZZZ
C27ACDDC 00000007
3D808167 896C000C
898C000D 2C0B0000
40820020 2C1500II
40A20018 4C421242
40A20010 2C000000
41820008 38007D00
7ED60214 00000000
E0000000 00000000
2834XXXX VVVVWWWW
047ACDDC 7ED60214
E0000000 80008000

PAL
C27BB454 00000003
3E408167 9892000C
98B2000D 7D124378
60000000 00000000
2834XXXX YYYYZZZZ
C27BB83C 00000007
3D808167 896C000C
898C000D 2C0B0000
40820020 2C1500II
40A20018 4C421242
40A20010 2C000000
41820008 38007D00
7ED60214 00000000
E0000000 00000000
2834XXXX VVVVWWWW
047BB83C 7ED60214
E0000000 80008000

NTSC-J
C27BAAC0 00000003
3E408167 9892000C
98B2000D 7D124378
60000000 00000000
2834XXXX YYYYZZZZ
C27BAEA8 00000007
3D808167 896C000C
898C000D 2C0B0000
40820020 2C1500II
40A20018 4C421242
40A20010 2C000000
41820008 38007D00
7ED60214 00000000
E0000000 00000000
2834XXXX VVVVWWWW
047BAEA8 7ED60214
E0000000 80008000

NTSC-K
C27A9814 00000003
3E408167 9892000C
98B2000D 7D124378
60000000 00000000
2833XXXX YYYYZZZZ
C27A9BFC 00000007
3D808167 896C000C
898C000D 2C0B0000
40820020 2C1500II
40A20018 4C421242
40A20010 2C000000
41820008 38007D00
7ED60214 00000000
E0000000 00000000
2833XXXX VVVVWWWW
047A9BFC 7ED60214
E0000000 80008000


XXXX = Controller Adress
YYYY/ZZZZ = Activator for Code
VVVV/WWWW = Deactivator
PP = Position to execute code (only in "Positional Selective Item Max Probability" modification)
II = Item to maximize Probability
II Values:
00 = Green Shell
01 = Red Shell
02 = Banana
03 = Fake Item Box
04 = Mushroom
05 = Triple Mushroom
06 = Bob-omb
07 = Blue Shell
08 = Lightning
09 = Star
0A = Golden Mushroom
0B = Mega Mushroom
0C = Blooper
0D = POW Block
0E = Cloud
0F = Bullet Bill
10 = Triple Green Shell
11 = Triple Red Shell
12 = Triple Banana
14 = Nothing




Source:

############################################################
########## Store ItemBoxSetting and Position to Memory ##############

############################################################
## Inject at ##########################
## NTSC-U: 807AC9F4
## PAL:    807BB454
## NTSC-J: 807BAAC0
## NTSC-K: 807A9814
###################################

lis r18, 0x8167 # r18 gets overwritten by default instruction.
stb r4, 0xC (r18) # store ItemBoxSetting to Memory
stb r5, 0xD (r18) # store Position to Memory
mr r18,r8 # default Instruction

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

############################################################
############ Compare Variables, Max Out Probability ################

############################################################
## Inject at ##########################
## NTSC-U: 807ACDDC
## PAL:    807BB83C
## NTSC-J: 807BAEA8
## NTSC-K: 807A9BFC
###################################

lis r12, 0x8167
lbz r11,0xC(r12) # Load ItemBoxSetting into r11
lbz r12,0xD(r12) # Load the Position into r12

#############################################
############### Register Overview ###############
#############################################
### r0 = Probability of current Item
### r11 = ItemBoxSetting
### r12 = Position
### r21 = Current Item
#############################################

cmpwi r11,0              ## most important, compare the ItemBoxSetting to 0
bne- skip_max_out  ## if not equal, we have a special item probability table, skip code
cmpwi r21, II              ## then, compare current Item to the Item we want to max out the probability
bne+ skip_max_out  ## if not equal, skip code
crset cr0 + eq            ## either set the equal bit of cr0 (always equal) or compare the Position to the one we want to execute the code. Depends on modification.
bne+ skip_max_out  ## if not equal, skip code
cmpwi r0,0                ## either compare the Probability of current Item to 0 or clear the equal bit of cr0 (never equal). Depends on modification.
beq- skip_max_out  ## if equal, skip code
li r0,32000                ## Max out the Probability for this Item
skip_max_out:
add r22,r22,r0          ## Default Instruction, add the previous summed up Probability to the current one.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Code Creator: Unnamed
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)