1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-04-05 14:24:17 +00:00

ovl_Bg_Ganon_Otyuka (#488)

* merge upstream

* Merge upstream

* BgGanonOtyuka_Init

* Migrate data

* Use texture symbol in dlist

* Split gfx into another file

* Cool data stuff

* Cleanup more data

* Name some more stuff

* Add newline

* BgGanonOtyuka_Destroy

* Rename shockwave to flash

* Work on BgGanonOtyuka_Draw

* Work more on draw

* More progress

* More BgGanonOtyuka_Draw

* Stuff

* Terrible match BgGanonOtyuka_Draw

* BgGanonOtyuka_Update

* func_808760DC

* Cleanup BgGanonOtyuka_Draw

* Cleanup

* More cleanup

* Work on func_80875A0C

* Rename to color

* func_80875C88

* func_80875A0C

* Stuff

* Stuff

* Name top and bottom dlists

* Name some verts

* Add back in accidentally removed D_808772E0

* Name side dlist

* Name dlists

* Name flash verts

* Only add unk_198 to BossGanon

* Name drop timer

* Name isFalling

* Name stuff

* Name stuff relating to sides

* Use Side enum

* Use cardinal directions for sides

* More naming / cleanup

* Rename to SIDE_ALL

* Replace enum with defines

* Flash state

* Reorder add

* Rename to flashHeight

* Revert "Rename to flashHeight"

This reverts commit fa1ca87630.

* Correct sides

* Rename to unwalledSides

* Put f32 on 0x8000

* Cleanup

* Update src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.h

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Update src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>

* Cleanup

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
Sirius902 2020-11-29 02:05:30 -08:00 committed by GitHub
parent 734ad1a0bc
commit 5d03824f93
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 600 additions and 1396 deletions

View file

@ -1,40 +0,0 @@
.rdata
glabel D_80877EC0
.asciz "\x1b[32m"
.balign 4
glabel D_80877EC8
.asciz "WHY !!!!!!!!!!!!!!!!\n"
.balign 4
glabel D_80877EE0
.asciz "\x1b[m"
.balign 4
.text
glabel BgGanonOtyuka_Destroy
/* 00098 808759B8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 0009C 808759BC AFA40018 */ sw $a0, 0x0018($sp)
/* 000A0 808759C0 8FAE0018 */ lw $t6, 0x0018($sp)
/* 000A4 808759C4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000A8 808759C8 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 000AC 808759CC 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 000B0 808759D0 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 000B4 808759D4 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 000B8 808759D8 3C048087 */ lui $a0, %hi(D_80877EC0) ## $a0 = 80870000
/* 000BC 808759DC 0C00084C */ jal osSyncPrintf
/* 000C0 808759E0 24847EC0 */ addiu $a0, $a0, %lo(D_80877EC0) ## $a0 = 80877EC0
/* 000C4 808759E4 3C048087 */ lui $a0, %hi(D_80877EC8) ## $a0 = 80870000
/* 000C8 808759E8 0C00084C */ jal osSyncPrintf
/* 000CC 808759EC 24847EC8 */ addiu $a0, $a0, %lo(D_80877EC8) ## $a0 = 80877EC8
/* 000D0 808759F0 3C048087 */ lui $a0, %hi(D_80877EE0) ## $a0 = 80870000
/* 000D4 808759F4 0C00084C */ jal osSyncPrintf
/* 000D8 808759F8 24847EE0 */ addiu $a0, $a0, %lo(D_80877EE0) ## $a0 = 80877EE0
/* 000DC 808759FC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000E0 80875A00 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000E4 80875A04 03E00008 */ jr $ra
/* 000E8 80875A08 00000000 */ nop

View file

@ -1,649 +0,0 @@
.rdata
glabel D_80877F24
.asciz "../z_bg_ganon_otyuka.c"
.balign 4
glabel D_80877F3C
.asciz "../z_bg_ganon_otyuka.c"
.balign 4
glabel D_80877F54
.asciz "../z_bg_ganon_otyuka.c"
.balign 4
glabel D_80877F6C
.asciz "../z_bg_ganon_otyuka.c"
.balign 4
glabel D_80877F84
.asciz "../z_bg_ganon_otyuka.c"
.balign 4
.late_rodata
glabel D_80877FAC
.float 3.1415927
glabel D_80877FB0
.float 3.1415927
glabel D_80877FB4
.float 0.3
.text
glabel BgGanonOtyuka_Draw
/* 00810 80876130 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20
/* 00814 80876134 AFA400E0 */ sw $a0, 0x00E0($sp)
/* 00818 80876138 AFBF006C */ sw $ra, 0x006C($sp)
/* 0081C 8087613C AFA500E4 */ sw $a1, 0x00E4($sp)
/* 00820 80876140 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00824 80876144 AFBE0068 */ sw $s8, 0x0068($sp)
/* 00828 80876148 AFB70064 */ sw $s7, 0x0064($sp)
/* 0082C 8087614C AFB60060 */ sw $s6, 0x0060($sp)
/* 00830 80876150 AFB5005C */ sw $s5, 0x005C($sp)
/* 00834 80876154 AFB40058 */ sw $s4, 0x0058($sp)
/* 00838 80876158 AFB30054 */ sw $s3, 0x0054($sp)
/* 0083C 8087615C AFB20050 */ sw $s2, 0x0050($sp)
/* 00840 80876160 AFB1004C */ sw $s1, 0x004C($sp)
/* 00844 80876164 AFB00048 */ sw $s0, 0x0048($sp)
/* 00848 80876168 F7B60040 */ sdc1 $f22, 0x0040($sp)
/* 0084C 8087616C F7B40038 */ sdc1 $f20, 0x0038($sp)
/* 00850 80876170 0C030129 */ jal Gameplay_GetCamera
/* 00854 80876174 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00858 80876178 3C01C1F0 */ lui $at, 0xC1F0 ## $at = C1F00000
/* 0085C 8087617C 44812000 */ mtc1 $at, $f4 ## $f4 = -30.00
/* 00860 80876180 8FAE00E4 */ lw $t6, 0x00E4($sp)
/* 00864 80876184 AFA200CC */ sw $v0, 0x00CC($sp)
/* 00868 80876188 E7A400BC */ swc1 $f4, 0x00BC($sp)
/* 0086C 8087618C 8DC50000 */ lw $a1, 0x0000($t6) ## 00000000
/* 00870 80876190 3C068087 */ lui $a2, %hi(D_80877F24) ## $a2 = 80870000
/* 00874 80876194 24C67F24 */ addiu $a2, $a2, %lo(D_80877F24) ## $a2 = 80877F24
/* 00878 80876198 27A400A8 */ addiu $a0, $sp, 0x00A8 ## $a0 = FFFFFFC8
/* 0087C 8087619C 240702BE */ addiu $a3, $zero, 0x02BE ## $a3 = 000002BE
/* 00880 808761A0 0C031AB1 */ jal Graph_OpenDisps
/* 00884 808761A4 00A09825 */ or $s3, $a1, $zero ## $s3 = 00000000
/* 00888 808761A8 8FA300E4 */ lw $v1, 0x00E4($sp)
/* 0088C 808761AC 240200E8 */ addiu $v0, $zero, 0x00E8 ## $v0 = 000000E8
/* 00890 808761B0 8C741C7C */ lw $s4, 0x1C7C($v1) ## 00001C7C
/* 00894 808761B4 12800011 */ beq $s4, $zero, .L808761FC
/* 00898 808761B8 00000000 */ nop
/* 0089C 808761BC 868F0000 */ lh $t7, 0x0000($s4) ## 00000000
.L808761C0:
/* 008A0 808761C0 544F000C */ bnel $v0, $t7, .L808761F4
/* 008A4 808761C4 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
/* 008A8 808761C8 8698001C */ lh $t8, 0x001C($s4) ## 0000001C
/* 008AC 808761CC 57000009 */ bnel $t8, $zero, .L808761F4
/* 008B0 808761D0 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
/* 008B4 808761D4 92990198 */ lbu $t9, 0x0198($s4) ## 00000198
/* 008B8 808761D8 3C01C4FA */ lui $at, 0xC4FA ## $at = C4FA0000
/* 008BC 808761DC 13200007 */ beq $t9, $zero, .L808761FC
/* 008C0 808761E0 00000000 */ nop
/* 008C4 808761E4 44813000 */ mtc1 $at, $f6 ## $f6 = -2000.00
/* 008C8 808761E8 10000004 */ beq $zero, $zero, .L808761FC
/* 008CC 808761EC E7A600BC */ swc1 $f6, 0x00BC($sp)
/* 008D0 808761F0 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
.L808761F4:
/* 008D4 808761F4 5680FFF2 */ bnel $s4, $zero, .L808761C0
/* 008D8 808761F8 868F0000 */ lh $t7, 0x0000($s4) ## 00000000
.L808761FC:
/* 008DC 808761FC 0C024F46 */ jal func_80093D18
/* 008E0 80876200 8C640000 */ lw $a0, 0x0000($v1) ## 00000000
/* 008E4 80876204 8E6302C0 */ lw $v1, 0x02C0($s3) ## 000002C0
/* 008E8 80876208 3C098087 */ lui $t1, %hi(D_80877328) ## $t1 = 80870000
/* 008EC 8087620C 25297328 */ addiu $t1, $t1, %lo(D_80877328) ## $t1 = 80877328
/* 008F0 80876210 24680008 */ addiu $t0, $v1, 0x0008 ## $t0 = 00000008
/* 008F4 80876214 AE6802C0 */ sw $t0, 0x02C0($s3) ## 000002C0
/* 008F8 80876218 3C17DE00 */ lui $s7, 0xDE00 ## $s7 = DE000000
/* 008FC 8087621C AC770000 */ sw $s7, 0x0000($v1) ## 00000000
/* 00900 80876220 AC690004 */ sw $t1, 0x0004($v1) ## 00000004
/* 00904 80876224 8FAA00E4 */ lw $t2, 0x00E4($sp)
/* 00908 80876228 3C1E8087 */ lui $s8, %hi(D_80876A64) ## $s8 = 80870000
/* 0090C 8087622C 3C16DA38 */ lui $s6, 0xDA38 ## $s6 = DA380000
/* 00910 80876230 8D541C64 */ lw $s4, 0x1C64($t2) ## 00001C64
/* 00914 80876234 36D60003 */ ori $s6, $s6, 0x0003 ## $s6 = DA380003
/* 00918 80876238 27DE6A64 */ addiu $s8, $s8, %lo(D_80876A64) ## $s8 = 80876A64
/* 0091C 8087623C 1280008C */ beq $s4, $zero, .L80876470
/* 00920 80876240 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00924 80876244 3C158087 */ lui $s5, %hi(D_80877F54) ## $s5 = 80870000
/* 00928 80876248 4480B000 */ mtc1 $zero, $f22 ## $f22 = 0.00
/* 0092C 8087624C 4481A000 */ mtc1 $at, $f20 ## $f20 = 32768.00
/* 00930 80876250 26B57F54 */ addiu $s5, $s5, %lo(D_80877F54) ## $s5 = 80877F54
/* 00934 80876254 868B0000 */ lh $t3, 0x0000($s4) ## 00000000
.L80876258:
/* 00938 80876258 24010106 */ addiu $at, $zero, 0x0106 ## $at = 00000106
/* 0093C 8087625C C7A800BC */ lwc1 $f8, 0x00BC($sp)
/* 00940 80876260 55610081 */ bnel $t3, $at, .L80876468
/* 00944 80876264 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
/* 00948 80876268 C68A00EC */ lwc1 $f10, 0x00EC($s4) ## 000000EC
/* 0094C 8087626C 8FAC00CC */ lw $t4, 0x00CC($sp)
/* 00950 80876270 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00954 80876274 460A403C */ c.lt.s $f8, $f10
/* 00958 80876278 00000000 */ nop
/* 0095C 8087627C 4502007A */ bc1fl .L80876468
/* 00960 80876280 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
/* 00964 80876284 C68E0028 */ lwc1 $f14, 0x0028($s4) ## 00000028
/* 00968 80876288 C5900060 */ lwc1 $f16, 0x0060($t4) ## 00000060
/* 0096C 8087628C 3C128087 */ lui $s2, %hi(D_80877408) ## $s2 = 80870000
/* 00970 80876290 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 00974 80876294 4610703C */ c.lt.s $f14, $f16
/* 00978 80876298 26527408 */ addiu $s2, $s2, %lo(D_80877408) ## $s2 = 80877408
/* 0097C 8087629C 45000004 */ bc1f .L808762B0
/* 00980 808762A0 00000000 */ nop
/* 00984 808762A4 3C128087 */ lui $s2, %hi(D_808773B0) ## $s2 = 80870000
/* 00988 808762A8 10000001 */ beq $zero, $zero, .L808762B0
/* 0098C 808762AC 265273B0 */ addiu $s2, $s2, %lo(D_808773B0) ## $s2 = 808773B0
.L808762B0:
/* 00990 808762B0 C68C0024 */ lwc1 $f12, 0x0024($s4) ## 00000024
/* 00994 808762B4 0C034261 */ jal Matrix_Translate
/* 00998 808762B8 8E86002C */ lw $a2, 0x002C($s4) ## 0000002C
/* 0099C 808762BC 928D016A */ lbu $t5, 0x016A($s4) ## 0000016A
/* 009A0 808762C0 51A00022 */ beql $t5, $zero, .L8087634C
/* 009A4 808762C4 8E7002C0 */ lw $s0, 0x02C0($s3) ## 000002C0
/* 009A8 808762C8 868E00B4 */ lh $t6, 0x00B4($s4) ## 000000B4
/* 009AC 808762CC 3C018087 */ lui $at, %hi(D_80877FAC) ## $at = 80870000
/* 009B0 808762D0 C4287FAC */ lwc1 $f8, %lo(D_80877FAC)($at)
/* 009B4 808762D4 448E9000 */ mtc1 $t6, $f18 ## $f18 = 0.00
/* 009B8 808762D8 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 009BC 808762DC 46809120 */ cvt.s.w $f4, $f18
/* 009C0 808762E0 46142183 */ div.s $f6, $f4, $f20
/* 009C4 808762E4 46083302 */ mul.s $f12, $f6, $f8
/* 009C8 808762E8 0C0342DC */ jal Matrix_RotateX
/* 009CC 808762EC 00000000 */ nop
/* 009D0 808762F0 868F00B8 */ lh $t7, 0x00B8($s4) ## 000000B8
/* 009D4 808762F4 3C018087 */ lui $at, %hi(D_80877FB0) ## $at = 80870000
/* 009D8 808762F8 C4247FB0 */ lwc1 $f4, %lo(D_80877FB0)($at)
/* 009DC 808762FC 448F5000 */ mtc1 $t7, $f10 ## $f10 = 0.00
/* 009E0 80876300 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 009E4 80876304 46805420 */ cvt.s.w $f16, $f10
/* 009E8 80876308 46148483 */ div.s $f18, $f16, $f20
/* 009EC 8087630C 46049302 */ mul.s $f12, $f18, $f4
/* 009F0 80876310 0C0343B5 */ jal Matrix_RotateZ
/* 009F4 80876314 00000000 */ nop
/* 009F8 80876318 8FB800CC */ lw $t8, 0x00CC($sp)
/* 009FC 8087631C C6860028 */ lwc1 $f6, 0x0028($s4) ## 00000028
/* 00A00 80876320 3C118087 */ lui $s1, %hi(D_808773B0) ## $s1 = 80870000
/* 00A04 80876324 C7080060 */ lwc1 $f8, 0x0060($t8) ## 00000060
/* 00A08 80876328 263173B0 */ addiu $s1, $s1, %lo(D_808773B0) ## $s1 = 808773B0
/* 00A0C 8087632C 4608303C */ c.lt.s $f6, $f8
/* 00A10 80876330 00000000 */ nop
/* 00A14 80876334 45000004 */ bc1f .L80876348
/* 00A18 80876338 00000000 */ nop
/* 00A1C 8087633C 3C118087 */ lui $s1, %hi(D_80877408) ## $s1 = 80870000
/* 00A20 80876340 10000001 */ beq $zero, $zero, .L80876348
/* 00A24 80876344 26317408 */ addiu $s1, $s1, %lo(D_80877408) ## $s1 = 80877408
.L80876348:
/* 00A28 80876348 8E7002C0 */ lw $s0, 0x02C0($s3) ## 000002C0
.L8087634C:
/* 00A2C 8087634C 3C058087 */ lui $a1, %hi(D_80877F3C) ## $a1 = 80870000
/* 00A30 80876350 24A57F3C */ addiu $a1, $a1, %lo(D_80877F3C) ## $a1 = 80877F3C
/* 00A34 80876354 26190008 */ addiu $t9, $s0, 0x0008 ## $t9 = 00000008
/* 00A38 80876358 AE7902C0 */ sw $t9, 0x02C0($s3) ## 000002C0
/* 00A3C 8087635C AE160000 */ sw $s6, 0x0000($s0) ## 00000000
/* 00A40 80876360 8FA800E4 */ lw $t0, 0x00E4($sp)
/* 00A44 80876364 240602FE */ addiu $a2, $zero, 0x02FE ## $a2 = 000002FE
/* 00A48 80876368 0C0346A2 */ jal Matrix_NewMtx
/* 00A4C 8087636C 8D040000 */ lw $a0, 0x0000($t0) ## 00000000
/* 00A50 80876370 AE020004 */ sw $v0, 0x0004($s0) ## 00000004
/* 00A54 80876374 8E6302C0 */ lw $v1, 0x02C0($s3) ## 000002C0
/* 00A58 80876378 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 00A5C 8087637C 24690008 */ addiu $t1, $v1, 0x0008 ## $t1 = 00000008
/* 00A60 80876380 AE6902C0 */ sw $t1, 0x02C0($s3) ## 000002C0
/* 00A64 80876384 AC720004 */ sw $s2, 0x0004($v1) ## 00000004
/* 00A68 80876388 12200006 */ beq $s1, $zero, .L808763A4
/* 00A6C 8087638C AC770000 */ sw $s7, 0x0000($v1) ## 00000000
/* 00A70 80876390 8E6302C0 */ lw $v1, 0x02C0($s3) ## 000002C0
/* 00A74 80876394 246A0008 */ addiu $t2, $v1, 0x0008 ## $t2 = 00000008
/* 00A78 80876398 AE6A02C0 */ sw $t2, 0x02C0($s3) ## 000002C0
/* 00A7C 8087639C AC710004 */ sw $s1, 0x0004($v1) ## 00000004
/* 00A80 808763A0 AC770000 */ sw $s7, 0x0000($v1) ## 00000000
.L808763A4:
/* 00A84 808763A4 03D05821 */ addu $t3, $s8, $s0
.L808763A8:
/* 00A88 808763A8 916C0000 */ lbu $t4, 0x0000($t3) ## 00000000
/* 00A8C 808763AC 928D016C */ lbu $t5, 0x016C($s4) ## 0000016C
/* 00A90 808763B0 3C128087 */ lui $s2, %hi(D_80877460) ## $s2 = 80870000
/* 00A94 808763B4 018D7024 */ and $t6, $t4, $t5
/* 00A98 808763B8 51C00025 */ beql $t6, $zero, .L80876450
/* 00A9C 808763BC 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00AA0 808763C0 0C034213 */ jal Matrix_Push
/* 00AA4 808763C4 26527460 */ addiu $s2, $s2, %lo(D_80877460) ## $s2 = 80877460
/* 00AA8 808763C8 00107880 */ sll $t7, $s0, 2
/* 00AAC 808763CC 01F07823 */ subu $t7, $t7, $s0
/* 00AB0 808763D0 3C188087 */ lui $t8, %hi(D_80876AA0) ## $t8 = 80870000
/* 00AB4 808763D4 27186AA0 */ addiu $t8, $t8, %lo(D_80876AA0) ## $t8 = 80876AA0
/* 00AB8 808763D8 000F7880 */ sll $t7, $t7, 2
/* 00ABC 808763DC 01F81021 */ addu $v0, $t7, $t8
/* 00AC0 808763E0 C44C0000 */ lwc1 $f12, 0x0000($v0) ## 00000000
/* 00AC4 808763E4 8C460008 */ lw $a2, 0x0008($v0) ## 00000008
/* 00AC8 808763E8 4600B386 */ mov.s $f14, $f22
/* 00ACC 808763EC 0C034261 */ jal Matrix_Translate
/* 00AD0 808763F0 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00AD4 808763F4 0010C880 */ sll $t9, $s0, 2
/* 00AD8 808763F8 3C018087 */ lui $at, %hi(D_80876AD0) ## $at = 80870000
/* 00ADC 808763FC 00390821 */ addu $at, $at, $t9
/* 00AE0 80876400 C42C6AD0 */ lwc1 $f12, %lo(D_80876AD0)($at)
/* 00AE4 80876404 0C034348 */ jal Matrix_RotateY
/* 00AE8 80876408 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00AEC 8087640C 8E7102C0 */ lw $s1, 0x02C0($s3) ## 000002C0
/* 00AF0 80876410 02A02825 */ or $a1, $s5, $zero ## $a1 = 80877F54
/* 00AF4 80876414 24060311 */ addiu $a2, $zero, 0x0311 ## $a2 = 00000311
/* 00AF8 80876418 26280008 */ addiu $t0, $s1, 0x0008 ## $t0 = 80877410
/* 00AFC 8087641C AE6802C0 */ sw $t0, 0x02C0($s3) ## 000002C0
/* 00B00 80876420 AE360000 */ sw $s6, 0x0000($s1) ## 80877408
/* 00B04 80876424 8FA900E4 */ lw $t1, 0x00E4($sp)
/* 00B08 80876428 0C0346A2 */ jal Matrix_NewMtx
/* 00B0C 8087642C 8D240000 */ lw $a0, 0x0000($t1) ## 00000000
/* 00B10 80876430 AE220004 */ sw $v0, 0x0004($s1) ## 8087740C
/* 00B14 80876434 8E6302C0 */ lw $v1, 0x02C0($s3) ## 000002C0
/* 00B18 80876438 246A0008 */ addiu $t2, $v1, 0x0008 ## $t2 = 00000008
/* 00B1C 8087643C AE6A02C0 */ sw $t2, 0x02C0($s3) ## 000002C0
/* 00B20 80876440 AC720004 */ sw $s2, 0x0004($v1) ## 00000004
/* 00B24 80876444 0C034221 */ jal Matrix_Pull
/* 00B28 80876448 AC770000 */ sw $s7, 0x0000($v1) ## 00000000
/* 00B2C 8087644C 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000002
.L80876450:
/* 00B30 80876450 00108400 */ sll $s0, $s0, 16
/* 00B34 80876454 00108403 */ sra $s0, $s0, 16
/* 00B38 80876458 2A010004 */ slti $at, $s0, 0x0004
/* 00B3C 8087645C 5420FFD2 */ bnel $at, $zero, .L808763A8
/* 00B40 80876460 03D05821 */ addu $t3, $s8, $s0
/* 00B44 80876464 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
.L80876468:
/* 00B48 80876468 5680FF7B */ bnel $s4, $zero, .L80876258
/* 00B4C 8087646C 868B0000 */ lh $t3, 0x0000($s4) ## 00000000
.L80876470:
/* 00B50 80876470 8FAB00E4 */ lw $t3, 0x00E4($sp)
/* 00B54 80876474 3C16DA38 */ lui $s6, 0xDA38 ## $s6 = DA380000
/* 00B58 80876478 3C1E8087 */ lui $s8, %hi(D_80876A64) ## $s8 = 80870000
/* 00B5C 8087647C 4480B000 */ mtc1 $zero, $f22 ## $f22 = 0.00
/* 00B60 80876480 27DE6A64 */ addiu $s8, $s8, %lo(D_80876A64) ## $s8 = 80876A64
/* 00B64 80876484 36D60003 */ ori $s6, $s6, 0x0003 ## $s6 = DA380003
/* 00B68 80876488 0C024F61 */ jal func_80093D84
/* 00B6C 8087648C 8D640000 */ lw $a0, 0x0000($t3) ## 00000000
/* 00B70 80876490 8FAC00E4 */ lw $t4, 0x00E4($sp)
/* 00B74 80876494 3C158087 */ lui $s5, %hi(D_80877F6C) ## $s5 = 80870000
/* 00B78 80876498 26B57F6C */ addiu $s5, $s5, %lo(D_80877F6C) ## $s5 = 80877F6C
/* 00B7C 8087649C 8D941C64 */ lw $s4, 0x1C64($t4) ## 00001C64
/* 00B80 808764A0 3C018087 */ lui $at, %hi(D_80877FB4) ## $at = 80870000
/* 00B84 808764A4 5280014F */ beql $s4, $zero, .L808769E4
/* 00B88 808764A8 8FA900E4 */ lw $t1, 0x00E4($sp)
/* 00B8C 808764AC C4347FB4 */ lwc1 $f20, %lo(D_80877FB4)($at)
/* 00B90 808764B0 868D0000 */ lh $t5, 0x0000($s4) ## 00000000
.L808764B4:
/* 00B94 808764B4 24010106 */ addiu $at, $zero, 0x0106 ## $at = 00000106
/* 00B98 808764B8 15A10146 */ bne $t5, $at, .L808769D4
/* 00B9C 808764BC 3C01C1F0 */ lui $at, 0xC1F0 ## $at = C1F00000
/* 00BA0 808764C0 44815000 */ mtc1 $at, $f10 ## $f10 = -30.00
/* 00BA4 808764C4 C69000EC */ lwc1 $f16, 0x00EC($s4) ## 000000EC
/* 00BA8 808764C8 4610503C */ c.lt.s $f10, $f16
/* 00BAC 808764CC 00000000 */ nop
/* 00BB0 808764D0 45020141 */ bc1fl .L808769D8
/* 00BB4 808764D4 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
/* 00BB8 808764D8 928E016E */ lbu $t6, 0x016E($s4) ## 0000016E
/* 00BBC 808764DC 3C18DB06 */ lui $t8, 0xDB06 ## $t8 = DB060000
/* 00BC0 808764E0 37180020 */ ori $t8, $t8, 0x0020 ## $t8 = DB060020
/* 00BC4 808764E4 11C0013B */ beq $t6, $zero, .L808769D4
/* 00BC8 808764E8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00BCC 808764EC 8E7002D0 */ lw $s0, 0x02D0($s3) ## 000002D0
/* 00BD0 808764F0 24080020 */ addiu $t0, $zero, 0x0020 ## $t0 = 00000020
/* 00BD4 808764F4 24090040 */ addiu $t1, $zero, 0x0040 ## $t1 = 00000040
/* 00BD8 808764F8 260F0008 */ addiu $t7, $s0, 0x0008 ## $t7 = 0000000A
/* 00BDC 808764FC AE6F02D0 */ sw $t7, 0x02D0($s3) ## 000002D0
/* 00BE0 80876500 AE180000 */ sw $t8, 0x0000($s0) ## 00000002
/* 00BE4 80876504 8FB900E4 */ lw $t9, 0x00E4($sp)
/* 00BE8 80876508 9286016D */ lbu $a2, 0x016D($s4) ## 0000016D
/* 00BEC 8087650C 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 00BF0 80876510 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
/* 00BF4 80876514 240B0020 */ addiu $t3, $zero, 0x0020 ## $t3 = 00000020
/* 00BF8 80876518 240C0040 */ addiu $t4, $zero, 0x0040 ## $t4 = 00000040
/* 00BFC 8087651C 00063080 */ sll $a2, $a2, 2
/* 00C00 80876520 AFA6001C */ sw $a2, 0x001C($sp)
/* 00C04 80876524 AFAC0028 */ sw $t4, 0x0028($sp)
/* 00C08 80876528 AFAB0024 */ sw $t3, 0x0024($sp)
/* 00C0C 8087652C AFA00020 */ sw $zero, 0x0020($sp)
/* 00C10 80876530 AFAA0018 */ sw $t2, 0x0018($sp)
/* 00C14 80876534 AFA90014 */ sw $t1, 0x0014($sp)
/* 00C18 80876538 AFA80010 */ sw $t0, 0x0010($sp)
/* 00C1C 8087653C 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00C20 80876540 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00C24 80876544 AE020004 */ sw $v0, 0x0004($s0) ## 00000006
/* 00C28 80876548 8E6302D0 */ lw $v1, 0x02D0($s3) ## 000002D0
/* 00C2C 8087654C 3C0EE700 */ lui $t6, 0xE700 ## $t6 = E7000000
/* 00C30 80876550 3C18FA00 */ lui $t8, 0xFA00 ## $t8 = FA000000
/* 00C34 80876554 246D0008 */ addiu $t5, $v1, 0x0008 ## $t5 = 00000008
/* 00C38 80876558 AE6D02D0 */ sw $t5, 0x02D0($s3) ## 000002D0
/* 00C3C 8087655C AC600004 */ sw $zero, 0x0004($v1) ## 00000004
/* 00C40 80876560 AC6E0000 */ sw $t6, 0x0000($v1) ## 00000000
/* 00C44 80876564 8E6202D0 */ lw $v0, 0x02D0($s3) ## 000002D0
/* 00C48 80876568 4459F800 */ cfc1 $t9, $f31
/* 00C4C 8087656C 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00C50 80876570 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00C54 80876574 AE6F02D0 */ sw $t7, 0x02D0($s3) ## 000002D0
/* 00C58 80876578 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00C5C 8087657C 44C8F800 */ ctc1 $t0, $f31
/* 00C60 80876580 C6920174 */ lwc1 $f18, 0x0174($s4) ## 00000174
/* 00C64 80876584 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00C68 80876588 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00C6C 8087658C 46009124 */ cvt.w.s $f4, $f18
/* 00C70 80876590 4448F800 */ cfc1 $t0, $f31
/* 00C74 80876594 00000000 */ nop
/* 00C78 80876598 31080078 */ andi $t0, $t0, 0x0078 ## $t0 = 00000000
/* 00C7C 8087659C 51000013 */ beql $t0, $zero, .L808765EC
/* 00C80 808765A0 44082000 */ mfc1 $t0, $f4
/* 00C84 808765A4 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00
/* 00C88 808765A8 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00C8C 808765AC 46049101 */ sub.s $f4, $f18, $f4
/* 00C90 808765B0 44C8F800 */ ctc1 $t0, $f31
/* 00C94 808765B4 00000000 */ nop
/* 00C98 808765B8 46002124 */ cvt.w.s $f4, $f4
/* 00C9C 808765BC 4448F800 */ cfc1 $t0, $f31
/* 00CA0 808765C0 00000000 */ nop
/* 00CA4 808765C4 31080078 */ andi $t0, $t0, 0x0078 ## $t0 = 00000000
/* 00CA8 808765C8 15000005 */ bne $t0, $zero, .L808765E0
/* 00CAC 808765CC 00000000 */ nop
/* 00CB0 808765D0 44082000 */ mfc1 $t0, $f4
/* 00CB4 808765D4 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00CB8 808765D8 10000007 */ beq $zero, $zero, .L808765F8
/* 00CBC 808765DC 01014025 */ or $t0, $t0, $at ## $t0 = 80000000
.L808765E0:
/* 00CC0 808765E0 10000005 */ beq $zero, $zero, .L808765F8
/* 00CC4 808765E4 2408FFFF */ addiu $t0, $zero, 0xFFFF ## $t0 = FFFFFFFF
/* 00CC8 808765E8 44082000 */ mfc1 $t0, $f4
.L808765EC:
/* 00CCC 808765EC 00000000 */ nop
/* 00CD0 808765F0 0500FFFB */ bltz $t0, .L808765E0
/* 00CD4 808765F4 00000000 */ nop
.L808765F8:
/* 00CD8 808765F8 44D9F800 */ ctc1 $t9, $f31
/* 00CDC 808765FC 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001
/* 00CE0 80876600 C6860178 */ lwc1 $f6, 0x0178($s4) ## 00000178
/* 00CE4 80876604 00085600 */ sll $t2, $t0, 24
/* 00CE8 80876608 444BF800 */ cfc1 $t3, $f31
/* 00CEC 8087660C 44CCF800 */ ctc1 $t4, $f31
/* 00CF0 80876610 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00CF4 80876614 46003224 */ cvt.w.s $f8, $f6
/* 00CF8 80876618 444CF800 */ cfc1 $t4, $f31
/* 00CFC 8087661C 00000000 */ nop
/* 00D00 80876620 318C0078 */ andi $t4, $t4, 0x0078 ## $t4 = 00000000
/* 00D04 80876624 51800013 */ beql $t4, $zero, .L80876674
/* 00D08 80876628 440C4000 */ mfc1 $t4, $f8
/* 00D0C 8087662C 44814000 */ mtc1 $at, $f8 ## $f8 = 2147483648.00
/* 00D10 80876630 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001
/* 00D14 80876634 46083201 */ sub.s $f8, $f6, $f8
/* 00D18 80876638 44CCF800 */ ctc1 $t4, $f31
/* 00D1C 8087663C 00000000 */ nop
/* 00D20 80876640 46004224 */ cvt.w.s $f8, $f8
/* 00D24 80876644 444CF800 */ cfc1 $t4, $f31
/* 00D28 80876648 00000000 */ nop
/* 00D2C 8087664C 318C0078 */ andi $t4, $t4, 0x0078 ## $t4 = 00000000
/* 00D30 80876650 15800005 */ bne $t4, $zero, .L80876668
/* 00D34 80876654 00000000 */ nop
/* 00D38 80876658 440C4000 */ mfc1 $t4, $f8
/* 00D3C 8087665C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00D40 80876660 10000007 */ beq $zero, $zero, .L80876680
/* 00D44 80876664 01816025 */ or $t4, $t4, $at ## $t4 = 80000000
.L80876668:
/* 00D48 80876668 10000005 */ beq $zero, $zero, .L80876680
/* 00D4C 8087666C 240CFFFF */ addiu $t4, $zero, 0xFFFF ## $t4 = FFFFFFFF
/* 00D50 80876670 440C4000 */ mfc1 $t4, $f8
.L80876674:
/* 00D54 80876674 00000000 */ nop
/* 00D58 80876678 0580FFFB */ bltz $t4, .L80876668
/* 00D5C 8087667C 00000000 */ nop
.L80876680:
/* 00D60 80876680 44CBF800 */ ctc1 $t3, $f31
/* 00D64 80876684 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 00D68 80876688 C68A017C */ lwc1 $f10, 0x017C($s4) ## 0000017C
/* 00D6C 8087668C 318D00FF */ andi $t5, $t4, 0x00FF ## $t5 = 000000FF
/* 00D70 80876690 4458F800 */ cfc1 $t8, $f31
/* 00D74 80876694 44D9F800 */ ctc1 $t9, $f31
/* 00D78 80876698 000D7400 */ sll $t6, $t5, 16
/* 00D7C 8087669C 014E7825 */ or $t7, $t2, $t6 ## $t7 = E7000000
/* 00D80 808766A0 46005424 */ cvt.w.s $f16, $f10
/* 00D84 808766A4 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00D88 808766A8 3C0DFB00 */ lui $t5, 0xFB00 ## $t5 = FB000000
/* 00D8C 808766AC 4459F800 */ cfc1 $t9, $f31
/* 00D90 808766B0 00000000 */ nop
/* 00D94 808766B4 33390078 */ andi $t9, $t9, 0x0078 ## $t9 = 00000000
/* 00D98 808766B8 53200013 */ beql $t9, $zero, .L80876708
/* 00D9C 808766BC 44198000 */ mfc1 $t9, $f16
/* 00DA0 808766C0 44818000 */ mtc1 $at, $f16 ## $f16 = 2147483648.00
/* 00DA4 808766C4 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 00DA8 808766C8 46105401 */ sub.s $f16, $f10, $f16
/* 00DAC 808766CC 44D9F800 */ ctc1 $t9, $f31
/* 00DB0 808766D0 00000000 */ nop
/* 00DB4 808766D4 46008424 */ cvt.w.s $f16, $f16
/* 00DB8 808766D8 4459F800 */ cfc1 $t9, $f31
/* 00DBC 808766DC 00000000 */ nop
/* 00DC0 808766E0 33390078 */ andi $t9, $t9, 0x0078 ## $t9 = 00000000
/* 00DC4 808766E4 17200005 */ bne $t9, $zero, .L808766FC
/* 00DC8 808766E8 00000000 */ nop
/* 00DCC 808766EC 44198000 */ mfc1 $t9, $f16
/* 00DD0 808766F0 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00DD4 808766F4 10000007 */ beq $zero, $zero, .L80876714
/* 00DD8 808766F8 0321C825 */ or $t9, $t9, $at ## $t9 = 80000000
.L808766FC:
/* 00DDC 808766FC 10000005 */ beq $zero, $zero, .L80876714
/* 00DE0 80876700 2419FFFF */ addiu $t9, $zero, 0xFFFF ## $t9 = FFFFFFFF
/* 00DE4 80876704 44198000 */ mfc1 $t9, $f16
.L80876708:
/* 00DE8 80876708 00000000 */ nop
/* 00DEC 8087670C 0720FFFB */ bltz $t9, .L808766FC
/* 00DF0 80876710 00000000 */ nop
.L80876714:
/* 00DF4 80876714 332800FF */ andi $t0, $t9, 0x00FF ## $t0 = 000000FF
/* 00DF8 80876718 00084A00 */ sll $t1, $t0, 8
/* 00DFC 8087671C 01E95825 */ or $t3, $t7, $t1 ## $t3 = E7000000
/* 00E00 80876720 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00E04 80876724 8E6202D0 */ lw $v0, 0x02D0($s3) ## 000002D0
/* 00E08 80876728 44D8F800 */ ctc1 $t8, $f31
/* 00E0C 8087672C 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00E10 80876730 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00E14 80876734 AE6C02D0 */ sw $t4, 0x02D0($s3) ## 000002D0
/* 00E18 80876738 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 00E1C 8087673C 444AF800 */ cfc1 $t2, $f31
/* 00E20 80876740 44CEF800 */ ctc1 $t6, $f31
/* 00E24 80876744 C6920180 */ lwc1 $f18, 0x0180($s4) ## 00000180
/* 00E28 80876748 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00E2C 8087674C 46009124 */ cvt.w.s $f4, $f18
/* 00E30 80876750 444EF800 */ cfc1 $t6, $f31
/* 00E34 80876754 00000000 */ nop
/* 00E38 80876758 31CE0078 */ andi $t6, $t6, 0x0078 ## $t6 = 00000000
/* 00E3C 8087675C 51C00013 */ beql $t6, $zero, .L808767AC
/* 00E40 80876760 440E2000 */ mfc1 $t6, $f4
/* 00E44 80876764 44812000 */ mtc1 $at, $f4 ## $f4 = 2147483648.00
/* 00E48 80876768 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00E4C 8087676C 46049101 */ sub.s $f4, $f18, $f4
/* 00E50 80876770 44CEF800 */ ctc1 $t6, $f31
/* 00E54 80876774 00000000 */ nop
/* 00E58 80876778 46002124 */ cvt.w.s $f4, $f4
/* 00E5C 8087677C 444EF800 */ cfc1 $t6, $f31
/* 00E60 80876780 00000000 */ nop
/* 00E64 80876784 31CE0078 */ andi $t6, $t6, 0x0078 ## $t6 = 00000000
/* 00E68 80876788 15C00005 */ bne $t6, $zero, .L808767A0
/* 00E6C 8087678C 00000000 */ nop
/* 00E70 80876790 440E2000 */ mfc1 $t6, $f4
/* 00E74 80876794 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00E78 80876798 10000007 */ beq $zero, $zero, .L808767B8
/* 00E7C 8087679C 01C17025 */ or $t6, $t6, $at ## $t6 = 80000000
.L808767A0:
/* 00E80 808767A0 10000005 */ beq $zero, $zero, .L808767B8
/* 00E84 808767A4 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF
/* 00E88 808767A8 440E2000 */ mfc1 $t6, $f4
.L808767AC:
/* 00E8C 808767AC 00000000 */ nop
/* 00E90 808767B0 05C0FFFB */ bltz $t6, .L808767A0
/* 00E94 808767B4 00000000 */ nop
.L808767B8:
/* 00E98 808767B8 44CAF800 */ ctc1 $t2, $f31
/* 00E9C 808767BC 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00EA0 808767C0 C6860184 */ lwc1 $f6, 0x0184($s4) ## 00000184
/* 00EA4 808767C4 000ECE00 */ sll $t9, $t6, 24
/* 00EA8 808767C8 4448F800 */ cfc1 $t0, $f31
/* 00EAC 808767CC 44CFF800 */ ctc1 $t7, $f31
/* 00EB0 808767D0 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00EB4 808767D4 46003224 */ cvt.w.s $f8, $f6
/* 00EB8 808767D8 444FF800 */ cfc1 $t7, $f31
/* 00EBC 808767DC 00000000 */ nop
/* 00EC0 808767E0 31EF0078 */ andi $t7, $t7, 0x0078 ## $t7 = 00000000
/* 00EC4 808767E4 51E00013 */ beql $t7, $zero, .L80876834
/* 00EC8 808767E8 440F4000 */ mfc1 $t7, $f8
/* 00ECC 808767EC 44814000 */ mtc1 $at, $f8 ## $f8 = 2147483648.00
/* 00ED0 808767F0 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00ED4 808767F4 46083201 */ sub.s $f8, $f6, $f8
/* 00ED8 808767F8 44CFF800 */ ctc1 $t7, $f31
/* 00EDC 808767FC 00000000 */ nop
/* 00EE0 80876800 46004224 */ cvt.w.s $f8, $f8
/* 00EE4 80876804 444FF800 */ cfc1 $t7, $f31
/* 00EE8 80876808 00000000 */ nop
/* 00EEC 8087680C 31EF0078 */ andi $t7, $t7, 0x0078 ## $t7 = 00000000
/* 00EF0 80876810 15E00005 */ bne $t7, $zero, .L80876828
/* 00EF4 80876814 00000000 */ nop
/* 00EF8 80876818 440F4000 */ mfc1 $t7, $f8
/* 00EFC 8087681C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00F00 80876820 10000007 */ beq $zero, $zero, .L80876840
/* 00F04 80876824 01E17825 */ or $t7, $t7, $at ## $t7 = 80000000
.L80876828:
/* 00F08 80876828 10000005 */ beq $zero, $zero, .L80876840
/* 00F0C 8087682C 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF
/* 00F10 80876830 440F4000 */ mfc1 $t7, $f8
.L80876834:
/* 00F14 80876834 00000000 */ nop
/* 00F18 80876838 05E0FFFB */ bltz $t7, .L80876828
/* 00F1C 8087683C 00000000 */ nop
.L80876840:
/* 00F20 80876840 44C8F800 */ ctc1 $t0, $f31
/* 00F24 80876844 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 00F28 80876848 C68A0188 */ lwc1 $f10, 0x0188($s4) ## 00000188
/* 00F2C 8087684C 31E900FF */ andi $t1, $t7, 0x00FF ## $t1 = 000000FF
/* 00F30 80876850 444DF800 */ cfc1 $t5, $f31
/* 00F34 80876854 44CAF800 */ ctc1 $t2, $f31
/* 00F38 80876858 00095C00 */ sll $t3, $t1, 16
/* 00F3C 8087685C 032B6025 */ or $t4, $t9, $t3 ## $t4 = FFFFFFFF
/* 00F40 80876860 46005424 */ cvt.w.s $f16, $f10
/* 00F44 80876864 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00F48 80876868 444AF800 */ cfc1 $t2, $f31
/* 00F4C 8087686C 00000000 */ nop
/* 00F50 80876870 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000
/* 00F54 80876874 51400013 */ beql $t2, $zero, .L808768C4
/* 00F58 80876878 440A8000 */ mfc1 $t2, $f16
/* 00F5C 8087687C 44818000 */ mtc1 $at, $f16 ## $f16 = 2147483648.00
/* 00F60 80876880 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 00F64 80876884 46105401 */ sub.s $f16, $f10, $f16
/* 00F68 80876888 44CAF800 */ ctc1 $t2, $f31
/* 00F6C 8087688C 00000000 */ nop
/* 00F70 80876890 46008424 */ cvt.w.s $f16, $f16
/* 00F74 80876894 444AF800 */ cfc1 $t2, $f31
/* 00F78 80876898 00000000 */ nop
/* 00F7C 8087689C 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000
/* 00F80 808768A0 15400005 */ bne $t2, $zero, .L808768B8
/* 00F84 808768A4 00000000 */ nop
/* 00F88 808768A8 440A8000 */ mfc1 $t2, $f16
/* 00F8C 808768AC 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00F90 808768B0 10000007 */ beq $zero, $zero, .L808768D0
/* 00F94 808768B4 01415025 */ or $t2, $t2, $at ## $t2 = 80000000
.L808768B8:
/* 00F98 808768B8 10000005 */ beq $zero, $zero, .L808768D0
/* 00F9C 808768BC 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF
/* 00FA0 808768C0 440A8000 */ mfc1 $t2, $f16
.L808768C4:
/* 00FA4 808768C4 00000000 */ nop
/* 00FA8 808768C8 0540FFFB */ bltz $t2, .L808768B8
/* 00FAC 808768CC 00000000 */ nop
.L808768D0:
/* 00FB0 808768D0 314E00FF */ andi $t6, $t2, 0x00FF ## $t6 = 000000FF
/* 00FB4 808768D4 000EC200 */ sll $t8, $t6, 8
/* 00FB8 808768D8 01984025 */ or $t0, $t4, $t8 ## $t0 = FFFFFFFF
/* 00FBC 808768DC 44CDF800 */ ctc1 $t5, $f31
/* 00FC0 808768E0 350F0080 */ ori $t7, $t0, 0x0080 ## $t7 = FFFFFFFF
/* 00FC4 808768E4 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00FC8 808768E8 8E86002C */ lw $a2, 0x002C($s4) ## 0000002C
/* 00FCC 808768EC C68C0024 */ lwc1 $f12, 0x0024($s4) ## 00000024
/* 00FD0 808768F0 0C034261 */ jal Matrix_Translate
/* 00FD4 808768F4 4600B386 */ mov.s $f14, $f22
/* 00FD8 808768F8 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 00FDC 808768FC 03D04821 */ addu $t1, $s8, $s0
.L80876900:
/* 00FE0 80876900 91390000 */ lbu $t9, 0x0000($t1) ## 00000000
/* 00FE4 80876904 928B016B */ lbu $t3, 0x016B($s4) ## 0000016B
/* 00FE8 80876908 3C128087 */ lui $s2, %hi(D_80877CF8) ## $s2 = 80870000
/* 00FEC 8087690C 032B6824 */ and $t5, $t9, $t3
/* 00FF0 80876910 51A0002B */ beql $t5, $zero, .L808769C0
/* 00FF4 80876914 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 00FF8 80876918 0C034213 */ jal Matrix_Push
/* 00FFC 8087691C 26527CF8 */ addiu $s2, $s2, %lo(D_80877CF8) ## $s2 = 80877CF8
/* 01000 80876920 00105080 */ sll $t2, $s0, 2
/* 01004 80876924 01505023 */ subu $t2, $t2, $s0
/* 01008 80876928 3C0E8087 */ lui $t6, %hi(D_80876AA0) ## $t6 = 80870000
/* 0100C 8087692C 25CE6AA0 */ addiu $t6, $t6, %lo(D_80876AA0) ## $t6 = 80876AA0
/* 01010 80876930 000A5080 */ sll $t2, $t2, 2
/* 01014 80876934 014E1021 */ addu $v0, $t2, $t6
/* 01018 80876938 C44C0000 */ lwc1 $f12, 0x0000($v0) ## 00000000
/* 0101C 8087693C 8C460008 */ lw $a2, 0x0008($v0) ## 00000008
/* 01020 80876940 4600B386 */ mov.s $f14, $f22
/* 01024 80876944 0C034261 */ jal Matrix_Translate
/* 01028 80876948 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0102C 8087694C 00106080 */ sll $t4, $s0, 2
/* 01030 80876950 3C018087 */ lui $at, %hi(D_80876AD0) ## $at = 80870000
/* 01034 80876954 002C0821 */ addu $at, $at, $t4
/* 01038 80876958 C42C6AD0 */ lwc1 $f12, %lo(D_80876AD0)($at)
/* 0103C 8087695C 0C034348 */ jal Matrix_RotateY
/* 01040 80876960 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 01044 80876964 C6920170 */ lwc1 $f18, 0x0170($s4) ## 00000170
/* 01048 80876968 4406A000 */ mfc1 $a2, $f20
/* 0104C 8087696C 4600A306 */ mov.s $f12, $f20
/* 01050 80876970 46149382 */ mul.s $f14, $f18, $f20
/* 01054 80876974 0C0342A3 */ jal Matrix_Scale
/* 01058 80876978 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 0105C 8087697C 8E7102D0 */ lw $s1, 0x02D0($s3) ## 000002D0
/* 01060 80876980 02A02825 */ or $a1, $s5, $zero ## $a1 = 80877F6C
/* 01064 80876984 2406034F */ addiu $a2, $zero, 0x034F ## $a2 = 0000034F
/* 01068 80876988 26380008 */ addiu $t8, $s1, 0x0008 ## $t8 = 80877410
/* 0106C 8087698C AE7802D0 */ sw $t8, 0x02D0($s3) ## 000002D0
/* 01070 80876990 AE360000 */ sw $s6, 0x0000($s1) ## 80877408
/* 01074 80876994 8FA800E4 */ lw $t0, 0x00E4($sp)
/* 01078 80876998 0C0346A2 */ jal Matrix_NewMtx
/* 0107C 8087699C 8D040000 */ lw $a0, 0x0000($t0) ## 00000000
/* 01080 808769A0 AE220004 */ sw $v0, 0x0004($s1) ## 8087740C
/* 01084 808769A4 8E6302D0 */ lw $v1, 0x02D0($s3) ## 000002D0
/* 01088 808769A8 246F0008 */ addiu $t7, $v1, 0x0008 ## $t7 = 00000008
/* 0108C 808769AC AE6F02D0 */ sw $t7, 0x02D0($s3) ## 000002D0
/* 01090 808769B0 AC720004 */ sw $s2, 0x0004($v1) ## 00000004
/* 01094 808769B4 0C034221 */ jal Matrix_Pull
/* 01098 808769B8 AC770000 */ sw $s7, 0x0000($v1) ## 00000000
/* 0109C 808769BC 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000002
.L808769C0:
/* 010A0 808769C0 00108400 */ sll $s0, $s0, 16
/* 010A4 808769C4 00108403 */ sra $s0, $s0, 16
/* 010A8 808769C8 2A010004 */ slti $at, $s0, 0x0004
/* 010AC 808769CC 5420FFCC */ bnel $at, $zero, .L80876900
/* 010B0 808769D0 03D04821 */ addu $t1, $s8, $s0
.L808769D4:
/* 010B4 808769D4 8E940124 */ lw $s4, 0x0124($s4) ## 00000124
.L808769D8:
/* 010B8 808769D8 5680FEB6 */ bnel $s4, $zero, .L808764B4
/* 010BC 808769DC 868D0000 */ lh $t5, 0x0000($s4) ## 00000000
/* 010C0 808769E0 8FA900E4 */ lw $t1, 0x00E4($sp)
.L808769E4:
/* 010C4 808769E4 3C068087 */ lui $a2, %hi(D_80877F84) ## $a2 = 80870000
/* 010C8 808769E8 24C67F84 */ addiu $a2, $a2, %lo(D_80877F84) ## $a2 = 80877F84
/* 010CC 808769EC 27A400A8 */ addiu $a0, $sp, 0x00A8 ## $a0 = FFFFFFC8
/* 010D0 808769F0 24070359 */ addiu $a3, $zero, 0x0359 ## $a3 = 00000359
/* 010D4 808769F4 0C031AD5 */ jal Graph_CloseDisps
/* 010D8 808769F8 8D250000 */ lw $a1, 0x0000($t1) ## 00000000
/* 010DC 808769FC 8FBF006C */ lw $ra, 0x006C($sp)
/* 010E0 80876A00 D7B40038 */ ldc1 $f20, 0x0038($sp)
/* 010E4 80876A04 D7B60040 */ ldc1 $f22, 0x0040($sp)
/* 010E8 80876A08 8FB00048 */ lw $s0, 0x0048($sp)
/* 010EC 80876A0C 8FB1004C */ lw $s1, 0x004C($sp)
/* 010F0 80876A10 8FB20050 */ lw $s2, 0x0050($sp)
/* 010F4 80876A14 8FB30054 */ lw $s3, 0x0054($sp)
/* 010F8 80876A18 8FB40058 */ lw $s4, 0x0058($sp)
/* 010FC 80876A1C 8FB5005C */ lw $s5, 0x005C($sp)
/* 01100 80876A20 8FB60060 */ lw $s6, 0x0060($sp)
/* 01104 80876A24 8FB70064 */ lw $s7, 0x0064($sp)
/* 01108 80876A28 8FBE0068 */ lw $s8, 0x0068($sp)
/* 0110C 80876A2C 03E00008 */ jr $ra
/* 01110 80876A30 27BD00E0 */ addiu $sp, $sp, 0x00E0 ## $sp = 00000000
/* 01114 80876A34 00000000 */ nop
/* 01118 80876A38 00000000 */ nop
/* 0111C 80876A3C 00000000 */ nop

View file

@ -1,45 +0,0 @@
glabel BgGanonOtyuka_Init
/* 00000 80875920 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00004 80875924 AFA50034 */ sw $a1, 0x0034($sp)
/* 00008 80875928 AFBF001C */ sw $ra, 0x001C($sp)
/* 0000C 8087592C AFB00018 */ sw $s0, 0x0018($sp)
/* 00010 80875930 3C058087 */ lui $a1, %hi(D_80876A60) ## $a1 = 80870000
/* 00014 80875934 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00018 80875938 AFA00024 */ sw $zero, 0x0024($sp)
/* 0001C 8087593C 0C01E037 */ jal Actor_ProcessInitChain
/* 00020 80875940 24A56A60 */ addiu $a1, $a1, %lo(D_80876A60) ## $a1 = 80876A60
/* 00024 80875944 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00028 80875948 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 0002C 8087594C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00030 80875950 3C048087 */ lui $a0, %hi(D_80877E90) ## $a0 = 80870000
/* 00034 80875954 24847E90 */ addiu $a0, $a0, %lo(D_80877E90) ## $a0 = 80877E90
/* 00038 80875958 0C010620 */ jal DynaPolyInfo_Alloc
/* 0003C 8087595C 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00040 80875960 8FA40034 */ lw $a0, 0x0034($sp)
/* 00044 80875964 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00048 80875968 8FA70024 */ lw $a3, 0x0024($sp)
/* 0004C 8087596C 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00050 80875970 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00054 80875974 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 00058 80875978 24010023 */ addiu $at, $zero, 0x0023 ## $at = 00000023
/* 0005C 8087597C AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00060 80875980 11C10006 */ beq $t6, $at, .L8087599C
/* 00064 80875984 3C188087 */ lui $t8, %hi(func_808760DC) ## $t8 = 80870000
/* 00068 80875988 3C0F8087 */ lui $t7, %hi(func_80875A0C) ## $t7 = 80870000
/* 0006C 8087598C 25EF5A0C */ addiu $t7, $t7, %lo(func_80875A0C) ## $t7 = 80875A0C
/* 00070 80875990 AE000134 */ sw $zero, 0x0134($s0) ## 00000134
/* 00074 80875994 10000003 */ beq $zero, $zero, .L808759A4
/* 00078 80875998 AE0F0164 */ sw $t7, 0x0164($s0) ## 00000164
.L8087599C:
/* 0007C 8087599C 271860DC */ addiu $t8, $t8, %lo(func_808760DC) ## $t8 = 808760DC
/* 00080 808759A0 AE180130 */ sw $t8, 0x0130($s0) ## 00000130
.L808759A4:
/* 00084 808759A4 8FBF001C */ lw $ra, 0x001C($sp)
/* 00088 808759A8 8FB00018 */ lw $s0, 0x0018($sp)
/* 0008C 808759AC 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00090 808759B0 03E00008 */ jr $ra
/* 00094 808759B4 00000000 */ nop

View file

@ -1,20 +0,0 @@
glabel BgGanonOtyuka_Update
/* 007C8 808760E8 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 007CC 808760EC AFBF0014 */ sw $ra, 0x0014($sp)
/* 007D0 808760F0 AFA40018 */ sw $a0, 0x0018($sp)
/* 007D4 808760F4 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 007D8 808760F8 0320F809 */ jalr $ra, $t9
/* 007DC 808760FC 00000000 */ nop
/* 007E0 80876100 8FA40018 */ lw $a0, 0x0018($sp)
/* 007E4 80876104 908E016D */ lbu $t6, 0x016D($a0) ## 0000016D
/* 007E8 80876108 84820168 */ lh $v0, 0x0168($a0) ## 00000168
/* 007EC 8087610C 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001
/* 007F0 80876110 10400003 */ beq $v0, $zero, .L80876120
/* 007F4 80876114 A08F016D */ sb $t7, 0x016D($a0) ## 0000016D
/* 007F8 80876118 2458FFFF */ addiu $t8, $v0, 0xFFFF ## $t8 = FFFFFFFF
/* 007FC 8087611C A4980168 */ sh $t8, 0x0168($a0) ## 00000168
.L80876120:
/* 00800 80876120 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00804 80876124 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00808 80876128 03E00008 */ jr $ra
/* 0080C 8087612C 00000000 */ nop

View file

@ -1,194 +0,0 @@
.rdata
glabel D_80877EE4
.asciz "OTC O 1\n"
.balign 4
glabel D_80877EF0
.asciz "OTC O 2\n"
.balign 4
glabel D_80877EFC
.asciz "OTC O 3\n"
.balign 4
.late_rodata
glabel D_80877F9C
.float 4900.0
.text
glabel func_80875A0C
/* 000EC 80875A0C 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
/* 000F0 80875A10 AFBF003C */ sw $ra, 0x003C($sp)
/* 000F4 80875A14 AFB60038 */ sw $s6, 0x0038($sp)
/* 000F8 80875A18 AFB50034 */ sw $s5, 0x0034($sp)
/* 000FC 80875A1C AFB40030 */ sw $s4, 0x0030($sp)
/* 00100 80875A20 AFB3002C */ sw $s3, 0x002C($sp)
/* 00104 80875A24 AFB20028 */ sw $s2, 0x0028($sp)
/* 00108 80875A28 AFB10024 */ sw $s1, 0x0024($sp)
/* 0010C 80875A2C AFB00020 */ sw $s0, 0x0020($sp)
/* 00110 80875A30 F7B40018 */ sdc1 $f20, 0x0018($sp)
/* 00114 80875A34 908E016A */ lbu $t6, 0x016A($a0) ## 0000016A
/* 00118 80875A38 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0011C 80875A3C 00A0A825 */ or $s5, $a1, $zero ## $s5 = 00000000
/* 00120 80875A40 15C0000A */ bne $t6, $zero, .L80875A6C
/* 00124 80875A44 00000000 */ nop
/* 00128 80875A48 90AF1C26 */ lbu $t7, 0x1C26($a1) ## 00001C26
/* 0012C 80875A4C 3C018087 */ lui $at, %hi(D_80877F9C) ## $at = 80870000
/* 00130 80875A50 51E00083 */ beql $t7, $zero, .L80875C60
/* 00134 80875A54 8FBF003C */ lw $ra, 0x003C($sp)
/* 00138 80875A58 C484008C */ lwc1 $f4, 0x008C($a0) ## 0000008C
/* 0013C 80875A5C C4267F9C */ lwc1 $f6, %lo(D_80877F9C)($at)
/* 00140 80875A60 4606203C */ c.lt.s $f4, $f6
/* 00144 80875A64 00000000 */ nop
/* 00148 80875A68 4500007C */ bc1f .L80875C5C
.L80875A6C:
/* 0014C 80875A6C 3C048087 */ lui $a0, %hi(D_80877EE4) ## $a0 = 80870000
/* 00150 80875A70 0C00084C */ jal osSyncPrintf
/* 00154 80875A74 24847EE4 */ addiu $a0, $a0, %lo(D_80877EE4) ## $a0 = 80877EE4
/* 00158 80875A78 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 0015C 80875A7C 3C168087 */ lui $s6, %hi(D_80876A64) ## $s6 = 80870000
/* 00160 80875A80 3C128087 */ lui $s2, %hi(D_80876A68) ## $s2 = 80870000
/* 00164 80875A84 44818000 */ mtc1 $at, $f16 ## $f16 = 10.00
/* 00168 80875A88 26526A68 */ addiu $s2, $s2, %lo(D_80876A68) ## $s2 = 80876A68
/* 0016C 80875A8C 26D66A64 */ addiu $s6, $s6, %lo(D_80876A64) ## $s6 = 80876A64
/* 00170 80875A90 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
/* 00174 80875A94 2413000C */ addiu $s3, $zero, 0x000C ## $s3 = 0000000C
/* 00178 80875A98 24040106 */ addiu $a0, $zero, 0x0106 ## $a0 = 00000106
/* 0017C 80875A9C 8EA21C64 */ lw $v0, 0x1C64($s5) ## 00001C64
.L80875AA0:
/* 00180 80875AA0 5040002F */ beql $v0, $zero, .L80875B60
/* 00184 80875AA4 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
.L80875AA8:
/* 00188 80875AA8 10500004 */ beq $v0, $s0, .L80875ABC
/* 0018C 80875AAC 00000000 */ nop
/* 00190 80875AB0 84580000 */ lh $t8, 0x0000($v0) ## 00000000
/* 00194 80875AB4 10980003 */ beq $a0, $t8, .L80875AC4
/* 00198 80875AB8 00000000 */ nop
.L80875ABC:
/* 0019C 80875ABC 10000025 */ beq $zero, $zero, .L80875B54
/* 001A0 80875AC0 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
.L80875AC4:
/* 001A4 80875AC4 02330019 */ multu $s1, $s3
/* 001A8 80875AC8 C4480024 */ lwc1 $f8, 0x0024($v0) ## 00000024
/* 001AC 80875ACC C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 001B0 80875AD0 C4460028 */ lwc1 $f6, 0x0028($v0) ## 00000028
/* 001B4 80875AD4 460A4481 */ sub.s $f18, $f8, $f10
/* 001B8 80875AD8 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 001BC 80875ADC C44A002C */ lwc1 $f10, 0x002C($v0) ## 0000002C
/* 001C0 80875AE0 46083301 */ sub.s $f12, $f6, $f8
/* 001C4 80875AE4 0000C812 */ mflo $t9
/* 001C8 80875AE8 02591821 */ addu $v1, $s2, $t9
/* 001CC 80875AEC C4640000 */ lwc1 $f4, 0x0000($v1) ## 00000000
/* 001D0 80875AF0 C4660008 */ lwc1 $f6, 0x0008($v1) ## 00000008
/* 001D4 80875AF4 46122080 */ add.s $f2, $f4, $f18
/* 001D8 80875AF8 C604002C */ lwc1 $f4, 0x002C($s0) ## 0000002C
/* 001DC 80875AFC 46001005 */ abs.s $f0, $f2
/* 001E0 80875B00 46045481 */ sub.s $f18, $f10, $f4
/* 001E4 80875B04 4610003C */ c.lt.s $f0, $f16
/* 001E8 80875B08 46123380 */ add.s $f14, $f6, $f18
/* 001EC 80875B0C 45020011 */ bc1fl .L80875B54
/* 001F0 80875B10 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
/* 001F4 80875B14 46006005 */ abs.s $f0, $f12
/* 001F8 80875B18 4610003C */ c.lt.s $f0, $f16
/* 001FC 80875B1C 00000000 */ nop
/* 00200 80875B20 4502000C */ bc1fl .L80875B54
/* 00204 80875B24 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
/* 00208 80875B28 46007005 */ abs.s $f0, $f14
/* 0020C 80875B2C 4610003C */ c.lt.s $f0, $f16
/* 00210 80875B30 00000000 */ nop
/* 00214 80875B34 45000006 */ bc1f .L80875B50
/* 00218 80875B38 02D14821 */ addu $t1, $s6, $s1
/* 0021C 80875B3C 912A0000 */ lbu $t2, 0x0000($t1) ## 00000000
/* 00220 80875B40 9048016C */ lbu $t0, 0x016C($v0) ## 0000016C
/* 00224 80875B44 010A5825 */ or $t3, $t0, $t2 ## $t3 = 00000000
/* 00228 80875B48 10000004 */ beq $zero, $zero, .L80875B5C
/* 0022C 80875B4C A04B016C */ sb $t3, 0x016C($v0) ## 0000016C
.L80875B50:
/* 00230 80875B50 8C420124 */ lw $v0, 0x0124($v0) ## 00000124
.L80875B54:
/* 00234 80875B54 1440FFD4 */ bne $v0, $zero, .L80875AA8
/* 00238 80875B58 00000000 */ nop
.L80875B5C:
/* 0023C 80875B5C 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000002
.L80875B60:
/* 00240 80875B60 00118C00 */ sll $s1, $s1, 16
/* 00244 80875B64 00118C03 */ sra $s1, $s1, 16
/* 00248 80875B68 2A210004 */ slti $at, $s1, 0x0004
/* 0024C 80875B6C 5420FFCC */ bnel $at, $zero, .L80875AA0
/* 00250 80875B70 8EA21C64 */ lw $v0, 0x1C64($s5) ## 00001C64
/* 00254 80875B74 3C048087 */ lui $a0, %hi(D_80877EF0) ## $a0 = 80870000
/* 00258 80875B78 0C00084C */ jal osSyncPrintf
/* 0025C 80875B7C 24847EF0 */ addiu $a0, $a0, %lo(D_80877EF0) ## $a0 = 80877EF0
/* 00260 80875B80 3C014248 */ lui $at, 0x4248 ## $at = 42480000
/* 00264 80875B84 26B407C0 */ addiu $s4, $s5, 0x07C0 ## $s4 = 000007C0
/* 00268 80875B88 4481A000 */ mtc1 $at, $f20 ## $f20 = 50.00
/* 0026C 80875B8C 27B5004C */ addiu $s5, $sp, 0x004C ## $s5 = FFFFFFDC
/* 00270 80875B90 00008825 */ or $s1, $zero, $zero ## $s1 = 00000000
.L80875B94:
/* 00274 80875B94 02330019 */ multu $s1, $s3
/* 00278 80875B98 C60A0024 */ lwc1 $f10, 0x0024($s0) ## 00000024
/* 0027C 80875B9C 4406A000 */ mfc1 $a2, $f20
/* 00280 80875BA0 02802025 */ or $a0, $s4, $zero ## $a0 = 000007C0
/* 00284 80875BA4 02A02825 */ or $a1, $s5, $zero ## $a1 = FFFFFFDC
/* 00288 80875BA8 00006012 */ mflo $t4
/* 0028C 80875BAC 024C1821 */ addu $v1, $s2, $t4
/* 00290 80875BB0 C4680000 */ lwc1 $f8, 0x0000($v1) ## 00000000
/* 00294 80875BB4 C4720008 */ lwc1 $f18, 0x0008($v1) ## 00000008
/* 00298 80875BB8 460A4100 */ add.s $f4, $f8, $f10
/* 0029C 80875BBC E7A4004C */ swc1 $f4, 0x004C($sp)
/* 002A0 80875BC0 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 002A4 80875BC4 E7A60050 */ swc1 $f6, 0x0050($sp)
/* 002A8 80875BC8 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C
/* 002AC 80875BCC 46089280 */ add.s $f10, $f18, $f8
/* 002B0 80875BD0 0C00F8C3 */ jal func_8003E30C
/* 002B4 80875BD4 E7AA0054 */ swc1 $f10, 0x0054($sp)
/* 002B8 80875BD8 10400005 */ beq $v0, $zero, .L80875BF0
/* 002BC 80875BDC 02D17021 */ addu $t6, $s6, $s1
/* 002C0 80875BE0 920D016B */ lbu $t5, 0x016B($s0) ## 0000016B
/* 002C4 80875BE4 91CF0000 */ lbu $t7, 0x0000($t6) ## 00000000
/* 002C8 80875BE8 01AFC025 */ or $t8, $t5, $t7 ## $t8 = 00000000
/* 002CC 80875BEC A218016B */ sb $t8, 0x016B($s0) ## 0000016B
.L80875BF0:
/* 002D0 80875BF0 26310001 */ addiu $s1, $s1, 0x0001 ## $s1 = 00000001
/* 002D4 80875BF4 00118C00 */ sll $s1, $s1, 16
/* 002D8 80875BF8 00118C03 */ sra $s1, $s1, 16
/* 002DC 80875BFC 2A210004 */ slti $at, $s1, 0x0004
/* 002E0 80875C00 1420FFE4 */ bne $at, $zero, .L80875B94
/* 002E4 80875C04 00000000 */ nop
/* 002E8 80875C08 3C048087 */ lui $a0, %hi(D_80877EFC) ## $a0 = 80870000
/* 002EC 80875C0C 0C00084C */ jal osSyncPrintf
/* 002F0 80875C10 24847EFC */ addiu $a0, $a0, %lo(D_80877EFC) ## $a0 = 80877EFC
/* 002F4 80875C14 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 002F8 80875C18 44810000 */ mtc1 $at, $f0 ## $f0 = 255.00
/* 002FC 80875C1C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00300 80875C20 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
/* 00304 80875C24 3C198087 */ lui $t9, %hi(func_80875C88) ## $t9 = 80870000
/* 00308 80875C28 27395C88 */ addiu $t9, $t9, %lo(func_80875C88) ## $t9 = 80875C88
/* 0030C 80875C2C 24090014 */ addiu $t1, $zero, 0x0014 ## $t1 = 00000014
/* 00310 80875C30 AE190164 */ sw $t9, 0x0164($s0) ## 00000164
/* 00314 80875C34 A202016A */ sb $v0, 0x016A($s0) ## 0000016A
/* 00318 80875C38 A6090168 */ sh $t1, 0x0168($s0) ## 00000168
/* 0031C 80875C3C A202016E */ sb $v0, 0x016E($s0) ## 0000016E
/* 00320 80875C40 A200016D */ sb $zero, 0x016D($s0) ## 0000016D
/* 00324 80875C44 E6000174 */ swc1 $f0, 0x0174($s0) ## 00000174
/* 00328 80875C48 E6000178 */ swc1 $f0, 0x0178($s0) ## 00000178
/* 0032C 80875C4C E600017C */ swc1 $f0, 0x017C($s0) ## 0000017C
/* 00330 80875C50 E6000180 */ swc1 $f0, 0x0180($s0) ## 00000180
/* 00334 80875C54 E6000184 */ swc1 $f0, 0x0184($s0) ## 00000184
/* 00338 80875C58 E6040188 */ swc1 $f4, 0x0188($s0) ## 00000188
.L80875C5C:
/* 0033C 80875C5C 8FBF003C */ lw $ra, 0x003C($sp)
.L80875C60:
/* 00340 80875C60 D7B40018 */ ldc1 $f20, 0x0018($sp)
/* 00344 80875C64 8FB00020 */ lw $s0, 0x0020($sp)
/* 00348 80875C68 8FB10024 */ lw $s1, 0x0024($sp)
/* 0034C 80875C6C 8FB20028 */ lw $s2, 0x0028($sp)
/* 00350 80875C70 8FB3002C */ lw $s3, 0x002C($sp)
/* 00354 80875C74 8FB40030 */ lw $s4, 0x0030($sp)
/* 00358 80875C78 8FB50034 */ lw $s5, 0x0034($sp)
/* 0035C 80875C7C 8FB60038 */ lw $s6, 0x0038($sp)
/* 00360 80875C80 03E00008 */ jr $ra
/* 00364 80875C84 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000

View file

@ -1,333 +0,0 @@
.rdata
glabel D_80877F08
.asciz "MODE DOWN\n"
.balign 4
glabel D_80877F14
.asciz "MODE DOWN END\n"
.balign 4
.late_rodata
glabel D_80877FA0
.float -750.0
glabel D_80877FA4
.float 0.1
glabel D_80877FA8
.float -750.0
.text
glabel func_80875C88
/* 00368 80875C88 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80
/* 0036C 80875C8C AFB10040 */ sw $s1, 0x0040($sp)
/* 00370 80875C90 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000
/* 00374 80875C94 AFBF0044 */ sw $ra, 0x0044($sp)
/* 00378 80875C98 AFB0003C */ sw $s0, 0x003C($sp)
/* 0037C 80875C9C F7B60030 */ sdc1 $f22, 0x0030($sp)
/* 00380 80875CA0 F7B40028 */ sdc1 $f20, 0x0028($sp)
/* 00384 80875CA4 AFA50084 */ sw $a1, 0x0084($sp)
/* 00388 80875CA8 3C048087 */ lui $a0, %hi(D_80877F08) ## $a0 = 80870000
/* 0038C 80875CAC 8CB01C44 */ lw $s0, 0x1C44($a1) ## 00001C44
/* 00390 80875CB0 0C00084C */ jal osSyncPrintf
/* 00394 80875CB4 24847F08 */ addiu $a0, $a0, %lo(D_80877F08) ## $a0 = 80877F08
/* 00398 80875CB8 9222016E */ lbu $v0, 0x016E($s1) ## 0000016E
/* 0039C 80875CBC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 003A0 80875CC0 1441001B */ bne $v0, $at, .L80875D30
/* 003A4 80875CC4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 003A8 80875CC8 4481B000 */ mtc1 $at, $f22 ## $f22 = 1.00
/* 003AC 80875CCC 2624017C */ addiu $a0, $s1, 0x017C ## $a0 = 0000017C
/* 003B0 80875CD0 3C05432A */ lui $a1, 0x432A ## $a1 = 432A0000
/* 003B4 80875CD4 4406B000 */ mfc1 $a2, $f22
/* 003B8 80875CD8 0C01E107 */ jal Math_SmoothScaleMaxF
/* 003BC 80875CDC 3C074108 */ lui $a3, 0x4108 ## $a3 = 41080000
/* 003C0 80875CE0 4406B000 */ mfc1 $a2, $f22
/* 003C4 80875CE4 26240180 */ addiu $a0, $s1, 0x0180 ## $a0 = 00000180
/* 003C8 80875CE8 3C0542F0 */ lui $a1, 0x42F0 ## $a1 = 42F00000
/* 003CC 80875CEC 0C01E107 */ jal Math_SmoothScaleMaxF
/* 003D0 80875CF0 3C074158 */ lui $a3, 0x4158 ## $a3 = 41580000
/* 003D4 80875CF4 3C014020 */ lui $at, 0x4020 ## $at = 40200000
/* 003D8 80875CF8 4481A000 */ mtc1 $at, $f20 ## $f20 = 2.50
/* 003DC 80875CFC 4406B000 */ mfc1 $a2, $f22
/* 003E0 80875D00 26240170 */ addiu $a0, $s1, 0x0170 ## $a0 = 00000170
/* 003E4 80875D04 4405A000 */ mfc1 $a1, $f20
/* 003E8 80875D08 0C01E107 */ jal Math_SmoothScaleMaxF
/* 003EC 80875D0C 3C073E80 */ lui $a3, 0x3E80 ## $a3 = 3E800000
/* 003F0 80875D10 C6240170 */ lwc1 $f4, 0x0170($s1) ## 00000170
/* 003F4 80875D14 240F0002 */ addiu $t7, $zero, 0x0002 ## $t7 = 00000002
/* 003F8 80875D18 4604A032 */ c.eq.s $f20, $f4
/* 003FC 80875D1C 00000000 */ nop
/* 00400 80875D20 45020022 */ bc1fl .L80875DAC
/* 00404 80875D24 86220168 */ lh $v0, 0x0168($s1) ## 00000168
/* 00408 80875D28 1000001F */ beq $zero, $zero, .L80875DA8
/* 0040C 80875D2C A22F016E */ sb $t7, 0x016E($s1) ## 0000016E
.L80875D30:
/* 00410 80875D30 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00414 80875D34 1441001C */ bne $v0, $at, .L80875DA8
/* 00418 80875D38 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 0041C 80875D3C 4481B000 */ mtc1 $at, $f22 ## $f22 = 1.00
/* 00420 80875D40 4480A000 */ mtc1 $zero, $f20 ## $f20 = 0.00
/* 00424 80875D44 26240178 */ addiu $a0, $s1, 0x0178 ## $a0 = 00000178
/* 00428 80875D48 4406B000 */ mfc1 $a2, $f22
/* 0042C 80875D4C 4405A000 */ mfc1 $a1, $f20
/* 00430 80875D50 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00434 80875D54 3C0741CC */ lui $a3, 0x41CC ## $a3 = 41CC0000
/* 00438 80875D58 4405A000 */ mfc1 $a1, $f20
/* 0043C 80875D5C 4406B000 */ mfc1 $a2, $f22
/* 00440 80875D60 26240180 */ addiu $a0, $s1, 0x0180 ## $a0 = 00000180
/* 00444 80875D64 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00448 80875D68 3C074140 */ lui $a3, 0x4140 ## $a3 = 41400000
/* 0044C 80875D6C 4405A000 */ mfc1 $a1, $f20
/* 00450 80875D70 4406B000 */ mfc1 $a2, $f22
/* 00454 80875D74 26240184 */ addiu $a0, $s1, 0x0184 ## $a0 = 00000184
/* 00458 80875D78 0C01E107 */ jal Math_SmoothScaleMaxF
/* 0045C 80875D7C 3C0741CC */ lui $a3, 0x41CC ## $a3 = 41CC0000
/* 00460 80875D80 4405B000 */ mfc1 $a1, $f22
/* 00464 80875D84 26240170 */ addiu $a0, $s1, 0x0170 ## $a0 = 00000170
/* 00468 80875D88 0C01E123 */ jal Math_SmoothDownscaleMaxF
/* 0046C 80875D8C 3C063E80 */ lui $a2, 0x3E80 ## $a2 = 3E800000
/* 00470 80875D90 C6260170 */ lwc1 $f6, 0x0170($s1) ## 00000170
/* 00474 80875D94 4606A032 */ c.eq.s $f20, $f6
/* 00478 80875D98 00000000 */ nop
/* 0047C 80875D9C 45020003 */ bc1fl .L80875DAC
/* 00480 80875DA0 86220168 */ lh $v0, 0x0168($s1) ## 00000168
/* 00484 80875DA4 A220016E */ sb $zero, 0x016E($s1) ## 0000016E
.L80875DA8:
/* 00488 80875DA8 86220168 */ lh $v0, 0x0168($s1) ## 00000168
.L80875DAC:
/* 0048C 80875DAC 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00490 80875DB0 4481B000 */ mtc1 $at, $f22 ## $f22 = 1.00
/* 00494 80875DB4 4480A000 */ mtc1 $zero, $f20 ## $f20 = 0.00
/* 00498 80875DB8 1440009C */ bne $v0, $zero, .L8087602C
/* 0049C 80875DBC 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 004A0 80875DC0 4406B000 */ mfc1 $a2, $f22
/* 004A4 80875DC4 E6340170 */ swc1 $f20, 0x0170($s1) ## 00000170
/* 004A8 80875DC8 26240028 */ addiu $a0, $s1, 0x0028 ## $a0 = 00000028
/* 004AC 80875DCC 3C05C47A */ lui $a1, 0xC47A ## $a1 = C47A0000
/* 004B0 80875DD0 0C01E107 */ jal Math_SmoothScaleMaxF
/* 004B4 80875DD4 8E270068 */ lw $a3, 0x0068($s1) ## 00000068
/* 004B8 80875DD8 4406B000 */ mfc1 $a2, $f22
/* 004BC 80875DDC 26240068 */ addiu $a0, $s1, 0x0068 ## $a0 = 00000068
/* 004C0 80875DE0 3C0542C8 */ lui $a1, 0x42C8 ## $a1 = 42C80000
/* 004C4 80875DE4 0C01E107 */ jal Math_SmoothScaleMaxF
/* 004C8 80875DE8 3C074000 */ lui $a3, 0x4000 ## $a3 = 40000000
/* 004CC 80875DEC 9222016B */ lbu $v0, 0x016B($s1) ## 0000016B
/* 004D0 80875DF0 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 004D4 80875DF4 30580001 */ andi $t8, $v0, 0x0001 ## $t8 = 00000000
/* 004D8 80875DF8 5700000C */ bnel $t8, $zero, .L80875E2C
/* 004DC 80875DFC 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 004E0 80875E00 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00
/* 004E4 80875E04 C6280068 */ lwc1 $f8, 0x0068($s1) ## 00000068
/* 004E8 80875E08 863900B8 */ lh $t9, 0x00B8($s1) ## 000000B8
/* 004EC 80875E0C 9222016B */ lbu $v0, 0x016B($s1) ## 0000016B
/* 004F0 80875E10 46004282 */ mul.s $f10, $f8, $f0
/* 004F4 80875E14 4600540D */ trunc.w.s $f16, $f10
/* 004F8 80875E18 440B8000 */ mfc1 $t3, $f16
/* 004FC 80875E1C 00000000 */ nop
/* 00500 80875E20 032B6023 */ subu $t4, $t9, $t3
/* 00504 80875E24 A62C00B8 */ sh $t4, 0x00B8($s1) ## 000000B8
/* 00508 80875E28 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
.L80875E2C:
/* 0050C 80875E2C 44810000 */ mtc1 $at, $f0 ## $f0 = 30.00
/* 00510 80875E30 304D0002 */ andi $t5, $v0, 0x0002 ## $t5 = 00000000
/* 00514 80875E34 15A0000A */ bne $t5, $zero, .L80875E60
/* 00518 80875E38 3C018087 */ lui $at, %hi(D_80877FA0) ## $at = 80870000
/* 0051C 80875E3C C6320068 */ lwc1 $f18, 0x0068($s1) ## 00000068
/* 00520 80875E40 862E00B8 */ lh $t6, 0x00B8($s1) ## 000000B8
/* 00524 80875E44 9222016B */ lbu $v0, 0x016B($s1) ## 0000016B
/* 00528 80875E48 46009102 */ mul.s $f4, $f18, $f0
/* 0052C 80875E4C 4600218D */ trunc.w.s $f6, $f4
/* 00530 80875E50 44093000 */ mfc1 $t1, $f6
/* 00534 80875E54 00000000 */ nop
/* 00538 80875E58 01C95021 */ addu $t2, $t6, $t1
/* 0053C 80875E5C A62A00B8 */ sh $t2, 0x00B8($s1) ## 000000B8
.L80875E60:
/* 00540 80875E60 30590004 */ andi $t9, $v0, 0x0004 ## $t9 = 00000000
/* 00544 80875E64 5720000B */ bnel $t9, $zero, .L80875E94
/* 00548 80875E68 304E0008 */ andi $t6, $v0, 0x0008 ## $t6 = 00000000
/* 0054C 80875E6C C6280068 */ lwc1 $f8, 0x0068($s1) ## 00000068
/* 00550 80875E70 862B00B4 */ lh $t3, 0x00B4($s1) ## 000000B4
/* 00554 80875E74 9222016B */ lbu $v0, 0x016B($s1) ## 0000016B
/* 00558 80875E78 46004282 */ mul.s $f10, $f8, $f0
/* 0055C 80875E7C 4600540D */ trunc.w.s $f16, $f10
/* 00560 80875E80 44188000 */ mfc1 $t8, $f16
/* 00564 80875E84 00000000 */ nop
/* 00568 80875E88 01784021 */ addu $t0, $t3, $t8
/* 0056C 80875E8C A62800B4 */ sh $t0, 0x00B4($s1) ## 000000B4
/* 00570 80875E90 304E0008 */ andi $t6, $v0, 0x0008 ## $t6 = 00000000
.L80875E94:
/* 00574 80875E94 55C0000A */ bnel $t6, $zero, .L80875EC0
/* 00578 80875E98 C6280028 */ lwc1 $f8, 0x0028($s1) ## 00000028
/* 0057C 80875E9C C6320068 */ lwc1 $f18, 0x0068($s1) ## 00000068
/* 00580 80875EA0 862900B4 */ lh $t1, 0x00B4($s1) ## 000000B4
/* 00584 80875EA4 46009102 */ mul.s $f4, $f18, $f0
/* 00588 80875EA8 4600218D */ trunc.w.s $f6, $f4
/* 0058C 80875EAC 440D3000 */ mfc1 $t5, $f6
/* 00590 80875EB0 00000000 */ nop
/* 00594 80875EB4 012D7823 */ subu $t7, $t1, $t5
/* 00598 80875EB8 A62F00B4 */ sh $t7, 0x00B4($s1) ## 000000B4
/* 0059C 80875EBC C6280028 */ lwc1 $f8, 0x0028($s1) ## 00000028
.L80875EC0:
/* 005A0 80875EC0 C42A7FA0 */ lwc1 $f10, %lo(D_80877FA0)($at)
/* 005A4 80875EC4 3C01C3C8 */ lui $at, 0xC3C8 ## $at = C3C80000
/* 005A8 80875EC8 460A403C */ c.lt.s $f8, $f10
/* 005AC 80875ECC 00000000 */ nop
/* 005B0 80875ED0 45000078 */ bc1f .L808760B4
/* 005B4 80875ED4 00000000 */ nop
/* 005B8 80875ED8 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 005BC 80875EDC 44819000 */ mtc1 $at, $f18 ## $f18 = -400.00
/* 005C0 80875EE0 3C018087 */ lui $at, %hi(D_80877FA4) ## $at = 80870000
/* 005C4 80875EE4 00008025 */ or $s0, $zero, $zero ## $s0 = 00000000
/* 005C8 80875EE8 4612803C */ c.lt.s $f16, $f18
/* 005CC 80875EEC 00000000 */ nop
/* 005D0 80875EF0 4500004A */ bc1f .L8087601C
/* 005D4 80875EF4 00000000 */ nop
/* 005D8 80875EF8 C4247FA4 */ lwc1 $f4, %lo(D_80877FA4)($at)
/* 005DC 80875EFC 3C014316 */ lui $at, 0x4316 ## $at = 43160000
/* 005E0 80875F00 4481B000 */ mtc1 $at, $f22 ## $f22 = 150.00
/* 005E4 80875F04 E7B4005C */ swc1 $f20, 0x005C($sp)
/* 005E8 80875F08 E7B40054 */ swc1 $f20, 0x0054($sp)
/* 005EC 80875F0C E7B40068 */ swc1 $f20, 0x0068($sp)
/* 005F0 80875F10 E7B40064 */ swc1 $f20, 0x0064($sp)
/* 005F4 80875F14 E7B40060 */ swc1 $f20, 0x0060($sp)
/* 005F8 80875F18 E7A40058 */ swc1 $f4, 0x0058($sp)
.L80875F1C:
/* 005FC 80875F1C 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 00600 80875F20 4600B306 */ mov.s $f12, $f22
/* 00604 80875F24 C6260024 */ lwc1 $f6, 0x0024($s1) ## 00000024
/* 00608 80875F28 3C014270 */ lui $at, 0x4270 ## $at = 42700000
/* 0060C 80875F2C 44816000 */ mtc1 $at, $f12 ## $f12 = 60.00
/* 00610 80875F30 46060200 */ add.s $f8, $f0, $f6
/* 00614 80875F34 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00618 80875F38 E7A8006C */ swc1 $f8, 0x006C($sp)
/* 0061C 80875F3C 3C018087 */ lui $at, %hi(D_80877FA8) ## $at = 80870000
/* 00620 80875F40 C42A7FA8 */ lwc1 $f10, %lo(D_80877FA8)($at)
/* 00624 80875F44 4600B306 */ mov.s $f12, $f22
/* 00628 80875F48 460A0400 */ add.s $f16, $f0, $f10
/* 0062C 80875F4C 0C00CFC8 */ jal Math_Rand_CenteredFloat
/* 00630 80875F50 E7B00070 */ swc1 $f16, 0x0070($sp)
/* 00634 80875F54 C632002C */ lwc1 $f18, 0x002C($s1) ## 0000002C
/* 00638 80875F58 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 0063C 80875F5C 44816000 */ mtc1 $at, $f12 ## $f12 = 100.00
/* 00640 80875F60 46120100 */ add.s $f4, $f0, $f18
/* 00644 80875F64 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00648 80875F68 E7A40074 */ swc1 $f4, 0x0074($sp)
/* 0064C 80875F6C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00650 80875F70 44816000 */ mtc1 $at, $f12 ## $f12 = 5.00
/* 00654 80875F74 0C00CFBE */ jal Math_Rand_ZeroFloat
/* 00658 80875F78 46000506 */ mov.s $f20, $f0
/* 0065C 80875F7C 4600A18D */ trunc.w.s $f6, $f20
/* 00660 80875F80 3C0B8087 */ lui $t3, %hi(D_80876A98) ## $t3 = 80870000
/* 00664 80875F84 256B6A98 */ addiu $t3, $t3, %lo(D_80876A98) ## $t3 = 80876A98
/* 00668 80875F88 4600020D */ trunc.w.s $f8, $f0
/* 0066C 80875F8C 440E3000 */ mfc1 $t6, $f6
/* 00670 80875F90 3C188087 */ lui $t8, %hi(D_80876A9C) ## $t8 = 80870000
/* 00674 80875F94 27186A9C */ addiu $t8, $t8, %lo(D_80876A9C) ## $t8 = 80876A9C
/* 00678 80875F98 440F4000 */ mfc1 $t7, $f8
/* 0067C 80875F9C AFAB0010 */ sw $t3, 0x0010($sp)
/* 00680 80875FA0 AFB80014 */ sw $t8, 0x0014($sp)
/* 00684 80875FA4 000E5400 */ sll $t2, $t6, 16
/* 00688 80875FA8 000F5C00 */ sll $t3, $t7, 16
/* 0068C 80875FAC 000BC403 */ sra $t8, $t3, 16
/* 00690 80875FB0 000ACC03 */ sra $t9, $t2, 16
/* 00694 80875FB4 272C00FA */ addiu $t4, $t9, 0x00FA ## $t4 = 000000FA
/* 00698 80875FB8 2708000F */ addiu $t0, $t8, 0x000F ## $t0 = 80876AAB
/* 0069C 80875FBC 24090005 */ addiu $t1, $zero, 0x0005 ## $t1 = 00000005
/* 006A0 80875FC0 AFA9001C */ sw $t1, 0x001C($sp)
/* 006A4 80875FC4 AFA80020 */ sw $t0, 0x0020($sp)
/* 006A8 80875FC8 AFAC0018 */ sw $t4, 0x0018($sp)
/* 006AC 80875FCC 8FA40084 */ lw $a0, 0x0084($sp)
/* 006B0 80875FD0 27A5006C */ addiu $a1, $sp, 0x006C ## $a1 = FFFFFFEC
/* 006B4 80875FD4 27A60060 */ addiu $a2, $sp, 0x0060 ## $a2 = FFFFFFE0
/* 006B8 80875FD8 0C00A0DB */ jal func_8002836C
/* 006BC 80875FDC 27A70054 */ addiu $a3, $sp, 0x0054 ## $a3 = FFFFFFD4
/* 006C0 80875FE0 26100001 */ addiu $s0, $s0, 0x0001 ## $s0 = 00000001
/* 006C4 80875FE4 00108400 */ sll $s0, $s0, 16
/* 006C8 80875FE8 00108403 */ sra $s0, $s0, 16
/* 006CC 80875FEC 2A01001E */ slti $at, $s0, 0x001E
/* 006D0 80875FF0 1420FFCA */ bne $at, $zero, .L80875F1C
/* 006D4 80875FF4 00000000 */ nop
/* 006D8 80875FF8 8FA40084 */ lw $a0, 0x0084($sp)
/* 006DC 80875FFC 2405000A */ addiu $a1, $zero, 0x000A ## $a1 = 0000000A
/* 006E0 80876000 0C00CF6E */ jal func_80033DB8
/* 006E4 80876004 2406000F */ addiu $a2, $zero, 0x000F ## $a2 = 0000000F
/* 006E8 80876008 8FA40084 */ lw $a0, 0x0084($sp)
/* 006EC 8087600C 26250024 */ addiu $a1, $s1, 0x0024 ## $a1 = 00000024
/* 006F0 80876010 24060028 */ addiu $a2, $zero, 0x0028 ## $a2 = 00000028
/* 006F4 80876014 0C01AEB6 */ jal Audio_PlaySoundAtPosition
/* 006F8 80876018 24072839 */ addiu $a3, $zero, 0x2839 ## $a3 = 00002839
.L8087601C:
/* 006FC 8087601C 0C00B55C */ jal Actor_Kill
/* 00700 80876020 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00704 80876024 10000023 */ beq $zero, $zero, .L808760B4
/* 00708 80876028 00000000 */ nop
.L8087602C:
/* 0070C 8087602C 1441000D */ bne $v0, $at, .L80876064
/* 00710 80876030 3C078013 */ lui $a3, %hi(D_801333E0)
/* 00714 80876034 3C078013 */ lui $a3, %hi(D_801333E0)
/* 00718 80876038 3C0E8013 */ lui $t6, %hi(D_801333E8)
/* 0071C 8087603C 24E733E0 */ addiu $a3, %lo(D_801333E0)
/* 00720 80876040 25CE33E8 */ addiu $t6, %lo(D_801333E8)
/* 00724 80876044 AFAE0014 */ sw $t6, 0x0014($sp)
/* 00728 80876048 AFA70010 */ sw $a3, 0x0010($sp)
/* 0072C 8087604C 24042893 */ addiu $a0, $zero, 0x2893 ## $a0 = 00002893
/* 00730 80876050 262500E4 */ addiu $a1, $s1, 0x00E4 ## $a1 = 000000E4
/* 00734 80876054 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* 00738 80876058 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 0073C 8087605C 1000000B */ beq $zero, $zero, .L8087608C
/* 00740 80876060 4406B000 */ mfc1 $a2, $f22
.L80876064:
/* 00744 80876064 3C0A8013 */ lui $t2, %hi(D_801333E8)
/* 00748 80876068 24E733E0 */ addiu $a3, %lo(D_801333E0)
/* 0074C 8087606C 254A33E8 */ addiu $t2, %lo(D_801333E8)
/* 00750 80876070 AFAA0014 */ sw $t2, 0x0014($sp)
/* 00754 80876074 AFA70010 */ sw $a3, 0x0010($sp)
/* 00758 80876078 2404205C */ addiu $a0, $zero, 0x205C ## $a0 = 0000205C
/* 0075C 8087607C 262500E4 */ addiu $a1, $s1, 0x00E4 ## $a1 = 000000E4
/* 00760 80876080 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* 00764 80876084 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 00768 80876088 4406B000 */ mfc1 $a2, $f22
.L8087608C:
/* 0076C 8087608C 26240028 */ addiu $a0, $s1, 0x0028 ## $a0 = 00000028
/* 00770 80876090 3C05C47A */ lui $a1, 0xC47A ## $a1 = C47A0000
/* 00774 80876094 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00778 80876098 8E270068 */ lw $a3, 0x0068($s1) ## 00000068
/* 0077C 8087609C 4406B000 */ mfc1 $a2, $f22
/* 00780 808760A0 3C073DCC */ lui $a3, 0x3DCC ## $a3 = 3DCC0000
/* 00784 808760A4 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3DCCCCCD
/* 00788 808760A8 26240068 */ addiu $a0, $s1, 0x0068 ## $a0 = 00000068
/* 0078C 808760AC 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00790 808760B0 3C0542C8 */ lui $a1, 0x42C8 ## $a1 = 42C80000
.L808760B4:
/* 00794 808760B4 3C048087 */ lui $a0, %hi(D_80877F14) ## $a0 = 80870000
/* 00798 808760B8 0C00084C */ jal osSyncPrintf
/* 0079C 808760BC 24847F14 */ addiu $a0, $a0, %lo(D_80877F14) ## $a0 = 80877F14
/* 007A0 808760C0 8FBF0044 */ lw $ra, 0x0044($sp)
/* 007A4 808760C4 D7B40028 */ ldc1 $f20, 0x0028($sp)
/* 007A8 808760C8 D7B60030 */ ldc1 $f22, 0x0030($sp)
/* 007AC 808760CC 8FB0003C */ lw $s0, 0x003C($sp)
/* 007B0 808760D0 8FB10040 */ lw $s1, 0x0040($sp)
/* 007B4 808760D4 03E00008 */ jr $ra
/* 007B8 808760D8 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000

View file

@ -1,4 +0,0 @@
glabel func_808760DC
/* 007BC 808760DC AFA40000 */ sw $a0, 0x0000($sp)
/* 007C0 808760E0 03E00008 */ jr $ra
/* 007C4 808760E4 AFA50004 */ sw $a1, 0x0004($sp)

File diff suppressed because one or more lines are too long

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_80877FC0
.incbin "baserom/ovl_Bg_Ganon_Otyuka", 0x26A0, 0x000001A0

3
spec
View file

@ -689,8 +689,7 @@ endseg
beginseg
name "ovl_Bg_Ganon_Otyuka"
include "build/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.o"
include "build/data/overlays/actors/z_bg_ganon_otyuka.data.o"
include "build/data/overlays/actors/z_bg_ganon_otyuka.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Ganon_Otyuka/ovl_Bg_Ganon_Otyuka_reloc.o"
endseg
beginseg

View file

@ -5,21 +5,28 @@
*/
#include "z_bg_ganon_otyuka.h"
#include "overlays/actors/ovl_Boss_Ganon/z_boss_ganon.h"
#include "vt.h"
#define FLAGS 0x00000030
#define THIS ((BgGanonOtyuka*)thisx)
typedef enum {
/* 0x00 */ FLASH_NONE,
/* 0x01 */ FLASH_GROW,
/* 0x02 */ FLASH_SHRINK
} FlashState;
void BgGanonOtyuka_Init(Actor* thisx, GlobalContext* globalCtx);
void BgGanonOtyuka_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgGanonOtyuka_Update(Actor* thisx, GlobalContext* globalCtx);
void BgGanonOtyuka_Draw(Actor* thisx, GlobalContext* globalCtx);
void func_80875A0C(BgGanonOtyuka* this, GlobalContext* globalCtx);
void func_80875C88(BgGanonOtyuka* this, GlobalContext* globalCtx);
void func_808760DC(BgGanonOtyuka* this, GlobalContext* globalCtx);
void BgGanonOtyuka_WaitToFall(BgGanonOtyuka* this, GlobalContext* globalCtx);
void BgGanonOtyuka_Fall(BgGanonOtyuka* this, GlobalContext* globalCtx);
void BgGanonOtyuka_DoNothing(Actor* thisx, GlobalContext* globalCtx);
/*
const ActorInit Bg_Ganon_Otyuka_InitVars = {
ACTOR_BG_GANON_OTYUKA,
ACTORTYPE_PROP,
@ -31,18 +38,362 @@ const ActorInit Bg_Ganon_Otyuka_InitVars = {
(ActorFunc)BgGanonOtyuka_Update,
(ActorFunc)BgGanonOtyuka_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/BgGanonOtyuka_Init.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 1000, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/BgGanonOtyuka_Destroy.s")
static u8 sSides[] = { OTYUKA_SIDE_EAST, OTYUKA_SIDE_WEST, OTYUKA_SIDE_SOUTH, OTYUKA_SIDE_NORTH };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/func_80875A0C.s")
static Vec3f D_80876A68[] = {
{ 120.0f, 0.0f, 0.0f },
{ -120.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 120.0f },
{ 0.0f, 0.0f, -120.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/func_80875C88.s")
static Color_RGBA8 sDustPrimColor = { 60, 60, 0, 0 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/func_808760DC.s")
static Color_RGBA8 sDustEnvColor = { 50, 20, 0, 0 };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/BgGanonOtyuka_Update.s")
static Vec3f sSideCenters[] = {
{ 60.0f, 0.0f, 0.0f },
{ -60.0f, 0.0f, 0.0f },
{ 0.0f, 0.0f, 60.0f },
{ 0.0f, 0.0f, -60.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Ganon_Otyuka/BgGanonOtyuka_Draw.s")
static f32 sSideAngles[] = { M_PI / 2, -M_PI / 2, 0.0f, M_PI };
#include "z_bg_ganon_otyuka_gfx.c"
static CamData sCameraDataList[] = { { 0, 0, 0 } };
static UNK_TYPE sSurfaceTypeList[] = {
0x00000000,
0x000007C0,
0x00000000,
0x000007C2,
};
static CollisionPoly sPolyList[] = {
{ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02 }, { 32767, 0, 0 }, -60 },
{ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x03 }, { 32767, 0, 0 }, -60 },
{ { 0x00, 0x00, 0x00, 0x03, 0x00, 0x02, 0x00, 0x04 }, { 0, 0, -32767 }, -60 },
{ { 0x00, 0x00, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05 }, { 0, 0, -32767 }, -60 },
{ { 0x00, 0x00, 0x00, 0x05, 0x00, 0x04, 0x00, 0x06 }, { -32767, 0, 0 }, -60 },
{ { 0x00, 0x00, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07 }, { -32767, 0, 0 }, -60 },
{ { 0x00, 0x00, 0x00, 0x07, 0x00, 0x06, 0x00, 0x01 }, { 0, 0, 32767 }, -60 },
{ { 0x00, 0x00, 0x00, 0x07, 0x00, 0x01, 0x00, 0x00 }, { 0, 0, 32767 }, -60 },
{ { 0x00, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x05 }, { 0, 32767, 0 }, 0 },
{ { 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x07 }, { 0, 32767, 0 }, 0 },
};
static Vec3s sVtxList[] = {
{ 60, 0, 60 }, { 60, -60, 60 }, { 60, -60, -60 }, { 60, 0, -60 },
{ -60, -60, -60 }, { -60, 0, -60 }, { -60, -60, 60 }, { -60, 0, 60 },
};
static CollisionHeader sColHeader = {
{ -60, -60, -60 }, { 60, 0, 60 }, ARRAY_COUNT(sVtxList), sVtxList, ARRAY_COUNT(sPolyList),
sPolyList, sSurfaceTypeList, sCameraDataList, 0, NULL,
};
void BgGanonOtyuka_Init(Actor* thisx, GlobalContext* globalCtx) {
BgGanonOtyuka* this = THIS;
s32 pad;
CollisionHeader* colHeader = NULL;
Actor_ProcessInitChain(thisx, sInitChain);
DynaPolyInfo_SetActorMove(&this->dyna, 0);
DynaPolyInfo_Alloc(&sColHeader, &colHeader);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, colHeader);
if (thisx->params != 0x23) {
thisx->draw = NULL;
this->actionFunc = BgGanonOtyuka_WaitToFall;
} else {
thisx->update = BgGanonOtyuka_DoNothing;
}
}
void BgGanonOtyuka_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgGanonOtyuka* this = THIS;
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
osSyncPrintf(VT_FGCOL(GREEN));
osSyncPrintf("WHY !!!!!!!!!!!!!!!!\n");
osSyncPrintf(VT_RST);
}
void BgGanonOtyuka_WaitToFall(BgGanonOtyuka* this, GlobalContext* globalCtx) {
Actor* thisx = &this->dyna.actor;
Actor* prop;
BgGanonOtyuka* platform;
f32 dx;
f32 dy;
f32 dz;
Vec3f center;
s16 i;
if (this->isFalling || ((globalCtx->actorCtx.unk_02 != 0) && (this->dyna.actor.xyzDistFromLinkSq < 4900.0f))) {
osSyncPrintf("OTC O 1\n");
for (i = 0; i < ARRAY_COUNT(D_80876A68); i++) {
prop = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first;
while (prop != NULL) {
if ((prop == thisx) || (prop->id != ACTOR_BG_GANON_OTYUKA)) {
prop = prop->next;
continue;
}
platform = (BgGanonOtyuka*)prop;
dx = platform->dyna.actor.posRot.pos.x - this->dyna.actor.posRot.pos.x + D_80876A68[i].x;
dy = platform->dyna.actor.posRot.pos.y - this->dyna.actor.posRot.pos.y;
dz = platform->dyna.actor.posRot.pos.z - this->dyna.actor.posRot.pos.z + D_80876A68[i].z;
if ((fabsf(dx) < 10.0f) && (fabsf(dy) < 10.0f) && (fabsf(dz) < 10.0f)) {
platform->visibleSides |= sSides[i];
break;
} else {
prop = prop->next;
}
}
}
osSyncPrintf("OTC O 2\n");
for (i = 0; i < ARRAY_COUNT(D_80876A68); i++) {
center.x = this->dyna.actor.posRot.pos.x + D_80876A68[i].x;
center.y = this->dyna.actor.posRot.pos.y;
center.z = this->dyna.actor.posRot.pos.z + D_80876A68[i].z;
if (func_8003E30C(&globalCtx->colCtx, &center, 50.0f)) {
this->unwalledSides |= sSides[i];
}
}
osSyncPrintf("OTC O 3\n");
this->actionFunc = BgGanonOtyuka_Fall;
this->isFalling = true;
this->dropTimer = 20;
this->flashState = FLASH_GROW;
this->flashTimer = 0;
this->flashPrimColorR = 255.0f;
this->flashPrimColorG = 255.0f;
this->flashPrimColorB = 255.0f;
this->flashEnvColorR = 255.0f;
this->flashEnvColorG = 255.0f;
this->flashEnvColorB = 0.0f;
}
}
void BgGanonOtyuka_Fall(BgGanonOtyuka* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s16 i;
Vec3f pos;
Vec3f velocity;
Vec3f accel;
osSyncPrintf("MODE DOWN\n");
if (this->flashState == FLASH_GROW) {
Math_SmoothScaleMaxF(&this->flashPrimColorB, 170.0f, 1.0f, 8.5f);
Math_SmoothScaleMaxF(&this->flashEnvColorR, 120.0f, 1.0f, 13.5f);
Math_SmoothScaleMaxF(&this->flashYScale, 2.5f, 1.0f, 0.25f);
if (this->flashYScale == 2.5f) {
this->flashState = FLASH_SHRINK;
}
} else if (this->flashState == FLASH_SHRINK) {
Math_SmoothScaleMaxF(&this->flashPrimColorG, 0.0f, 1.0f, 25.5f);
Math_SmoothScaleMaxF(&this->flashEnvColorR, 0.0f, 1.0f, 12.0f);
Math_SmoothScaleMaxF(&this->flashEnvColorG, 0.0f, 1.0f, 25.5f);
Math_SmoothDownscaleMaxF(&this->flashYScale, 1.0f, 0.25f);
if (this->flashYScale == 0.0f) {
this->flashState = FLASH_NONE;
}
}
if (this->dropTimer == 0) {
this->flashYScale = 0.0f;
Math_SmoothScaleMaxF(&this->dyna.actor.posRot.pos.y, -1000.0f, 1.0f, this->dyna.actor.speedXZ);
Math_SmoothScaleMaxF(&this->dyna.actor.speedXZ, 100.0f, 1.0f, 2.0f);
if (!(this->unwalledSides & OTYUKA_SIDE_EAST)) {
this->dyna.actor.shape.rot.z -= (s16)(this->dyna.actor.speedXZ * 30.0f);
}
if (!(this->unwalledSides & OTYUKA_SIDE_WEST)) {
this->dyna.actor.shape.rot.z += (s16)(this->dyna.actor.speedXZ * 30.0f);
}
if (!(this->unwalledSides & OTYUKA_SIDE_SOUTH)) {
this->dyna.actor.shape.rot.x += (s16)(this->dyna.actor.speedXZ * 30.0f);
}
if (!(this->unwalledSides & OTYUKA_SIDE_NORTH)) {
this->dyna.actor.shape.rot.x -= (s16)(this->dyna.actor.speedXZ * 30.0f);
}
if (this->dyna.actor.posRot.pos.y < -750.0f) {
if (player->actor.posRot.pos.y < -400.0f) {
accel.x = accel.z = 0.0f;
accel.y = 0.1f;
velocity.x = velocity.y = velocity.z = 0.0f;
for (i = 0; i < 30; i++) {
pos.x = Math_Rand_CenteredFloat(150.0f) + this->dyna.actor.posRot.pos.x;
pos.y = Math_Rand_ZeroFloat(60.0f) + -750.0f;
pos.z = Math_Rand_CenteredFloat(150.0f) + this->dyna.actor.posRot.pos.z;
func_8002836C(globalCtx, &pos, &velocity, &accel, &sDustPrimColor, &sDustEnvColor,
(s16)Math_Rand_ZeroFloat(100.0f) + 250, 5, (s16)Math_Rand_ZeroFloat(5.0f) + 15);
}
func_80033DB8(globalCtx, 10, 15);
Audio_PlaySoundAtPosition(globalCtx, &this->dyna.actor.posRot.pos, 0x28, 0x2839);
}
Actor_Kill(&this->dyna.actor);
}
} else {
if (this->dropTimer == 1) {
Audio_PlaySoundGeneral(NA_SE_EV_STONEDOOR_STOP, &this->dyna.actor.projectedPos, 4, &D_801333E0, &D_801333E0,
&D_801333E8);
} else {
Audio_PlaySoundGeneral(NA_SE_EV_BLOCKSINK - SFX_FLAG, &this->dyna.actor.projectedPos, 4, &D_801333E0,
&D_801333E0, &D_801333E8);
}
Math_SmoothScaleMaxF(&this->dyna.actor.posRot.pos.y, -1000.0f, 1.0f, this->dyna.actor.speedXZ);
Math_SmoothScaleMaxF(&this->dyna.actor.speedXZ, 100.0f, 1.0f, 0.1f);
}
osSyncPrintf("MODE DOWN END\n");
}
void BgGanonOtyuka_DoNothing(Actor* thisx, GlobalContext* globalCtx) {
}
void BgGanonOtyuka_Update(Actor* thisx, GlobalContext* globalCtx) {
BgGanonOtyuka* this = THIS;
this->actionFunc(this, globalCtx);
this->flashTimer++;
if (this->dropTimer != 0) {
this->dropTimer--;
}
}
void BgGanonOtyuka_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgGanonOtyuka* this = THIS;
s16 i;
Gfx* phi_s2;
Gfx* phi_s1;
Camera* camera = Gameplay_GetCamera(globalCtx, 0);
Actor* actor;
BgGanonOtyuka* platform;
BossGanon* ganondorf;
f32 spBC = -30.0f;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 702);
actor = globalCtx->actorCtx.actorList[ACTORTYPE_BOSS].first;
while (actor != NULL) {
if (actor->id == ACTOR_BOSS_GANON) {
ganondorf = (BossGanon*)actor;
if (ganondorf->actor.params == 0) {
if (ganondorf->unk_198 != 0) {
spBC = -2000.0f;
}
break;
}
}
actor = actor->next;
}
func_80093D18(globalCtx->state.gfxCtx);
gSPDisplayList(POLY_OPA_DISP++, sPlatformSetupDList);
actor = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first;
while (actor != NULL) {
if (actor->id == ACTOR_BG_GANON_OTYUKA) {
platform = (BgGanonOtyuka*)actor;
if (platform->dyna.actor.projectedPos.z > spBC) {
if (camera->eye.y > platform->dyna.actor.posRot.pos.y) {
phi_s2 = sPlatformTopDList;
} else {
phi_s2 = sPlatformBottomDList;
}
Matrix_Translate(platform->dyna.actor.posRot.pos.x, platform->dyna.actor.posRot.pos.y,
platform->dyna.actor.posRot.pos.z, MTXMODE_NEW);
phi_s1 = NULL;
if (platform->isFalling) {
Matrix_RotateX((platform->dyna.actor.shape.rot.x / (f32)0x8000) * M_PI, MTXMODE_APPLY);
Matrix_RotateZ((platform->dyna.actor.shape.rot.z / (f32)0x8000) * M_PI, MTXMODE_APPLY);
if (camera->eye.y > platform->dyna.actor.posRot.pos.y) {
phi_s1 = sPlatformBottomDList;
} else {
phi_s1 = sPlatformTopDList;
}
}
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 766),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, phi_s2);
if (phi_s1 != NULL) {
gSPDisplayList(POLY_OPA_DISP++, phi_s1);
}
for (i = 0; i < ARRAY_COUNT(sSides); i++) {
if (platform->visibleSides & sSides[i]) {
Matrix_Push();
Matrix_Translate(sSideCenters[i].x, 0.0f, sSideCenters[i].z, MTXMODE_APPLY);
Matrix_RotateY(sSideAngles[i], MTXMODE_APPLY);
gSPMatrix(POLY_OPA_DISP++,
Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 785),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_OPA_DISP++, sPlatformSideDList);
Matrix_Pull();
}
}
}
}
actor = actor->next;
}
func_80093D84(globalCtx->state.gfxCtx);
actor = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first;
while (actor != NULL) {
if (actor->id == ACTOR_BG_GANON_OTYUKA) {
platform = (BgGanonOtyuka*)actor;
if ((platform->dyna.actor.projectedPos.z > -30.0f) && (platform->flashState != FLASH_NONE)) {
gSPSegment(POLY_XLU_DISP++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, platform->flashTimer * 4, 0, 32, 64, 1,
platform->flashTimer * 4, 0, 32, 64));
gDPPipeSync(POLY_XLU_DISP++);
gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, platform->flashPrimColorR, platform->flashPrimColorG,
platform->flashPrimColorB, 0);
gDPSetEnvColor(POLY_XLU_DISP++, platform->flashEnvColorR, platform->flashEnvColorG,
platform->flashEnvColorB, 128);
Matrix_Translate(platform->dyna.actor.posRot.pos.x, 0.0f, platform->dyna.actor.posRot.pos.z,
MTXMODE_NEW);
for (i = 0; i < ARRAY_COUNT(sSides); i++) {
if (platform->unwalledSides & sSides[i]) {
Matrix_Push();
Matrix_Translate(sSideCenters[i].x, 0.0f, sSideCenters[i].z, MTXMODE_APPLY);
Matrix_RotateY(sSideAngles[i], MTXMODE_APPLY);
Matrix_Scale(0.3f, platform->flashYScale * 0.3f, 0.3f, MTXMODE_APPLY);
gSPMatrix(POLY_XLU_DISP++,
Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 847),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(POLY_XLU_DISP++, sFlashDList);
Matrix_Pull();
}
}
}
}
actor = actor->next;
}
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_ganon_otyuka.c", 857);
}

View file

@ -4,6 +4,12 @@
#include "ultra64.h"
#include "global.h"
#define OTYUKA_SIDE_EAST (1 << 0)
#define OTYUKA_SIDE_WEST (1 << 1)
#define OTYUKA_SIDE_SOUTH (1 << 2)
#define OTYUKA_SIDE_NORTH (1 << 3)
#define OTYUKA_SIDE_ALL (OTYUKA_SIDE_EAST | OTYUKA_SIDE_WEST | OTYUKA_SIDE_SOUTH | OTYUKA_SIDE_NORTH)
struct BgGanonOtyuka;
typedef void (*BgGanonOtyukaActionFunc)(struct BgGanonOtyuka*, GlobalContext*);
@ -11,7 +17,19 @@ typedef void (*BgGanonOtyukaActionFunc)(struct BgGanonOtyuka*, GlobalContext*);
typedef struct BgGanonOtyuka {
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgGanonOtyukaActionFunc actionFunc;
/* 0x0168 */ char unk_168[0x24];
/* 0x0168 */ s16 dropTimer;
/* 0x016A */ u8 isFalling;
/* 0x016B */ u8 unwalledSides;
/* 0x016C */ u8 visibleSides;
/* 0x016D */ u8 flashTimer;
/* 0x016E */ u8 flashState;
/* 0x0170 */ f32 flashYScale;
/* 0x0174 */ f32 flashPrimColorR;
/* 0x0178 */ f32 flashPrimColorG;
/* 0x017C */ f32 flashPrimColorB;
/* 0x0180 */ f32 flashEnvColorR;
/* 0x0184 */ f32 flashEnvColorG;
/* 0x0188 */ f32 flashEnvColorB;
} BgGanonOtyuka; // size = 0x018C
extern const ActorInit Bg_Ganon_Otyuka_InitVars;

