Thunder Cloud Effect Modifier [Unnamed]
#11
Just to make sure you have the right code assembled, here's what I've assembled using the updated sources

Region-Free (randomizer, write byte to EVA)
C0000000 00000008
7D8802A6 3D608000
4800000D 0408090B
0C0D0F00 7D4802A6
892B1500 39290001
28090006 40A10008
39200000 992B1500
7C6950AE 986B1501
7D8803A6 4E800020

(TC effect code, grab byte from EVA)
NTSC-U
C2579DCC 0000000F
9421FFE0 BF61000C
541BF0BE 7C0802A6
90010008 3FE0809C
83FFEE20 8BDF0010
7C1BF000 4080003C
1C1B0248 819F0014
7C6C0214 81630090
396B0001 91630090
3D608000 896B1501
1D6B001C 3D80809B
618CEEB0 7D8C582E
7D8803A6 4E800021
80010008 7C0803A6
BB61000C 38210020
60000000 00000000

PAL
C2580630 0000000F
9421FFE0 BF61000C
541BF0BE 7C0802A6
90010008 3FE0809C
83FF3618 8BDF0010
7C1BF000 4080003C
1C1B0248 819F0014
7C6C0214 81630090
396B0001 91630090
3D608000 896B1501
1D6B001C 3D80809C
618C36B8 7D8C582E
7D8803A6 4E800021
80010008 7C0803A6
BB61000C 38210020
60000000 00000000

NTSC-J
C257FFB0 0000000F
9421FFE0 BF61000C
541BF0BE 7C0802A6
90010008 3FE0809C
83FF2678 8BDF0010
7C1BF000 4080003C
1C1B0248 819F0014
7C6C0214 81630090
396B0001 91630090
3D608000 896B1501
1D6B001C 3D80809C
618C2718 7D8C582E
7D8803A6 4E800021
80010008 7C0803A6
BB61000C 38210020
60000000 00000000

NTSC-K
C256E688 0000000F
9421FFE0 BF61000C
541BF0BE 7C0802A6
90010008 3FE0809B
83FF1C58 8BDF0010
7C1BF000 4080003C
1C1B0248 819F0014
7C6C0214 81630090
396B0001 91630090
3D608000 896B1501
1D6B001C 3D80809B
618C1CF8 7D8C582E
7D8803A6 4E800021
80010008 7C0803A6
BB61000C 38210020
60000000 00000000

Code:
#Directives
.set mushroom, 4
.set shock, 8
.set star, 9
.set mega, 0xB
.set blooper, 0xC
.set pow, 0xD
.set bullet, 0xF
.set random_int_amt, 6

#Save C0 LR
mflr r12

#Set EVA Upper
lis r11, 0x8000

#Make LUT
bl item_value_table
.byte mushroom
.byte shock
.byte star
.byte mega
.byte blooper
.byte pow
.byte bullet
.align 2
item_value_table:
mflr r10

#Grab, increment, and check randomized int
lbz r9, 0x1500 (r11)
addi r9, r9, 1
cmplwi r9, random_int_amt
ble+ store_random_int

#Reset random int
li r9, 0

#Store random int
store_random_int:
stb r9, 0x1500 (r11)

#Based on int set item in EVA
lbzx r3, r9, r10
stb r3, 0x1501 (r11)

#Restore C0 LR
mtlr r12

#End
#blr #uncomment for Assemblers that can't do C0 codes correctly

Code:
##################################################

#### Hook Adresses #####
### 80579DCC  (NTSC-U)
### 80580630  (PAL)
### 8057FFB0  (NTSC-J)
### 8056E688  (NTSC-K)

#################################################

.set region, '' #Fill in E, P, J, or K

.if     (region == 'E' || region == 'e') #NTSC-U (Americas)
        .set PlayerHolder, 0x809BEE20
        .set ItemFunctions, 0x809BEEB0
.elseif (region == 'P' || region == 'p') #PAL
        .set PlayerHolder, 0x809C3618
        .set ItemFunctions, 0x809C36B8
.elseif (region == 'J' || region == 'j') #NTSC-J (Japan)
        .set PlayerHolder, 0x809C2678
        .set ItemFunctions, 0x809C2718
.elseif (region == 'K' || region == 'k') #RMCK (Korea)
        .set PlayerHolder, 0x809B1C58
        .set ItemFunctions, 0x809B1CF8
.else #Invalid Region
        .err #Region match not detected. Tell the Assembler to halt and throw an error.
.endif

stwu r1, -0x20(r1)
stmw r27, 0xC(r1)
srwi r27, r0, 2
mflr r0
stw r0, 8(r1)
lis r31, PlayerHolder@ha
lwz r31, PlayerHolder@l (r31)
lbz r30, 0x10(r31)
cmpw r27, r30
bge skip
mulli r0, r27, 0x248
lwz r12, 0x14(r31)
add r3, r12, r0
lwz r11, 0x90(r3)
addi r11, r11, 1
stw r11, 0x90(r3) # Add 1 to the Item count, to avoid Item loss

lis r11, 0x8000
lbz r11, 0x1501 (r11)

mulli r11, r11, 0x1C
lis r12, ItemFunctions@h
ori r12, r12, ItemFunctions@l
lwzx r12, r12, r11
mtlr r12
blrl
skip:
lwz r0, 8(r1)
mtlr r0
lmw r27, 0xC(r1)
addi r1, r1, 0x20

##############################################
Reply


Messages In This Thread
RE: Thunder Cloud Effect Modifier [Unnamed] - by Vega - 01-10-2025, 07:01 PM

Forum Jump:


Users browsing this thread: 2 Guest(s)