ovl_Efc_Erupc OK (#773)

* a few good dead Gfx_TwoTexScrolls

* EfcErupc OK, mostly documented

* review

* remove fake match

Co-authored-by: Fig02 <fig02srl@gmail.com>
This commit is contained in:
mzxrules 2021-04-25 19:12:42 -04:00 committed by GitHub
parent 4e81e4a388
commit b7849976cf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 251 additions and 820 deletions

View File

@ -1,4 +0,0 @@
glabel EfcErupc_Destroy
/* 00070 8099CD20 AFA40000 */ sw $a0, 0x0000($sp)
/* 00074 8099CD24 03E00008 */ jr $ra
/* 00078 8099CD28 AFA50004 */ sw $a1, 0x0004($sp)

View File

@ -1,254 +0,0 @@
.rdata
glabel D_8099D790
.asciz "../z_efc_erupc.c"
.balign 4
glabel D_8099D7A4
.asciz "../z_efc_erupc.c"
.balign 4
glabel D_8099D7B8
.asciz "../z_efc_erupc.c"
.balign 4
glabel D_8099D7CC
.asciz "../z_efc_erupc.c"
.balign 4
.late_rodata
glabel D_8099D820
.float 0.8
glabel D_8099D824
.word 0x4059999A, 0x00000000, 0x00000000
.text
glabel EfcErupc_Draw
/* 00300 8099CFB0 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 00304 8099CFB4 AFB10038 */ sw $s1, 0x0038($sp)
/* 00308 8099CFB8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0030C 8099CFBC AFBF003C */ sw $ra, 0x003C($sp)
/* 00310 8099CFC0 AFB00034 */ sw $s0, 0x0034($sp)
/* 00314 8099CFC4 AFA40090 */ sw $a0, 0x0090($sp)
/* 00318 8099CFC8 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 0031C 8099CFCC 3C06809A */ lui $a2, %hi(D_8099D790) ## $a2 = 809A0000
/* 00320 8099CFD0 24C6D790 */ addiu $a2, $a2, %lo(D_8099D790) ## $a2 = 8099D790
/* 00324 8099CFD4 27A40074 */ addiu $a0, $sp, 0x0074 ## $a0 = FFFFFFE4
/* 00328 8099CFD8 2407011A */ addiu $a3, $zero, 0x011A ## $a3 = 0000011A
/* 0032C 8099CFDC 0C031AB1 */ jal Graph_OpenDisps
/* 00330 8099CFE0 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00334 8099CFE4 0C024F61 */ jal func_80093D84
/* 00338 8099CFE8 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 0033C 8099CFEC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00340 8099CFF0 8FAA0090 */ lw $t2, 0x0090($sp)
/* 00344 8099CFF4 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 00348 8099CFF8 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 0034C 8099CFFC AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 00350 8099D000 35EF0020 */ ori $t7, $t7, 0x0020 ## $t7 = DB060020
/* 00354 8099D004 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00358 8099D008 8543014C */ lh $v1, 0x014C($t2) ## 0000014C
/* 0035C 8099D00C 8548014E */ lh $t0, 0x014E($t2) ## 0000014E
/* 00360 8099D010 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00364 8099D014 240F0040 */ addiu $t7, $zero, 0x0040 ## $t7 = 00000040
/* 00368 8099D018 00080823 */ subu $at, $zero, $t0
/* 0036C 8099D01C 00016880 */ sll $t5, $at, 2
/* 00370 8099D020 01A16821 */ addu $t5, $t5, $at
/* 00374 8099D024 000D6880 */ sll $t5, $t5, 2
/* 00378 8099D028 240E0040 */ addiu $t6, $zero, 0x0040 ## $t6 = 00000040
/* 0037C 8099D02C 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
/* 00380 8099D030 24190040 */ addiu $t9, $zero, 0x0040 ## $t9 = 00000040
/* 00384 8099D034 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00388 8099D038 00036080 */ sll $t4, $v1, 2
/* 0038C 8099D03C AFAC001C */ sw $t4, 0x001C($sp)
/* 00390 8099D040 AFAB0018 */ sw $t3, 0x0018($sp)
/* 00394 8099D044 AFB90014 */ sw $t9, 0x0014($sp)
/* 00398 8099D048 AFB80010 */ sw $t8, 0x0010($sp)
/* 0039C 8099D04C AFAE0024 */ sw $t6, 0x0024($sp)
/* 003A0 8099D050 AFAD0020 */ sw $t5, 0x0020($sp)
/* 003A4 8099D054 00013880 */ sll $a3, $at, 2
/* 003A8 8099D058 AFAF0028 */ sw $t7, 0x0028($sp)
/* 003AC 8099D05C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 003B0 8099D060 AFA20070 */ sw $v0, 0x0070($sp)
/* 003B4 8099D064 0C0253D0 */ jal Gfx_TwoTexScroll
/* 003B8 8099D068 00603025 */ or $a2, $v1, $zero ## $a2 = 00000000
/* 003BC 8099D06C 8FA90070 */ lw $t1, 0x0070($sp)
/* 003C0 8099D070 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 003C4 8099D074 37390024 */ ori $t9, $t9, 0x0024 ## $t9 = DB060024
/* 003C8 8099D078 AD220004 */ sw $v0, 0x0004($t1) ## 00000004
/* 003CC 8099D07C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 003D0 8099D080 240C0010 */ addiu $t4, $zero, 0x0010 ## $t4 = 00000010
/* 003D4 8099D084 240D0080 */ addiu $t5, $zero, 0x0080 ## $t5 = 00000080
/* 003D8 8099D088 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 003DC 8099D08C AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 003E0 8099D090 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 003E4 8099D094 8FAB0090 */ lw $t3, 0x0090($sp)
/* 003E8 8099D098 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 003EC 8099D09C 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 003F0 8099D0A0 85630150 */ lh $v1, 0x0150($t3) ## 00000150
/* 003F4 8099D0A4 24180020 */ addiu $t8, $zero, 0x0020 ## $t8 = 00000020
/* 003F8 8099D0A8 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 003FC 8099D0AC 00037880 */ sll $t7, $v1, 2
/* 00400 8099D0B0 01E37823 */ subu $t7, $t7, $v1
/* 00404 8099D0B4 000F7880 */ sll $t7, $t7, 2
/* 00408 8099D0B8 00030823 */ subu $at, $zero, $v1
/* 0040C 8099D0BC 00013880 */ sll $a3, $at, 2
/* 00410 8099D0C0 AFAF0020 */ sw $t7, 0x0020($sp)
/* 00414 8099D0C4 AFAE0018 */ sw $t6, 0x0018($sp)
/* 00418 8099D0C8 AFB80024 */ sw $t8, 0x0024($sp)
/* 0041C 8099D0CC AFB90028 */ sw $t9, 0x0028($sp)
/* 00420 8099D0D0 AFA0001C */ sw $zero, 0x001C($sp)
/* 00424 8099D0D4 AFAD0014 */ sw $t5, 0x0014($sp)
/* 00428 8099D0D8 AFAC0010 */ sw $t4, 0x0010($sp)
/* 0042C 8099D0DC 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00430 8099D0E0 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00434 8099D0E4 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00438 8099D0E8 AFA2006C */ sw $v0, 0x006C($sp)
/* 0043C 8099D0EC 8FA8006C */ lw $t0, 0x006C($sp)
/* 00440 8099D0F0 3C0CDB06 */ lui $t4, 0xDB06 ## $t4 = DB060000
/* 00444 8099D0F4 358C0028 */ ori $t4, $t4, 0x0028 ## $t4 = DB060028
/* 00448 8099D0F8 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
/* 0044C 8099D0FC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00450 8099D100 240E0010 */ addiu $t6, $zero, 0x0010 ## $t6 = 00000010
/* 00454 8099D104 240F0080 */ addiu $t7, $zero, 0x0080 ## $t7 = 00000080
/* 00458 8099D108 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 0045C 8099D10C AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 00460 8099D110 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00464 8099D114 8FAD0090 */ lw $t5, 0x0090($sp)
/* 00468 8099D118 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 0046C 8099D11C 240C0020 */ addiu $t4, $zero, 0x0020 ## $t4 = 00000020
/* 00470 8099D120 85A30150 */ lh $v1, 0x0150($t5) ## 00000150
/* 00474 8099D124 240B0020 */ addiu $t3, $zero, 0x0020 ## $t3 = 00000020
/* 00478 8099D128 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 0047C 8099D12C 0003C880 */ sll $t9, $v1, 2
/* 00480 8099D130 0323C823 */ subu $t9, $t9, $v1
/* 00484 8099D134 0019C880 */ sll $t9, $t9, 2
/* 00488 8099D138 00030823 */ subu $at, $zero, $v1
/* 0048C 8099D13C 00013880 */ sll $a3, $at, 2
/* 00490 8099D140 AFB90020 */ sw $t9, 0x0020($sp)
/* 00494 8099D144 AFB80018 */ sw $t8, 0x0018($sp)
/* 00498 8099D148 AFAB0024 */ sw $t3, 0x0024($sp)
/* 0049C 8099D14C AFAC0028 */ sw $t4, 0x0028($sp)
/* 004A0 8099D150 AFA0001C */ sw $zero, 0x001C($sp)
/* 004A4 8099D154 AFAF0014 */ sw $t7, 0x0014($sp)
/* 004A8 8099D158 AFAE0010 */ sw $t6, 0x0010($sp)
/* 004AC 8099D15C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 004B0 8099D160 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 004B4 8099D164 0C0253D0 */ jal Gfx_TwoTexScroll
/* 004B8 8099D168 AFA20068 */ sw $v0, 0x0068($sp)
/* 004BC 8099D16C 8FA80068 */ lw $t0, 0x0068($sp)
/* 004C0 8099D170 0C034213 */ jal Matrix_Push
/* 004C4 8099D174 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
/* 004C8 8099D178 3C01809A */ lui $at, %hi(D_8099D820) ## $at = 809A0000
/* 004CC 8099D17C C42CD820 */ lwc1 $f12, %lo(D_8099D820)($at)
/* 004D0 8099D180 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 004D4 8099D184 44066000 */ mfc1 $a2, $f12
/* 004D8 8099D188 0C0342A3 */ jal Matrix_Scale
/* 004DC 8099D18C 46006386 */ mov.s $f14, $f12
/* 004E0 8099D190 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 004E4 8099D194 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
/* 004E8 8099D198 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003
/* 004EC 8099D19C 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 004F0 8099D1A0 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 004F4 8099D1A4 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 004F8 8099D1A8 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 004FC 8099D1AC 3C05809A */ lui $a1, %hi(D_8099D7A4) ## $a1 = 809A0000
/* 00500 8099D1B0 24A5D7A4 */ addiu $a1, $a1, %lo(D_8099D7A4) ## $a1 = 8099D7A4
/* 00504 8099D1B4 24060141 */ addiu $a2, $zero, 0x0141 ## $a2 = 00000141
/* 00508 8099D1B8 0C0346A2 */ jal Matrix_NewMtx
/* 0050C 8099D1BC AFA20064 */ sw $v0, 0x0064($sp)
/* 00510 8099D1C0 8FA30064 */ lw $v1, 0x0064($sp)
/* 00514 8099D1C4 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00518 8099D1C8 922F1D6C */ lbu $t7, 0x1D6C($s1) ## 00001D6C
/* 0051C 8099D1CC 11E00010 */ beq $t7, $zero, .L8099D210
/* 00520 8099D1D0 00000000 */ nop
/* 00524 8099D1D4 8E221D90 */ lw $v0, 0x1D90($s1) ## 00001D90
/* 00528 8099D1D8 1040000D */ beq $v0, $zero, .L8099D210
/* 0052C 8099D1DC 00000000 */ nop
/* 00530 8099D1E0 94580000 */ lhu $t8, 0x0000($v0) ## 00000000
/* 00534 8099D1E4 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00538 8099D1E8 3C0BDE00 */ lui $t3, 0xDE00 ## $t3 = DE000000
/* 0053C 8099D1EC 17010008 */ bne $t8, $at, .L8099D210
/* 00540 8099D1F0 00000000 */ nop
/* 00544 8099D1F4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00548 8099D1F8 3C0C0600 */ lui $t4, %hi(D_06002570) ## $t4 = 06000000
/* 0054C 8099D1FC 258C2570 */ addiu $t4, $t4, %lo(D_06002570) ## $t4 = 06002570
/* 00550 8099D200 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00554 8099D204 AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 00558 8099D208 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 0055C 8099D20C AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
.L8099D210:
/* 00560 8099D210 0C034221 */ jal Matrix_Pop
/* 00564 8099D214 00000000 */ nop
/* 00568 8099D218 3C01809A */ lui $at, %hi(D_8099D824) ## $at = 809A0000
/* 0056C 8099D21C C42CD824 */ lwc1 $f12, %lo(D_8099D824)($at)
/* 00570 8099D220 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00574 8099D224 44066000 */ mfc1 $a2, $f12
/* 00578 8099D228 0C0342A3 */ jal Matrix_Scale
/* 0057C 8099D22C 46006386 */ mov.s $f14, $f12
/* 00580 8099D230 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00584 8099D234 3C0EDA38 */ lui $t6, 0xDA38 ## $t6 = DA380000
/* 00588 8099D238 35CE0003 */ ori $t6, $t6, 0x0003 ## $t6 = DA380003
/* 0058C 8099D23C 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 00590 8099D240 AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 00594 8099D244 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 00598 8099D248 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 0059C 8099D24C 3C05809A */ lui $a1, %hi(D_8099D7B8) ## $a1 = 809A0000
/* 005A0 8099D250 24A5D7B8 */ addiu $a1, $a1, %lo(D_8099D7B8) ## $a1 = 8099D7B8
/* 005A4 8099D254 2406014D */ addiu $a2, $zero, 0x014D ## $a2 = 0000014D
/* 005A8 8099D258 0C0346A2 */ jal Matrix_NewMtx
/* 005AC 8099D25C AFA2005C */ sw $v0, 0x005C($sp)
/* 005B0 8099D260 8FA3005C */ lw $v1, 0x005C($sp)
/* 005B4 8099D264 3C06809A */ lui $a2, %hi(D_8099D7CC) ## $a2 = 809A0000
/* 005B8 8099D268 24C6D7CC */ addiu $a2, $a2, %lo(D_8099D7CC) ## $a2 = 8099D7CC
/* 005BC 8099D26C AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 005C0 8099D270 922F1D6C */ lbu $t7, 0x1D6C($s1) ## 00001D6C
/* 005C4 8099D274 27A40074 */ addiu $a0, $sp, 0x0074 ## $a0 = FFFFFFE4
/* 005C8 8099D278 24070164 */ addiu $a3, $zero, 0x0164 ## $a3 = 00000164
/* 005CC 8099D27C 11E00022 */ beq $t7, $zero, .L8099D308
/* 005D0 8099D280 00000000 */ nop
/* 005D4 8099D284 8E231D94 */ lw $v1, 0x1D94($s1) ## 00001D94
/* 005D8 8099D288 1060001F */ beq $v1, $zero, .L8099D308
/* 005DC 8099D28C 00000000 */ nop
/* 005E0 8099D290 94620000 */ lhu $v0, 0x0000($v1) ## 00000000
/* 005E4 8099D294 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 005E8 8099D298 3C19FA00 */ lui $t9, 0xFA00 ## $t9 = FA000000
/* 005EC 8099D29C 10410004 */ beq $v0, $at, .L8099D2B0
/* 005F0 8099D2A0 37398080 */ ori $t9, $t9, 0x8080 ## $t9 = FA008080
/* 005F4 8099D2A4 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 005F8 8099D2A8 14410017 */ bne $v0, $at, .L8099D308
/* 005FC 8099D2AC 00000000 */ nop
.L8099D2B0:
/* 00600 8099D2B0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00604 8099D2B4 240BC8FF */ addiu $t3, $zero, 0xC8FF ## $t3 = FFFFC8FF
/* 00608 8099D2B8 3C0E6400 */ lui $t6, 0x6400 ## $t6 = 64000000
/* 0060C 8099D2BC 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00610 8099D2C0 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 00614 8099D2C4 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00618 8099D2C8 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 0061C 8099D2CC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00620 8099D2D0 35CE00FF */ ori $t6, $t6, 0x00FF ## $t6 = 640000FF
/* 00624 8099D2D4 3C0DFB00 */ lui $t5, 0xFB00 ## $t5 = FB000000
/* 00628 8099D2D8 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 0062C 8099D2DC AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 00630 8099D2E0 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 00634 8099D2E4 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 00638 8099D2E8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0063C 8099D2EC 3C190600 */ lui $t9, %hi(D_06001720) ## $t9 = 06000000
/* 00640 8099D2F0 27391720 */ addiu $t9, $t9, %lo(D_06001720) ## $t9 = 06001720
/* 00644 8099D2F4 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00648 8099D2F8 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 0064C 8099D2FC 3C18DE00 */ lui $t8, 0xDE00 ## $t8 = DE000000
/* 00650 8099D300 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00654 8099D304 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
.L8099D308:
/* 00658 8099D308 0C031AD5 */ jal Graph_CloseDisps
/* 0065C 8099D30C 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 00660 8099D310 8FA40090 */ lw $a0, 0x0090($sp)
/* 00664 8099D314 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00668 8099D318 0C2674CD */ jal func_8099D334
/* 0066C 8099D31C 24840158 */ addiu $a0, $a0, 0x0158 ## $a0 = 00000158
/* 00670 8099D320 8FBF003C */ lw $ra, 0x003C($sp)
/* 00674 8099D324 8FB00034 */ lw $s0, 0x0034($sp)
/* 00678 8099D328 8FB10038 */ lw $s1, 0x0038($sp)
/* 0067C 8099D32C 03E00008 */ jr $ra
/* 00680 8099D330 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

View File

@ -1,28 +0,0 @@
glabel EfcErupc_Init
/* 00008 8099CCB8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 0000C 8099CCBC AFA50024 */ sw $a1, 0x0024($sp)
/* 00010 8099CCC0 AFBF001C */ sw $ra, 0x001C($sp)
/* 00014 8099CCC4 AFB00018 */ sw $s0, 0x0018($sp)
/* 00018 8099CCC8 3C05809A */ lui $a1, %hi(func_8099CD2C) ## $a1 = 809A0000
/* 0001C 8099CCCC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00020 8099CCD0 0C26732C */ jal func_8099CCB0
/* 00024 8099CCD4 24A5CD2C */ addiu $a1, $a1, %lo(func_8099CD2C) ## $a1 = 8099CD2C
/* 00028 8099CCD8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0002C 8099CCDC 0C00B58B */ jal Actor_SetScale
/* 00030 8099CCE0 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00034 8099CCE4 0C2675C7 */ jal func_8099D71C
/* 00038 8099CCE8 26040158 */ addiu $a0, $s0, 0x0158 ## $a0 = 00000158
/* 0003C 8099CCEC A6000150 */ sh $zero, 0x0150($s0) ## 00000150
/* 00040 8099CCF0 86020150 */ lh $v0, 0x0150($s0) ## 00000150
/* 00044 8099CCF4 240E0005 */ addiu $t6, $zero, 0x0005 ## $t6 = 00000005
/* 00048 8099CCF8 240FFF9C */ addiu $t7, $zero, 0xFF9C ## $t7 = FFFFFF9C
/* 0004C 8099CCFC A60E0152 */ sh $t6, 0x0152($s0) ## 00000152
/* 00050 8099CD00 A60F0154 */ sh $t7, 0x0154($s0) ## 00000154
/* 00054 8099CD04 A602014E */ sh $v0, 0x014E($s0) ## 0000014E
/* 00058 8099CD08 A602014C */ sh $v0, 0x014C($s0) ## 0000014C
/* 0005C 8099CD0C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00060 8099CD10 8FB00018 */ lw $s0, 0x0018($sp)
/* 00064 8099CD14 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00068 8099CD18 03E00008 */ jr $ra
/* 0006C 8099CD1C 00000000 */ nop

View File

@ -1,15 +0,0 @@
glabel EfcErupc_Update
/* 002C8 8099CF78 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002CC 8099CF7C AFBF0014 */ sw $ra, 0x0014($sp)
/* 002D0 8099CF80 AFA5001C */ sw $a1, 0x001C($sp)
/* 002D4 8099CF84 AFA40018 */ sw $a0, 0x0018($sp)
/* 002D8 8099CF88 8C9918C8 */ lw $t9, 0x18C8($a0) ## 000018C8
/* 002DC 8099CF8C 0320F809 */ jalr $ra, $t9
/* 002E0 8099CF90 00000000 */ nop
/* 002E4 8099CF94 8FA40018 */ lw $a0, 0x0018($sp)
/* 002E8 8099CF98 0C26754B */ jal func_8099D52C
/* 002EC 8099CF9C 8FA5001C */ lw $a1, 0x001C($sp)
/* 002F0 8099CFA0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002F4 8099CFA4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002F8 8099CFA8 03E00008 */ jr $ra
/* 002FC 8099CFAC 00000000 */ nop

View File

@ -1,3 +0,0 @@
glabel func_8099CCB0
/* 00000 8099CCB0 03E00008 */ jr $ra
/* 00004 8099CCB4 AC8518C8 */ sw $a1, 0x18C8($a0) ## 000018C8

View File

@ -1,171 +0,0 @@
.late_rodata
glabel D_8099D81C
.float 0.1
.text
glabel func_8099CD2C
/* 0007C 8099CD2C 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80
/* 00080 8099CD30 AFBF0044 */ sw $ra, 0x0044($sp)
/* 00084 8099CD34 AFB20040 */ sw $s2, 0x0040($sp)
/* 00088 8099CD38 AFB1003C */ sw $s1, 0x003C($sp)
/* 0008C 8099CD3C AFB00038 */ sw $s0, 0x0038($sp)
/* 00090 8099CD40 F7B80030 */ sdc1 $f24, 0x0030($sp)
/* 00094 8099CD44 F7B60028 */ sdc1 $f22, 0x0028($sp)
/* 00098 8099CD48 F7B40020 */ sdc1 $f20, 0x0020($sp)
/* 0009C 8099CD4C 90A61D6C */ lbu $a2, 0x1D6C($a1) ## 00001D6C
/* 000A0 8099CD50 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 000A4 8099CD54 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 000A8 8099CD58 10C00029 */ beq $a2, $zero, .L8099CE00
/* 000AC 8099CD5C 00000000 */ nop
/* 000B0 8099CD60 8CA21D90 */ lw $v0, 0x1D90($a1) ## 00001D90
/* 000B4 8099CD64 10400026 */ beq $v0, $zero, .L8099CE00
/* 000B8 8099CD68 00000000 */ nop
/* 000BC 8099CD6C 944E0000 */ lhu $t6, 0x0000($v0) ## 00000000
/* 000C0 8099CD70 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 000C4 8099CD74 55C1001D */ bnel $t6, $at, .L8099CDEC
/* 000C8 8099CD78 86220154 */ lh $v0, 0x0154($s1) ## 00000154
/* 000CC 8099CD7C 84830150 */ lh $v1, 0x0150($a0) ## 00000150
/* 000D0 8099CD80 2401001E */ addiu $at, $zero, 0x001E ## $at = 0000001E
/* 000D4 8099CD84 54610005 */ bnel $v1, $at, .L8099CD9C
/* 000D8 8099CD88 28610041 */ slti $at, $v1, 0x0041
/* 000DC 8099CD8C 0C01E233 */ jal func_800788CC
/* 000E0 8099CD90 24041845 */ addiu $a0, $zero, 0x1845 ## $a0 = 00001845
/* 000E4 8099CD94 86230150 */ lh $v1, 0x0150($s1) ## 00000150
/* 000E8 8099CD98 28610041 */ slti $at, $v1, 0x0041
.L8099CD9C:
/* 000EC 8099CD9C 50200009 */ beql $at, $zero, .L8099CDC4
/* 000F0 8099CDA0 86220154 */ lh $v0, 0x0154($s1) ## 00000154
/* 000F4 8099CDA4 86220154 */ lh $v0, 0x0154($s1) ## 00000154
/* 000F8 8099CDA8 284100C8 */ slti $at, $v0, 0x00C8
/* 000FC 8099CDAC 1020000A */ beq $at, $zero, .L8099CDD8
/* 00100 8099CDB0 244F000A */ addiu $t7, $v0, 0x000A ## $t7 = 0000000A
/* 00104 8099CDB4 A62F0154 */ sh $t7, 0x0154($s1) ## 00000154
/* 00108 8099CDB8 10000007 */ beq $zero, $zero, .L8099CDD8
/* 0010C 8099CDBC 86230150 */ lh $v1, 0x0150($s1) ## 00000150
/* 00110 8099CDC0 86220154 */ lh $v0, 0x0154($s1) ## 00000154
.L8099CDC4:
/* 00114 8099CDC4 2841FF9D */ slti $at, $v0, 0xFF9D
/* 00118 8099CDC8 14200003 */ bne $at, $zero, .L8099CDD8
/* 0011C 8099CDCC 2458FFF6 */ addiu $t8, $v0, 0xFFF6 ## $t8 = FFFFFFF6
/* 00120 8099CDD0 A6380154 */ sh $t8, 0x0154($s1) ## 00000154
/* 00124 8099CDD4 86230150 */ lh $v1, 0x0150($s1) ## 00000150
.L8099CDD8:
/* 00128 8099CDD8 24790001 */ addiu $t9, $v1, 0x0001 ## $t9 = 00000001
/* 0012C 8099CDDC A6390150 */ sh $t9, 0x0150($s1) ## 00000150
/* 00130 8099CDE0 10000007 */ beq $zero, $zero, .L8099CE00
/* 00134 8099CDE4 92061D6C */ lbu $a2, 0x1D6C($s0) ## 00001D6C
/* 00138 8099CDE8 86220154 */ lh $v0, 0x0154($s1) ## 00000154
.L8099CDEC:
/* 0013C 8099CDEC 2841FF9D */ slti $at, $v0, 0xFF9D
/* 00140 8099CDF0 14200003 */ bne $at, $zero, .L8099CE00
/* 00144 8099CDF4 2448FFF6 */ addiu $t0, $v0, 0xFFF6 ## $t0 = FFFFFFF6
/* 00148 8099CDF8 A6280154 */ sh $t0, 0x0154($s1) ## 00000154
/* 0014C 8099CDFC 92061D6C */ lbu $a2, 0x1D6C($s0) ## 00001D6C
.L8099CE00:
/* 00150 8099CE00 50C0001F */ beql $a2, $zero, .L8099CE80
/* 00154 8099CE04 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00158 8099CE08 8E021D94 */ lw $v0, 0x1D94($s0) ## 00001D94
/* 0015C 8099CE0C 5040001C */ beql $v0, $zero, .L8099CE80
/* 00160 8099CE10 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00164 8099CE14 94430000 */ lhu $v1, 0x0000($v0) ## 00000000
/* 00168 8099CE18 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0016C 8099CE1C 10610005 */ beq $v1, $at, .L8099CE34
/* 00170 8099CE20 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00174 8099CE24 10610011 */ beq $v1, $at, .L8099CE6C
/* 00178 8099CE28 240C001E */ addiu $t4, $zero, 0x001E ## $t4 = 0000001E
/* 0017C 8099CE2C 10000011 */ beq $zero, $zero, .L8099CE74
/* 00180 8099CE30 862D014C */ lh $t5, 0x014C($s1) ## 0000014C
.L8099CE34:
/* 00184 8099CE34 8622014E */ lh $v0, 0x014E($s1) ## 0000014E
/* 00188 8099CE38 5440000A */ bnel $v0, $zero, .L8099CE64
/* 0018C 8099CE3C 244B0001 */ addiu $t3, $v0, 0x0001 ## $t3 = 00000001
/* 00190 8099CE40 0C03CFCF */ jal func_800F3F3C
/* 00194 8099CE44 24040006 */ addiu $a0, $zero, 0x0006 ## $a0 = 00000006
/* 00198 8099CE48 3C038016 */ lui $v1, %hi(gSaveContext)
/* 0019C 8099CE4C 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 001A0 8099CE50 94690ED8 */ lhu $t1, 0x0ED8($v1) ## 8015F538
/* 001A4 8099CE54 352A8000 */ ori $t2, $t1, 0x8000 ## $t2 = 00008000
/* 001A8 8099CE58 A46A0ED8 */ sh $t2, 0x0ED8($v1) ## 8015F538
/* 001AC 8099CE5C 8622014E */ lh $v0, 0x014E($s1) ## 0000014E
/* 001B0 8099CE60 244B0001 */ addiu $t3, $v0, 0x0001 ## $t3 = 00000001
.L8099CE64:
/* 001B4 8099CE64 10000002 */ beq $zero, $zero, .L8099CE70
/* 001B8 8099CE68 A62B014E */ sh $t3, 0x014E($s1) ## 0000014E
.L8099CE6C:
/* 001BC 8099CE6C A62C014E */ sh $t4, 0x014E($s1) ## 0000014E
.L8099CE70:
/* 001C0 8099CE70 862D014C */ lh $t5, 0x014C($s1) ## 0000014C
.L8099CE74:
/* 001C4 8099CE74 25AE0001 */ addiu $t6, $t5, 0x0001 ## $t6 = 00000001
/* 001C8 8099CE78 A62E014C */ sh $t6, 0x014C($s1) ## 0000014C
/* 001CC 8099CE7C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L8099CE80:
/* 001D0 8099CE80 3C014396 */ lui $at, 0x4396 ## $at = 43960000
/* 001D4 8099CE84 44813000 */ mtc1 $at, $f6 ## $f6 = 300.00
/* 001D8 8099CE88 E7A00064 */ swc1 $f0, 0x0064($sp)
/* 001DC 8099CE8C E7A0005C */ swc1 $f0, 0x005C($sp)
/* 001E0 8099CE90 C6240028 */ lwc1 $f4, 0x0028($s1) ## 00000028
/* 001E4 8099CE94 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000
/* 001E8 8099CE98 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 001EC 8099CE9C 46062200 */ add.s $f8, $f4, $f6
/* 001F0 8099CEA0 E7A80078 */ swc1 $f8, 0x0078($sp)
/* 001F4 8099CEA4 862F0152 */ lh $t7, 0x0152($s1) ## 00000152
/* 001F8 8099CEA8 59E0002B */ blezl $t7, .L8099CF58
/* 001FC 8099CEAC 8FBF0044 */ lw $ra, 0x0044($sp)
/* 00200 8099CEB0 4481C000 */ mtc1 $at, $f24 ## $f24 = 80.00
/* 00204 8099CEB4 3C01809A */ lui $at, %hi(D_8099D81C) ## $at = 809A0000
/* 00208 8099CEB8 C436D81C */ lwc1 $f22, %lo(D_8099D81C)($at)
/* 0020C 8099CEBC 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00210 8099CEC0 4481A000 */ mtc1 $at, $f20 ## $f20 = 100.00
/* 00214 8099CEC4 26320158 */ addiu $s2, $s1, 0x0158 ## $s2 = 00000158
.L8099CEC8:
/* 00218 8099CEC8 0C00CFC8 */ jal Rand_CenteredFloat
/* 0021C 8099CECC 4600A306 */ mov.s $f12, $f20
/* 00220 8099CED0 C62A0024 */ lwc1 $f10, 0x0024($s1) ## 00000024
/* 00224 8099CED4 4600A306 */ mov.s $f12, $f20
/* 00228 8099CED8 460A0400 */ add.s $f16, $f0, $f10
/* 0022C 8099CEDC 0C00CFC8 */ jal Rand_CenteredFloat
/* 00230 8099CEE0 E7B00074 */ swc1 $f16, 0x0074($sp)
/* 00234 8099CEE4 C632002C */ lwc1 $f18, 0x002C($s1) ## 0000002C
/* 00238 8099CEE8 4600A306 */ mov.s $f12, $f20
/* 0023C 8099CEEC 46120100 */ add.s $f4, $f0, $f18
/* 00240 8099CEF0 0C00CFC8 */ jal Rand_CenteredFloat
/* 00244 8099CEF4 E7A4007C */ swc1 $f4, 0x007C($sp)
/* 00248 8099CEF8 E7A00068 */ swc1 $f0, 0x0068($sp)
/* 0024C 8099CEFC 0C00CFBE */ jal Rand_ZeroFloat
/* 00250 8099CF00 4600A306 */ mov.s $f12, $f20
/* 00254 8099CF04 E7A0006C */ swc1 $f0, 0x006C($sp)
/* 00258 8099CF08 0C00CFC8 */ jal Rand_CenteredFloat
/* 0025C 8099CF0C 4600A306 */ mov.s $f12, $f20
/* 00260 8099CF10 E7A00070 */ swc1 $f0, 0x0070($sp)
/* 00264 8099CF14 86380154 */ lh $t8, 0x0154($s1) ## 00000154
/* 00268 8099CF18 E7B80010 */ swc1 $f24, 0x0010($sp)
/* 0026C 8099CF1C 02402025 */ or $a0, $s2, $zero ## $a0 = 00000158
/* 00270 8099CF20 44983000 */ mtc1 $t8, $f6 ## $f6 = 0.00
/* 00274 8099CF24 27A50074 */ addiu $a1, $sp, 0x0074 ## $a1 = FFFFFFF4
/* 00278 8099CF28 27A60068 */ addiu $a2, $sp, 0x0068 ## $a2 = FFFFFFE8
/* 0027C 8099CF2C 46803220 */ cvt.s.w $f8, $f6
/* 00280 8099CF30 27A7005C */ addiu $a3, $sp, 0x005C ## $a3 = FFFFFFDC
/* 00284 8099CF34 46164282 */ mul.s $f10, $f8, $f22
/* 00288 8099CF38 0C267594 */ jal func_8099D650
/* 0028C 8099CF3C E7AA0060 */ swc1 $f10, 0x0060($sp)
/* 00290 8099CF40 86390152 */ lh $t9, 0x0152($s1) ## 00000152
/* 00294 8099CF44 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00298 8099CF48 0219082A */ slt $at, $s0, $t9
/* 0029C 8099CF4C 1420FFDE */ bne $at, $zero, .L8099CEC8
/* 002A0 8099CF50 00000000 */ nop
/* 002A4 8099CF54 8FBF0044 */ lw $ra, 0x0044($sp)
.L8099CF58:
/* 002A8 8099CF58 D7B40020 */ ldc1 $f20, 0x0020($sp)
/* 002AC 8099CF5C D7B60028 */ ldc1 $f22, 0x0028($sp)
/* 002B0 8099CF60 D7B80030 */ ldc1 $f24, 0x0030($sp)
/* 002B4 8099CF64 8FB00038 */ lw $s0, 0x0038($sp)
/* 002B8 8099CF68 8FB1003C */ lw $s1, 0x003C($sp)
/* 002BC 8099CF6C 8FB20040 */ lw $s2, 0x0040($sp)
/* 002C0 8099CF70 03E00008 */ jr $ra
/* 002C4 8099CF74 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000

View File

@ -1,143 +0,0 @@
.rdata
glabel D_8099D7E0
.asciz "../z_efc_erupc.c"
.balign 4
glabel D_8099D7F4
.asciz "../z_efc_erupc.c"
.balign 4
glabel D_8099D808
.asciz "../z_efc_erupc.c"
.balign 4
.text
glabel func_8099D334
/* 00684 8099D334 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 00688 8099D338 AFBF0044 */ sw $ra, 0x0044($sp)
/* 0068C 8099D33C AFBE0040 */ sw $s8, 0x0040($sp)
/* 00690 8099D340 AFB7003C */ sw $s7, 0x003C($sp)
/* 00694 8099D344 AFB60038 */ sw $s6, 0x0038($sp)
/* 00698 8099D348 AFB50034 */ sw $s5, 0x0034($sp)
/* 0069C 8099D34C AFB40030 */ sw $s4, 0x0030($sp)
/* 006A0 8099D350 AFB3002C */ sw $s3, 0x002C($sp)
/* 006A4 8099D354 AFB20028 */ sw $s2, 0x0028($sp)
/* 006A8 8099D358 AFB10024 */ sw $s1, 0x0024($sp)
/* 006AC 8099D35C AFB00020 */ sw $s0, 0x0020($sp)
/* 006B0 8099D360 F7B40018 */ sdc1 $f20, 0x0018($sp)
/* 006B4 8099D364 8CB00000 */ lw $s0, 0x0000($a1) ## 00000000
/* 006B8 8099D368 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 006BC 8099D36C 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000
/* 006C0 8099D370 3C06809A */ lui $a2, %hi(D_8099D7E0) ## $a2 = 809A0000
/* 006C4 8099D374 24C6D7E0 */ addiu $a2, $a2, %lo(D_8099D7E0) ## $a2 = 8099D7E0
/* 006C8 8099D378 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
/* 006CC 8099D37C 24070170 */ addiu $a3, $zero, 0x0170 ## $a3 = 00000170
/* 006D0 8099D380 0C031AB1 */ jal Graph_OpenDisps
/* 006D4 8099D384 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 006D8 8099D388 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 006DC 8099D38C 4481A000 */ mtc1 $at, $f20 ## $f20 = 1.00
/* 006E0 8099D390 00009825 */ or $s3, $zero, $zero ## $s3 = 00000000
/* 006E4 8099D394 3C1EFA00 */ lui $s8, 0xFA00 ## $s8 = FA000000
/* 006E8 8099D398 3C17DE00 */ lui $s7, 0xDE00 ## $s7 = DE000000
.L8099D39C:
/* 006EC 8099D39C 922E0024 */ lbu $t6, 0x0024($s1) ## 00000024
/* 006F0 8099D3A0 3C120600 */ lui $s2, %hi(D_06002760) ## $s2 = 06000000
/* 006F4 8099D3A4 26522760 */ addiu $s2, $s2, %lo(D_06002760) ## $s2 = 06002760
/* 006F8 8099D3A8 11C00047 */ beq $t6, $zero, .L8099D4C8
/* 006FC 8099D3AC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00700 8099D3B0 34211DA0 */ ori $at, $at, 0x1DA0 ## $at = 00011DA0
/* 00704 8099D3B4 3C150600 */ lui $s5, %hi(D_060027D8) ## $s5 = 06000000
/* 00708 8099D3B8 26B527D8 */ addiu $s5, $s5, %lo(D_060027D8) ## $s5 = 060027D8
/* 0070C 8099D3BC 02C1A021 */ addu $s4, $s6, $at
/* 00710 8099D3C0 0C024F61 */ jal func_80093D84
/* 00714 8099D3C4 8EC40000 */ lw $a0, 0x0000($s6) ## 00000000
/* 00718 8099D3C8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0071C 8099D3CC 3C0E9600 */ lui $t6, 0x9600 ## $t6 = 96000000
/* 00720 8099D3D0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00724 8099D3D4 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00728 8099D3D8 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 0072C 8099D3DC AC520004 */ sw $s2, 0x0004($v0) ## 00000004
/* 00730 8099D3E0 AC570000 */ sw $s7, 0x0000($v0) ## 00000000
/* 00734 8099D3E4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00738 8099D3E8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 0073C 8099D3EC AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 00740 8099D3F0 AC5E0000 */ sw $s8, 0x0000($v0) ## 00000000
/* 00744 8099D3F4 92280026 */ lbu $t0, 0x0026($s1) ## 00000026
/* 00748 8099D3F8 922B0027 */ lbu $t3, 0x0027($s1) ## 00000027
/* 0074C 8099D3FC 922F0028 */ lbu $t7, 0x0028($s1) ## 00000028
/* 00750 8099D400 00084E00 */ sll $t1, $t0, 24
/* 00754 8099D404 8628002A */ lh $t0, 0x002A($s1) ## 0000002A
/* 00758 8099D408 000B6400 */ sll $t4, $t3, 16
/* 0075C 8099D40C 012C6825 */ or $t5, $t1, $t4 ## $t5 = 00000000
/* 00760 8099D410 000FC200 */ sll $t8, $t7, 8
/* 00764 8099D414 01B8C825 */ or $t9, $t5, $t8 ## $t9 = 00000008
/* 00768 8099D418 310A00FF */ andi $t2, $t0, 0x00FF ## $t2 = 00000000
/* 0076C 8099D41C 032A5825 */ or $t3, $t9, $t2 ## $t3 = 00000008
/* 00770 8099D420 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00774 8099D424 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00778 8099D428 3C0CFB00 */ lui $t4, 0xFB00 ## $t4 = FB000000
/* 0077C 8099D42C 3C0DE700 */ lui $t5, 0xE700 ## $t5 = E7000000
/* 00780 8099D430 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 00784 8099D434 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
/* 00788 8099D438 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 0078C 8099D43C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00790 8099D440 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00794 8099D444 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00798 8099D448 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 0079C 8099D44C AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 007A0 8099D450 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 007A4 8099D454 8E260008 */ lw $a2, 0x0008($s1) ## 00000008
/* 007A8 8099D458 C62E0004 */ lwc1 $f14, 0x0004($s1) ## 00000004
/* 007AC 8099D45C 0C034261 */ jal Matrix_Translate
/* 007B0 8099D460 C62C0000 */ lwc1 $f12, 0x0000($s1) ## 00000000
/* 007B4 8099D464 0C0347F5 */ jal func_800D1FD4
/* 007B8 8099D468 02802025 */ or $a0, $s4, $zero ## $a0 = 00000000
/* 007BC 8099D46C C62C0030 */ lwc1 $f12, 0x0030($s1) ## 00000030
/* 007C0 8099D470 4406A000 */ mfc1 $a2, $f20
/* 007C4 8099D474 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 007C8 8099D478 0C0342A3 */ jal Matrix_Scale
/* 007CC 8099D47C 46006386 */ mov.s $f14, $f12
/* 007D0 8099D480 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 007D4 8099D484 3C08DA38 */ lui $t0, 0xDA38 ## $t0 = DA380000
/* 007D8 8099D488 35080003 */ ori $t0, $t0, 0x0003 ## $t0 = DA380003
/* 007DC 8099D48C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 007E0 8099D490 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 007E4 8099D494 3C05809A */ lui $a1, %hi(D_8099D7F4) ## $a1 = 809A0000
/* 007E8 8099D498 24A5D7F4 */ addiu $a1, $a1, %lo(D_8099D7F4) ## $a1 = 8099D7F4
/* 007EC 8099D49C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007F0 8099D4A0 24060189 */ addiu $a2, $zero, 0x0189 ## $a2 = 00000189
/* 007F4 8099D4A4 AC480000 */ sw $t0, 0x0000($v0) ## 00000000
/* 007F8 8099D4A8 0C0346A2 */ jal Matrix_NewMtx
/* 007FC 8099D4AC 00409025 */ or $s2, $v0, $zero ## $s2 = 00000000
/* 00800 8099D4B0 AE420004 */ sw $v0, 0x0004($s2) ## 00000004
/* 00804 8099D4B4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00808 8099D4B8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 0080C 8099D4BC AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 00810 8099D4C0 AC550004 */ sw $s5, 0x0004($v0) ## 00000004
/* 00814 8099D4C4 AC570000 */ sw $s7, 0x0000($v0) ## 00000000
.L8099D4C8:
/* 00818 8099D4C8 26730001 */ addiu $s3, $s3, 0x0001 ## $s3 = 00000001
/* 0081C 8099D4CC 00139C00 */ sll $s3, $s3, 16
/* 00820 8099D4D0 00139C03 */ sra $s3, $s3, 16
/* 00824 8099D4D4 2A610064 */ slti $at, $s3, 0x0064
/* 00828 8099D4D8 1420FFB0 */ bne $at, $zero, .L8099D39C
/* 0082C 8099D4DC 2631003C */ addiu $s1, $s1, 0x003C ## $s1 = 0000003C
/* 00830 8099D4E0 3C06809A */ lui $a2, %hi(D_8099D808) ## $a2 = 809A0000
/* 00834 8099D4E4 24C6D808 */ addiu $a2, $a2, %lo(D_8099D808) ## $a2 = 8099D808
/* 00838 8099D4E8 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
/* 0083C 8099D4EC 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00840 8099D4F0 0C031AD5 */ jal Graph_CloseDisps
/* 00844 8099D4F4 2407018F */ addiu $a3, $zero, 0x018F ## $a3 = 0000018F
/* 00848 8099D4F8 8FBF0044 */ lw $ra, 0x0044($sp)
/* 0084C 8099D4FC D7B40018 */ ldc1 $f20, 0x0018($sp)
/* 00850 8099D500 8FB00020 */ lw $s0, 0x0020($sp)
/* 00854 8099D504 8FB10024 */ lw $s1, 0x0024($sp)
/* 00858 8099D508 8FB20028 */ lw $s2, 0x0028($sp)
/* 0085C 8099D50C 8FB3002C */ lw $s3, 0x002C($sp)
/* 00860 8099D510 8FB40030 */ lw $s4, 0x0030($sp)
/* 00864 8099D514 8FB50034 */ lw $s5, 0x0034($sp)
/* 00868 8099D518 8FB60038 */ lw $s6, 0x0038($sp)
/* 0086C 8099D51C 8FB7003C */ lw $s7, 0x003C($sp)
/* 00870 8099D520 8FBE0040 */ lw $s8, 0x0040($sp)
/* 00874 8099D524 03E00008 */ jr $ra
/* 00878 8099D528 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

View File

@ -1,78 +0,0 @@
glabel func_8099D52C
/* 0087C 8099D52C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00880 8099D530 3C0E809A */ lui $t6, %hi(D_8099D77C) ## $t6 = 809A0000
/* 00884 8099D534 AFA5001C */ sw $a1, 0x001C($sp)
/* 00888 8099D538 25CED77C */ addiu $t6, $t6, %lo(D_8099D77C) ## $t6 = 8099D77C
/* 0088C 8099D53C 8DD80000 */ lw $t8, 0x0000($t6) ## 8099D77C
/* 00890 8099D540 27A60008 */ addiu $a2, $sp, 0x0008 ## $a2 = FFFFFFF0
/* 00894 8099D544 24820158 */ addiu $v0, $a0, 0x0158 ## $v0 = 00000158
/* 00898 8099D548 ACD80000 */ sw $t8, 0x0000($a2) ## FFFFFFF0
/* 0089C 8099D54C 8DCF0004 */ lw $t7, 0x0004($t6) ## 8099D780
/* 008A0 8099D550 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
/* 008A4 8099D554 24070003 */ addiu $a3, $zero, 0x0003 ## $a3 = 00000003
/* 008A8 8099D558 ACCF0004 */ sw $t7, 0x0004($a2) ## FFFFFFF4
/* 008AC 8099D55C 8DD80008 */ lw $t8, 0x0008($t6) ## 8099D784
/* 008B0 8099D560 ACD80008 */ sw $t8, 0x0008($a2) ## FFFFFFF8
.L8099D564:
/* 008B4 8099D564 90590024 */ lbu $t9, 0x0024($v0) ## 0000017C
/* 008B8 8099D568 24630001 */ addiu $v1, $v1, 0x0001 ## $v1 = 00000001
/* 008BC 8099D56C 00031C00 */ sll $v1, $v1, 16
/* 008C0 8099D570 13200032 */ beq $t9, $zero, .L8099D63C
/* 008C4 8099D574 00031C03 */ sra $v1, $v1, 16
/* 008C8 8099D578 90480025 */ lbu $t0, 0x0025($v0) ## 0000017D
/* 008CC 8099D57C C440000C */ lwc1 $f0, 0x000C($v0) ## 00000164
/* 008D0 8099D580 C4440000 */ lwc1 $f4, 0x0000($v0) ## 00000158
/* 008D4 8099D584 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001
/* 008D8 8099D588 312400FF */ andi $a0, $t1, 0x00FF ## $a0 = 00000001
/* 008DC 8099D58C C4420010 */ lwc1 $f2, 0x0010($v0) ## 00000168
/* 008E0 8099D590 C4480004 */ lwc1 $f8, 0x0004($v0) ## 0000015C
/* 008E4 8099D594 C44C0014 */ lwc1 $f12, 0x0014($v0) ## 0000016C
/* 008E8 8099D598 C4500008 */ lwc1 $f16, 0x0008($v0) ## 00000160
/* 008EC 8099D59C 46002180 */ add.s $f6, $f4, $f0
/* 008F0 8099D5A0 C4440018 */ lwc1 $f4, 0x0018($v0) ## 00000170
/* 008F4 8099D5A4 A0490025 */ sb $t1, 0x0025($v0) ## 0000017D
/* 008F8 8099D5A8 46024280 */ add.s $f10, $f8, $f2
/* 008FC 8099D5AC C448001C */ lwc1 $f8, 0x001C($v0) ## 00000174
/* 00900 8099D5B0 E4460000 */ swc1 $f6, 0x0000($v0) ## 00000158
/* 00904 8099D5B4 460C8480 */ add.s $f18, $f16, $f12
/* 00908 8099D5B8 C4500020 */ lwc1 $f16, 0x0020($v0) ## 00000178
/* 0090C 8099D5BC E44A0004 */ swc1 $f10, 0x0004($v0) ## 0000015C
/* 00910 8099D5C0 46040180 */ add.s $f6, $f0, $f4
/* 00914 8099D5C4 E4520008 */ swc1 $f18, 0x0008($v0) ## 00000160
/* 00918 8099D5C8 844E002A */ lh $t6, 0x002A($v0) ## 00000182
/* 0091C 8099D5CC 46081280 */ add.s $f10, $f2, $f8
/* 00920 8099D5D0 E446000C */ swc1 $f6, 0x000C($v0) ## 00000164
/* 00924 8099D5D4 25CFFFEC */ addiu $t7, $t6, 0xFFEC ## $t7 = 8099D768
/* 00928 8099D5D8 46106480 */ add.s $f18, $f12, $f16
/* 0092C 8099D5DC E44A0010 */ swc1 $f10, 0x0010($v0) ## 00000168
/* 00930 8099D5E0 E4520014 */ swc1 $f18, 0x0014($v0) ## 0000016C
/* 00934 8099D5E4 04810004 */ bgez $a0, .L8099D5F8
/* 00938 8099D5E8 30840003 */ andi $a0, $a0, 0x0003 ## $a0 = 00000001
/* 0093C 8099D5EC 10800002 */ beq $a0, $zero, .L8099D5F8
/* 00940 8099D5F0 00000000 */ nop
/* 00944 8099D5F4 2484FFFC */ addiu $a0, $a0, 0xFFFC ## $a0 = FFFFFFFD
.L8099D5F8:
/* 00948 8099D5F8 00042400 */ sll $a0, $a0, 16
/* 0094C 8099D5FC 00042403 */ sra $a0, $a0, 16
/* 00950 8099D600 00870019 */ multu $a0, $a3
/* 00954 8099D604 00005012 */ mflo $t2
/* 00958 8099D608 00CA2821 */ addu $a1, $a2, $t2
/* 0095C 8099D60C 90AB0000 */ lbu $t3, 0x0000($a1) ## 00000000
/* 00960 8099D610 A04B0026 */ sb $t3, 0x0026($v0) ## 0000017E
/* 00964 8099D614 90AC0001 */ lbu $t4, 0x0001($a1) ## 00000001
/* 00968 8099D618 A04C0027 */ sb $t4, 0x0027($v0) ## 0000017F
/* 0096C 8099D61C 90AD0002 */ lbu $t5, 0x0002($a1) ## 00000002
/* 00970 8099D620 A44F002A */ sh $t7, 0x002A($v0) ## 00000182
/* 00974 8099D624 8458002A */ lh $t8, 0x002A($v0) ## 00000182
/* 00978 8099D628 A04D0028 */ sb $t5, 0x0028($v0) ## 00000180
/* 0097C 8099D62C 5F000004 */ bgtzl $t8, .L8099D640
/* 00980 8099D630 28610064 */ slti $at, $v1, 0x0064
/* 00984 8099D634 A440002A */ sh $zero, 0x002A($v0) ## 00000182
/* 00988 8099D638 A0400024 */ sb $zero, 0x0024($v0) ## 0000017C
.L8099D63C:
/* 0098C 8099D63C 28610064 */ slti $at, $v1, 0x0064
.L8099D640:
/* 00990 8099D640 1420FFC8 */ bne $at, $zero, .L8099D564
/* 00994 8099D644 2442003C */ addiu $v0, $v0, 0x003C ## $v0 = 00000194
/* 00998 8099D648 03E00008 */ jr $ra
/* 0099C 8099D64C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000

View File

@ -1,56 +0,0 @@
glabel func_8099D650
/* 009A0 8099D650 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 009A4 8099D654 AFBF0014 */ sw $ra, 0x0014($sp)
/* 009A8 8099D658 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L8099D65C:
/* 009AC 8099D65C 908E0024 */ lbu $t6, 0x0024($a0) ## 00000024
/* 009B0 8099D660 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
/* 009B4 8099D664 00021400 */ sll $v0, $v0, 16
/* 009B8 8099D668 15C00025 */ bne $t6, $zero, .L8099D700
/* 009BC 8099D66C 00021403 */ sra $v0, $v0, 16
/* 009C0 8099D670 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 009C4 8099D674 A08F0024 */ sb $t7, 0x0024($a0) ## 00000024
/* 009C8 8099D678 8CB90000 */ lw $t9, 0x0000($a1) ## 00000000
/* 009CC 8099D67C 3C01447A */ lui $at, 0x447A ## $at = 447A0000
/* 009D0 8099D680 44813000 */ mtc1 $at, $f6 ## $f6 = 1000.00
/* 009D4 8099D684 AC990000 */ sw $t9, 0x0000($a0) ## 00000000
/* 009D8 8099D688 8CB80004 */ lw $t8, 0x0004($a1) ## 00000004
/* 009DC 8099D68C 240C00FF */ addiu $t4, $zero, 0x00FF ## $t4 = 000000FF
/* 009E0 8099D690 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 009E4 8099D694 AC980004 */ sw $t8, 0x0004($a0) ## 00000004
/* 009E8 8099D698 8CB90008 */ lw $t9, 0x0008($a1) ## 00000008
/* 009EC 8099D69C 44816000 */ mtc1 $at, $f12 ## $f12 = 10.00
/* 009F0 8099D6A0 AC990008 */ sw $t9, 0x0008($a0) ## 00000008
/* 009F4 8099D6A4 8CC90000 */ lw $t1, 0x0000($a2) ## 00000000
/* 009F8 8099D6A8 AC89000C */ sw $t1, 0x000C($a0) ## 0000000C
/* 009FC 8099D6AC 8CC80004 */ lw $t0, 0x0004($a2) ## 00000004
/* 00A00 8099D6B0 AC880010 */ sw $t0, 0x0010($a0) ## 00000010
/* 00A04 8099D6B4 8CC90008 */ lw $t1, 0x0008($a2) ## 00000008
/* 00A08 8099D6B8 AC890014 */ sw $t1, 0x0014($a0) ## 00000014
/* 00A0C 8099D6BC 8CEB0000 */ lw $t3, 0x0000($a3) ## 00000000
/* 00A10 8099D6C0 AC8B0018 */ sw $t3, 0x0018($a0) ## 00000018
/* 00A14 8099D6C4 8CEA0004 */ lw $t2, 0x0004($a3) ## 00000004
/* 00A18 8099D6C8 AC8A001C */ sw $t2, 0x001C($a0) ## 0000001C
/* 00A1C 8099D6CC 8CEB0008 */ lw $t3, 0x0008($a3) ## 00000008
/* 00A20 8099D6D0 AC8B0020 */ sw $t3, 0x0020($a0) ## 00000020
/* 00A24 8099D6D4 C7A40028 */ lwc1 $f4, 0x0028($sp)
/* 00A28 8099D6D8 A48C002A */ sh $t4, 0x002A($a0) ## 0000002A
/* 00A2C 8099D6DC 46062203 */ div.s $f8, $f4, $f6
/* 00A30 8099D6E0 E4880030 */ swc1 $f8, 0x0030($a0) ## 00000030
/* 00A34 8099D6E4 0C00CFBE */ jal Rand_ZeroFloat
/* 00A38 8099D6E8 AFA40018 */ sw $a0, 0x0018($sp)
/* 00A3C 8099D6EC 4600028D */ trunc.w.s $f10, $f0
/* 00A40 8099D6F0 8FA40018 */ lw $a0, 0x0018($sp)
/* 00A44 8099D6F4 44185000 */ mfc1 $t8, $f10
/* 00A48 8099D6F8 10000004 */ beq $zero, $zero, .L8099D70C
/* 00A4C 8099D6FC A0980025 */ sb $t8, 0x0025($a0) ## 00000025
.L8099D700:
/* 00A50 8099D700 28410064 */ slti $at, $v0, 0x0064
/* 00A54 8099D704 1420FFD5 */ bne $at, $zero, .L8099D65C
/* 00A58 8099D708 2484003C */ addiu $a0, $a0, 0x003C ## $a0 = 0000003C
.L8099D70C:
/* 00A5C 8099D70C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00A60 8099D710 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00A64 8099D714 03E00008 */ jr $ra
/* 00A68 8099D718 00000000 */ nop

View File

@ -1,15 +0,0 @@
glabel func_8099D71C
/* 00A6C 8099D71C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L8099D720:
/* 00A70 8099D720 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
/* 00A74 8099D724 00021400 */ sll $v0, $v0, 16
/* 00A78 8099D728 00021403 */ sra $v0, $v0, 16
/* 00A7C 8099D72C 28410064 */ slti $at, $v0, 0x0064
/* 00A80 8099D730 2484003C */ addiu $a0, $a0, 0x003C ## $a0 = 0000003C
/* 00A84 8099D734 1420FFFA */ bne $at, $zero, .L8099D720
/* 00A88 8099D738 A080FFE8 */ sb $zero, -0x0018($a0) ## 00000024
/* 00A8C 8099D73C 03E00008 */ jr $ra
/* 00A90 8099D740 00000000 */ nop
/* 00A94 8099D744 00000000 */ nop
/* 00A98 8099D748 00000000 */ nop
/* 00A9C 8099D74C 00000000 */ nop

View File

@ -1,21 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel Efc_Erupc_InitVars
.word 0x01760700, 0x00000030, 0x014D0000, 0x000018CC
.word EfcErupc_Init
.word EfcErupc_Destroy
.word EfcErupc_Update
.word EfcErupc_Draw
.word 0xFF8000FF, 0x0000FFFF, 0x00FF0000
glabel D_8099D77C
.word 0xFF8000FF, 0x00000000, 0x00640000, 0x00000000, 0x00000000

View File

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .rodata
.balign 16
glabel D_8099D830
.incbin "baserom/ovl_Efc_Erupc", 0xB80, 0x000000A0

3
spec
View File

@ -1591,8 +1591,7 @@ endseg
beginseg
name "ovl_Efc_Erupc"
include "build/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.o"
include "build/data/overlays/actors/z_efc_erupc.data.o"
include "build/data/overlays/actors/z_efc_erupc.reloc.o"
include "build/src/overlays/actors/ovl_Efc_Erupc/ovl_Efc_Erupc_reloc.o"
endseg
beginseg

View File

@ -9,12 +9,17 @@ void EfcErupc_Destroy(Actor* thisx, GlobalContext* globalCtx);
void EfcErupc_Update(Actor* thisx, GlobalContext* globalCtx);
void EfcErupc_Draw(Actor* thisx, GlobalContext* globalCtx);
extern UNK_TYPE D_06001720;
extern UNK_TYPE D_06002570;
extern UNK_TYPE D_06002760;
extern UNK_TYPE D_060027D8;
void EfcErupc_UpdateAction(EfcErupc* this, GlobalContext* globalCtx);
void EfcErupc_DrawParticles(EfcErupcParticles* particles, GlobalContext* globalCtx);
void EfcErupc_UpdateParticles(EfcErupc* this, GlobalContext* globalCtx);
void EfcErupc_AddParticle(EfcErupcParticles* particles, Vec3f* pos, Vec3f* vel, Vec3f* accel, f32 scaleFactor);
void EfcErupc_InitParticles(EfcErupcParticles* particles);
extern Gfx D_06001720[];
extern Gfx D_06002570[];
extern Gfx D_06002760[];
extern Gfx D_060027D8[];
/*
const ActorInit Efc_Erupc_InitVars = {
ACTOR_EFC_ERUPC,
ACTORCAT_ITEMACTION,
@ -26,23 +31,228 @@ const ActorInit Efc_Erupc_InitVars = {
(ActorFunc)EfcErupc_Update,
(ActorFunc)EfcErupc_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/func_8099CCB0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/EfcErupc_Init.s")
void EfcErupc_SetupAction(EfcErupc* this, EfcErupcActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/EfcErupc_Destroy.s")
void EfcErupc_Init(Actor* thisx, GlobalContext* globalCtx) {
EfcErupc* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/func_8099CD2C.s")
EfcErupc_SetupAction(this, EfcErupc_UpdateAction);
Actor_SetScale(&this->actor, 1.0f);
EfcErupc_InitParticles(this->particles);
this->unk14C = this->unk14E = this->unk150 = 0;
this->unk152 = 5;
this->unk154 = -100;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/EfcErupc_Update.s")
void EfcErupc_Destroy(Actor* thisx, GlobalContext* globalCtx) {
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/EfcErupc_Draw.s")
void EfcErupc_UpdateAction(EfcErupc* this, GlobalContext* globalCtx) {
Vec3f pos;
Vec3f vel;
Vec3f accel;
s32 i;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/func_8099D334.s")
if (globalCtx->csCtx.state != 0) {
if (globalCtx->csCtx.npcActions[1] != NULL) {
if (globalCtx->csCtx.npcActions[1]->action == 2) {
if (this->unk150 == 30) {
func_800788CC(NA_SE_IT_EARTHQUAKE);
}
if (this->unk150 <= 64) {
if (this->unk154 < 200) {
this->unk154 += 10;
}
} else {
if (this->unk154 > -100) {
this->unk154 -= 10;
}
}
this->unk150++;
} else {
if (this->unk154 > -100) {
this->unk154 -= 10;
}
}
}
}
if (globalCtx->csCtx.state != 0) {
if (globalCtx->csCtx.npcActions[2] != NULL) {
switch (globalCtx->csCtx.npcActions[2]->action) {
case 2:
if (this->unk14E == 0) {
func_800F3F3C(6);
gSaveContext.eventChkInf[2] |= 0x8000;
}
this->unk14E++;
break;
case 3:
this->unk14E = 30;
}
this->unk14C++;
}
}
accel.z = 0.0f;
accel.x = 0.0f;
pos.y = this->actor.world.pos.y + 300.0f;
for (i = 0; i < this->unk152; i++) {
pos.x = Rand_CenteredFloat(100.0f) + this->actor.world.pos.x;
pos.z = Rand_CenteredFloat(100.0f) + this->actor.world.pos.z;
vel.x = Rand_CenteredFloat(100.0f);
vel.y = Rand_ZeroFloat(100.0f);
vel.z = Rand_CenteredFloat(100.0f);
accel.y = this->unk154 * 0.1f;
EfcErupc_AddParticle(this->particles, &pos, &vel, &accel, 80.0f);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/func_8099D52C.s")
void EfcErupc_Update(Actor* thisx, GlobalContext* globalCtx) {
EfcErupc* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/func_8099D650.s")
this->actionFunc(this, globalCtx);
EfcErupc_UpdateParticles(this, globalCtx);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Efc_Erupc/func_8099D71C.s")
void EfcErupc_Draw(Actor* thisx, GlobalContext* globalCtx) {
EfcErupc* this = THIS;
u16 csAction;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_efc_erupc.c", 282);
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, this->unk14C * 1, this->unk14E * -4, 32, 64, 1,
this->unk14C * 4, this->unk14E * -20, 64, 64));
gSPSegment(
POLY_XLU_DISP++, 0x09,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, this->unk150 * -4, 16, 128, 1, 0, this->unk150 * 12, 32, 32));
gSPSegment(
POLY_XLU_DISP++, 0x0A,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, this->unk150 * -4, 16, 128, 1, 0, this->unk150 * 12, 32, 32));
Matrix_Push();
Matrix_Scale(0.8f, 0.8f, 0.8f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_efc_erupc.c", 321),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (globalCtx->csCtx.state != 0) {
if ((globalCtx->csCtx.npcActions[1] != 0) && (globalCtx->csCtx.npcActions[1]->action == 2)) {
gSPDisplayList(POLY_XLU_DISP++, D_06002570);
}
}
Matrix_Pop();
Matrix_Scale(3.4f, 3.4f, 3.4f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_efc_erupc.c", 333),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (globalCtx->csCtx.state != 0) {
CsCmdActorAction* csActorAction = globalCtx->csCtx.npcActions[2];
if (csActorAction != 0) {
csAction = csActorAction->action;
if ((csAction == 2) || (csAction == 3)) {
gDPSetPrimColor(POLY_XLU_DISP++, 0x80, 0x80, 255, 255, 200, 255);
gDPSetEnvColor(POLY_XLU_DISP++, 100, 0, 0, 255);
gSPDisplayList(POLY_XLU_DISP++, D_06001720);
}
}
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_efc_erupc.c", 356);
EfcErupc_DrawParticles(this->particles, globalCtx);
}
void EfcErupc_DrawParticles(EfcErupcParticles* particles, GlobalContext* globalCtx) {
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
s16 i;
s32 pad;
OPEN_DISPS(gfxCtx, "../z_efc_erupc.c", 368);
for (i = 0; i < EFC_ERUPC_NUM_PARTICLES; i++, particles++) {
if (particles->isActive) {
func_80093D84(globalCtx->state.gfxCtx);
gSPDisplayList(POLY_XLU_DISP++, D_06002760);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, particles->color.r, particles->color.g, particles->color.b,
particles->alpha);
gDPSetEnvColor(POLY_XLU_DISP++, 150, 0, 0, 0);
gDPPipeSync(POLY_XLU_DISP++);
Matrix_Translate(particles->pos.x, particles->pos.y, particles->pos.z, MTXMODE_NEW);
func_800D1FD4(&globalCtx->mf_11DA0);
Matrix_Scale(particles->scale, particles->scale, 1.0f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(gfxCtx, "../z_efc_erupc.c", 393),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, D_060027D8);
}
}
CLOSE_DISPS(gfxCtx, "../z_efc_erupc.c", 399);
}
static Color_RGB8 D_8099D770[] = {
{ 255, 128, 0 },
{ 255, 0, 0 },
{ 255, 255, 0 },
{ 255, 0, 0 },
};
void EfcErupc_UpdateParticles(EfcErupc* this, GlobalContext* globalCtx) {
s16 i;
s16 index;
Color_RGB8 particleColors[] = {
{ 255, 128, 0 },
{ 255, 0, 0 },
{ 0, 0, 0 },
{ 100, 0, 0 },
};
Color_RGB8* color;
EfcErupcParticles* cur = this->particles;
for (i = 0; i < EFC_ERUPC_NUM_PARTICLES; i++, cur++) {
if (cur->isActive) {
cur->pos.x += cur->vel.x;
cur->pos.y += cur->vel.y;
cur->pos.z += cur->vel.z;
cur->vel.x += cur->accel.x;
cur->vel.y += cur->accel.y;
cur->vel.z += cur->accel.z;
cur->animTimer += 1;
index = cur->animTimer % 4;
color = &particleColors[index];
cur->color.r = color->r;
cur->color.g = color->g;
cur->color.b = color->b;
cur->alpha -= 20;
if (cur->alpha <= 0) {
cur->alpha = 0;
cur->isActive = false;
}
}
}
}
void EfcErupc_AddParticle(EfcErupcParticles* particles, Vec3f* pos, Vec3f* vel, Vec3f* accel, f32 scaleFactor) {
s16 i;
for (i = 0; i < EFC_ERUPC_NUM_PARTICLES; i++, particles++) {
if (!particles->isActive) {
particles->isActive = true;
particles->pos = *pos;
particles->vel = *vel;
particles->accel = *accel;
particles->scale = scaleFactor / 1000.0f;
particles->alpha = 255;
particles->animTimer = (s16)Rand_ZeroFloat(10.0f);
return;
}
}
}
void EfcErupc_InitParticles(EfcErupcParticles* particles) {
s16 i;
for (i = 0; i < EFC_ERUPC_NUM_PARTICLES; i++, particles++) {
particles->isActive = false;
}
}

View File

@ -6,9 +6,32 @@
struct EfcErupc;
typedef void (*EfcErupcActionFunc)(struct EfcErupc*, GlobalContext*);
typedef struct {
/* 0x00 */ Vec3f pos;
/* 0x0C */ Vec3f vel;
/* 0x18 */ Vec3f accel;
/* 0x24 */ u8 isActive;
/* 0x25 */ u8 animTimer;
/* 0x28 */ Color_RGB8 color;
/* 0x2C */ s16 alpha;
/* 0x30 */ char unk_2C[4];
/* 0x34 */ f32 scale;
/* 0x38 */ char unk_34[8];
} EfcErupcParticles; // size 0x3C
#define EFC_ERUPC_NUM_PARTICLES 100
typedef struct EfcErupc {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x1780];
/* 0x014C */ s16 unk14C;
/* 0x014E */ s16 unk14E;
/* 0x0150 */ s16 unk150;
/* 0x0152 */ s16 unk152;
/* 0x0154 */ s16 unk154;
/* 0x0158 */ EfcErupcParticles particles[EFC_ERUPC_NUM_PARTICLES];
/* 0x18C8 */ EfcErupcActionFunc actionFunc;
} EfcErupc; // size = 0x18CC
extern const ActorInit Efc_Erupc_InitVars;