View file

@ -0,0 +1,209 @@
#include "z_bg_ganon_otyuka.h"
extern Gfx D_08000000[];
static UNK_TYPE sPlatformTexture[] = {
0x19033187, 0x39C74207, 0x4A495247, 0x5A494A09, 0x498749C5, 0x5A476247, 0x62076287, 0x734F8393, 0x6A8B6A09,
0x5A495207, 0x49C54A89, 0x4A895289, 0x5AC95A89, 0x5A4B5A8B, 0x5A896249, 0x52095207, 0x19033185, 0x420949C7,
0x52095207, 0x5A075A45, 0x41C749C5, 0x62075207, 0x62896A49, 0x6B4F7B51, 0x62C75A49, 0x52095247, 0x4A475249,
0x5A075A89, 0x52895A89, 0x62876247, 0x62495A4B, 0x52095A07, 0x214339C7, 0x52095209, 0x524749C7, 0x49C74A07,
0x41C74985, 0x52095A47, 0x6A096A47, 0x72CD7BD3, 0x6249628B, 0x62495207, 0x49C55A49, 0x5A495249, 0x5A096A89,
0x6A4B5A47, 0x5A496207, 0x5A475207, 0x210741C5, 0x61C96AC7, 0x52094A09, 0x5A0951C7, 0x398541C5, 0x51C759C9,
0x5A495287, 0x6ACD7B11, 0x6249528B, 0x62075205, 0x4A0751C7, 0x52494A47, 0x52095209, 0x62075209, 0x5A0951C7,
0x52054A07, 0x21434205, 0x620959C7, 0x4A0B2985, 0x52474987, 0x31C34185, 0x49C749C3, 0x4A074A07, 0x6A4B728F,
0x52474A47, 0x51C949C9, 0x51C549C7, 0x42094A07, 0x52474A05, 0x520759C7, 0x52095207, 0x5A0751C7, 0x21454205,
0x5A4772CD, 0x8C9D4A0B, 0x5A075A09, 0x41853985, 0x51C35187, 0x41C749C9, 0x524D630F, 0x5A4951C7, 0x51C75207,
0x49C74A07, 0x49C74A09, 0x4A075207, 0x62475A89, 0x5A896207, 0x62475209, 0x10C541C7, 0x62077249, 0x7B0D5A09,
0x624B6207, 0x41C74145, 0x49C949C7, 0x4A076209, 0x6ACD7351, 0x62896207, 0x62875A47, 0x5A075209, 0x4A074A09,
0x4A076249, 0x5A496249, 0x624B6287, 0x5A475A87, 0x21454207, 0x624B6A47, 0x624962C9, 0x6A896209, 0x49C949C5,
0x49C55207, 0x52475A89, 0x728B7B93, 0x6A8D6209, 0x6A896207, 0x5A074A49, 0x4A094A09, 0x52496289, 0x5A896A49,
0x624962C7, 0x62896AC9, 0x210539C7, 0x624962CB, 0x62C96A87, 0x62475A8B, 0x39854985, 0x49C749C5, 0x624562C7,
0x730D8351, 0x6A8B6289, 0x62896249, 0x624949C7, 0x42055247, 0x5A876287, 0x6A4B6A49, 0x628B6A87, 0x6A87628B,
0x21034209, 0x5A076249, 0x62495A49, 0x6A87624B, 0x49894185, 0x4A0549C7, 0x5A07628B, 0x7B0D8395, 0x72896A89,
0x6A8B5A49, 0x52095209, 0x49C95249, 0x62475A49, 0x6247628B, 0x62896A47, 0x6A476249, 0x210331C9, 0x52076249,
0x5289628B, 0x62495A47, 0x49874185, 0x418749C7, 0x62876A89, 0x72CD83D1, 0x728B6249, 0x6A496A49, 0x52494A07,
0x4A075247, 0x5A895A49, 0x62496AC9, 0x62C76A47, 0x6AC96249, 0x194541C7, 0x4A075247, 0x520B5AC9, 0x5A4B51C7,
0x41C54185, 0x498749C5, 0x52476289, 0x6B0D8353, 0x6A4B6AC9, 0x62495A09, 0x52874A47, 0x3A493A49, 0x524B5249,
0x6A476AC5, 0x6249728B, 0x62495A87, 0x190339C7, 0x5A494A49, 0x5287528B, 0x4A4B4A47, 0x318939C5, 0x4A0559C5,
0x62496287, 0x7B0F83D5, 0x62CB6289, 0x62876247, 0x524B5209, 0x3A074A47, 0x4A095249, 0x5A475249, 0x62496A89,
0x620B6247, 0x110539C7, 0x520752C7, 0x524B5207, 0x52894A4B, 0x298731C5, 0x42075209, 0x5A896287, 0x73518393,
0x628B6289, 0x52895AC9, 0x52494A0B, 0x4A074A49, 0x52494A49, 0x4A476287, 0x62876A89, 0x6A496A47, 0x19434A07,
0x5A475ACB, 0x52475249, 0x52894A49, 0x31C531C7, 0x31C549C7, 0x528952C9, 0x634D7353, 0x52894A89, 0x52895A47,
0x524B5A49, 0x52074A07, 0x4A094A4B, 0x5207524B, 0x5A496287, 0x6A496A89, 0x19454A07, 0x62496207, 0x49C93905,
0x62495207, 0x39C73145, 0x41C94A07, 0x4A875249, 0x5B0D6351, 0x528B6249, 0x624B6A8B, 0x62C96249, 0x5A495207,
0x628B5A49, 0x52895249, 0x4A89628B, 0x628762C7, 0x194549C9, 0x5A4772CB, 0x945D4A0D, 0x62075209, 0x39874187,
0x3A074A47, 0x52494A49, 0x52CB6B91, 0x73117BD1, 0x73917B93, 0x7B537B53, 0x730F630F, 0x7B517B91, 0x6B516B0F,
0x73916B8F, 0x73137351, 0x21034187, 0x6A496249, 0x7B4D6247, 0x62875207, 0x41853987, 0x42075207, 0x4A494A47,
0x5A475B0B, 0x62CB72CF, 0x72CD6B4D, 0x6B0D6ACD, 0x624B5ACB, 0x62CB62CD, 0x6ACB62CD, 0x62CD4A8B, 0x628B62CF,
0x20C54207, 0x524B6A89, 0x62496287, 0x5A4749C7, 0x31853945, 0x41C55185, 0x49C53A45, 0x4A495209, 0x62475A05,
0x52076207, 0x52055A47, 0x4A0949C5, 0x52095247, 0x52075249, 0x5A494A87, 0x42473A09, 0x190539C9, 0x5A095A0B,
0x5A075A07, 0x4A0549C7, 0x41453985, 0x41C94187, 0x420941C5, 0x4A054A09, 0x49C55205, 0x4A054A07, 0x5A0749C3,
0x49C55205, 0x520551C7, 0x59C75207, 0x4A474A07, 0x3A073A07, 0x190339C5, 0x52455A49, 0x5A075249, 0x52074A07,
0x41C34985, 0x4A055A47, 0x49C74A09, 0x420951C7, 0x49C75207, 0x49C551C5, 0x51875207, 0x52455A45, 0x52075209,
0x59C74A05, 0x498549C5, 0x3A074207, 0x20C53985, 0x52475209, 0x52055247, 0x62096247, 0x39874207, 0x4A075245,
0x52474249, 0x42474A09, 0x4A055207, 0x41C541C5, 0x41C55A45, 0x52075209, 0x62895A07, 0x52875203, 0x49C539C7,
0x3A053A07, 0x19033A07, 0x51876209, 0x5A476207, 0x5A875A09, 0x41874147, 0x49C749C5, 0x49C53A07, 0x49C94205,
0x498541C5, 0x41474185, 0x41C54A07, 0x4A0551C7, 0x498549C5, 0x4A074207, 0x39473985, 0x318739C7, 0x190341C5,
0x5A476205, 0x624962C9, 0x62475A47, 0x49C74985, 0x41C74985, 0x42054207, 0x41C741C9, 0x39C74149, 0x41474147,
0x39874987, 0x41874987, 0x41C749C5, 0x41854987, 0x49893985, 0x29C739C5, 0x21074185, 0x62456249, 0x624B6A89,
0x62496A89, 0x52475249, 0x52474A87, 0x4A474A07, 0x524B5247, 0x4A474A09, 0x4A074987, 0x4A095A09, 0x5A896249,
0x62076205, 0x6247624B, 0x528951C9, 0x41C54205, 0x11054207, 0x52496209, 0x52496287, 0x62476A87, 0x5A895A87,
0x6247520B, 0x4A094AC9, 0x5A895A07, 0x5A0B5A47, 0x52074A47, 0x5A896289, 0x62876A89, 0x6A476AC9, 0x62475209,
0x5A474A09, 0x4A094A07, 0x194341C9, 0x62475A47, 0x49CB3945, 0x5A076287, 0x6A496289, 0x62895A87, 0x5A895249,
0x520951C9, 0x310749C7, 0x51C75A49, 0x62476289, 0x620962C7, 0x62875A47, 0x4A0B2985, 0x4A4B5247, 0x41C54A09,
0x19454209, 0x5A8972CD, 0x9C5B4A0B, 0x62476AC9, 0x62875AC9, 0x62095A0B, 0x524B524B, 0x6B0F9419, 0x418B41C7,
0x4A075A07, 0x62496287, 0x62876AC7, 0x628972CF, 0x8C5D4A4B, 0x52874A47, 0x424B4A07, 0x18C54985, 0x5A896287,
0x7B4D6247, 0x6247728B, 0x62C76289, 0x6A075ACB, 0x4A474A47, 0x5A876AD1, 0x52455205, 0x52095A07, 0x62876A89,
0x62496247, 0x6A496249, 0x7B0B5209, 0x52874A49, 0x42495209, 0x19434207, 0x52876207, 0x52495A49, 0x62095A09,
0x5A095289, 0x62475207, 0x4A874A89, 0x52495287, 0x52495205, 0x42075A05, 0x62476247, 0x5A095249, 0x52496249,
0x62495249, 0x5A874A07, 0x49C74207, 0x19453945, 0x41C739C7, 0x420741C9, 0x41C74209, 0x42054187, 0x3A0541C5,
0x3A0931C7, 0x39C541C7, 0x49C73147, 0x3A0541C5, 0x49C549C7, 0x398941C7, 0x420749C7, 0x49C739C7, 0x420731C7,
0x320741C7, 0x08C51903, 0x19431143, 0x21451903, 0x21432105, 0x19432105, 0x19051905, 0x11031905, 0x21451907,
0x11072105, 0x19031943, 0x190518C5, 0x214518C5, 0x21432145, 0x11032103, 0x19051905, 0x19031903,
};
// probably unused?
static UNK_TYPE D_808772E0[] = { 0x00000000, 0x00000000 };
static Vtx sPlatformTopVerts[] = {
VTX(60, 0, 60, 2048, -1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(60, 0, -60, 0, -1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-60, 0, -60, 0, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-60, 0, 60, 2048, 1024, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx sPlatformSetupDList[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(sPlatformTexture, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 32, 0, G_TX_MIRROR | G_TX_WRAP,
G_TX_MIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD),
gsDPSetCombineLERP(TEXEL0, 0, SHADE, 0, 0, 0, 0, 1, COMBINED, 0, PRIMITIVE, 0, 0, 0, 0, COMBINED),
gsDPSetRenderMode(G_RM_FOG_SHADE_A, G_RM_AA_ZB_OPA_SURF2),
gsSPClearGeometryMode(G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsSPSetGeometryMode(G_CULL_BACK | G_FOG),
gsDPSetPrimColor(0, 0, 255, 255, 255, 255),
gsDPPipeSync(),
gsSPEndDisplayList(),
};
static Gfx sPlatformTopDList[] = {
gsSPVertex(sPlatformTopVerts, ARRAY_COUNT(sPlatformTopVerts), 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
static Vtx sPlatformBottomVerts[] = {
VTX(60, -60, 60, 2048, -1024, 0x32, 0x32, 0x32, 0xFF),
VTX(60, -60, -60, 0, -1024, 0x32, 0x32, 0x32, 0xFF),
VTX(-60, -60, -60, 0, 1024, 0x32, 0x32, 0x32, 0xFF),
VTX(-60, -60, 60, 2048, 1024, 0x32, 0x32, 0x32, 0xFF),
};
static Gfx sPlatformBottomDList[] = {
gsSPVertex(sPlatformBottomVerts, ARRAY_COUNT(sPlatformBottomVerts), 0),
gsSP2Triangles(0, 2, 1, 0, 0, 3, 2, 0),
gsSPEndDisplayList(),
};
static Vtx sPlatformSideVerts[] = {
VTX(-60, 0, 0, 2048, -1024, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-60, -60, 0, 2048, 1024, 0x32, 0x32, 0x32, 0xFF),
VTX(60, -60, 0, 0, 1024, 0x32, 0x32, 0x32, 0xFF),
VTX(60, 0, 0, 0, -1024, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx sPlatformSideDList[] = {
gsSPVertex(sPlatformSideVerts, ARRAY_COUNT(sPlatformSideVerts), 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSPEndDisplayList(),
};
static UNK_TYPE sFlashTexture[] = {
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000000, 0x00000102, 0x01000001, 0x00000000, 0x00000000, 0x00010000, 0x00000000,
0x00000001, 0x00000000, 0x00000204, 0x02000101, 0x00000000, 0x00000000, 0x00010101, 0x00000001, 0x00000001,
0x00000000, 0x00000307, 0x03010102, 0x00000000, 0x00000000, 0x01010102, 0x00000002, 0x01010001, 0x00000000,
0x00010509, 0x04010103, 0x01000000, 0x00000000, 0x01020202, 0x00000104, 0x03020101, 0x00000000, 0x0001060C,
0x06010103, 0x01000000, 0x00000000, 0x02020202, 0x00000206, 0x05040101, 0x00000000, 0x0001080F, 0x07010103,
0x01000001, 0x00000000, 0x03030202, 0x00010408, 0x07060201, 0x00000000, 0x00010911, 0x08010103, 0x01000001,
0x00000001, 0x04040303, 0x0101050B, 0x0A080301, 0x00000000, 0x00020B14, 0x0A010103, 0x01000001, 0x00010102,
0x06060403, 0x0203070D, 0x0C0A0401, 0x00000000, 0x00030D17, 0x0B020103, 0x01010001, 0x00010205, 0x09080503,
0x0205090E, 0x0E0D0501, 0x00000000, 0x01050F18, 0x0C020102, 0x01010001, 0x00010408, 0x0D0B0502, 0x03070B0F,
0x0F0F0601, 0x00000000, 0x02081219, 0x0D030102, 0x00010001, 0x0001050B, 0x130F0702, 0x04080B0F, 0x10110801,
0x00000000, 0x030C1419, 0x0E040101, 0x00010001, 0x0001070F, 0x19140A03, 0x05090B0E, 0x10130A02, 0x00000001,
0x05121719, 0x0E040100, 0x00010102, 0x01020A13, 0x1F1A0F06, 0x06090A0C, 0x10150B03, 0x01000001, 0x08181B19,
0x0F050201, 0x01020102, 0x02040D18, 0x2721140A, 0x080A0A0C, 0x11160D04, 0x02020001, 0x0B1E1E19, 0x10070403,
0x02030202, 0x0408111D, 0x2F2A1B0F, 0x0A0B0B0D, 0x12180F06, 0x04040101, 0x0E242119, 0x11090606, 0x04040304,
0x070C1623, 0x38322214, 0x0E0D0E10, 0x141A1108, 0x06060102, 0x112A241A, 0x120B0909, 0x06050507, 0x0B111C29,
0x413B291B, 0x13101216, 0x181B1209, 0x08080304, 0x152F271B, 0x140E0C0C, 0x0907080B, 0x10172230, 0x4A433223,
0x1813161D, 0x1D1E140B, 0x0A0A0608, 0x1A342B1E, 0x17110F0F, 0x0C0B0D11, 0x171F2A38, 0x534C3B2B, 0x1E161C25,
0x2221160D, 0x0B0C0A0E, 0x21393023, 0x1B151211, 0x0F0F1217, 0x1E273240, 0x5C564534, 0x251B242F, 0x2924190F,
0x0E0E0F17, 0x293E372B, 0x21181513, 0x1113181E, 0x26303B48, 0x655F4E3E, 0x2D222D3A, 0x30271C13, 0x11111520,
0x32453F35, 0x281D1714, 0x14181E25, 0x2F3A4551, 0x6F695746, 0x362B3744, 0x372A1F17, 0x15151D2A, 0x3D4D483F,
0x31231A14, 0x171E252E, 0x38444F5B, 0x7974614F, 0x4036404C, 0x3C2D231D, 0x1A1A2637, 0x4957524A, 0x3A2A1D15,
0x1A252E37, 0x43505B66, 0x837F6C59, 0x4A414750, 0x3F2E2723, 0x21213245, 0x57625D54, 0x43312216, 0x1F2D3741,
0x4D5B6671, 0x8E8B7662, 0x544B4D51, 0x3F302C2C, 0x2B2D4054, 0x656D675E, 0x4C3A281A, 0x2536414B, 0x5867717B,
0x9896816C, 0x5E545150, 0x3F323337, 0x383C5063, 0x71777168, 0x56432F21, 0x2C3F4B56, 0x63727C86, 0xA2A08B76,
0x685D5651, 0x3F343A43, 0x484D5F70, 0x7D827B71, 0x5F4C3829, 0x34465462, 0x6F7C8690, 0xACA99581, 0x72655B53,
0x42394450, 0x585E6D7C, 0x878C8479, 0x68574334, 0x3D4E5E6E, 0x7B88919A, 0xB4B09E8C, 0x7C6E6155, 0x46414F5F,
0x676E7B87, 0x92958C80, 0x71625041, 0x4857697A, 0x86929BA3, 0xBBB7A796, 0x86776658, 0x4D4B5C6E, 0x777D8791,
0x9C9F9487, 0x7A6D5C4F, 0x54617486, 0x919CA4AB, 0xC2BBAFA1, 0x907F6C5D, 0x55576A7E, 0x8589929A, 0xA5A99D90,
0x8478695E, 0x5F697F93, 0x9DA6ACB2, 0xC8BFB6AC, 0x9A877465, 0x6064788D, 0x92949BA1, 0xADB2A89C, 0x8F83766C,
0x6A718AA1, 0xA9AFB2B8, 0xCEC3BDB6, 0xA4907E70, 0x6C72879B, 0x9C9CA2A8, 0xB5BBB3A9, 0x9B8E8279, 0x737693AE,
0xB4B6B9BE, 0xD5C9C5BF, 0xAF9C8B7E, 0x7A8094A5, 0xA4A0A7B0, 0xBDC5C0B7, 0xA8998E85, 0x7B7B9AB7, 0xBDBEC0C5,
0xDBCFCCC8, 0xBAA9998E, 0x898E9FAD, 0xA8A1ACB8, 0xC6CECCC5, 0xB6A4988F, 0x8381A0BE, 0xC4C6C8CD, 0xE0D4D3D1,
0xC5B7A89D, 0x989CA8B3, 0xABA2B0C0, 0xCED8D8D2, 0xC2AEA298, 0x8C89A6C3, 0xCACED1D5, 0xE5DBDAD8, 0xD0C4B6AB,
0xA6A8B1B8, 0xAEA4B5C7, 0xD6E0E3DE, 0xCDB7ABA2, 0x9590ACC9, 0xD0D5D9DC, 0xEBE1E0DE, 0xDAD1C4B9, 0xB2B2B8BC,
0xB1A7B9CE, 0xDEE8ECE8, 0xD6BDB3AC, 0x9E98B3CE, 0xD6DBE0E3, 0xF0E9E6E3, 0xE3DDD2C6, 0xBCBABEC0, 0xB4AABED5,
0xE5EFF3F0, 0xDDC2BBB6, 0xA79FB9D4, 0xDCE2E7E9, 0xF5F0ECE7, 0xEAE8DED2, 0xC6C1C2C3, 0xB7ADC4DD, 0xEBF3F8F5,
0xE1C6C2C1, 0xB1A7BFD8, 0xE1E7EDF0, 0xF9F5F1EB, 0xF0F0E9DD, 0xCFC7C7C6, 0xBBB1CBE5, 0xF0F5FBF7, 0xE3CACACC,
0xBBB0C5DC, 0xE5ECF4F6, 0xFCF9F5EE, 0xF5F7F0E7, 0xD7CDCCCB, 0xBFB7D2EB, 0xF4F7FBF6, 0xE4CDD2D6, 0xC6B9CBE0,
0xE9F1F9FB, 0xFDFCF8F2, 0xF9FAF6EE, 0xDFD5D3D0, 0xC5BDD9F0, 0xF7F9FBF4, 0xE5D0D9E0, 0xD1C2D2E4, 0xEDF5FCFE,
0xFEFDFAF4, 0xFBFCF9F3, 0xE6DDDAD7, 0xCBC3DEF4, 0xFAFBFCF3, 0xE5D3DEE8, 0xDBCDDAE9, 0xF2F8FEFF, 0xFEFDFCF6,
0xFCFDFCF7, 0xECE4E2DF, 0xD2C9E3F7, 0xFCFDFBF3, 0xE5D6E4EF, 0xE3D6E1EE, 0xF6FAFEFF, 0xFEFDFDF8, 0xFCFDFDFA,
0xF1EAE9E7, 0xD9CFE7F9, 0xFEFEFBF3, 0xE7DBE9F4, 0xEBDFE8F3, 0xF9FCFFFF, 0xFEFDFDFA, 0xFDFDFEFC, 0xF5EFEFEE,
0xE0D5ECFB, 0xFFFEFBF3, 0xE9E1EEF8, 0xF0E6EEF6, 0xFCFDFFFF, 0xFEFDFEFC, 0xFEFDFEFE, 0xF8F4F4F3, 0xE7DDF1FD,
0xFFFEFBF3, 0xECE7F3FC, 0xF5ECF2F9, 0xFDFEFFFF, 0xFEFDFFFE, 0xFFFDFEFE, 0xFAF7F8F7, 0xEDE5F5FE, 0xFFFEFBF5,
0xF0EDF7FD, 0xF9F1F5FA, 0xFEFFFFFF, 0xFEFDFFFF, 0xFFFEFEFF, 0xFCFAFAFA, 0xF2ECF8FE, 0xFFFEFCF7, 0xF4F3FAFE,
0xFBF6F8FB, 0xFEFFFFFF, 0xFEFDFFFF, 0xFFFEFEFF, 0xFDFCFCFC, 0xF7F2FBFF, 0xFFFEFCFA, 0xF8F7FCFF, 0xFEFAFBFC,
0xFFFFFFFF, 0xFEFEFFFF, 0xFFFFFFFF, 0xFEFDFEFD, 0xFAF7FCFF, 0xFFFEFDFC, 0xFCFBFDFF, 0xFFFDFDFD, 0xFFFFFFFF,
0xFFFEFFFF, 0xFFFFFFFF, 0xFFFEFEFE, 0xFCFAFDFF, 0xFFFEFEFE, 0xFEFDFEFF, 0xFFFFFEFD, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFDFCFEFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFEFEFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,
};
static Vtx sFlashVerts[] = {
VTX(-180, 300, 0, 256, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-360, 0, 0, 0, 2048, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-180, 0, 0, 256, 2048, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-360, 300, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x00),
VTX(180, 300, 0, 768, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(180, 0, 0, 768, 2048, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(360, 0, 0, 1024, 2048, 0xFF, 0xFF, 0xFF, 0x00), VTX(360, 300, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0x00),
};
static Gfx sFlashDList[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(sFlashTexture, G_IM_FMT_I, G_IM_SIZ_8b, 32, 64, 0, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMIRROR | G_TX_CLAMP, 5, 6, 15, 1),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0x0000, 1, 0, G_TX_NOMIRROR | G_TX_CLAMP, 6, 14, G_TX_NOMIRROR | G_TX_WRAP,
5, 13),
gsDPSetTileSize(1, 0, 0, 0x007C, 0x00FC),
gsDPSetCombineLERP(TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, TEXEL1, 1, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT,
COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),
gsDPSetRenderMode(G_RM_PASS, G_RM_AA_ZB_XLU_SURF2),
gsSPClearGeometryMode(G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsSPDisplayList(D_08000000),
gsSPVertex(sFlashVerts, 8, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 3, 1, 0),
gsSP2Triangles(4, 2, 5, 0, 4, 0, 2, 0),
gsSP2Triangles(6, 4, 5, 0, 6, 7, 4, 0),
gsSPEndDisplayList(),
};

View file

@ -6,9 +6,13 @@
struct BossGanon;
typedef void (*BossGanonActionFunc)(struct BossGanon*, GlobalContext*);
typedef struct BossGanon {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x5CC];
/* 0x014C */ char unk_14C[0x4C];
/* 0x0198 */ u8 unk_198;
/* 0x0199 */ char unk_199[0x57F];
/* 0x0718 */ s16 organFadeTimer;
/* 0x071A */ char unk_71A[0x2];
} BossGanon; // size = 0x071C

View file

@ -541,6 +541,9 @@ D_06003DD8 = 0x06003DD8;
// z_eff_ss_extra
D_06000DC0 = 0x06000DC0;
// z_bg_ganon_otyuka
D_08000000 = 0x08000000;
// z_bg_gate_shutter
D_06001CD0 = 0x06001CD0;
D_06001DA8 = 0x06001DA8;