summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--poweruphax.yaml8
-rw-r--r--spritetex.yaml19
-rwxr-xr-xsrc/spritetex.S305
3 files changed, 258 insertions, 74 deletions
diff --git a/poweruphax.yaml b/poweruphax.yaml
index 191c31d..4b454aa 100644
--- a/poweruphax.yaml
+++ b/poweruphax.yaml
@@ -467,10 +467,10 @@ hooks:
data: "80095C10"
addr_pal: 0x80AEFFFC
- - name: IcicleFixationNoIceball
- type: patch
- data: "80095C10"
- addr_pal: 0x80AE9DC0
+ # - name: IcicleFixationNoIceball
+ # type: patch
+ # data: "80095C10"
+ # addr_pal: 0x80AE9DC0
diff --git a/spritetex.yaml b/spritetex.yaml
index e5658c8..7f18ecb 100644
--- a/spritetex.yaml
+++ b/spritetex.yaml
@@ -618,7 +618,7 @@ hooks:
- name: TEX_Flakes
type: branch_insn
branch_type: bl
- src_addr_pal: 0x80887AC0
+ src_addr_pal: 0x80887AC8
target_func: 'TEX_Flakes'
- name: TEX_BlackFlakes
@@ -627,4 +627,21 @@ hooks:
src_addr_pal: 0x808882E0
target_func: 'TEX_BlackFlakes'
+ - name: TEX_FlakeArcs
+ type: add_func_pointer
+ src_addr_pal: 0x8031B124
+ target_func: 'TEX_FlakeArcs'
+
+
+ - name: TEX_CrabBallBurst
+ type: branch_insn
+ branch_type: bl
+ src_addr_pal: 0x80A40C38
+ target_func: 'TEX_CrabBallBurst'
+
+ - name: TEX_CrabBallSmoke
+ type: branch_insn
+ branch_type: bl
+ src_addr_pal: 0x80A40C88
+ target_func: 'TEX_CrabBallSmoke'
diff --git a/src/spritetex.S b/src/spritetex.S
index a5e810d..31bc410 100755
--- a/src/spritetex.S
+++ b/src/spritetex.S
@@ -980,117 +980,242 @@ TEX_BlackFlakes:
srwi r6, r6, 24
andi. r6, r6, 0xF
+ cmpwi r6, 0
+ beql FlakeySnow
+
cmpwi r6, 1
- beq FlakeyLeaves
+ beql FlakeyLeavesRed
cmpwi r6, 2
- beq FlakeySakura
+ beql FlakeyLeavesScarlet
cmpwi r6, 3
- beq FlakeyStardust
+ beql FlakeyLeavesBrown
- stb r5, 0x5BB(r23)
- blr
+ cmpwi r6, 4
+ beql FlakeyLeavesGold
-# li r5, 0xFF
-# li r4, 0
-# li r3, 0
-# li r0, 0xFF
-#
-# stb r5, 0x5B4(r23)
-# stb r4, 0x5B5(r23)
-# stb r3, 0x5B6(r23)
-# stb r0, 0x5B7(r23)
-# stb r5, 0x5B8(r23)
-# stb r4, 0x5B9(r23)
-# stb r3, 0x5BA(r23)
-# stb r0, 0x5BB(r23)
+ cmpwi r6, 5
+ beql FlakeyLeavesChestnut
+
+ cmpwi r6, 6
+ beql FlakeySakura
+
+ cmpwi r6, 7
+ beql FlakeyStardustWhite
+ cmpwi r6, 8
+ beql FlakeyStardustGold
-FlakeyLeaves:
+ cmpwi r6, 9
+ beql FlakeyStardustPurple
+
+ cmpwi r6, 10
+ beql FlakeyStardustMauve
- li r5, 0xB4
stb r5, 0x5B4(r23)
stb r5, 0x5B8(r23)
- li r3, 0x40
- bl GenerateRandomNumber
- mr r4, r3
stb r4, 0x5B5(r23)
stb r4, 0x5B9(r23)
- li r3, 0x0
stb r3, 0x5B6(r23)
stb r3, 0x5BA(r23)
- li r0, 0xFF
stb r0, 0x5B7(r23)
stb r0, 0x5BB(r23)
mtlr r9
blr
-
-FlakeySakura:
-
- li r3, 0x20
- bl GenerateRandomNumber
-
+FlakeySnow:
li r5, 0xFF
- sub r5, r5, r3
- stb r5, 0x5B4(r23)
- stb r5, 0x5B8(r23)
-
- li r4, 0xC8
- sub r4, r4, r3
- stb r4, 0x5B5(r23)
- stb r4, 0x5B9(r23)
-
- li r4, 0xF8
- sub r3, r4, r3
- stb r3, 0x5B6(r23)
- stb r3, 0x5BA(r23)
+ li r4, 0xFF
+ li r3, 0xFF
+ li r0, 0xFF
+ blr
- li r0, 0xD0
- stb r0, 0x5B7(r23)
- stb r0, 0x5BB(r23)
+FlakeyLeavesRed:
+ li r5, 0xCC
+ li r4, 0x0
+ li r3, 0x0
+ li r0, 0xFF
+ blr
- mtlr r9
+FlakeyLeavesScarlet:
+ li r5, 0x66
+ li r4, 0x0
+ li r3, 0x0
+ li r0, 0xFF
blr
-
-FlakeyStardust:
+FlakeyLeavesBrown:
+ li r5, 0x99
+ li r4, 0x66
+ li r3, 0x0
+ li r0, 0xFF
+ blr
+FlakeyLeavesGold:
li r5, 0xFF
- stb r5, 0x5B4(r23)
- stb r5, 0x5B8(r23)
-
- li r4, 0xF8
- stb r4, 0x5B5(r23)
- stb r4, 0x5B9(r23)
+ li r4, 0x80
+ li r3, 0x0
+ li r0, 0xFF
+ blr
- li r3, 0xD8
- stb r3, 0x5B6(r23)
- stb r3, 0x5BA(r23)
+FlakeyLeavesChestnut:
+ li r5, 0x66
+ li r4, 0x33
+ li r3, 0x0
+ li r0, 0xFF
+ blr
+FlakeySakura:
+ li r5, 0xFF
+ li r4, 0x99
+ li r3, 0xCC
+ li r0, 0xFF
+ blr
+
+FlakeyStardustWhite:
+ li r5, 0xFF
+ li r4, 0xFF
+ li r3, 0xD0
+ bl GenerateRandomNumber
+ mr r0, r3
li r3, 0xFF
+ blr
+
+FlakeyStardustGold:
+ li r5, 0xFF
+ li r4, 0x80
+ li r3, 0xD0
bl GenerateRandomNumber
mr r0, r3
- stb r0, 0x5B7(r23)
- stb r0, 0x5BB(r23)
-
- mtlr r9
+ li r3, 0x0
+ blr
+
+FlakeyStardustPurple:
+ li r5, 0x66
+ li r4, 0x00
+ li r3, 0xD0
+ bl GenerateRandomNumber
+ mr r0, r3
+ li r3, 0x99
+ blr
+
+FlakeyStardustMauve:
+ li r5, 0xCC
+ li r4, 0x99
+ li r3, 0xD0
+ bl GenerateRandomNumber
+ mr r0, r3
+ li r3, 0xCC
blr
.global TEX_Flakes
TEX_Flakes:
- lis r5, snowstring@h
- ori r5, r5, snowstring@l
+ stwu sp, -0x20(sp)
+ mflr r0
+ stw r0, 0x24(sp)
+ stw r3, 0x1C(sp)
+ stw r5, 0x18(sp)
+ stw r6, 0x14(sp)
+ stw r7, 0x10(sp)
+ stw r8, 0xC(sp)
+ stw r9, 0x8(sp)
+
+ lwz r5, 4(r30)
+ srwi r5, r5, 24
+ andi. r5, r5, 0xF
+
+ cmpwi r5, 5
+ blel LeafString
+
+ cmpwi r5, 0
+ beql SnowString
+
+ cmpwi r5, 6
+ beql PetalString
+
+ cmpwi r5, 7
+ bgel StardustString
+
+ lwz r0, 0x24(sp)
+ lwz r3, 0x1C(sp)
+ lwz r5, 0x18(sp)
+ lwz r6, 0x14(sp)
+ lwz r7, 0x10(sp)
+ lwz r8, 0xC(sp)
+ lwz r9, 0x8(sp)
+ mtlr r0
+ addi sp, sp, 0x20
blr
+SnowString:
+ lis r4, stringsnow@h
+ ori r4, r4, stringsnow@l
+ blr
+
+LeafString:
+ lis r4, stringleaf@h
+ ori r4, r4, stringleaf@l
+ blr
+
+PetalString:
+ lis r4, stringpetal@h
+ ori r4, r4, stringpetal@l
+ blr
+
+StardustString:
+ lis r4, stringstardust@h
+ ori r4, r4, stringstardust@l
+ blr
+
+
+.global TEX_CrabBallBurst
+TEX_CrabBallBurst:
+ lwz r3, 4(r29)
+ srwi r3, r3, 24
+ andi. r3, r3, 0xF
+
+ cmpwi r3, 0
+ beq huckitRockBallEffectsA
+
+ lis r3, snoweffectA@h
+ ori r3, r3, snoweffectA@l
+ blr
+
+
+huckitRockBallEffectsA:
+ lis r3, rockeffectA@h
+ ori r3, r3, rockeffectA@l
+ blr
+
+
+.global TEX_CrabBallSmoke
+TEX_CrabBallSmoke:
+ lwz r3, 4(r29)
+ srwi r3, r3, 24
+ andi. r3, r3, 0xF
+
+ cmpwi r3, 0
+ beq huckitRockBallEffectsB
+
+ lis r3, snoweffectB@h
+ ori r3, r3, snoweffectB@l
+ blr
+
+huckitRockBallEffectsB:
+ lis r3, rockeffectB@h
+ ori r3, r3, rockeffectB@l
+ blr
+
+
+
.data
BomombDir:
.word 0x0400FC00
@@ -1101,14 +1226,56 @@ TexFilenameBuffer:
TexFormatString:
.string "g3d/t%02d.brres"
-snowstring:
- .string "g3d/t00.brres"
+
+.global TEX_FlakeArcs
+TEX_FlakeArcs:
+ .long stringsnow
+ .long stringleaf
+ .long stringpetal
+ .long stringstardust
+ .long 0
+
+stringsnow:
+ .string "env_snow"
+.align 4
+
+stringleaf:
+ .string "env_leaf"
+.align 4
+
+stringpetal:
+ .string "env_petal"
+.align 4
+
+stringstardust:
+ .string "env_stardust"
+.align 4
+
+
+snoweffectA:
+ .string "Wm_en_blockcloud"
+.align 4
+
+snoweffectB:
+ .string "Wm_ob_iceattack"
+.align 4
+
+rockeffectA:
+ .string "Wm_ob_cmnboxsmoke"
+.align 4
+
+rockeffectB:
+ .string "Wm_ob_cmnrockpiece"
+.align 4
+
+
ConvertFloat:
.word 0x43300000,0x0,0x43300000,0x80000000
.align 4
+
SnowmanTable:
.float 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 5.5, 6.0, 6.5
@@ -1121,10 +1288,10 @@ LaunchAngle:
LaunchAngleLeft:
.float -4.0, -2.5, -1.5
-
-
.align 4
+
+
YoshiArc:
.string "Y_TexGreen"
.align 4