1
0
mirror of https://github.com/zeldaret/oot.git synced 2024-09-21 04:24:43 +00:00

BgSpot03Taki (#414)

* Migrate data, fix header, add undefined symbol, decompile Init function

* Decompiled Destroy function

* Decompiled func_808ADEF0 and adjusted struct some

* Decompiled Update function

* Fixed sInitChain stuff

* Preliminary Draw function decompilation

* Replaced code with OPEN_DISPS and CLOSE_DISPS and some hex with decimal

* Working on Draw function still

* More permuter test stuff

* Got Draw matching except for one little TwoTex issue

* Added NON_MATCHING

* Removed false alarm

* Got most of the functions decompiled; 1 non-matching, 1 not started

* Ran format.sh on file

* These two symbols should be arrays

* Got func_808ADAE0 mostly decompiled

* Got func_808ADAE0 fully decompiled!

* Removed necessary files (except _Draw)

* Successfully decompiled Draw function

* Decompiled Draw function
+ Added proper includes to spec

* Removed Draw function assembly

* Moved func_800F46E0 prototype to functions.h

* Renamed unk_174 to bufferIndex

* Replaced state constants with enum

* Renamed func_808ADAE0 to BgSpot03Taki_ApplyOpeningAlpha

* Renamed func_808ADAE0 to BgSpot03Taki_ApplyOpeningAlpha

* Made changes as per pull request comments

Co-authored-by: fig02 <fig02srl@gmail.com>
This commit is contained in:
Electrk 2020-10-04 07:14:28 -07:00 committed by GitHub
parent 85cf70bcd3
commit 4dfc9d3c3c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 163 additions and 655 deletions

View File

@ -1,14 +0,0 @@
glabel BgSpot03Taki_Destroy
/* 003E0 808ADEC0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003E4 808ADEC4 AFA40018 */ sw $a0, 0x0018($sp)
/* 003E8 808ADEC8 8FAE0018 */ lw $t6, 0x0018($sp)
/* 003EC 808ADECC AFBF0014 */ sw $ra, 0x0014($sp)
/* 003F0 808ADED0 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 003F4 808ADED4 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 003F8 808ADED8 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 003FC 808ADEDC 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 00400 808ADEE0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00404 808ADEE4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00408 808ADEE8 03E00008 */ jr $ra
/* 0040C 808ADEEC 00000000 */ nop

View File

@ -1,190 +0,0 @@
.rdata
glabel D_808AE3C0
.asciz "../z_bg_spot03_taki.c"
.balign 4
glabel D_808AE3D8
.asciz "../z_bg_spot03_taki.c"
.balign 4
glabel D_808AE3F0
.asciz "../z_bg_spot03_taki.c"
.balign 4
.text
glabel BgSpot03Taki_Draw
/* 00604 808AE0E4 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
/* 00608 808AE0E8 AFBF003C */ sw $ra, 0x003C($sp)
/* 0060C 808AE0EC AFB00038 */ sw $s0, 0x0038($sp)
/* 00610 808AE0F0 AFA40088 */ sw $a0, 0x0088($sp)
/* 00614 808AE0F4 AFA5008C */ sw $a1, 0x008C($sp)
/* 00618 808AE0F8 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 0061C 808AE0FC 3C06808B */ lui $a2, %hi(D_808AE3C0) ## $a2 = 808B0000
/* 00620 808AE100 24C6E3C0 */ addiu $a2, $a2, %lo(D_808AE3C0) ## $a2 = 808AE3C0
/* 00624 808AE104 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFE0
/* 00628 808AE108 24070141 */ addiu $a3, $zero, 0x0141 ## $a3 = 00000141
/* 0062C 808AE10C 0C031AB1 */ jal Graph_OpenDisps
/* 00630 808AE110 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00634 808AE114 8FA7008C */ lw $a3, 0x008C($sp)
/* 00638 808AE118 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0063C 808AE11C 3C080001 */ lui $t0, 0x0001 ## $t0 = 00010000
/* 00640 808AE120 01074021 */ addu $t0, $t0, $a3
/* 00644 808AE124 8D081DE4 */ lw $t0, 0x1DE4($t0) ## 00011DE4
/* 00648 808AE128 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000
/* 0064C 808AE12C 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00650 808AE130 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 00654 808AE134 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003
/* 00658 808AE138 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 0065C 808AE13C 3C05808B */ lui $a1, %hi(D_808AE3D8) ## $a1 = 808B0000
/* 00660 808AE140 8CE40000 */ lw $a0, 0x0000($a3) ## 00000000
/* 00664 808AE144 24A5E3D8 */ addiu $a1, $a1, %lo(D_808AE3D8) ## $a1 = 808AE3D8
/* 00668 808AE148 24060145 */ addiu $a2, $zero, 0x0145 ## $a2 = 00000145
/* 0066C 808AE14C AFA20064 */ sw $v0, 0x0064($sp)
/* 00670 808AE150 0C0346A2 */ jal Matrix_NewMtx
/* 00674 808AE154 AFA8007C */ sw $t0, 0x007C($sp)
/* 00678 808AE158 8FA30064 */ lw $v1, 0x0064($sp)
/* 0067C 808AE15C 8FA8007C */ lw $t0, 0x007C($sp)
/* 00680 808AE160 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00684 808AE164 8FB9008C */ lw $t9, 0x008C($sp)
/* 00688 808AE168 8F240000 */ lw $a0, 0x0000($t9) ## 00000000
/* 0068C 808AE16C 0C024F61 */ jal func_80093D84
/* 00690 808AE170 AFA8007C */ sw $t0, 0x007C($sp)
/* 00694 808AE174 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00698 808AE178 8FA8007C */ lw $t0, 0x007C($sp)
/* 0069C 808AE17C 3C0CDB06 */ lui $t4, 0xDB06 ## $t4 = DB060000
/* 006A0 808AE180 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 006A4 808AE184 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 006A8 808AE188 358C0020 */ ori $t4, $t4, 0x0020 ## $t4 = DB060020
/* 006AC 808AE18C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 006B0 808AE190 8FAD008C */ lw $t5, 0x008C($sp)
/* 006B4 808AE194 00083880 */ sll $a3, $t0, 2
/* 006B8 808AE198 240B0040 */ addiu $t3, $zero, 0x0040 ## $t3 = 00000040
/* 006BC 808AE19C 8DA40000 */ lw $a0, 0x0000($t5) ## 00000000
/* 006C0 808AE1A0 240E0040 */ addiu $t6, $zero, 0x0040 ## $t6 = 00000040
/* 006C4 808AE1A4 240F0040 */ addiu $t7, $zero, 0x0040 ## $t7 = 00000040
/* 006C8 808AE1A8 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 006CC 808AE1AC 24190040 */ addiu $t9, $zero, 0x0040 ## $t9 = 00000040
/* 006D0 808AE1B0 00E83821 */ addu $a3, $a3, $t0
/* 006D4 808AE1B4 AFA70020 */ sw $a3, 0x0020($sp)
/* 006D8 808AE1B8 AFB90024 */ sw $t9, 0x0024($sp)
/* 006DC 808AE1BC AFB80018 */ sw $t8, 0x0018($sp)
/* 006E0 808AE1C0 AFAF0014 */ sw $t7, 0x0014($sp)
/* 006E4 808AE1C4 AFAE0010 */ sw $t6, 0x0010($sp)
/* 006E8 808AE1C8 AFAB0028 */ sw $t3, 0x0028($sp)
/* 006EC 808AE1CC AFA0001C */ sw $zero, 0x001C($sp)
/* 006F0 808AE1D0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 006F4 808AE1D4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 006F8 808AE1D8 AFA20060 */ sw $v0, 0x0060($sp)
/* 006FC 808AE1DC 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00700 808AE1E0 AFA8007C */ sw $t0, 0x007C($sp)
/* 00704 808AE1E4 8FA30060 */ lw $v1, 0x0060($sp)
/* 00708 808AE1E8 8FA8007C */ lw $t0, 0x007C($sp)
/* 0070C 808AE1EC 8FA90088 */ lw $t1, 0x0088($sp)
/* 00710 808AE1F0 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00714 808AE1F4 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00718 808AE1F8 3C0D0600 */ lui $t5, 0x0600 ## $t5 = 06000000
/* 0071C 808AE1FC 25AD0B20 */ addiu $t5, $t5, 0x0B20 ## $t5 = 06000B20
/* 00720 808AE200 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00724 808AE204 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 00728 808AE208 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000
/* 0072C 808AE20C AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 00730 808AE210 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 00734 808AE214 912E0174 */ lbu $t6, 0x0174($t1) ## 00000174
/* 00738 808AE218 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0073C 808AE21C 01003025 */ or $a2, $t0, $zero ## $a2 = 00000000
/* 00740 808AE220 15C0000B */ bne $t6, $zero, .L808AE250
/* 00744 808AE224 00083880 */ sll $a3, $t0, 2
/* 00748 808AE228 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0074C 808AE22C 3C180101 */ lui $t8, 0x0101 ## $t8 = 01010000
/* 00750 808AE230 3C190600 */ lui $t9, 0x0600 ## $t9 = 06000000
/* 00754 808AE234 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00758 808AE238 AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 0075C 808AE23C 27390800 */ addiu $t9, $t9, 0x0800 ## $t9 = 06000800
/* 00760 808AE240 37189032 */ ori $t8, $t8, 0x9032 ## $t8 = 01019032
/* 00764 808AE244 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00768 808AE248 1000000A */ beq $zero, $zero, .L808AE274
/* 0076C 808AE24C AC590004 */ sw $t9, 0x0004($v0) ## 00000004
.L808AE250:
/* 00770 808AE250 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00774 808AE254 3C0C0101 */ lui $t4, 0x0101 ## $t4 = 01010000
/* 00778 808AE258 3C0D0600 */ lui $t5, 0x0600 ## $t5 = 06000000
/* 0077C 808AE25C 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00780 808AE260 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 00784 808AE264 25AD0990 */ addiu $t5, $t5, 0x0990 ## $t5 = 06000990
/* 00788 808AE268 358C9032 */ ori $t4, $t4, 0x9032 ## $t4 = 01019032
/* 0078C 808AE26C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 00790 808AE270 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
.L808AE274:
/* 00794 808AE274 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00798 808AE278 3C0F0600 */ lui $t7, 0x0600 ## $t7 = 06000000
/* 0079C 808AE27C 25EF0BC0 */ addiu $t7, $t7, 0x0BC0 ## $t7 = 06000BC0
/* 007A0 808AE280 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 007A4 808AE284 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 007A8 808AE288 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 007AC 808AE28C AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 007B0 808AE290 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 007B4 808AE294 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 007B8 808AE298 37390020 */ ori $t9, $t9, 0x0020 ## $t9 = DB060020
/* 007BC 808AE29C 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 007C0 808AE2A0 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 007C4 808AE2A4 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 007C8 808AE2A8 8FAB008C */ lw $t3, 0x008C($sp)
/* 007CC 808AE2AC 24190040 */ addiu $t9, $zero, 0x0040 ## $t9 = 00000040
/* 007D0 808AE2B0 24180040 */ addiu $t8, $zero, 0x0040 ## $t8 = 00000040
/* 007D4 808AE2B4 8D640000 */ lw $a0, 0x0000($t3) ## 00000008
/* 007D8 808AE2B8 00087823 */ subu $t7, $zero, $t0
/* 007DC 808AE2BC 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 007E0 808AE2C0 00E83823 */ subu $a3, $a3, $t0
/* 007E4 808AE2C4 240C0040 */ addiu $t4, $zero, 0x0040 ## $t4 = 00000040
/* 007E8 808AE2C8 240D0040 */ addiu $t5, $zero, 0x0040 ## $t5 = 00000040
/* 007EC 808AE2CC AFAD0014 */ sw $t5, 0x0014($sp)
/* 007F0 808AE2D0 AFAC0010 */ sw $t4, 0x0010($sp)
/* 007F4 808AE2D4 AFA70020 */ sw $a3, 0x0020($sp)
/* 007F8 808AE2D8 AFAE0018 */ sw $t6, 0x0018($sp)
/* 007FC 808AE2DC AFAF001C */ sw $t7, 0x001C($sp)
/* 00800 808AE2E0 AFB90028 */ sw $t9, 0x0028($sp)
/* 00804 808AE2E4 AFB80024 */ sw $t8, 0x0024($sp)
/* 00808 808AE2E8 0C0253D0 */ jal Gfx_TwoTexScroll
/* 0080C 808AE2EC AFA2004C */ sw $v0, 0x004C($sp)
/* 00810 808AE2F0 8FA3004C */ lw $v1, 0x004C($sp)
/* 00814 808AE2F4 3C0C0600 */ lui $t4, 0x0600 ## $t4 = 06000000
/* 00818 808AE2F8 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000
/* 0081C 808AE2FC AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00820 808AE300 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00824 808AE304 258C1580 */ addiu $t4, $t4, 0x1580 ## $t4 = 06001580
/* 00828 808AE308 3C06808B */ lui $a2, %hi(D_808AE3F0) ## $a2 = 808B0000
/* 0082C 808AE30C 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00830 808AE310 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 00834 808AE314 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004
/* 00838 808AE318 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 0083C 808AE31C 8FAD008C */ lw $t5, 0x008C($sp)
/* 00840 808AE320 24C6E3F0 */ addiu $a2, $a2, %lo(D_808AE3F0) ## $a2 = 808AE3F0
/* 00844 808AE324 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFE0
/* 00848 808AE328 24070166 */ addiu $a3, $zero, 0x0166 ## $a3 = 00000166
/* 0084C 808AE32C 0C031AD5 */ jal Graph_CloseDisps
/* 00850 808AE330 8DA50000 */ lw $a1, 0x0000($t5) ## 00000000
/* 00854 808AE334 8FA90088 */ lw $t1, 0x0088($sp)
/* 00858 808AE338 912E0174 */ lbu $t6, 0x0174($t1) ## 00000174
/* 0085C 808AE33C 9122016A */ lbu $v0, 0x016A($t1) ## 0000016A
/* 00860 808AE340 252400E4 */ addiu $a0, $t1, 0x00E4 ## $a0 = 000000E4
/* 00864 808AE344 2DCF0001 */ sltiu $t7, $t6, 0x0001
/* 00868 808AE348 18400008 */ blez $v0, .L808AE36C
/* 0086C 808AE34C A12F0174 */ sb $t7, 0x0174($t1) ## 00000174
/* 00870 808AE350 28410004 */ slti $at, $v0, 0x0004
/* 00874 808AE354 10200005 */ beq $at, $zero, .L808AE36C
/* 00878 808AE358 3C053F00 */ lui $a1, 0x3F00 ## $a1 = 3F000000
/* 0087C 808AE35C 0C03D1B8 */ jal func_800F46E0
/* 00880 808AE360 252400E4 */ addiu $a0, $t1, 0x00E4 ## $a0 = 000000E4
/* 00884 808AE364 10000004 */ beq $zero, $zero, .L808AE378
/* 00888 808AE368 8FBF003C */ lw $ra, 0x003C($sp)
.L808AE36C:
/* 0088C 808AE36C 0C03D1B8 */ jal func_800F46E0
/* 00890 808AE370 3C053F80 */ lui $a1, 0x3F80 ## $a1 = 3F800000
/* 00894 808AE374 8FBF003C */ lw $ra, 0x003C($sp)
.L808AE378:
/* 00898 808AE378 8FB00038 */ lw $s0, 0x0038($sp)
/* 0089C 808AE37C 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000
/* 008A0 808AE380 03E00008 */ jr $ra
/* 008A4 808AE384 00000000 */ nop
/* 008A8 808AE388 00000000 */ nop
/* 008AC 808AE38C 00000000 */ nop

View File

@ -1,48 +0,0 @@
glabel BgSpot03Taki_Init
/* 00334 808ADE14 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00338 808ADE18 AFBF001C */ sw $ra, 0x001C($sp)
/* 0033C 808ADE1C AFB00018 */ sw $s0, 0x0018($sp)
/* 00340 808ADE20 AFA50034 */ sw $a1, 0x0034($sp)
/* 00344 808ADE24 AFA00024 */ sw $zero, 0x0024($sp)
/* 00348 808ADE28 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 0034C 808ADE2C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00350 808ADE30 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00354 808ADE34 31CF003F */ andi $t7, $t6, 0x003F ## $t7 = 00000000
/* 00358 808ADE38 0C010D20 */ jal DynaPolyInfo_SetActorMove
/* 0035C 808ADE3C A48F016C */ sh $t7, 0x016C($a0) ## 0000016C
/* 00360 808ADE40 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 00364 808ADE44 24840C98 */ addiu $a0, $a0, 0x0C98 ## $a0 = 06000C98
/* 00368 808ADE48 0C010620 */ jal DynaPolyInfo_Alloc
/* 0036C 808ADE4C 27A50024 */ addiu $a1, $sp, 0x0024 ## $a1 = FFFFFFF4
/* 00370 808ADE50 8FA40034 */ lw $a0, 0x0034($sp)
/* 00374 808ADE54 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00378 808ADE58 8FA70024 */ lw $a3, 0x0024($sp)
/* 0037C 808ADE5C 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00380 808ADE60 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00384 808ADE64 3C05808B */ lui $a1, %hi(D_808AE3B0) ## $a1 = 808B0000
/* 00388 808ADE68 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 0038C 808ADE6C 24A5E3B0 */ addiu $a1, $a1, %lo(D_808AE3B0) ## $a1 = 808AE3B0
/* 00390 808ADE70 0C01E037 */ jal Actor_ProcessInitChain
/* 00394 808ADE74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00398 808ADE78 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 0039C 808ADE7C 44812000 */ mtc1 $at, $f4 ## $f4 = 255.00
/* 003A0 808ADE80 A2000174 */ sb $zero, 0x0174($s0) ## 00000174
/* 003A4 808ADE84 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003A8 808ADE88 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 003AC 808ADE8C 0C22B6B8 */ jal func_808ADAE0
/* 003B0 808ADE90 E6040170 */ swc1 $f4, 0x0170($s0) ## 00000170
/* 003B4 808ADE94 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003B8 808ADE98 0C22B6B8 */ jal func_808ADAE0
/* 003BC 808ADE9C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 003C0 808ADEA0 3C18808B */ lui $t8, %hi(func_808ADEF0) ## $t8 = 808B0000
/* 003C4 808ADEA4 2718DEF0 */ addiu $t8, $t8, %lo(func_808ADEF0) ## $t8 = 808ADEF0
/* 003C8 808ADEA8 AE180164 */ sw $t8, 0x0164($s0) ## 00000164
/* 003CC 808ADEAC 8FBF001C */ lw $ra, 0x001C($sp)
/* 003D0 808ADEB0 8FB00018 */ lw $s0, 0x0018($sp)
/* 003D4 808ADEB4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 003D8 808ADEB8 03E00008 */ jr $ra
/* 003DC 808ADEBC 00000000 */ nop

View File

@ -1,10 +0,0 @@
glabel BgSpot03Taki_Update
/* 005E0 808AE0C0 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 005E4 808AE0C4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 005E8 808AE0C8 8C990164 */ lw $t9, 0x0164($a0) ## 00000164
/* 005EC 808AE0CC 0320F809 */ jalr $ra, $t9
/* 005F0 808AE0D0 00000000 */ nop
/* 005F4 808AE0D4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 005F8 808AE0D8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 005FC 808AE0DC 03E00008 */ jr $ra
/* 00600 808AE0E0 00000000 */ nop

View File

@ -1,223 +0,0 @@
glabel func_808ADAE0
/* 00000 808ADAE0 14A00010 */ bne $a1, $zero, .L808ADB24
/* 00004 808ADAE4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00008 808ADAE8 3C030600 */ lui $v1, 0x0600 ## $v1 = 06000000
/* 0000C 808ADAEC 24630800 */ addiu $v1, $v1, 0x0800 ## $v1 = 06000800
/* 00010 808ADAF0 00037100 */ sll $t6, $v1, 4
/* 00014 808ADAF4 000E7F02 */ srl $t7, $t6, 28
/* 00018 808ADAF8 000FC080 */ sll $t8, $t7, 2
/* 0001C 808ADAFC 3C198016 */ lui $t9, %hi(gSegments)
/* 00020 808ADB00 0338C821 */ addu $t9, $t9, $t8
/* 00024 808ADB04 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00028 808ADB08 8F396FA8 */ lw $t9, %lo(gSegments)($t9)
/* 0002C 808ADB0C 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 00030 808ADB10 00614024 */ and $t0, $v1, $at
/* 00034 808ADB14 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00038 808ADB18 03281021 */ addu $v0, $t9, $t0
/* 0003C 808ADB1C 1000000F */ beq $zero, $zero, .L808ADB5C
/* 00040 808ADB20 00411021 */ addu $v0, $v0, $at
.L808ADB24:
/* 00044 808ADB24 3C030600 */ lui $v1, 0x0600 ## $v1 = 06000000
/* 00048 808ADB28 24630990 */ addiu $v1, $v1, 0x0990 ## $v1 = 06000990
/* 0004C 808ADB2C 00034900 */ sll $t1, $v1, 4
/* 00050 808ADB30 00095702 */ srl $t2, $t1, 28
/* 00054 808ADB34 000A5880 */ sll $t3, $t2, 2
/* 00058 808ADB38 3C0C8016 */ lui $t4, %hi(gSegments)
/* 0005C 808ADB3C 018B6021 */ addu $t4, $t4, $t3
/* 00060 808ADB40 3C0100FF */ lui $at, 0x00FF ## $at = 00FF0000
/* 00064 808ADB44 8D8C6FA8 */ lw $t4, %lo(gSegments)($t4)
/* 00068 808ADB48 3421FFFF */ ori $at, $at, 0xFFFF ## $at = 00FFFFFF
/* 0006C 808ADB4C 00616824 */ and $t5, $v1, $at
/* 00070 808ADB50 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00074 808ADB54 018D1021 */ addu $v0, $t4, $t5
/* 00078 808ADB58 00411021 */ addu $v0, $v0, $at
.L808ADB5C:
/* 0007C 808ADB5C 444EF800 */ cfc1 $t6, $31
/* 00080 808ADB60 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00084 808ADB64 44CFF800 */ ctc1 $t7, $31
/* 00088 808ADB68 C4C40170 */ lwc1 $f4, 0x0170($a2) ## 00000170
/* 0008C 808ADB6C 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00090 808ADB70 460021A4 */ cvt.w.s $f6, $f4
/* 00094 808ADB74 444FF800 */ cfc1 $t7, $31
/* 00098 808ADB78 00000000 */ nop
/* 0009C 808ADB7C 31EF0078 */ andi $t7, $t7, 0x0078 ## $t7 = 00000000
/* 000A0 808ADB80 51E00013 */ beql $t7, $zero, .L808ADBD0
/* 000A4 808ADB84 440F3000 */ mfc1 $t7, $f6
/* 000A8 808ADB88 44813000 */ mtc1 $at, $f6 ## $f6 = 2147483648.00
/* 000AC 808ADB8C 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 000B0 808ADB90 46062181 */ sub.s $f6, $f4, $f6
/* 000B4 808ADB94 44CFF800 */ ctc1 $t7, $31
/* 000B8 808ADB98 00000000 */ nop
/* 000BC 808ADB9C 460031A4 */ cvt.w.s $f6, $f6
/* 000C0 808ADBA0 444FF800 */ cfc1 $t7, $31
/* 000C4 808ADBA4 00000000 */ nop
/* 000C8 808ADBA8 31EF0078 */ andi $t7, $t7, 0x0078 ## $t7 = 00000000
/* 000CC 808ADBAC 15E00005 */ bne $t7, $zero, .L808ADBC4
/* 000D0 808ADBB0 00000000 */ nop
/* 000D4 808ADBB4 440F3000 */ mfc1 $t7, $f6
/* 000D8 808ADBB8 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 000DC 808ADBBC 10000007 */ beq $zero, $zero, .L808ADBDC
/* 000E0 808ADBC0 01E17825 */ or $t7, $t7, $at ## $t7 = 80000000
.L808ADBC4:
/* 000E4 808ADBC4 10000005 */ beq $zero, $zero, .L808ADBDC
/* 000E8 808ADBC8 240FFFFF */ addiu $t7, $zero, 0xFFFF ## $t7 = FFFFFFFF
/* 000EC 808ADBCC 440F3000 */ mfc1 $t7, $f6
.L808ADBD0:
/* 000F0 808ADBD0 00000000 */ nop
/* 000F4 808ADBD4 05E0FFFB */ bltz $t7, .L808ADBC4
/* 000F8 808ADBD8 00000000 */ nop
.L808ADBDC:
/* 000FC 808ADBDC 44CEF800 */ ctc1 $t6, $31
/* 00100 808ADBE0 A04F00AF */ sb $t7, 0x00AF($v0) ## 000000AF
/* 00104 808ADBE4 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00108 808ADBE8 C4C80170 */ lwc1 $f8, 0x0170($a2) ## 00000170
/* 0010C 808ADBEC 4459F800 */ cfc1 $t9, $31
/* 00110 808ADBF0 44C8F800 */ ctc1 $t0, $31
/* 00114 808ADBF4 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001
/* 00118 808ADBF8 0003C100 */ sll $t8, $v1, 4
/* 0011C 808ADBFC 460042A4 */ cvt.w.s $f10, $f8
/* 00120 808ADC00 00582021 */ addu $a0, $v0, $t8
/* 00124 808ADC04 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00128 808ADC08 4448F800 */ cfc1 $t0, $31
/* 0012C 808ADC0C 00000000 */ nop
/* 00130 808ADC10 31080078 */ andi $t0, $t0, 0x0078 ## $t0 = 00000000
/* 00134 808ADC14 51000013 */ beql $t0, $zero, .L808ADC64
/* 00138 808ADC18 44085000 */ mfc1 $t0, $f10
/* 0013C 808ADC1C 44815000 */ mtc1 $at, $f10 ## $f10 = 2147483648.00
/* 00140 808ADC20 24080001 */ addiu $t0, $zero, 0x0001 ## $t0 = 00000001
/* 00144 808ADC24 460A4281 */ sub.s $f10, $f8, $f10
/* 00148 808ADC28 44C8F800 */ ctc1 $t0, $31
/* 0014C 808ADC2C 00000000 */ nop
/* 00150 808ADC30 460052A4 */ cvt.w.s $f10, $f10
/* 00154 808ADC34 4448F800 */ cfc1 $t0, $31
/* 00158 808ADC38 00000000 */ nop
/* 0015C 808ADC3C 31080078 */ andi $t0, $t0, 0x0078 ## $t0 = 00000000
/* 00160 808ADC40 15000005 */ bne $t0, $zero, .L808ADC58
/* 00164 808ADC44 00000000 */ nop
/* 00168 808ADC48 44085000 */ mfc1 $t0, $f10
/* 0016C 808ADC4C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00170 808ADC50 10000007 */ beq $zero, $zero, .L808ADC70
/* 00174 808ADC54 01014025 */ or $t0, $t0, $at ## $t0 = 80000000
.L808ADC58:
/* 00178 808ADC58 10000005 */ beq $zero, $zero, .L808ADC70
/* 0017C 808ADC5C 2408FFFF */ addiu $t0, $zero, 0xFFFF ## $t0 = FFFFFFFF
/* 00180 808ADC60 44085000 */ mfc1 $t0, $f10
.L808ADC64:
/* 00184 808ADC64 00000000 */ nop
/* 00188 808ADC68 0500FFFB */ bltz $t0, .L808ADC58
/* 0018C 808ADC6C 00000000 */ nop
.L808ADC70:
/* 00190 808ADC70 44D9F800 */ ctc1 $t9, $31
/* 00194 808ADC74 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 00198 808ADC78 A08800AF */ sb $t0, 0x00AF($a0) ## 000000AF
/* 0019C 808ADC7C C4D00170 */ lwc1 $f16, 0x0170($a2) ## 00000170
/* 001A0 808ADC80 4449F800 */ cfc1 $t1, $31
/* 001A4 808ADC84 44CAF800 */ ctc1 $t2, $31
/* 001A8 808ADC88 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 001AC 808ADC8C 460084A4 */ cvt.w.s $f18, $f16
/* 001B0 808ADC90 444AF800 */ cfc1 $t2, $31
/* 001B4 808ADC94 00000000 */ nop
/* 001B8 808ADC98 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000
/* 001BC 808ADC9C 51400013 */ beql $t2, $zero, .L808ADCEC
/* 001C0 808ADCA0 440A9000 */ mfc1 $t2, $f18
/* 001C4 808ADCA4 44819000 */ mtc1 $at, $f18 ## $f18 = 2147483648.00
/* 001C8 808ADCA8 240A0001 */ addiu $t2, $zero, 0x0001 ## $t2 = 00000001
/* 001CC 808ADCAC 46128481 */ sub.s $f18, $f16, $f18
/* 001D0 808ADCB0 44CAF800 */ ctc1 $t2, $31
/* 001D4 808ADCB4 00000000 */ nop
/* 001D8 808ADCB8 460094A4 */ cvt.w.s $f18, $f18
/* 001DC 808ADCBC 444AF800 */ cfc1 $t2, $31
/* 001E0 808ADCC0 00000000 */ nop
/* 001E4 808ADCC4 314A0078 */ andi $t2, $t2, 0x0078 ## $t2 = 00000000
/* 001E8 808ADCC8 15400005 */ bne $t2, $zero, .L808ADCE0
/* 001EC 808ADCCC 00000000 */ nop
/* 001F0 808ADCD0 440A9000 */ mfc1 $t2, $f18
/* 001F4 808ADCD4 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 001F8 808ADCD8 10000007 */ beq $zero, $zero, .L808ADCF8
/* 001FC 808ADCDC 01415025 */ or $t2, $t2, $at ## $t2 = 80000000
.L808ADCE0:
/* 00200 808ADCE0 10000005 */ beq $zero, $zero, .L808ADCF8
/* 00204 808ADCE4 240AFFFF */ addiu $t2, $zero, 0xFFFF ## $t2 = FFFFFFFF
/* 00208 808ADCE8 440A9000 */ mfc1 $t2, $f18
.L808ADCEC:
/* 0020C 808ADCEC 00000000 */ nop
/* 00210 808ADCF0 0540FFFB */ bltz $t2, .L808ADCE0
/* 00214 808ADCF4 00000000 */ nop
.L808ADCF8:
/* 00218 808ADCF8 44C9F800 */ ctc1 $t1, $31
/* 0021C 808ADCFC A08A00BF */ sb $t2, 0x00BF($a0) ## 000000BF
/* 00220 808ADD00 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001
/* 00224 808ADD04 C4C40170 */ lwc1 $f4, 0x0170($a2) ## 00000170
/* 00228 808ADD08 444BF800 */ cfc1 $t3, $31
/* 0022C 808ADD0C 44CCF800 */ ctc1 $t4, $31
/* 00230 808ADD10 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 00234 808ADD14 460021A4 */ cvt.w.s $f6, $f4
/* 00238 808ADD18 444CF800 */ cfc1 $t4, $31
/* 0023C 808ADD1C 00000000 */ nop
/* 00240 808ADD20 318C0078 */ andi $t4, $t4, 0x0078 ## $t4 = 00000000
/* 00244 808ADD24 51800013 */ beql $t4, $zero, .L808ADD74
/* 00248 808ADD28 440C3000 */ mfc1 $t4, $f6
/* 0024C 808ADD2C 44813000 */ mtc1 $at, $f6 ## $f6 = 2147483648.00
/* 00250 808ADD30 240C0001 */ addiu $t4, $zero, 0x0001 ## $t4 = 00000001
/* 00254 808ADD34 46062181 */ sub.s $f6, $f4, $f6
/* 00258 808ADD38 44CCF800 */ ctc1 $t4, $31
/* 0025C 808ADD3C 00000000 */ nop
/* 00260 808ADD40 460031A4 */ cvt.w.s $f6, $f6
/* 00264 808ADD44 444CF800 */ cfc1 $t4, $31
/* 00268 808ADD48 00000000 */ nop
/* 0026C 808ADD4C 318C0078 */ andi $t4, $t4, 0x0078 ## $t4 = 00000000
/* 00270 808ADD50 15800005 */ bne $t4, $zero, .L808ADD68
/* 00274 808ADD54 00000000 */ nop
/* 00278 808ADD58 440C3000 */ mfc1 $t4, $f6
/* 0027C 808ADD5C 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00280 808ADD60 10000007 */ beq $zero, $zero, .L808ADD80
/* 00284 808ADD64 01816025 */ or $t4, $t4, $at ## $t4 = 80000000
.L808ADD68:
/* 00288 808ADD68 10000005 */ beq $zero, $zero, .L808ADD80
/* 0028C 808ADD6C 240CFFFF */ addiu $t4, $zero, 0xFFFF ## $t4 = FFFFFFFF
/* 00290 808ADD70 440C3000 */ mfc1 $t4, $f6
.L808ADD74:
/* 00294 808ADD74 00000000 */ nop
/* 00298 808ADD78 0580FFFB */ bltz $t4, .L808ADD68
/* 0029C 808ADD7C 00000000 */ nop
.L808ADD80:
/* 002A0 808ADD80 44CBF800 */ ctc1 $t3, $31
/* 002A4 808ADD84 A08C00CF */ sb $t4, 0x00CF($a0) ## 000000CF
/* 002A8 808ADD88 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 002AC 808ADD8C C4C80170 */ lwc1 $f8, 0x0170($a2) ## 00000170
/* 002B0 808ADD90 444DF800 */ cfc1 $t5, $31
/* 002B4 808ADD94 44CEF800 */ ctc1 $t6, $31
/* 002B8 808ADD98 3C014F00 */ lui $at, 0x4F00 ## $at = 4F000000
/* 002BC 808ADD9C 460042A4 */ cvt.w.s $f10, $f8
/* 002C0 808ADDA0 444EF800 */ cfc1 $t6, $31
/* 002C4 808ADDA4 00000000 */ nop
/* 002C8 808ADDA8 31CE0078 */ andi $t6, $t6, 0x0078 ## $t6 = 00000000
/* 002CC 808ADDAC 51C00013 */ beql $t6, $zero, .L808ADDFC
/* 002D0 808ADDB0 440E5000 */ mfc1 $t6, $f10
/* 002D4 808ADDB4 44815000 */ mtc1 $at, $f10 ## $f10 = 2147483648.00
/* 002D8 808ADDB8 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 002DC 808ADDBC 460A4281 */ sub.s $f10, $f8, $f10
/* 002E0 808ADDC0 44CEF800 */ ctc1 $t6, $31
/* 002E4 808ADDC4 00000000 */ nop
/* 002E8 808ADDC8 460052A4 */ cvt.w.s $f10, $f10
/* 002EC 808ADDCC 444EF800 */ cfc1 $t6, $31
/* 002F0 808ADDD0 00000000 */ nop
/* 002F4 808ADDD4 31CE0078 */ andi $t6, $t6, 0x0078 ## $t6 = 00000000
/* 002F8 808ADDD8 15C00005 */ bne $t6, $zero, .L808ADDF0
/* 002FC 808ADDDC 00000000 */ nop
/* 00300 808ADDE0 440E5000 */ mfc1 $t6, $f10
/* 00304 808ADDE4 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 00308 808ADDE8 10000007 */ beq $zero, $zero, .L808ADE08
/* 0030C 808ADDEC 01C17025 */ or $t6, $t6, $at ## $t6 = 80000000
.L808ADDF0:
/* 00310 808ADDF0 10000005 */ beq $zero, $zero, .L808ADE08
/* 00314 808ADDF4 240EFFFF */ addiu $t6, $zero, 0xFFFF ## $t6 = FFFFFFFF
/* 00318 808ADDF8 440E5000 */ mfc1 $t6, $f10
.L808ADDFC:
/* 0031C 808ADDFC 00000000 */ nop
/* 00320 808ADE00 05C0FFFB */ bltz $t6, .L808ADDF0
/* 00324 808ADE04 00000000 */ nop
.L808ADE08:
/* 00328 808ADE08 44CDF800 */ ctc1 $t5, $31
/* 0032C 808ADE0C 03E00008 */ jr $ra
/* 00330 808ADE10 A08E00DF */ sb $t6, 0x00DF($a0) ## 000000DF

View File

@ -1,125 +0,0 @@
glabel func_808ADEF0
/* 00410 808ADEF0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00414 808ADEF4 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00418 808ADEF8 AFB00020 */ sw $s0, 0x0020($sp)
/* 0041C 808ADEFC 9082016A */ lbu $v0, 0x016A($a0) ## 0000016A
/* 00420 808ADF00 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00424 808ADF04 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00428 808ADF08 14400012 */ bne $v0, $zero, .L808ADF54
/* 0042C 808ADF0C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00430 808ADF10 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00434 808ADF14 9605016C */ lhu $a1, 0x016C($s0) ## 0000016C
/* 00438 808ADF18 0C00B2D0 */ jal Flags_GetSwitch
/* 0043C 808ADF1C AFA7002C */ sw $a3, 0x002C($sp)
/* 00440 808ADF20 1040005F */ beq $v0, $zero, .L808AE0A0
/* 00444 808ADF24 240E0002 */ addiu $t6, $zero, 0x0002 ## $t6 = 00000002
/* 00448 808ADF28 240F0028 */ addiu $t7, $zero, 0x0028 ## $t7 = 00000028
/* 0044C 808ADF2C A20E016A */ sb $t6, 0x016A($s0) ## 0000016A
/* 00450 808ADF30 A60F0168 */ sh $t7, 0x0168($s0) ## 00000168
/* 00454 808ADF34 AFA00010 */ sw $zero, 0x0010($sp)
/* 00458 808ADF38 8FA4002C */ lw $a0, 0x002C($sp)
/* 0045C 808ADF3C 24051004 */ addiu $a1, $zero, 0x1004 ## $a1 = 00001004
/* 00460 808ADF40 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D
/* 00464 808ADF44 0C02003E */ jal func_800800F8
/* 00468 808ADF48 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 0046C 808ADF4C 10000055 */ beq $zero, $zero, .L808AE0A4
/* 00470 808ADF50 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L808ADF54:
/* 00474 808ADF54 5441000B */ bnel $v0, $at, .L808ADF84
/* 00478 808ADF58 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 0047C 808ADF5C 86180168 */ lh $t8, 0x0168($s0) ## 00000168
/* 00480 808ADF60 24090002 */ addiu $t1, $zero, 0x0002 ## $t1 = 00000002
/* 00484 808ADF64 2719FFFF */ addiu $t9, $t8, 0xFFFF ## $t9 = FFFFFFFF
/* 00488 808ADF68 A6190168 */ sh $t9, 0x0168($s0) ## 00000168
/* 0048C 808ADF6C 86080168 */ lh $t0, 0x0168($s0) ## 00000168
/* 00490 808ADF70 0503004C */ bgezl $t0, .L808AE0A4
/* 00494 808ADF74 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00498 808ADF78 10000049 */ beq $zero, $zero, .L808AE0A0
/* 0049C 808ADF7C A209016A */ sb $t1, 0x016A($s0) ## 0000016A
/* 004A0 808ADF80 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
.L808ADF84:
/* 004A4 808ADF84 5441001D */ bnel $v0, $at, .L808ADFFC
/* 004A8 808ADF88 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 004AC 808ADF8C C6000170 */ lwc1 $f0, 0x0170($s0) ## 00000170
/* 004B0 808ADF90 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 004B4 808ADF94 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 004B8 808ADF98 4600203C */ c.lt.s $f4, $f0
/* 004BC 808ADF9C 00000000 */ nop
/* 004C0 808ADFA0 45020040 */ bc1fl .L808AE0A4
/* 004C4 808ADFA4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004C8 808ADFA8 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00
/* 004CC 808ADFAC 44805000 */ mtc1 $zero, $f10 ## $f10 = 0.00
/* 004D0 808ADFB0 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 004D4 808ADFB4 46060201 */ sub.s $f8, $f0, $f6
/* 004D8 808ADFB8 24E50810 */ addiu $a1, $a3, 0x0810 ## $a1 = 00000810
/* 004DC 808ADFBC E6080170 */ swc1 $f8, 0x0170($s0) ## 00000170
/* 004E0 808ADFC0 C6100170 */ lwc1 $f16, 0x0170($s0) ## 00000170
/* 004E4 808ADFC4 460A803E */ c.le.s $f16, $f10
/* 004E8 808ADFC8 00000000 */ nop
/* 004EC 808ADFCC 45020035 */ bc1fl .L808AE0A4
/* 004F0 808ADFD0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 004F4 808ADFD4 0C00FAFE */ jal func_8003EBF8
/* 004F8 808ADFD8 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C
/* 004FC 808ADFDC 44809000 */ mtc1 $zero, $f18 ## $f18 = 0.00
/* 00500 808ADFE0 240A0190 */ addiu $t2, $zero, 0x0190 ## $t2 = 00000190
/* 00504 808ADFE4 240B0003 */ addiu $t3, $zero, 0x0003 ## $t3 = 00000003
/* 00508 808ADFE8 A60A0168 */ sh $t2, 0x0168($s0) ## 00000168
/* 0050C 808ADFEC A20B016A */ sb $t3, 0x016A($s0) ## 0000016A
/* 00510 808ADFF0 1000002B */ beq $zero, $zero, .L808AE0A0
/* 00514 808ADFF4 E6120170 */ swc1 $f18, 0x0170($s0) ## 00000170
/* 00518 808ADFF8 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
.L808ADFFC:
/* 0051C 808ADFFC 5441000B */ bnel $v0, $at, .L808AE02C
/* 00520 808AE000 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
/* 00524 808AE004 860C0168 */ lh $t4, 0x0168($s0) ## 00000168
/* 00528 808AE008 240F0004 */ addiu $t7, $zero, 0x0004 ## $t7 = 00000004
/* 0052C 808AE00C 258DFFFF */ addiu $t5, $t4, 0xFFFF ## $t5 = FFFFFFFF
/* 00530 808AE010 A60D0168 */ sh $t5, 0x0168($s0) ## 00000168
/* 00534 808AE014 860E0168 */ lh $t6, 0x0168($s0) ## 00000168
/* 00538 808AE018 05C30022 */ bgezl $t6, .L808AE0A4
/* 0053C 808AE01C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00540 808AE020 1000001F */ beq $zero, $zero, .L808AE0A0
/* 00544 808AE024 A20F016A */ sb $t7, 0x016A($s0) ## 0000016A
/* 00548 808AE028 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004
.L808AE02C:
/* 0054C 808AE02C 1441001C */ bne $v0, $at, .L808AE0A0
/* 00550 808AE030 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 00554 808AE034 44811000 */ mtc1 $at, $f2 ## $f2 = 255.00
/* 00558 808AE038 C6000170 */ lwc1 $f0, 0x0170($s0) ## 00000170
/* 0055C 808AE03C 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00560 808AE040 4602003C */ c.lt.s $f0, $f2
/* 00564 808AE044 00000000 */ nop
/* 00568 808AE048 45020016 */ bc1fl .L808AE0A4
/* 0056C 808AE04C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00570 808AE050 44812000 */ mtc1 $at, $f4 ## $f4 = 5.00
/* 00574 808AE054 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 00578 808AE058 24E50810 */ addiu $a1, $a3, 0x0810 ## $a1 = 00000810
/* 0057C 808AE05C 46040180 */ add.s $f6, $f0, $f4
/* 00580 808AE060 E6060170 */ swc1 $f6, 0x0170($s0) ## 00000170
/* 00584 808AE064 C6080170 */ lwc1 $f8, 0x0170($s0) ## 00000170
/* 00588 808AE068 4608103E */ c.le.s $f2, $f8
/* 0058C 808AE06C 00000000 */ nop
/* 00590 808AE070 4502000C */ bc1fl .L808AE0A4
/* 00594 808AE074 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00598 808AE078 8E06014C */ lw $a2, 0x014C($s0) ## 0000014C
/* 0059C 808AE07C 0C00FB14 */ jal func_8003EC50
/* 005A0 808AE080 AFA7002C */ sw $a3, 0x002C($sp)
/* 005A4 808AE084 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 005A8 808AE088 44811000 */ mtc1 $at, $f2 ## $f2 = 255.00
/* 005AC 808AE08C A200016A */ sb $zero, 0x016A($s0) ## 0000016A
/* 005B0 808AE090 9605016C */ lhu $a1, 0x016C($s0) ## 0000016C
/* 005B4 808AE094 E6020170 */ swc1 $f2, 0x0170($s0) ## 00000170
/* 005B8 808AE098 0C00B2ED */ jal Flags_UnsetSwitch
/* 005BC 808AE09C 8FA4002C */ lw $a0, 0x002C($sp)
.L808AE0A0:
/* 005C0 808AE0A0 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L808AE0A4:
/* 005C4 808AE0A4 0C22B6B8 */ jal func_808ADAE0
/* 005C8 808AE0A8 92050174 */ lbu $a1, 0x0174($s0) ## 00000174
/* 005CC 808AE0AC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 005D0 808AE0B0 8FB00020 */ lw $s0, 0x0020($sp)
/* 005D4 808AE0B4 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 005D8 808AE0B8 03E00008 */ jr $ra
/* 005DC 808AE0BC 00000000 */ nop

View File

@ -1,20 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purpose registers
.section .data
.balign 16
glabel Bg_Spot03_Taki_InitVars
.word 0x011F0100, 0x00000030, 0x01120000, 0x00000178
.word BgSpot03Taki_Init
.word BgSpot03Taki_Destroy
.word BgSpot03Taki_Update
.word BgSpot03Taki_Draw
glabel D_808AE3B0
.word 0x48500064, 0x00000000, 0x00000000, 0x00000000

View File

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

View File

@ -2257,6 +2257,7 @@ void func_800F4190(Vec3f*, u16);
void func_800F436C(UNK_TYPE arg0, s16 arg1, f32 arg2);
// ? func_800F4414(?);
// ? func_800F4524(?);
void func_800F46E0(Vec3f* pos, f32 arg0);
// ? func_800F4784(?);
void func_800F47BC(void);
void func_800F47FC(void);

3
spec
View File

@ -1218,8 +1218,7 @@ endseg
beginseg
name "ovl_Bg_Spot03_Taki"
include "build/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.o"
include "build/data/overlays/actors/z_bg_spot03_taki.data.o"
include "build/data/overlays/actors/z_bg_spot03_taki.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Spot03_Taki/ovl_Bg_Spot03_Taki_reloc.o"
endseg
beginseg

View File

@ -15,7 +15,8 @@ void BgSpot03Taki_Destroy(Actor* thisx, GlobalContext* globalCtx);
void BgSpot03Taki_Update(Actor* thisx, GlobalContext* globalCtx);
void BgSpot03Taki_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void func_808ADEF0(BgSpot03Taki* this, GlobalContext* globalCtx);
const ActorInit Bg_Spot03_Taki_InitVars = {
ACTOR_BG_SPOT03_TAKI,
ACTORTYPE_BG,
@ -27,15 +28,142 @@ const ActorInit Bg_Spot03_Taki_InitVars = {
(ActorFunc)BgSpot03Taki_Update,
(ActorFunc)BgSpot03Taki_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot03_Taki/func_808ADAE0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot03_Taki/BgSpot03Taki_Init.s")
static InitChainEntry sInitChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 100, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot03_Taki/BgSpot03Taki_Destroy.s")
extern UNK_TYPE D_06000C98;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot03_Taki/func_808ADEF0.s")
// These are identical vertex data for the waterfall.
extern Vtx* D_06000800[]; // Vertex buffer 0
extern Vtx* D_06000990[]; // Vertex buffer 1
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot03_Taki/BgSpot03Taki_Update.s")
extern Gfx* D_06000B20[];
extern Gfx* D_06000BC0[];
extern Gfx* D_06001580[];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Spot03_Taki/BgSpot03Taki_Draw.s")
void BgSpot03Taki_ApplyOpeningAlpha(BgSpot03Taki* this, s32 bufferIndex) {
s32 i;
Vtx* vtx = (bufferIndex == 0) ? SEGMENTED_TO_VIRTUAL(D_06000800) : SEGMENTED_TO_VIRTUAL(D_06000990);
for (i = 0; i < 5; i++) {
vtx[i + 10].v.cn[3] = this->openingAlpha;
}
}
void BgSpot03Taki_Init(Actor* thisx, GlobalContext* globalCtx) {
BgSpot03Taki* this = THIS;
s16 pad;
s32 sp24 = 0;
this->switchFlag = (this->dyna.actor.params & 0x3F);
DynaPolyInfo_SetActorMove(&this->dyna, 0);
DynaPolyInfo_Alloc(&D_06000C98, &sp24);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, &this->dyna.actor, sp24);
Actor_ProcessInitChain(&this->dyna.actor, sInitChain);
this->bufferIndex = 0;
this->openingAlpha = 255.0f;
BgSpot03Taki_ApplyOpeningAlpha(this, 0);
BgSpot03Taki_ApplyOpeningAlpha(this, 1);
this->actionFunc = func_808ADEF0;
}
void BgSpot03Taki_Destroy(Actor* thisx, GlobalContext* globalCtx) {
BgSpot03Taki* this = THIS;
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
void func_808ADEF0(BgSpot03Taki* this, GlobalContext* globalCtx) {
if (this->state == WATERFALL_CLOSED) {
if (Flags_GetSwitch(globalCtx, this->switchFlag)) {
this->state = WATERFALL_OPENING_ANIMATED;
this->timer = 40;
func_800800F8(globalCtx, 0x1004, -0x63, NULL, 0);
}
} else if (this->state == WATERFALL_OPENING_IDLE) {
this->timer--;
if (this->timer < 0) {
this->state = WATERFALL_OPENING_ANIMATED;
}
} else if (this->state == WATERFALL_OPENING_ANIMATED) {
if (this->openingAlpha > 0) {
this->openingAlpha -= 5;
if (this->openingAlpha <= 0.0f) {
func_8003EBF8(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
this->timer = 400;
this->state = WATERFALL_OPENED;
this->openingAlpha = 0;
}
}
} else if (this->state == WATERFALL_OPENED) {
this->timer--;
if (this->timer < 0) {
this->state = WATERFALL_CLOSING;
}
} else if (this->state == WATERFALL_CLOSING) {
if (this->openingAlpha < 255.0f) {
this->openingAlpha += 5.0f;
if (this->openingAlpha >= 255.0f) {
func_8003EC50(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
this->state = WATERFALL_CLOSED;
this->openingAlpha = 255.0f;
Flags_UnsetSwitch(globalCtx, this->switchFlag);
}
}
}
BgSpot03Taki_ApplyOpeningAlpha(this, this->bufferIndex);
}
void BgSpot03Taki_Update(Actor* thisx, GlobalContext* globalCtx) {
BgSpot03Taki* this = THIS;
this->actionFunc(this, globalCtx);
}
void BgSpot03Taki_Draw(Actor* thisx, GlobalContext* globalCtx) {
BgSpot03Taki* this = THIS;
s32 pad;
u32 gameplayFrames;
OPEN_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot03_taki.c", 321);
gameplayFrames = globalCtx->gameplayFrames;
gSPMatrix(oGfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_spot03_taki.c", 325),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
func_80093D84(globalCtx->state.gfxCtx);
gSPSegment(
oGfxCtx->polyXlu.p++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, 0, gameplayFrames * 5, 64, 64, 1, 0, gameplayFrames * 5, 64, 64));
gSPDisplayList(oGfxCtx->polyXlu.p++, D_06000B20);
if (this->bufferIndex == 0) {
gSPVertex(oGfxCtx->polyXlu.p++, D_06000800, 25, 0);
} else {
gSPVertex(oGfxCtx->polyXlu.p++, D_06000990, 25, 0);
}
gSPDisplayList(oGfxCtx->polyXlu.p++, D_06000BC0);
gSPSegment(oGfxCtx->polyXlu.p++, 0x08,
Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, gameplayFrames * 1, gameplayFrames * 3, 64, 64, 1,
-gameplayFrames, gameplayFrames * 3, 64, 64));
gSPDisplayList(oGfxCtx->polyXlu.p++, D_06001580);
CLOSE_DISPS(globalCtx->state.gfxCtx, "../z_bg_spot03_taki.c", 358);
this->bufferIndex = this->bufferIndex == 0;
if (this->state > WATERFALL_CLOSED && this->state < WATERFALL_CLOSING) {
func_800F46E0(&this->dyna.actor.projectedPos, 0.5f);
} else {
func_800F46E0(&this->dyna.actor.projectedPos, 1.0f);
}
}

View File

@ -4,11 +4,26 @@
#include "ultra64.h"
#include "global.h"
typedef enum {
WATERFALL_CLOSED,
WATERFALL_OPENING_IDLE,
WATERFALL_OPENING_ANIMATED,
WATERFALL_OPENED,
WATERFALL_CLOSING,
} BgSpot03TakiState;
struct BgSpot03Taki;
typedef void (*BgSpot03TakiActionFunc)(struct BgSpot03Taki*, GlobalContext*);
typedef struct BgSpot03Taki {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x2C];
/* 0x0000 */ DynaPolyActor dyna;
/* 0x0164 */ BgSpot03TakiActionFunc actionFunc;
/* 0x0168 */ s16 timer;
/* 0x016A */ u8 state;
/* 0x016C */ u16 switchFlag;
/* 0x0170 */ f32 openingAlpha;
/* 0x0174 */ u8 bufferIndex;
} BgSpot03Taki; // size = 0x0178
extern const ActorInit Bg_Spot03_Taki_InitVars;

View File

@ -1247,6 +1247,14 @@ D_06000498 = 0x06000498;
// z_bg_menkuri_eye
D_06002D20 = 0x06002D20;
// z_bg_spot03_taki
D_06000C98 = 0x06000C98;
D_06000800 = 0x06000800;
D_06000990 = 0x06000990;
D_06000B20 = 0x06000B20;
D_06000BC0 = 0x06000BC0;
D_06001580 = 0x06001580;
// z_bg_po_event
D_06007860 = 0x06007860;
D_060075A0 = 0x060075A0;