1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-12-26 14:46:16 +00:00

BgPoSyokudai (#382)

* BgPoSyokudai: decomp Init()

* BgPoSyokudai: decomp Destroy()

* BgPoSyokudai: decomp Update()

* BgPoSyokudai: decomp Draw()

* BgPoSyokudai: remove data.s and reloc.s

* BgPoSyokudai: clarify switch flags 1D to 1F

* BgPoSyokudai: format following codestyle and remove macros
This commit is contained in:
Peppers1612 2020-09-21 03:30:58 -04:00 committed by GitHub
parent 807713a29b
commit b9b5724dec
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 163 additions and 681 deletions

View file

@ -1,31 +0,0 @@
glabel BgPoSyokudai_Destroy
/* 0029C 808A834C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 002A0 808A8350 AFA40018 */ sw $a0, 0x0018($sp)
/* 002A4 808A8354 8FAE0018 */ lw $t6, 0x0018($sp)
/* 002A8 808A8358 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002AC 808A835C 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 002B0 808A8360 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 002B4 808A8364 8DC60150 */ lw $a2, 0x0150($t6) ## 00000150
/* 002B8 808A8368 AFA7001C */ sw $a3, 0x001C($sp)
/* 002BC 808A836C 0C01E9F1 */ jal LightContext_RemoveLight
/* 002C0 808A8370 24A507A8 */ addiu $a1, $a1, 0x07A8 ## $a1 = 000007A8
/* 002C4 808A8374 8FA50018 */ lw $a1, 0x0018($sp)
/* 002C8 808A8378 8FA4001C */ lw $a0, 0x001C($sp)
/* 002CC 808A837C 0C0170EB */ jal Collider_DestroyCylinder
/* 002D0 808A8380 24A50164 */ addiu $a1, $a1, 0x0164 ## $a1 = 00000164
/* 002D4 808A8384 8FA7001C */ lw $a3, 0x001C($sp)
/* 002D8 808A8388 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 002DC 808A838C 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 002E0 808A8390 01E77821 */ addu $t7, $t7, $a3
/* 002E4 808A8394 91EF0AE3 */ lbu $t7, 0x0AE3($t7) ## 00010AE3
/* 002E8 808A8398 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
/* 002EC 808A839C 11E10003 */ beq $t7, $at, .L808A83AC
/* 002F0 808A83A0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 002F4 808A83A4 00270821 */ addu $at, $at, $a3
/* 002F8 808A83A8 A0380AE3 */ sb $t8, 0x0AE3($at) ## 00010AE3
.L808A83AC:
/* 002FC 808A83AC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00300 808A83B0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00304 808A83B4 03E00008 */ jr $ra
/* 00308 808A83B8 00000000 */ nop

View file

@ -1,375 +0,0 @@
.rdata
glabel D_808A89D0
.asciz "../z_bg_po_syokudai.c"
.balign 4
glabel D_808A89E8
.asciz "../z_bg_po_syokudai.c"
.balign 4
glabel D_808A8A00
.asciz "../z_bg_po_syokudai.c"
.balign 4
glabel D_808A8A18
.asciz "../z_bg_po_syokudai.c"
.balign 4
.late_rodata
glabel D_808A8A34
.float 0.3
glabel D_808A8A38
.float 0.7
glabel D_808A8A3C
.float 9.58738019108e-05
glabel D_808A8A40
.float 0.0027
.text
glabel BgPoSyokudai_Draw
/* 00390 808A8440 27BDFF70 */ addiu $sp, $sp, 0xFF70 ## $sp = FFFFFF70
/* 00394 808A8444 AFB10038 */ sw $s1, 0x0038($sp)
/* 00398 808A8448 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0039C 808A844C AFBF003C */ sw $ra, 0x003C($sp)
/* 003A0 808A8450 AFB00034 */ sw $s0, 0x0034($sp)
/* 003A4 808A8454 AFA40090 */ sw $a0, 0x0090($sp)
/* 003A8 808A8458 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 003AC 808A845C 3C06808B */ lui $a2, %hi(D_808A89D0) ## $a2 = 808B0000
/* 003B0 808A8460 24C689D0 */ addiu $a2, $a2, %lo(D_808A89D0) ## $a2 = 808A89D0
/* 003B4 808A8464 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
/* 003B8 808A8468 2407013B */ addiu $a3, $zero, 0x013B ## $a3 = 0000013B
/* 003BC 808A846C 0C031AB1 */ jal Graph_OpenDisps
/* 003C0 808A8470 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 003C4 808A8474 0C024F46 */ jal func_80093D18
/* 003C8 808A8478 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 003CC 808A847C 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 003D0 808A8480 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 003D4 808A8484 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 003D8 808A8488 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 003DC 808A848C AE0E02C0 */ sw $t6, 0x02C0($s0) ## 000002C0
/* 003E0 808A8490 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 003E4 808A8494 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 003E8 808A8498 3C05808B */ lui $a1, %hi(D_808A89E8) ## $a1 = 808B0000
/* 003EC 808A849C 24A589E8 */ addiu $a1, $a1, %lo(D_808A89E8) ## $a1 = 808A89E8
/* 003F0 808A84A0 2406013F */ addiu $a2, $zero, 0x013F ## $a2 = 0000013F
/* 003F4 808A84A4 0C0346A2 */ jal Matrix_NewMtx
/* 003F8 808A84A8 AFA2006C */ sw $v0, 0x006C($sp)
/* 003FC 808A84AC 8FA3006C */ lw $v1, 0x006C($sp)
/* 00400 808A84B0 3C090600 */ lui $t1, 0x0600 ## $t1 = 06000000
/* 00404 808A84B4 252903A0 */ addiu $t1, $t1, 0x03A0 ## $t1 = 060003A0
/* 00408 808A84B8 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 0040C 808A84BC 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0
/* 00410 808A84C0 3C19DE00 */ lui $t9, 0xDE00 ## $t9 = DE000000
/* 00414 808A84C4 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00418 808A84C8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 0041C 808A84CC AE1802C0 */ sw $t8, 0x02C0($s0) ## 000002C0
/* 00420 808A84D0 AC490004 */ sw $t1, 0x0004($v0) ## 00000004
/* 00424 808A84D4 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00428 808A84D8 8FAA0090 */ lw $t2, 0x0090($sp)
/* 0042C 808A84DC 0C00B2D0 */ jal Flags_GetSwitch
/* 00430 808A84E0 8545001C */ lh $a1, 0x001C($t2) ## 0000001C
/* 00434 808A84E4 10400113 */ beq $v0, $zero, .L808A8934
/* 00438 808A84E8 8FAB0090 */ lw $t3, 0x0090($sp)
/* 0043C 808A84EC 9162014C */ lbu $v0, 0x014C($t3) ## 0000014C
/* 00440 808A84F0 3C0C808B */ lui $t4, %hi(D_808A898C) ## $t4 = 808B0000
/* 00444 808A84F4 3C0D808B */ lui $t5, %hi(D_808A899C) ## $t5 = 808B0000
/* 00448 808A84F8 00021080 */ sll $v0, $v0, 2
/* 0044C 808A84FC 258C898C */ addiu $t4, $t4, %lo(D_808A898C) ## $t4 = 808A898C
/* 00450 808A8500 25AD899C */ addiu $t5, $t5, %lo(D_808A899C) ## $t5 = 808A899C
/* 00454 808A8504 004C4021 */ addu $t0, $v0, $t4
/* 00458 808A8508 004D7021 */ addu $t6, $v0, $t5
/* 0045C 808A850C AFAE0060 */ sw $t6, 0x0060($sp)
/* 00460 808A8510 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00464 808A8514 AFA80064 */ sw $t0, 0x0064($sp)
/* 00468 808A8518 3C01808B */ lui $at, %hi(D_808A8A34) ## $at = 808B0000
/* 0046C 808A851C C4248A34 */ lwc1 $f4, %lo(D_808A8A34)($at)
/* 00470 808A8520 8FA80064 */ lw $t0, 0x0064($sp)
/* 00474 808A8524 3C01808B */ lui $at, %hi(D_808A8A38) ## $at = 808B0000
/* 00478 808A8528 46040182 */ mul.s $f6, $f0, $f4
/* 0047C 808A852C 910F0000 */ lbu $t7, 0x0000($t0) ## 00000000
/* 00480 808A8530 C4288A38 */ lwc1 $f8, %lo(D_808A8A38)($at)
/* 00484 808A8534 8FA40090 */ lw $a0, 0x0090($sp)
/* 00488 808A8538 448F5000 */ mtc1 $t7, $f10 ## $f10 = 0.00
/* 0048C 808A853C 240C00C8 */ addiu $t4, $zero, 0x00C8 ## $t4 = 000000C8
/* 00490 808A8540 24840154 */ addiu $a0, $a0, 0x0154 ## $a0 = 00000154
/* 00494 808A8544 46083080 */ add.s $f2, $f6, $f8
/* 00498 808A8548 05E10005 */ bgez $t7, .L808A8560
/* 0049C 808A854C 46805420 */ cvt.s.w $f16, $f10
/* 004A0 808A8550 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 004A4 808A8554 44819000 */ mtc1 $at, $f18 ## $f18 = 4294967296.00
/* 004A8 808A8558 00000000 */ nop
/* 004AC 808A855C 46128400 */ add.s $f16, $f16, $f18
.L808A8560:
/* 004B0 808A8560 46028102 */ mul.s $f4, $f16, $f2
/* 004B4 808A8564 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 004B8 808A8568 4458F800 */ cfc1 $t8, $31
/* 004BC 808A856C 44C5F800 */ ctc1 $a1, $31
/* 004C0 808A8570 00000000 */ nop
/* 004C4 808A8574 460021A4 */ cvt.w.s $f6, $f4
/* 004C8 808A8578 4445F800 */ cfc1 $a1, $31
/* 004CC 808A857C 00000000 */ nop
/* 004D0 808A8580 30A50078 */ andi $a1, $a1, 0x0078 ## $a1 = 00000000
/* 004D4 808A8584 10A00012 */ beq $a1, $zero, .L808A85D0
/* 004D8 808A8588 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 004DC 808A858C 44813000 */ mtc1 $at, $f6 ## $f6 = 2147483648.00
/* 004E0 808A8590 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 004E4 808A8594 46062181 */ sub.s $f6, $f4, $f6
/* 004E8 808A8598 44C5F800 */ ctc1 $a1, $31
/* 004EC 808A859C 00000000 */ nop
/* 004F0 808A85A0 460031A4 */ cvt.w.s $f6, $f6
/* 004F4 808A85A4 4445F800 */ cfc1 $a1, $31
/* 004F8 808A85A8 00000000 */ nop
/* 004FC 808A85AC 30A50078 */ andi $a1, $a1, 0x0078 ## $a1 = 00000000
/* 00500 808A85B0 14A00005 */ bne $a1, $zero, .L808A85C8
/* 00504 808A85B4 00000000 */ nop
/* 00508 808A85B8 44053000 */ mfc1 $a1, $f6
/* 0050C 808A85BC 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00510 808A85C0 10000007 */ beq $zero, $zero, .L808A85E0
/* 00514 808A85C4 00A12825 */ or $a1, $a1, $at ## $a1 = 80000000
.L808A85C8:
/* 00518 808A85C8 10000005 */ beq $zero, $zero, .L808A85E0
/* 0051C 808A85CC 2405FFFF */ addiu $a1, $zero, 0xFFFF ## $a1 = FFFFFFFF
.L808A85D0:
/* 00520 808A85D0 44053000 */ mfc1 $a1, $f6
/* 00524 808A85D4 00000000 */ nop
/* 00528 808A85D8 04A0FFFB */ bltz $a1, .L808A85C8
/* 0052C 808A85DC 00000000 */ nop
.L808A85E0:
/* 00530 808A85E0 91190001 */ lbu $t9, 0x0001($t0) ## 00000001
/* 00534 808A85E4 44D8F800 */ ctc1 $t8, $31
/* 00538 808A85E8 30A500FF */ andi $a1, $a1, 0x00FF ## $a1 = 000000FF
/* 0053C 808A85EC 44994000 */ mtc1 $t9, $f8 ## $f8 = 0.00
/* 00540 808A85F0 07210005 */ bgez $t9, .L808A8608
/* 00544 808A85F4 468042A0 */ cvt.s.w $f10, $f8
/* 00548 808A85F8 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 0054C 808A85FC 44819000 */ mtc1 $at, $f18 ## $f18 = 4294967296.00
/* 00550 808A8600 00000000 */ nop
/* 00554 808A8604 46125280 */ add.s $f10, $f10, $f18
.L808A8608:
/* 00558 808A8608 46025402 */ mul.s $f16, $f10, $f2
/* 0055C 808A860C 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 00560 808A8610 4449F800 */ cfc1 $t1, $31
/* 00564 808A8614 44C6F800 */ ctc1 $a2, $31
/* 00568 808A8618 00000000 */ nop
/* 0056C 808A861C 46008124 */ cvt.w.s $f4, $f16
/* 00570 808A8620 4446F800 */ cfc1 $a2, $31
/* 00574 808A8624 00000000 */ nop
/* 00578 808A8628 30C60078 */ andi $a2, $a2, 0x0078 ## $a2 = 00000000
/* 0057C 808A862C 10C00012 */ beq $a2, $zero, .L808A8678
/* 00580 808A8630 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00584 808A8634 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00
/* 00588 808A8638 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001
/* 0058C 808A863C 46048101 */ sub.s $f4, $f16, $f4
/* 00590 808A8640 44C6F800 */ ctc1 $a2, $31
/* 00594 808A8644 00000000 */ nop
/* 00598 808A8648 46002124 */ cvt.w.s $f4, $f4
/* 0059C 808A864C 4446F800 */ cfc1 $a2, $31
/* 005A0 808A8650 00000000 */ nop
/* 005A4 808A8654 30C60078 */ andi $a2, $a2, 0x0078 ## $a2 = 00000000
/* 005A8 808A8658 14C00005 */ bne $a2, $zero, .L808A8670
/* 005AC 808A865C 00000000 */ nop
/* 005B0 808A8660 44062000 */ mfc1 $a2, $f4
/* 005B4 808A8664 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 005B8 808A8668 10000007 */ beq $zero, $zero, .L808A8688
/* 005BC 808A866C 00C13025 */ or $a2, $a2, $at ## $a2 = 80000000
.L808A8670:
/* 005C0 808A8670 10000005 */ beq $zero, $zero, .L808A8688
/* 005C4 808A8674 2406FFFF */ addiu $a2, $zero, 0xFFFF ## $a2 = FFFFFFFF
.L808A8678:
/* 005C8 808A8678 44062000 */ mfc1 $a2, $f4
/* 005CC 808A867C 00000000 */ nop
/* 005D0 808A8680 04C0FFFB */ bltz $a2, .L808A8670
/* 005D4 808A8684 00000000 */ nop
.L808A8688:
/* 005D8 808A8688 910A0002 */ lbu $t2, 0x0002($t0) ## 00000002
/* 005DC 808A868C 44C9F800 */ ctc1 $t1, $31
/* 005E0 808A8690 30C600FF */ andi $a2, $a2, 0x00FF ## $a2 = 000000FF
/* 005E4 808A8694 448A3000 */ mtc1 $t2, $f6 ## $f6 = 0.00
/* 005E8 808A8698 3C014F80 */ lui $at, 0x4F80 ## $at = 4F800000
/* 005EC 808A869C 05410004 */ bgez $t2, .L808A86B0
/* 005F0 808A86A0 46803220 */ cvt.s.w $f8, $f6
/* 005F4 808A86A4 44819000 */ mtc1 $at, $f18 ## $f18 = 4294967296.00
/* 005F8 808A86A8 00000000 */ nop
/* 005FC 808A86AC 46124200 */ add.s $f8, $f8, $f18
.L808A86B0:
/* 00600 808A86B0 46024282 */ mul.s $f10, $f8, $f2
/* 00604 808A86B4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00608 808A86B8 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 0060C 808A86BC 444BF800 */ cfc1 $t3, $31
/* 00610 808A86C0 44C7F800 */ ctc1 $a3, $31
/* 00614 808A86C4 00000000 */ nop
/* 00618 808A86C8 46005424 */ cvt.w.s $f16, $f10
/* 0061C 808A86CC 4447F800 */ cfc1 $a3, $31
/* 00620 808A86D0 00000000 */ nop
/* 00624 808A86D4 30E70078 */ andi $a3, $a3, 0x0078 ## $a3 = 00000000
/* 00628 808A86D8 50E00013 */ beql $a3, $zero, .L808A8728
/* 0062C 808A86DC 44078000 */ mfc1 $a3, $f16
/* 00630 808A86E0 44818000 */ mtc1 $at, $f16 ## $f16 = 2147483648.00
/* 00634 808A86E4 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00638 808A86E8 46105401 */ sub.s $f16, $f10, $f16
/* 0063C 808A86EC 44C7F800 */ ctc1 $a3, $31
/* 00640 808A86F0 00000000 */ nop
/* 00644 808A86F4 46008424 */ cvt.w.s $f16, $f16
/* 00648 808A86F8 4447F800 */ cfc1 $a3, $31
/* 0064C 808A86FC 00000000 */ nop
/* 00650 808A8700 30E70078 */ andi $a3, $a3, 0x0078 ## $a3 = 00000000
/* 00654 808A8704 14E00005 */ bne $a3, $zero, .L808A871C
/* 00658 808A8708 00000000 */ nop
/* 0065C 808A870C 44078000 */ mfc1 $a3, $f16
/* 00660 808A8710 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00664 808A8714 10000007 */ beq $zero, $zero, .L808A8734
/* 00668 808A8718 00E13825 */ or $a3, $a3, $at ## $a3 = 80000000
.L808A871C:
/* 0066C 808A871C 10000005 */ beq $zero, $zero, .L808A8734
/* 00670 808A8720 2407FFFF */ addiu $a3, $zero, 0xFFFF ## $a3 = FFFFFFFF
/* 00674 808A8724 44078000 */ mfc1 $a3, $f16
.L808A8728:
/* 00678 808A8728 00000000 */ nop
/* 0067C 808A872C 04E0FFFB */ bltz $a3, .L808A871C
/* 00680 808A8730 00000000 */ nop
.L808A8734:
/* 00684 808A8734 44CBF800 */ ctc1 $t3, $31
/* 00688 808A8738 30E700FF */ andi $a3, $a3, 0x00FF ## $a3 = 000000FF
/* 0068C 808A873C 0C01E796 */ jal Lights_PointSetColorAndRadius
/* 00690 808A8740 AFAC0010 */ sw $t4, 0x0010($sp)
/* 00694 808A8744 0C024F61 */ jal func_80093D84
/* 00698 808A8748 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 0069C 808A874C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 006A0 808A8750 8FA80064 */ lw $t0, 0x0064($sp)
/* 006A4 808A8754 3C0EDB06 */ lui $t6, 0xDB06 ## $t6 = DB060000
/* 006A8 808A8758 244D0008 */ addiu $t5, $v0, 0x0008 ## $t5 = 00000008
/* 006AC 808A875C AE0D02D0 */ sw $t5, 0x02D0($s0) ## 000002D0
/* 006B0 808A8760 35CE0020 */ ori $t6, $t6, 0x0020 ## $t6 = DB060020
/* 006B4 808A8764 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 006B8 808A8768 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 006BC 808A876C 8FA90090 */ lw $t1, 0x0090($sp)
/* 006C0 808A8770 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
/* 006C4 808A8774 24180040 */ addiu $t8, $zero, 0x0040 ## $t8 = 00000040
/* 006C8 808A8778 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 006CC 808A877C AFB90018 */ sw $t9, 0x0018($sp)
/* 006D0 808A8780 AFB80014 */ sw $t8, 0x0014($sp)
/* 006D4 808A8784 AFAF0010 */ sw $t7, 0x0010($sp)
/* 006D8 808A8788 AFA0001C */ sw $zero, 0x001C($sp)
/* 006DC 808A878C 852A014E */ lh $t2, 0x014E($t1) ## 0000014E
/* 006E0 808A8790 240E0080 */ addiu $t6, $zero, 0x0080 ## $t6 = 00000080
/* 006E4 808A8794 240D0020 */ addiu $t5, $zero, 0x0020 ## $t5 = 00000020
/* 006E8 808A8798 000A0823 */ subu $at, $zero, $t2
/* 006EC 808A879C 00015880 */ sll $t3, $at, 2
/* 006F0 808A87A0 01615821 */ addu $t3, $t3, $at
/* 006F4 808A87A4 000B5880 */ sll $t3, $t3, 2
/* 006F8 808A87A8 316C01FF */ andi $t4, $t3, 0x01FF ## $t4 = 00000000
/* 006FC 808A87AC AFAC0020 */ sw $t4, 0x0020($sp)
/* 00700 808A87B0 AFAD0024 */ sw $t5, 0x0024($sp)
/* 00704 808A87B4 AFAE0028 */ sw $t6, 0x0028($sp)
/* 00708 808A87B8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0070C 808A87BC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00710 808A87C0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00714 808A87C4 AFA2005C */ sw $v0, 0x005C($sp)
/* 00718 808A87C8 0C0253D0 */ jal Gfx_TwoTexScroll
/* 0071C 808A87CC AFA80064 */ sw $t0, 0x0064($sp)
/* 00720 808A87D0 8FA3005C */ lw $v1, 0x005C($sp)
/* 00724 808A87D4 8FA80064 */ lw $t0, 0x0064($sp)
/* 00728 808A87D8 3C18FA00 */ lui $t8, 0xFA00 ## $t8 = FA000000
/* 0072C 808A87DC AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00730 808A87E0 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00734 808A87E4 37188080 */ ori $t8, $t8, 0x8080 ## $t8 = FA008080
/* 00738 808A87E8 44806000 */ mtc1 $zero, $f12 ## $f12 = 0.00
/* 0073C 808A87EC 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00740 808A87F0 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 00744 808A87F4 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00748 808A87F8 910C0001 */ lbu $t4, 0x0001($t0) ## 00000001
/* 0074C 808A87FC 91090000 */ lbu $t1, 0x0000($t0) ## 00000000
/* 00750 808A8800 91180002 */ lbu $t8, 0x0002($t0) ## 00000002
/* 00754 808A8804 000C6C00 */ sll $t5, $t4, 16
/* 00758 808A8808 00095600 */ sll $t2, $t1, 24
/* 0075C 808A880C 014D7025 */ or $t6, $t2, $t5 ## $t6 = 00000000
/* 00760 808A8810 0018CA00 */ sll $t9, $t8, 8
/* 00764 808A8814 01D94825 */ or $t1, $t6, $t9 ## $t1 = 00000000
/* 00768 808A8818 352B00FF */ ori $t3, $t1, 0x00FF ## $t3 = 000000FF
/* 0076C 808A881C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00770 808A8820 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00774 808A8824 8FA40060 */ lw $a0, 0x0060($sp)
/* 00778 808A8828 3C0AFB00 */ lui $t2, 0xFB00 ## $t2 = FB000000
/* 0077C 808A882C 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00780 808A8830 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 00784 808A8834 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 00788 808A8838 90990001 */ lbu $t9, 0x0001($a0) ## 00000001
/* 0078C 808A883C 908F0000 */ lbu $t7, 0x0000($a0) ## 00000000
/* 00790 808A8840 908A0002 */ lbu $t2, 0x0002($a0) ## 00000002
/* 00794 808A8844 00194C00 */ sll $t1, $t9, 16
/* 00798 808A8848 000FC600 */ sll $t8, $t7, 24
/* 0079C 808A884C 03095825 */ or $t3, $t8, $t1 ## $t3 = FA008080
/* 007A0 808A8850 000A6A00 */ sll $t5, $t2, 8
/* 007A4 808A8854 016D7825 */ or $t7, $t3, $t5 ## $t7 = FA008080
/* 007A8 808A8858 3C014250 */ lui $at, 0x4250 ## $at = 42500000
/* 007AC 808A885C 35EE00FF */ ori $t6, $t7, 0x00FF ## $t6 = FA0080FF
/* 007B0 808A8860 44817000 */ mtc1 $at, $f14 ## $f14 = 52.00
/* 007B4 808A8864 44066000 */ mfc1 $a2, $f12
/* 007B8 808A8868 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 007BC 808A886C 0C034261 */ jal Matrix_Translate
/* 007C0 808A8870 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 007C4 808A8874 863907A0 */ lh $t9, 0x07A0($s1) ## 000007A0
/* 007C8 808A8878 0019C080 */ sll $t8, $t9, 2
/* 007CC 808A887C 02384821 */ addu $t1, $s1, $t8
/* 007D0 808A8880 0C016A7D */ jal func_8005A9F4
/* 007D4 808A8884 8D240790 */ lw $a0, 0x0790($t1) ## 00000790
/* 007D8 808A8888 8FAC0090 */ lw $t4, 0x0090($sp)
/* 007DC 808A888C 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 007E0 808A8890 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 007E4 808A8894 858A00B6 */ lh $t2, 0x00B6($t4) ## 000000B6
/* 007E8 808A8898 004A5823 */ subu $t3, $v0, $t2
/* 007EC 808A889C 01616821 */ addu $t5, $t3, $at
/* 007F0 808A88A0 000D7C00 */ sll $t7, $t5, 16
/* 007F4 808A88A4 000F7403 */ sra $t6, $t7, 16
/* 007F8 808A88A8 448E2000 */ mtc1 $t6, $f4 ## $f4 = 0.00
/* 007FC 808A88AC 3C01808B */ lui $at, %hi(D_808A8A3C) ## $at = 808B0000
/* 00800 808A88B0 C4328A3C */ lwc1 $f18, %lo(D_808A8A3C)($at)
/* 00804 808A88B4 468021A0 */ cvt.s.w $f6, $f4
/* 00808 808A88B8 46123302 */ mul.s $f12, $f6, $f18
/* 0080C 808A88BC 0C034348 */ jal Matrix_RotateY
/* 00810 808A88C0 00000000 */ nop
/* 00814 808A88C4 3C01808B */ lui $at, %hi(D_808A8A40) ## $at = 808B0000
/* 00818 808A88C8 C42C8A40 */ lwc1 $f12, %lo(D_808A8A40)($at)
/* 0081C 808A88CC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00820 808A88D0 44066000 */ mfc1 $a2, $f12
/* 00824 808A88D4 0C0342A3 */ jal Matrix_Scale
/* 00828 808A88D8 46006386 */ mov.s $f14, $f12
/* 0082C 808A88DC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00830 808A88E0 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000
/* 00834 808A88E4 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003
/* 00838 808A88E8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 0083C 808A88EC AE1902D0 */ sw $t9, 0x02D0($s0) ## 000002D0
/* 00840 808A88F0 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00844 808A88F4 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00848 808A88F8 3C05808B */ lui $a1, %hi(D_808A8A00) ## $a1 = 808B0000
/* 0084C 808A88FC 24A58A00 */ addiu $a1, $a1, %lo(D_808A8A00) ## $a1 = 808A8A00
/* 00850 808A8900 24060170 */ addiu $a2, $zero, 0x0170 ## $a2 = 00000170
/* 00854 808A8904 0C0346A2 */ jal Matrix_NewMtx
/* 00858 808A8908 AFA20050 */ sw $v0, 0x0050($sp)
/* 0085C 808A890C 8FA30050 */ lw $v1, 0x0050($sp)
/* 00860 808A8910 3C0A0405 */ lui $t2, 0x0405 ## $t2 = 04050000
/* 00864 808A8914 254AD4E0 */ addiu $t2, $t2, 0xD4E0 ## $t2 = 0404D4E0
/* 00868 808A8918 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 0086C 808A891C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00870 808A8920 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
/* 00874 808A8924 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 00878 808A8928 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
/* 0087C 808A892C AC4A0004 */ sw $t2, 0x0004($v0) ## 00000004
/* 00880 808A8930 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
.L808A8934:
/* 00884 808A8934 3C06808B */ lui $a2, %hi(D_808A8A18) ## $a2 = 808B0000
/* 00888 808A8938 24C68A18 */ addiu $a2, $a2, %lo(D_808A8A18) ## $a2 = 808A8A18
/* 0088C 808A893C 27A40070 */ addiu $a0, $sp, 0x0070 ## $a0 = FFFFFFE0
/* 00890 808A8940 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 00894 808A8944 0C031AD5 */ jal Graph_CloseDisps
/* 00898 808A8948 24070175 */ addiu $a3, $zero, 0x0175 ## $a3 = 00000175
/* 0089C 808A894C 8FBF003C */ lw $ra, 0x003C($sp)
/* 008A0 808A8950 8FB00034 */ lw $s0, 0x0034($sp)
/* 008A4 808A8954 8FB10038 */ lw $s1, 0x0038($sp)
/* 008A8 808A8958 03E00008 */ jr $ra
/* 008AC 808A895C 27BD0090 */ addiu $sp, $sp, 0x0090 ## $sp = 00000000

View file

@ -1,189 +0,0 @@
.late_rodata
glabel D_808A8A30
.word 0xC4C3C000
.text
glabel BgPoSyokudai_Init
/* 00000 808A80B0 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00004 808A80B4 AFB10030 */ sw $s1, 0x0030($sp)
/* 00008 808A80B8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0000C 808A80BC AFBF0034 */ sw $ra, 0x0034($sp)
/* 00010 808A80C0 AFB0002C */ sw $s0, 0x002C($sp)
/* 00014 808A80C4 3C05808B */ lui $a1, %hi(D_808A89CC) ## $a1 = 808B0000
/* 00018 808A80C8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0001C 808A80CC 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 808A80D0 24A589CC */ addiu $a1, $a1, %lo(D_808A89CC) ## $a1 = 808A89CC
/* 00024 808A80D4 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00028 808A80D8 8619001C */ lh $t9, 0x001C($s0) ## 0000001C
/* 0002C 808A80DC 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF
/* 00030 808A80E0 000EC203 */ sra $t8, $t6, 8
/* 00034 808A80E4 3328003F */ andi $t0, $t9, 0x003F ## $t0 = 00000000
/* 00038 808A80E8 A218014C */ sb $t8, 0x014C($s0) ## 0000014C
/* 0003C 808A80EC A608001C */ sh $t0, 0x001C($s0) ## 0000001C
/* 00040 808A80F0 A20900AE */ sb $t1, 0x00AE($s0) ## 000000AE
/* 00044 808A80F4 26060154 */ addiu $a2, $s0, 0x0154 ## $a2 = 00000154
/* 00048 808A80F8 AFA6003C */ sw $a2, 0x003C($sp)
/* 0004C 808A80FC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00050 808A8100 0C01E9D9 */ jal LightContext_InsertLight
/* 00054 808A8104 262507A8 */ addiu $a1, $s1, 0x07A8 ## $a1 = 000007A8
/* 00058 808A8108 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 0005C 808A810C C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 00060 808A8110 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 00064 808A8114 4600428D */ trunc.w.s $f10, $f8
/* 00068 808A8118 AE020150 */ sw $v0, 0x0150($s0) ## 00000150
/* 0006C 808A811C AFA0001C */ sw $zero, 0x001C($sp)
/* 00070 808A8120 4600218D */ trunc.w.s $f6, $f4
/* 00074 808A8124 44065000 */ mfc1 $a2, $f10
/* 00078 808A8128 AFA00018 */ sw $zero, 0x0018($sp)
/* 0007C 808A812C 4600848D */ trunc.w.s $f18, $f16
/* 00080 808A8130 44053000 */ mfc1 $a1, $f6
/* 00084 808A8134 00063400 */ sll $a2, $a2, 16
/* 00088 808A8138 00063403 */ sra $a2, $a2, 16
/* 0008C 808A813C 44079000 */ mfc1 $a3, $f18
/* 00090 808A8140 24C60041 */ addiu $a2, $a2, 0x0041 ## $a2 = 00000041
/* 00094 808A8144 00063400 */ sll $a2, $a2, 16
/* 00098 808A8148 00052C00 */ sll $a1, $a1, 16
/* 0009C 808A814C 00073C00 */ sll $a3, $a3, 16
/* 000A0 808A8150 00073C03 */ sra $a3, $a3, 16
/* 000A4 808A8154 00052C03 */ sra $a1, $a1, 16
/* 000A8 808A8158 00063403 */ sra $a2, $a2, 16
/* 000AC 808A815C AFA00014 */ sw $zero, 0x0014($sp)
/* 000B0 808A8160 AFA00010 */ sw $zero, 0x0010($sp)
/* 000B4 808A8164 0C01E77C */ jal Lights_PointGlowSetInfo
/* 000B8 808A8168 8FA4003C */ lw $a0, 0x003C($sp)
/* 000BC 808A816C 26050164 */ addiu $a1, $s0, 0x0164 ## $a1 = 00000164
/* 000C0 808A8170 AFA5003C */ sw $a1, 0x003C($sp)
/* 000C4 808A8174 0C0170D9 */ jal Collider_InitCylinder
/* 000C8 808A8178 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 000CC 808A817C 3C07808B */ lui $a3, %hi(D_808A8960) ## $a3 = 808B0000
/* 000D0 808A8180 8FA5003C */ lw $a1, 0x003C($sp)
/* 000D4 808A8184 24E78960 */ addiu $a3, $a3, %lo(D_808A8960) ## $a3 = 808A8960
/* 000D8 808A8188 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 000DC 808A818C 0C01712B */ jal Collider_SetCylinder
/* 000E0 808A8190 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 000E4 808A8194 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 000E8 808A8198 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 000EC 808A819C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 000F0 808A81A0 4600218D */ trunc.w.s $f6, $f4
/* 000F4 808A81A4 9209014C */ lbu $t1, 0x014C($s0) ## 0000014C
/* 000F8 808A81A8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 000FC 808A81AC 4600428D */ trunc.w.s $f10, $f8
/* 00100 808A81B0 440E3000 */ mfc1 $t6, $f6
/* 00104 808A81B4 4600848D */ trunc.w.s $f18, $f16
/* 00108 808A81B8 44185000 */ mfc1 $t8, $f10
/* 0010C 808A81BC A60E01AA */ sh $t6, 0x01AA($s0) ## 000001AA
/* 00110 808A81C0 44089000 */ mfc1 $t0, $f18
/* 00114 808A81C4 A61801AC */ sh $t8, 0x01AC($s0) ## 000001AC
/* 00118 808A81C8 15200025 */ bne $t1, $zero, .L808A8260
/* 0011C 808A81CC A60801AE */ sh $t0, 0x01AE($s0) ## 000001AE
/* 00120 808A81D0 0C00B2D0 */ jal Flags_GetSwitch
/* 00124 808A81D4 2405001F */ addiu $a1, $zero, 0x001F ## $a1 = 0000001F
/* 00128 808A81D8 10400021 */ beq $v0, $zero, .L808A8260
/* 0012C 808A81DC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00130 808A81E0 0C00B2D0 */ jal Flags_GetSwitch
/* 00134 808A81E4 2405001E */ addiu $a1, $zero, 0x001E ## $a1 = 0000001E
/* 00138 808A81E8 1040001D */ beq $v0, $zero, .L808A8260
/* 0013C 808A81EC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00140 808A81F0 0C00B2D0 */ jal Flags_GetSwitch
/* 00144 808A81F4 2405001D */ addiu $a1, $zero, 0x001D ## $a1 = 0000001D
/* 00148 808A81F8 10400019 */ beq $v0, $zero, .L808A8260
/* 0014C 808A81FC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00150 808A8200 0C00B2D0 */ jal Flags_GetSwitch
/* 00154 808A8204 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00158 808A8208 14400015 */ bne $v0, $zero, .L808A8260
/* 0015C 808A820C 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
/* 00160 808A8210 3C014361 */ lui $at, 0x4361 ## $at = 43610000
/* 00164 808A8214 44812000 */ mtc1 $at, $f4 ## $f4 = 225.00
/* 00168 808A8218 3C01808B */ lui $at, %hi(D_808A8A30) ## $at = 808B0000
/* 0016C 808A821C C4268A30 */ lwc1 $f6, %lo(D_808A8A30)($at)
/* 00170 808A8220 AFA00018 */ sw $zero, 0x0018($sp)
/* 00174 808A8224 AFA0001C */ sw $zero, 0x001C($sp)
/* 00178 808A8228 AFA00020 */ sw $zero, 0x0020($sp)
/* 0017C 808A822C E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00180 808A8230 E7A60014 */ swc1 $f6, 0x0014($sp)
/* 00184 808A8234 860A001C */ lh $t2, 0x001C($s0) ## 0000001C
/* 00188 808A8238 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 0018C 808A823C 24060091 */ addiu $a2, $zero, 0x0091 ## $a2 = 00000091
/* 00190 808A8240 3C0742EE */ lui $a3, 0x42EE ## $a3 = 42EE0000
/* 00194 808A8244 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00198 808A8248 AFAA0024 */ sw $t2, 0x0024($sp)
/* 0019C 808A824C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 001A0 808A8250 00310821 */ addu $at, $at, $s1
/* 001A4 808A8254 240B0004 */ addiu $t3, $zero, 0x0004 ## $t3 = 00000004
/* 001A8 808A8258 1000002D */ beq $zero, $zero, .L808A8310
/* 001AC 808A825C A02B0AE3 */ sb $t3, 0x0AE3($at) ## 00010AE3
.L808A8260:
/* 001B0 808A8260 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 001B4 808A8264 0C00B2D0 */ jal Flags_GetSwitch
/* 001B8 808A8268 2405001C */ addiu $a1, $zero, 0x001C ## $a1 = 0000001C
/* 001BC 808A826C 1440001B */ bne $v0, $zero, .L808A82DC
/* 001C0 808A8270 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 001C4 808A8274 0C00B2D0 */ jal Flags_GetSwitch
/* 001C8 808A8278 2405001B */ addiu $a1, $zero, 0x001B ## $a1 = 0000001B
/* 001CC 808A827C 14400017 */ bne $v0, $zero, .L808A82DC
/* 001D0 808A8280 3C014250 */ lui $at, 0x4250 ## $at = 42500000
/* 001D4 808A8284 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 001D8 808A8288 44815000 */ mtc1 $at, $f10 ## $f10 = 52.00
/* 001DC 808A828C 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
/* 001E0 808A8290 26241C24 */ addiu $a0, $s1, 0x1C24 ## $a0 = 00001C24
/* 001E4 808A8294 460A4400 */ add.s $f16, $f8, $f10
/* 001E8 808A8298 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 001EC 808A829C 24060091 */ addiu $a2, $zero, 0x0091 ## $a2 = 00000091
/* 001F0 808A82A0 E7B00010 */ swc1 $f16, 0x0010($sp)
/* 001F4 808A82A4 C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 001F8 808A82A8 AFA00020 */ sw $zero, 0x0020($sp)
/* 001FC 808A82AC AFA0001C */ sw $zero, 0x001C($sp)
/* 00200 808A82B0 AFA00018 */ sw $zero, 0x0018($sp)
/* 00204 808A82B4 E7B20014 */ swc1 $f18, 0x0014($sp)
/* 00208 808A82B8 920C014C */ lbu $t4, 0x014C($s0) ## 0000014C
/* 0020C 808A82BC 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00210 808A82C0 000C6A00 */ sll $t5, $t4, 8
/* 00214 808A82C4 01AE7821 */ addu $t7, $t5, $t6
/* 00218 808A82C8 25F81000 */ addiu $t8, $t7, 0x1000 ## $t8 = 00001000
/* 0021C 808A82CC 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 00220 808A82D0 AFB80024 */ sw $t8, 0x0024($sp)
/* 00224 808A82D4 1000000E */ beq $zero, $zero, .L808A8310
/* 00228 808A82D8 00000000 */ nop
.L808A82DC:
/* 0022C 808A82DC 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00230 808A82E0 0C00B2D0 */ jal Flags_GetSwitch
/* 00234 808A82E4 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00238 808A82E8 14400009 */ bne $v0, $zero, .L808A8310
/* 0023C 808A82EC 3C190001 */ lui $t9, 0x0001 ## $t9 = 00010000
/* 00240 808A82F0 0331C821 */ addu $t9, $t9, $s1
/* 00244 808A82F4 93390AE3 */ lbu $t9, 0x0AE3($t9) ## 00010AE3
/* 00248 808A82F8 240100FF */ addiu $at, $zero, 0x00FF ## $at = 000000FF
/* 0024C 808A82FC 24080004 */ addiu $t0, $zero, 0x0004 ## $t0 = 00000004
/* 00250 808A8300 17210003 */ bne $t9, $at, .L808A8310
/* 00254 808A8304 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00258 808A8308 00310821 */ addu $at, $at, $s1
/* 0025C 808A830C A0280AE3 */ sb $t0, 0x0AE3($at) ## 00010AE3
.L808A8310:
/* 00260 808A8310 0C03F66B */ jal Math_Rand_ZeroOne
## Rand.Next() float
/* 00264 808A8314 00000000 */ nop
/* 00268 808A8318 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 0026C 808A831C 44812000 */ mtc1 $at, $f4 ## $f4 = 20.00
/* 00270 808A8320 00000000 */ nop
/* 00274 808A8324 46040182 */ mul.s $f6, $f0, $f4
/* 00278 808A8328 4600320D */ trunc.w.s $f8, $f6
/* 0027C 808A832C 440A4000 */ mfc1 $t2, $f8
/* 00280 808A8330 00000000 */ nop
/* 00284 808A8334 A60A014E */ sh $t2, 0x014E($s0) ## 0000014E
/* 00288 808A8338 8FBF0034 */ lw $ra, 0x0034($sp)
/* 0028C 808A833C 8FB10030 */ lw $s1, 0x0030($sp)
/* 00290 808A8340 8FB0002C */ lw $s0, 0x002C($sp)
/* 00294 808A8344 03E00008 */ jr $ra
/* 00298 808A8348 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000

View file

@ -1,38 +0,0 @@
glabel BgPoSyokudai_Update
/* 0030C 808A83BC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00310 808A83C0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00314 808A83C4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00318 808A83C8 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 0031C 808A83CC 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00320 808A83D0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00324 808A83D4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00328 808A83D8 AFBF001C */ sw $ra, 0x001C($sp)
/* 0032C 808A83DC 00A12821 */ addu $a1, $a1, $at
/* 00330 808A83E0 26060164 */ addiu $a2, $s0, 0x0164 ## $a2 = 00000164
/* 00334 808A83E4 AFA60020 */ sw $a2, 0x0020($sp)
/* 00338 808A83E8 AFA50024 */ sw $a1, 0x0024($sp)
/* 0033C 808A83EC 0C01767D */ jal CollisionCheck_SetAC
## CollisionCheck_setAC
/* 00340 808A83F0 AFA70034 */ sw $a3, 0x0034($sp)
/* 00344 808A83F4 8FA50024 */ lw $a1, 0x0024($sp)
/* 00348 808A83F8 8FA60020 */ lw $a2, 0x0020($sp)
/* 0034C 808A83FC 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 00350 808A8400 8FA40034 */ lw $a0, 0x0034($sp)
/* 00354 808A8404 8FA40034 */ lw $a0, 0x0034($sp)
/* 00358 808A8408 0C00B2D0 */ jal Flags_GetSwitch
/* 0035C 808A840C 8605001C */ lh $a1, 0x001C($s0) ## 0000001C
/* 00360 808A8410 10400003 */ beq $v0, $zero, .L808A8420
/* 00364 808A8414 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00368 808A8418 0C00BE5D */ jal func_8002F974
/* 0036C 808A841C 24052031 */ addiu $a1, $zero, 0x2031 ## $a1 = 00002031
.L808A8420:
/* 00370 808A8420 860E014E */ lh $t6, 0x014E($s0) ## 0000014E
/* 00374 808A8424 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 00378 808A8428 A60F014E */ sh $t7, 0x014E($s0) ## 0000014E
/* 0037C 808A842C 8FBF001C */ lw $ra, 0x001C($sp)
/* 00380 808A8430 8FB00018 */ lw $s0, 0x0018($sp)
/* 00384 808A8434 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00388 808A8438 03E00008 */ jr $ra
/* 0038C 808A843C 00000000 */ nop

View file

@ -1,26 +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 D_808A8960
.word 0x09000D39, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x000C003C, 0x00000000, 0x00000000
glabel D_808A898C
.word 0xFFAAFFFF, 0xFFC800FF, 0x00AAFFFF, 0xAAFF00FF
glabel D_808A899C
.word 0x6400FFFF, 0xFF0000FF, 0x0000FFFF, 0x009600FF
glabel Bg_Po_Syokudai_InitVars
.word 0x01050600, 0x00000000, 0x00A40000, 0x000001B0
.word BgPoSyokudai_Init
.word BgPoSyokudai_Destroy
.word BgPoSyokudai_Update
.word BgPoSyokudai_Draw
glabel D_808A89CC
.word 0x485003E8

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_808A8A50
.incbin "baserom/ovl_Bg_Po_Syokudai", 0x9A0, 0x00000090

3
spec
View file

@ -1163,8 +1163,7 @@ endseg
beginseg
name "ovl_Bg_Po_Syokudai"
include "build/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.o"
include "build/data/overlays/actors/z_bg_po_syokudai.data.o"
include "build/data/overlays/actors/z_bg_po_syokudai.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Po_Syokudai/ovl_Bg_Po_Syokudai_reloc.o"
endseg
beginseg

View file

@ -1,15 +1,49 @@
/*
* File: z_bg_po_syokudai.c
* Overlay: ovl_Bg_Po_Syokudai
* Description: Golden Torch Stand (Poe Sisters)
*/
#include "z_bg_po_syokudai.h"
#define FLAGS 0x00000000
#define THIS ((BgPoSyokudai*)thisx)
typedef enum {
POE_FLAME_PURPLE, // Meg
POE_FLAME_RED, // Joelle
POE_FLAME_BLUE, // Beth
POE_FLAME_GREEN // Amy
} PoeFlameColor;
#define POE_TORCH_FLAG 0x1C
void BgPoSyokudai_Init(Actor* thisx, GlobalContext* globalCtx);
void BgPoSyokudai_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgPoSyokudai_Update(Actor* thisx, GlobalContext* globalCtx);
void BgPoSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
static ColliderCylinderInit sCylinderInit = {
{ COLTYPE_METAL_SHIELD, 0x00, 0x0D, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0xFFCFFFFF, 0x00, 0x00 }, 0x00, 0x01, 0x01 },
{ 12, 60, 0, { 0, 0, 0 } },
};
static Color_RGBA8 sPrimColors[] = {
{ 255, 170, 255, 255 },
{ 255, 200, 0, 255 },
{ 0, 170, 255, 255 },
{ 170, 255, 0, 255 },
};
static Color_RGBA8 sEnvColors[] = {
{ 100, 0, 255, 255 },
{ 255, 0, 0, 255 },
{ 0, 0, 255, 255 },
{ 0, 150, 0, 255 },
};
const ActorInit Bg_Po_Syokudai_InitVars = {
ACTOR_BG_PO_SYOKUDAI,
ACTORTYPE_PROP,
@ -21,11 +55,124 @@ const ActorInit Bg_Po_Syokudai_InitVars = {
(ActorFunc)BgPoSyokudai_Update,
(ActorFunc)BgPoSyokudai_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Destroy.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Update.s")
extern Gfx D_060003A0[];
extern Gfx D_0404D4E0[];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Po_Syokudai/BgPoSyokudai_Draw.s")
void BgPoSyokudai_Init(Actor* thisx, GlobalContext* globalCtx) {
BgPoSyokudai* this = THIS;
s32 pad;
Actor_ProcessInitChain(&this->actor, sInitChain);
this->flameColor = (THIS->actor.params >> 8) & 0xFF;
this->actor.params &= 0x3F;
this->actor.colChkInfo.mass = 0xFF;
this->lightNode = LightContext_InsertLight(globalCtx, &globalCtx->lightCtx, &this->lightInfo);
Lights_PointGlowSetInfo(&this->lightInfo, this->actor.posRot.pos.x, (s16)this->actor.posRot.pos.y + 65,
this->actor.posRot.pos.z, 0, 0, 0, 0);
Collider_InitCylinder(globalCtx, &this->collider);
Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit);
this->collider.dim.pos.x = this->actor.posRot.pos.x;
this->collider.dim.pos.y = this->actor.posRot.pos.y;
this->collider.dim.pos.z = this->actor.posRot.pos.z;
if (this->flameColor == POE_FLAME_PURPLE && Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_GREEN) &&
Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_BLUE) &&
Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_RED) && !Flags_GetSwitch(globalCtx, this->actor.params)) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_PO_SISTERS, 119.0f, 225.0f, -1566.0f, 0, 0, 0,
this->actor.params);
globalCtx->envCtx.unk_BF = 0x4;
} else if (!Flags_GetSwitch(globalCtx, POE_TORCH_FLAG + POE_FLAME_PURPLE) && !Flags_GetSwitch(globalCtx, 0x1B)) {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_PO_SISTERS, this->actor.posRot.pos.x,
this->actor.posRot.pos.y + 52.0f, this->actor.posRot.pos.z, 0, 0, 0,
(this->flameColor << 8) + this->actor.params + 0x1000);
} else if (!Flags_GetSwitch(globalCtx, this->actor.params)) {
if (globalCtx->envCtx.unk_BF == 0xFF) {
globalCtx->envCtx.unk_BF = 4;
}
}
this->flameTextureScroll = (s16)(Math_Rand_ZeroOne() * 20.0f);
}
void BgPoSyokudai_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgPoSyokudai* this = THIS;
LightContext_RemoveLight(globalCtx, &globalCtx->lightCtx, this->lightNode);
Collider_DestroyCylinder(globalCtx, &this->collider);
if (globalCtx->envCtx.unk_BF != 0xFF) {
globalCtx->envCtx.unk_BF = 0xFF;
}
}
void BgPoSyokudai_Update(Actor* thisx, GlobalContext* globalCtx) {
BgPoSyokudai* this = THIS;
s32 pad;
CollisionCheck_SetAC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base);
if (Flags_GetSwitch(globalCtx, this->actor.params)) {
func_8002F974(&this->actor, NA_SE_EV_TORCH - SFX_FLAG);
}
this->flameTextureScroll++;
}
void BgPoSyokudai_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgPoSyokudai* this = THIS;
f32 lightBrightness;
u8 red;
u8 green;
u8 blue;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 315);
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(oGfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 319),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(oGfxCtx->polyOpa.p++, D_060003A0);
if (Flags_GetSwitch(globalCtx, this->actor.params)) {
Color_RGBA8* primColor = &sPrimColors[this->flameColor];
Color_RGBA8* envColor = &sEnvColors[this->flameColor];
lightBrightness = (0.3f * Math_Rand_ZeroOne()) + 0.7f;
red = (u8)(primColor->r * lightBrightness);
green = (u8)(primColor->g * lightBrightness);
blue = (u8)(primColor->b * lightBrightness);
Lights_PointSetColorAndRadius(&this->lightInfo, red, green, blue, 200);
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(oGfxCtx->polyXlu.p++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, 0, 32, 64, 1, 0,
(this->flameTextureScroll * -20) & 0x1FF, 32, 128));
gDPSetPrimColor(oGfxCtx->polyXlu.p++, 0x80, 0x80, primColor->r, primColor->g, primColor->b, 255);
gDPSetEnvColor(oGfxCtx->polyXlu.p++, envColor->r, envColor->g, envColor->b, 255);
Matrix_Translate(0.0f, 52.0f, 0.0f, MTXMODE_APPLY);
Matrix_RotateY((s16)(func_8005A9F4(ACTIVE_CAM) - this->actor.shape.rot.y + 0x8000) * (M_PI / 0x8000),
MTXMODE_APPLY);
Matrix_Scale(0.0027f, 0.0027f, 0.0027f, MTXMODE_APPLY);
gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 368),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(oGfxCtx->polyXlu.p++, D_0404D4E0);
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_po_syokudai.c", 373);
}

View file

@ -8,7 +8,11 @@ struct BgPoSyokudai;
typedef struct BgPoSyokudai {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x64];
/* 0x014C */ u8 flameColor;
/* 0x014E */ s16 flameTextureScroll;
/* 0x0150 */ LightNode* lightNode;
/* 0x0154 */ LightInfo lightInfo;
/* 0x0164 */ ColliderCylinder collider;
} BgPoSyokudai; // size = 0x01B0
extern const ActorInit Bg_Po_Syokudai_InitVars;

View file

@ -1028,6 +1028,10 @@ D_0600FE40 = 0x0600FE40;
D_0400CD80 = 0x0400CD80;
D_040184B0 = 0x040184B0;
// z_bg_po_syokudai
D_060003A0 = 0x060003A0;
D_0404D4E0 = 0x0404D4E0;
// z_item_ocarina
D_0200F870 = 0x0200F870;