diff options
-rw-r--r-- | poweruphax.yaml | 8 | ||||
-rw-r--r-- | spritetex.yaml | 19 | ||||
-rwxr-xr-x | src/spritetex.S | 305 |
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 |