1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-28 19:25:27 +00:00

Decompile the remaining Oceff actors + Add ichaindis.py (#125)

* Decompile the remaining Oceff actors + Add ichaindis.py

- z_oceff_spot.c: OK
- z_oceff_storm.c : 1 non-matching left
- Add ichaindis.py

* Rename SetActionFunc to SetupAction + Add Actor descriptions

* Minor fixes in PR #125
This commit is contained in:
Random 2020-05-10 19:09:26 +02:00 committed by GitHub
parent 40836f5d82
commit 3e5ed389b9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 662 additions and 1125 deletions

View file

@ -1,40 +0,0 @@
glabel OceffSpot_Destroy
/* 00160 80BA61D0 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00164 80BA61D4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00168 80BA61D8 AFB00018 */ sw $s0, 0x0018($sp)
/* 0016C 80BA61DC AFA40030 */ sw $a0, 0x0030($sp)
/* 00170 80BA61E0 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 00174 80BA61E4 8FAF0030 */ lw $t7, 0x0030($sp)
/* 00178 80BA61E8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 0017C 80BA61EC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00180 80BA61F0 AFAE0024 */ sw $t6, 0x0024($sp)
/* 00184 80BA61F4 24A507A8 */ addiu $a1, $a1, 0x07A8 ## $a1 = 000007A8
/* 00188 80BA61F8 8DE6014C */ lw $a2, 0x014C($t7) ## 0000014C
/* 0018C 80BA61FC 0C01E9F1 */ jal Lights_Remove
/* 00190 80BA6200 AFA50020 */ sw $a1, 0x0020($sp)
/* 00194 80BA6204 8FB80030 */ lw $t8, 0x0030($sp)
/* 00198 80BA6208 8FA50020 */ lw $a1, 0x0020($sp)
/* 0019C 80BA620C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001A0 80BA6210 0C01E9F1 */ jal Lights_Remove
/* 001A4 80BA6214 8F060160 */ lw $a2, 0x0160($t8) ## 00000160
/* 001A8 80BA6218 0C021DB2 */ jal func_800876C8
/* 001AC 80BA621C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001B0 80BA6220 3C198016 */ lui $t9, %hi(gSaveContext+0x13c8)
/* 001B4 80BA6224 8739FA28 */ lh $t9, %lo(gSaveContext+0x13c8)($t9)
/* 001B8 80BA6228 53200009 */ beql $t9, $zero, .L80BA6250
/* 001BC 80BA622C 8FBF001C */ lw $ra, 0x001C($sp)
/* 001C0 80BA6230 8E081C40 */ lw $t0, 0x1C40($s0) ## 00001C40
/* 001C4 80BA6234 8FA20024 */ lw $v0, 0x0024($sp)
/* 001C8 80BA6238 51000005 */ beql $t0, $zero, .L80BA6250
/* 001CC 80BA623C 8FBF001C */ lw $ra, 0x001C($sp)
/* 001D0 80BA6240 90490692 */ lbu $t1, 0x0692($v0) ## 00000692
/* 001D4 80BA6244 352A0040 */ ori $t2, $t1, 0x0040 ## $t2 = 00000040
/* 001D8 80BA6248 A04A0692 */ sb $t2, 0x0692($v0) ## 00000692
/* 001DC 80BA624C 8FBF001C */ lw $ra, 0x001C($sp)
.L80BA6250:
/* 001E0 80BA6250 8FB00018 */ lw $s0, 0x0018($sp)
/* 001E4 80BA6254 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 001E8 80BA6258 03E00008 */ jr $ra
/* 001EC 80BA625C 00000000 */ nop

View file

@ -1,102 +0,0 @@
.rdata
glabel D_80BA6F94
.asciz "../z_oceff_spot.c"
.balign 4
glabel D_80BA6FA8
.asciz "../z_oceff_spot.c"
.balign 4
glabel D_80BA6FBC
.asciz "../z_oceff_spot.c"
.balign 4
.text
glabel OceffSpot_Draw
/* 00674 80BA66E4 27BDFF90 */ addiu $sp, $sp, 0xFF90 ## $sp = FFFFFF90
/* 00678 80BA66E8 AFBF003C */ sw $ra, 0x003C($sp)
/* 0067C 80BA66EC AFB10038 */ sw $s1, 0x0038($sp)
/* 00680 80BA66F0 AFB00034 */ sw $s0, 0x0034($sp)
/* 00684 80BA66F4 AFA40070 */ sw $a0, 0x0070($sp)
/* 00688 80BA66F8 8CAE009C */ lw $t6, 0x009C($a1) ## 0000009C
/* 0068C 80BA66FC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00690 80BA6700 3C0680BA */ lui $a2, %hi(D_80BA6F94) ## $a2 = 80BA0000
/* 00694 80BA6704 31CFFFFF */ andi $t7, $t6, 0xFFFF ## $t7 = 00000000
/* 00698 80BA6708 AFAF0068 */ sw $t7, 0x0068($sp)
/* 0069C 80BA670C 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 006A0 80BA6710 24C66F94 */ addiu $a2, $a2, %lo(D_80BA6F94) ## $a2 = 80BA6F94
/* 006A4 80BA6714 27A40054 */ addiu $a0, $sp, 0x0054 ## $a0 = FFFFFFE4
/* 006A8 80BA6718 240701D2 */ addiu $a3, $zero, 0x01D2 ## $a3 = 000001D2
/* 006AC 80BA671C 0C031AB1 */ jal Graph_OpenDisps
/* 006B0 80BA6720 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 006B4 80BA6724 0C024F61 */ jal func_80093D84
/* 006B8 80BA6728 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 006BC 80BA672C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 006C0 80BA6730 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
/* 006C4 80BA6734 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
/* 006C8 80BA6738 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 006CC 80BA673C AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 006D0 80BA6740 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 006D4 80BA6744 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 006D8 80BA6748 3C0580BA */ lui $a1, %hi(D_80BA6FA8) ## $a1 = 80BA0000
/* 006DC 80BA674C 24A56FA8 */ addiu $a1, $a1, %lo(D_80BA6FA8) ## $a1 = 80BA6FA8
/* 006E0 80BA6750 240601D5 */ addiu $a2, $zero, 0x01D5 ## $a2 = 000001D5
/* 006E4 80BA6754 0C0346A2 */ jal Matrix_NewMtx
/* 006E8 80BA6758 AFA20050 */ sw $v0, 0x0050($sp)
/* 006EC 80BA675C 8FA30050 */ lw $v1, 0x0050($sp)
/* 006F0 80BA6760 3C0B80BA */ lui $t3, %hi(D_80BA6E10) ## $t3 = 80BA0000
/* 006F4 80BA6764 256B6E10 */ addiu $t3, $t3, %lo(D_80BA6E10) ## $t3 = 80BA6E10
/* 006F8 80BA6768 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 006FC 80BA676C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00700 80BA6770 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
/* 00704 80BA6774 240D0020 */ addiu $t5, $zero, 0x0020 ## $t5 = 00000020
/* 00708 80BA6778 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008
/* 0070C 80BA677C AE0A02D0 */ sw $t2, 0x02D0($s0) ## 000002D0
/* 00710 80BA6780 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00714 80BA6784 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00718 80BA6788 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0071C 80BA678C 8FA80068 */ lw $t0, 0x0068($sp)
/* 00720 80BA6790 240A0020 */ addiu $t2, $zero, 0x0020 ## $t2 = 00000020
/* 00724 80BA6794 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00728 80BA6798 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 0072C 80BA679C AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00730 80BA67A0 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00734 80BA67A4 00080823 */ subu $at, $zero, $t0
/* 00738 80BA67A8 0001C0C0 */ sll $t8, $at, 3
/* 0073C 80BA67AC 240E0020 */ addiu $t6, $zero, 0x0020 ## $t6 = 00000020
/* 00740 80BA67B0 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00744 80BA67B4 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 00748 80BA67B8 AFB90024 */ sw $t9, 0x0024($sp)
/* 0074C 80BA67BC AFAF0018 */ sw $t7, 0x0018($sp)
/* 00750 80BA67C0 AFAE0014 */ sw $t6, 0x0014($sp)
/* 00754 80BA67C4 AFB80020 */ sw $t8, 0x0020($sp)
/* 00758 80BA67C8 00013840 */ sll $a3, $at, 1
/* 0075C 80BA67CC AFAA0028 */ sw $t2, 0x0028($sp)
/* 00760 80BA67D0 AFA0001C */ sw $zero, 0x001C($sp)
/* 00764 80BA67D4 AFAD0010 */ sw $t5, 0x0010($sp)
/* 00768 80BA67D8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 0076C 80BA67DC AFA20048 */ sw $v0, 0x0048($sp)
/* 00770 80BA67E0 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00774 80BA67E4 00083040 */ sll $a2, $t0, 1
/* 00778 80BA67E8 8FA30048 */ lw $v1, 0x0048($sp)
/* 0077C 80BA67EC 3C0D80BA */ lui $t5, %hi(D_80BA6EA8) ## $t5 = 80BA0000
/* 00780 80BA67F0 25AD6EA8 */ addiu $t5, $t5, %lo(D_80BA6EA8) ## $t5 = 80BA6EA8
/* 00784 80BA67F4 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00788 80BA67F8 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0078C 80BA67FC 3C0CDE00 */ lui $t4, 0xDE00 ## $t4 = DE000000
/* 00790 80BA6800 3C0680BA */ lui $a2, %hi(D_80BA6FBC) ## $a2 = 80BA0000
/* 00794 80BA6804 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00798 80BA6808 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 0079C 80BA680C AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 007A0 80BA6810 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 007A4 80BA6814 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 007A8 80BA6818 24C66FBC */ addiu $a2, $a2, %lo(D_80BA6FBC) ## $a2 = 80BA6FBC
/* 007AC 80BA681C 27A40054 */ addiu $a0, $sp, 0x0054 ## $a0 = FFFFFFE4
/* 007B0 80BA6820 0C031AD5 */ jal Graph_CloseDisps
/* 007B4 80BA6824 240701E5 */ addiu $a3, $zero, 0x01E5 ## $a3 = 000001E5
/* 007B8 80BA6828 8FBF003C */ lw $ra, 0x003C($sp)
/* 007BC 80BA682C 8FB00034 */ lw $s0, 0x0034($sp)
/* 007C0 80BA6830 8FB10038 */ lw $s1, 0x0038($sp)
/* 007C4 80BA6834 03E00008 */ jr $ra
/* 007C8 80BA6838 27BD0070 */ addiu $sp, $sp, 0x0070 ## $sp = 00000000
/* 007CC 80BA683C 00000000 */ nop

View file

@ -1,101 +0,0 @@
.late_rodata
glabel D_80BA6FD0
.word 0x4019999A
glabel D_80BA6FD4
.float 0.3
.text
glabel OceffSpot_Init
/* 00008 80BA6078 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 0000C 80BA607C AFA50044 */ sw $a1, 0x0044($sp)
/* 00010 80BA6080 AFBF002C */ sw $ra, 0x002C($sp)
/* 00014 80BA6084 AFB00028 */ sw $s0, 0x0028($sp)
/* 00018 80BA6088 3C0580BA */ lui $a1, %hi(D_80BA6F38) ## $a1 = 80BA0000
/* 0001C 80BA608C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00020 80BA6090 0C01E037 */ jal Actor_ProcessInitChain
/* 00024 80BA6094 24A56F38 */ addiu $a1, $a1, %lo(D_80BA6F38) ## $a1 = 80BA6F38
/* 00028 80BA6098 3C0580BA */ lui $a1, %hi(func_80BA63AC) ## $a1 = 80BA0000
/* 0002C 80BA609C 24A563AC */ addiu $a1, $a1, %lo(func_80BA63AC) ## $a1 = 80BA63AC
/* 00030 80BA60A0 0C2E981C */ jal func_80BA6070
/* 00034 80BA60A4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00038 80BA60A8 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 0003C 80BA60AC C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 00040 80BA60B0 C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 00044 80BA60B4 4600218D */ trunc.w.s $f6, $f4
/* 00048 80BA60B8 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150
/* 0004C 80BA60BC AFA40030 */ sw $a0, 0x0030($sp)
/* 00050 80BA60C0 4600428D */ trunc.w.s $f10, $f8
/* 00054 80BA60C4 44053000 */ mfc1 $a1, $f6
/* 00058 80BA60C8 AFA0001C */ sw $zero, 0x001C($sp)
/* 0005C 80BA60CC 4600848D */ trunc.w.s $f18, $f16
/* 00060 80BA60D0 44065000 */ mfc1 $a2, $f10
/* 00064 80BA60D4 00052C00 */ sll $a1, $a1, 16
/* 00068 80BA60D8 00052C03 */ sra $a1, $a1, 16
/* 0006C 80BA60DC 44079000 */ mfc1 $a3, $f18
/* 00070 80BA60E0 00063400 */ sll $a2, $a2, 16
/* 00074 80BA60E4 00063403 */ sra $a2, $a2, 16
/* 00078 80BA60E8 00073C00 */ sll $a3, $a3, 16
/* 0007C 80BA60EC 00073C03 */ sra $a3, $a3, 16
/* 00080 80BA60F0 AFA00018 */ sw $zero, 0x0018($sp)
/* 00084 80BA60F4 AFA00014 */ sw $zero, 0x0014($sp)
/* 00088 80BA60F8 0C01E763 */ jal Lights_InitType0PositionalLight
/* 0008C 80BA60FC AFA00010 */ sw $zero, 0x0010($sp)
/* 00090 80BA6100 8FA40044 */ lw $a0, 0x0044($sp)
/* 00094 80BA6104 8FA60030 */ lw $a2, 0x0030($sp)
/* 00098 80BA6108 248507A8 */ addiu $a1, $a0, 0x07A8 ## $a1 = 000007A8
/* 0009C 80BA610C 0C01E9D9 */ jal Lights_Insert
/* 000A0 80BA6110 AFA50034 */ sw $a1, 0x0034($sp)
/* 000A4 80BA6114 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 000A8 80BA6118 C6080028 */ lwc1 $f8, 0x0028($s0) ## 00000028
/* 000AC 80BA611C C610002C */ lwc1 $f16, 0x002C($s0) ## 0000002C
/* 000B0 80BA6120 4600218D */ trunc.w.s $f6, $f4
/* 000B4 80BA6124 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 000B8 80BA6128 26040164 */ addiu $a0, $s0, 0x0164 ## $a0 = 00000164
/* 000BC 80BA612C 4600428D */ trunc.w.s $f10, $f8
/* 000C0 80BA6130 44053000 */ mfc1 $a1, $f6
/* 000C4 80BA6134 AFA40030 */ sw $a0, 0x0030($sp)
/* 000C8 80BA6138 4600848D */ trunc.w.s $f18, $f16
/* 000CC 80BA613C 44065000 */ mfc1 $a2, $f10
/* 000D0 80BA6140 00052C00 */ sll $a1, $a1, 16
/* 000D4 80BA6144 00052C03 */ sra $a1, $a1, 16
/* 000D8 80BA6148 44079000 */ mfc1 $a3, $f18
/* 000DC 80BA614C 00063400 */ sll $a2, $a2, 16
/* 000E0 80BA6150 00063403 */ sra $a2, $a2, 16
/* 000E4 80BA6154 00073C00 */ sll $a3, $a3, 16
/* 000E8 80BA6158 00073C03 */ sra $a3, $a3, 16
/* 000EC 80BA615C AFA0001C */ sw $zero, 0x001C($sp)
/* 000F0 80BA6160 AFA00018 */ sw $zero, 0x0018($sp)
/* 000F4 80BA6164 AFA00014 */ sw $zero, 0x0014($sp)
/* 000F8 80BA6168 0C01E763 */ jal Lights_InitType0PositionalLight
/* 000FC 80BA616C AFA00010 */ sw $zero, 0x0010($sp)
/* 00100 80BA6170 8FA40044 */ lw $a0, 0x0044($sp)
/* 00104 80BA6174 8FA50034 */ lw $a1, 0x0034($sp)
/* 00108 80BA6178 0C01E9D9 */ jal Lights_Insert
/* 0010C 80BA617C 8FA60030 */ lw $a2, 0x0030($sp)
/* 00110 80BA6180 AE020160 */ sw $v0, 0x0160($s0) ## 00000160
/* 00114 80BA6184 3C0A8016 */ lui $t2, %hi(gGameInfo)
/* 00118 80BA6188 8D4AFA90 */ lw $t2, %lo(gGameInfo)($t2)
/* 0011C 80BA618C 44804000 */ mtc1 $zero, $f8 ## $f8 = 0.00
/* 00120 80BA6190 3C0180BA */ lui $at, %hi(D_80BA6FD4) ## $at = 80BA0000
/* 00124 80BA6194 854B04B2 */ lh $t3, 0x04B2($t2) ## 801604B2
/* 00128 80BA6198 11600005 */ beq $t3, $zero, .L80BA61B0
/* 0012C 80BA619C 00000000 */ nop
/* 00130 80BA61A0 3C0180BA */ lui $at, %hi(D_80BA6FD0) ## $at = 80BA0000
/* 00134 80BA61A4 C4246FD0 */ lwc1 $f4, %lo(D_80BA6FD0)($at)
/* 00138 80BA61A8 10000003 */ beq $zero, $zero, .L80BA61B8
/* 0013C 80BA61AC E6040054 */ swc1 $f4, 0x0054($s0) ## 00000054
.L80BA61B0:
/* 00140 80BA61B0 C4266FD4 */ lwc1 $f6, %lo(D_80BA6FD4)($at)
/* 00144 80BA61B4 E6060054 */ swc1 $f6, 0x0054($s0) ## 00000054
.L80BA61B8:
/* 00148 80BA61B8 E6080174 */ swc1 $f8, 0x0174($s0) ## 00000174
/* 0014C 80BA61BC 8FBF002C */ lw $ra, 0x002C($sp)
/* 00150 80BA61C0 8FB00028 */ lw $s0, 0x0028($sp)
/* 00154 80BA61C4 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00158 80BA61C8 03E00008 */ jr $ra
/* 0015C 80BA61CC 00000000 */ nop

View file

@ -1,197 +0,0 @@
.late_rodata
glabel D_80BA6FE0
.float 3.14159274101
glabel D_80BA6FE4
.word 0x3ED70A3D
glabel D_80BA6FE8
.float 0.9
.text
glabel OceffSpot_Update
/* 003A0 80BA6410 27BDFFA8 */ addiu $sp, $sp, 0xFFA8 ## $sp = FFFFFFA8
/* 003A4 80BA6414 AFBF002C */ sw $ra, 0x002C($sp)
/* 003A8 80BA6418 AFB00028 */ sw $s0, 0x0028($sp)
/* 003AC 80BA641C AFA5005C */ sw $a1, 0x005C($sp)
/* 003B0 80BA6420 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 003B4 80BA6424 3C0180BA */ lui $at, %hi(D_80BA6FE0) ## $at = 80BA0000
/* 003B8 80BA6428 C4266FE0 */ lwc1 $f6, %lo(D_80BA6FE0)($at)
/* 003BC 80BA642C AFAF004C */ sw $t7, 0x004C($sp)
/* 003C0 80BA6430 C4840174 */ lwc1 $f4, 0x0174($a0) ## 00000174
/* 003C4 80BA6434 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 003C8 80BA6438 46062302 */ mul.s $f12, $f4, $f6
/* 003CC 80BA643C 0C041184 */ jal cosf
/* 003D0 80BA6440 00000000 */ nop
/* 003D4 80BA6444 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 003D8 80BA6448 44814000 */ mtc1 $at, $f8 ## $f8 = 1.00
/* 003DC 80BA644C 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 003E0 80BA6450 44818000 */ mtc1 $at, $f16 ## $f16 = 0.50
/* 003E4 80BA6454 46004281 */ sub.s $f10, $f8, $f0
/* 003E8 80BA6458 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 003EC 80BA645C 8FA5005C */ lw $a1, 0x005C($sp)
/* 003F0 80BA6460 46105082 */ mul.s $f2, $f10, $f16
/* 003F4 80BA6464 E7A20048 */ swc1 $f2, 0x0048($sp)
/* 003F8 80BA6468 8E19017C */ lw $t9, 0x017C($s0) ## 0000017C
/* 003FC 80BA646C 0320F809 */ jalr $ra, $t9
/* 00400 80BA6470 00000000 */ nop
/* 00404 80BA6474 3C0180BA */ lui $at, %hi(D_80BA6FE4) ## $at = 80BA0000
/* 00408 80BA6478 C7A20048 */ lwc1 $f2, 0x0048($sp)
/* 0040C 80BA647C C4326FE4 */ lwc1 $f18, %lo(D_80BA6FE4)($at)
/* 00410 80BA6480 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000
/* 00414 80BA6484 44813000 */ mtc1 $at, $f6 ## $f6 = 5.00
/* 00418 80BA6488 46029302 */ mul.s $f12, $f18, $f2
/* 0041C 80BA648C 3C014000 */ lui $at, 0x4000 ## $at = 40000000
/* 00420 80BA6490 44815000 */ mtc1 $at, $f10 ## $f10 = 2.00
/* 00424 80BA6494 C6000174 */ lwc1 $f0, 0x0174($s0) ## 00000174
/* 00428 80BA6498 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000
/* 0042C 80BA649C 44819000 */ mtc1 $at, $f18 ## $f18 = 0.50
/* 00430 80BA64A0 46005401 */ sub.s $f16, $f10, $f0
/* 00434 80BA64A4 E60C0058 */ swc1 $f12, 0x0058($s0) ## 00000058
/* 00438 80BA64A8 E60C0050 */ swc1 $f12, 0x0050($s0) ## 00000050
/* 0043C 80BA64AC 8FB8004C */ lw $t8, 0x004C($sp)
/* 00440 80BA64B0 46008082 */ mul.s $f2, $f16, $f0
/* 00444 80BA64B4 3C0180BA */ lui $at, %hi(D_80BA6FE8) ## $at = 80BA0000
/* 00448 80BA64B8 8F0A0024 */ lw $t2, 0x0024($t8) ## 00000024
/* 0044C 80BA64BC 3C073E4C */ lui $a3, 0x3E4C ## $a3 = 3E4C0000
/* 00450 80BA64C0 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3E4CCCCD
/* 00454 80BA64C4 AE0A0024 */ sw $t2, 0x0024($s0) ## 00000024
/* 00458 80BA64C8 8F090028 */ lw $t1, 0x0028($t8) ## 00000028
/* 0045C 80BA64CC 3C06445C */ lui $a2, 0x445C ## $a2 = 445C0000
/* 00460 80BA64D0 AE090028 */ sw $t1, 0x0028($s0) ## 00000028
/* 00464 80BA64D4 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 00468 80BA64D8 8F0A002C */ lw $t2, 0x002C($t8) ## 0000002C
/* 0046C 80BA64DC 46062200 */ add.s $f8, $f4, $f6
/* 00470 80BA64E0 46121102 */ mul.s $f4, $f2, $f18
/* 00474 80BA64E4 AE0A002C */ sw $t2, 0x002C($s0) ## 0000002C
/* 00478 80BA64E8 E6080028 */ swc1 $f8, 0x0028($s0) ## 00000028
/* 0047C 80BA64EC C4266FE8 */ lwc1 $f6, %lo(D_80BA6FE8)($at)
/* 00480 80BA64F0 E7A20048 */ swc1 $f2, 0x0048($sp)
/* 00484 80BA64F4 8FA4005C */ lw $a0, 0x005C($sp)
/* 00488 80BA64F8 44052000 */ mfc1 $a1, $f4
/* 0048C 80BA64FC 0C01DCEA */ jal func_800773A8
/* 00490 80BA6500 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00494 80BA6504 C6100028 */ lwc1 $f16, 0x0028($s0) ## 00000028
/* 00498 80BA6508 C6080024 */ lwc1 $f8, 0x0024($s0) ## 00000024
/* 0049C 80BA650C 3C01425C */ lui $at, 0x425C ## $at = 425C0000
/* 004A0 80BA6510 4600848D */ trunc.w.s $f18, $f16
/* 004A4 80BA6514 C7A20048 */ lwc1 $f2, 0x0048($sp)
/* 004A8 80BA6518 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150
/* 004AC 80BA651C 4600428D */ trunc.w.s $f10, $f8
/* 004B0 80BA6520 440D9000 */ mfc1 $t5, $f18
/* 004B4 80BA6524 44814000 */ mtc1 $at, $f8 ## $f8 = 55.00
/* 004B8 80BA6528 3C01437F */ lui $at, 0x437F ## $at = 437F0000
/* 004BC 80BA652C 000D7400 */ sll $t6, $t5, 16
/* 004C0 80BA6530 000E7C03 */ sra $t7, $t6, 16
/* 004C4 80BA6534 448F2000 */ mtc1 $t7, $f4 ## $f4 = 0.00
/* 004C8 80BA6538 44055000 */ mfc1 $a1, $f10
/* 004CC 80BA653C C612002C */ lwc1 $f18, 0x002C($s0) ## 0000002C
/* 004D0 80BA6540 468021A0 */ cvt.s.w $f6, $f4
/* 004D4 80BA6544 00052C00 */ sll $a1, $a1, 16
/* 004D8 80BA6548 00052C03 */ sra $a1, $a1, 16
/* 004DC 80BA654C 4600910D */ trunc.w.s $f4, $f18
/* 004E0 80BA6550 46083280 */ add.s $f10, $f6, $f8
/* 004E4 80BA6554 44813000 */ mtc1 $at, $f6 ## $f6 = 255.00
/* 004E8 80BA6558 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 004EC 80BA655C 44072000 */ mfc1 $a3, $f4
/* 004F0 80BA6560 4600540D */ trunc.w.s $f16, $f10
/* 004F4 80BA6564 46023202 */ mul.s $f8, $f6, $f2
/* 004F8 80BA6568 00073C00 */ sll $a3, $a3, 16
/* 004FC 80BA656C 00073C03 */ sra $a3, $a3, 16
/* 00500 80BA6570 44068000 */ mfc1 $a2, $f16
/* 00504 80BA6574 44818000 */ mtc1 $at, $f16 ## $f16 = 200.00
/* 00508 80BA6578 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 0050C 80BA657C 44813000 */ mtc1 $at, $f6 ## $f6 = 100.00
/* 00510 80BA6580 46028482 */ mul.s $f18, $f16, $f2
/* 00514 80BA6584 4600428D */ trunc.w.s $f10, $f8
/* 00518 80BA6588 00063400 */ sll $a2, $a2, 16
/* 0051C 80BA658C 46023202 */ mul.s $f8, $f6, $f2
/* 00520 80BA6590 00063403 */ sra $a2, $a2, 16
/* 00524 80BA6594 44025000 */ mfc1 $v0, $f10
/* 00528 80BA6598 00000000 */ nop
/* 0052C 80BA659C 304200FF */ andi $v0, $v0, 0x00FF ## $v0 = 00000000
/* 00530 80BA65A0 4600910D */ trunc.w.s $f4, $f18
/* 00534 80BA65A4 AFA20010 */ sw $v0, 0x0010($sp)
/* 00538 80BA65A8 AFA20014 */ sw $v0, 0x0014($sp)
/* 0053C 80BA65AC 4600428D */ trunc.w.s $f10, $f8
/* 00540 80BA65B0 44032000 */ mfc1 $v1, $f4
/* 00544 80BA65B4 AFA2003C */ sw $v0, 0x003C($sp)
/* 00548 80BA65B8 44085000 */ mfc1 $t0, $f10
/* 0054C 80BA65BC 306300FF */ andi $v1, $v1, 0x00FF ## $v1 = 00000000
/* 00550 80BA65C0 AFA30018 */ sw $v1, 0x0018($sp)
/* 00554 80BA65C4 00084400 */ sll $t0, $t0, 16
/* 00558 80BA65C8 00084403 */ sra $t0, $t0, 16
/* 0055C 80BA65CC AFA8001C */ sw $t0, 0x001C($sp)
/* 00560 80BA65D0 AFA80034 */ sw $t0, 0x0034($sp)
/* 00564 80BA65D4 0C01E763 */ jal Lights_InitType0PositionalLight
/* 00568 80BA65D8 AFA30038 */ sw $v1, 0x0038($sp)
/* 0056C 80BA65DC 8FAC004C */ lw $t4, 0x004C($sp)
/* 00570 80BA65E0 0C01DE1C */ jal Math_Sins
## sins?
/* 00574 80BA65E4 858400B6 */ lh $a0, 0x00B6($t4) ## 000000B6
/* 00578 80BA65E8 8FAD004C */ lw $t5, 0x004C($sp)
/* 0057C 80BA65EC E7A00040 */ swc1 $f0, 0x0040($sp)
/* 00580 80BA65F0 0C01DE0D */ jal Math_Coss
## coss?
/* 00584 80BA65F4 85A400B6 */ lh $a0, 0x00B6($t5) ## 000000B6
/* 00588 80BA65F8 C6040024 */ lwc1 $f4, 0x0024($s0) ## 00000024
/* 0058C 80BA65FC 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00590 80BA6600 44811000 */ mtc1 $at, $f2 ## $f2 = 20.00
/* 00594 80BA6604 4600218D */ trunc.w.s $f6, $f4
/* 00598 80BA6608 C7B00040 */ lwc1 $f16, 0x0040($sp)
/* 0059C 80BA660C 8FA2003C */ lw $v0, 0x003C($sp)
/* 005A0 80BA6610 26040164 */ addiu $a0, $s0, 0x0164 ## $a0 = 00000164
/* 005A4 80BA6614 440F3000 */ mfc1 $t7, $f6
/* 005A8 80BA6618 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 005AC 80BA661C 46028482 */ mul.s $f18, $f16, $f2
/* 005B0 80BA6620 000FCC00 */ sll $t9, $t7, 16
/* 005B4 80BA6624 0019C403 */ sra $t8, $t9, 16
/* 005B8 80BA6628 44984000 */ mtc1 $t8, $f8 ## $f8 = 0.00
/* 005BC 80BA662C 00000000 */ nop
/* 005C0 80BA6630 468042A0 */ cvt.s.w $f10, $f8
/* 005C4 80BA6634 4600320D */ trunc.w.s $f8, $f6
/* 005C8 80BA6638 46020182 */ mul.s $f6, $f0, $f2
/* 005CC 80BA663C 460A9400 */ add.s $f16, $f18, $f10
/* 005D0 80BA6640 440B4000 */ mfc1 $t3, $f8
/* 005D4 80BA6644 C608002C */ lwc1 $f8, 0x002C($s0) ## 0000002C
/* 005D8 80BA6648 AFA20014 */ sw $v0, 0x0014($sp)
/* 005DC 80BA664C 000B6400 */ sll $t4, $t3, 16
/* 005E0 80BA6650 000C6C03 */ sra $t5, $t4, 16
/* 005E4 80BA6654 448D9000 */ mtc1 $t5, $f18 ## $f18 = 0.00
/* 005E8 80BA6658 4600810D */ trunc.w.s $f4, $f16
/* 005EC 80BA665C 8FAC0034 */ lw $t4, 0x0034($sp)
/* 005F0 80BA6660 8FAB0038 */ lw $t3, 0x0038($sp)
/* 005F4 80BA6664 468092A0 */ cvt.s.w $f10, $f18
/* 005F8 80BA6668 44052000 */ mfc1 $a1, $f4
/* 005FC 80BA666C AFA20010 */ sw $v0, 0x0010($sp)
/* 00600 80BA6670 AFAC001C */ sw $t4, 0x001C($sp)
/* 00604 80BA6674 00052C00 */ sll $a1, $a1, 16
/* 00608 80BA6678 4600448D */ trunc.w.s $f18, $f8
/* 0060C 80BA667C 00052C03 */ sra $a1, $a1, 16
/* 00610 80BA6680 AFAB0018 */ sw $t3, 0x0018($sp)
/* 00614 80BA6684 46025400 */ add.s $f16, $f10, $f2
/* 00618 80BA6688 44199000 */ mfc1 $t9, $f18
/* 0061C 80BA668C 00000000 */ nop
/* 00620 80BA6690 0019C400 */ sll $t8, $t9, 16
/* 00624 80BA6694 00184C03 */ sra $t1, $t8, 16
/* 00628 80BA6698 44895000 */ mtc1 $t1, $f10 ## $f10 = 0.00
/* 0062C 80BA669C 4600810D */ trunc.w.s $f4, $f16
/* 00630 80BA66A0 46805420 */ cvt.s.w $f16, $f10
/* 00634 80BA66A4 44062000 */ mfc1 $a2, $f4
/* 00638 80BA66A8 00000000 */ nop
/* 0063C 80BA66AC 00063400 */ sll $a2, $a2, 16
/* 00640 80BA66B0 00063403 */ sra $a2, $a2, 16
/* 00644 80BA66B4 46103100 */ add.s $f4, $f6, $f16
/* 00648 80BA66B8 4600220D */ trunc.w.s $f8, $f4
/* 0064C 80BA66BC 44074000 */ mfc1 $a3, $f8
/* 00650 80BA66C0 00000000 */ nop
/* 00654 80BA66C4 00073C00 */ sll $a3, $a3, 16
/* 00658 80BA66C8 0C01E763 */ jal Lights_InitType0PositionalLight
/* 0065C 80BA66CC 00073C03 */ sra $a3, $a3, 16
/* 00660 80BA66D0 8FBF002C */ lw $ra, 0x002C($sp)
/* 00664 80BA66D4 8FB00028 */ lw $s0, 0x0028($sp)
/* 00668 80BA66D8 27BD0058 */ addiu $sp, $sp, 0x0058 ## $sp = 00000000
/* 0066C 80BA66DC 03E00008 */ jr $ra
/* 00670 80BA66E0 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_80BA6070
/* 00000 80BA6070 03E00008 */ jr $ra
/* 00004 80BA6074 AC85017C */ sw $a1, 0x017C($a0) ## 0000017C

View file

@ -1,112 +0,0 @@
.rdata
glabel D_80BA6F40
.asciz ""
.balign 4
glabel D_80BA6F48
.asciz "z_oceff_spot \n"
.balign 4
glabel D_80BA6F68
.asciz "\x1b[m"
.balign 4
glabel D_80BA6F6C
.asciz ""
.balign 4
glabel D_80BA6F74
.asciz "z_oceff_spot \n"
.balign 4
glabel D_80BA6F90
.asciz "\x1b[m"
.balign 4
.late_rodata
glabel D_80BA6FD8
.float 0.05
.text
glabel func_80BA6260
/* 001F0 80BA6260 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 001F4 80BA6264 AFBF0014 */ sw $ra, 0x0014($sp)
/* 001F8 80BA6268 C4800174 */ lwc1 $f0, 0x0174($a0) ## 00000174
/* 001FC 80BA626C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 00200 80BA6270 3C0180BA */ lui $at, %hi(D_80BA6FD8) ## $at = 80BA0000
/* 00204 80BA6274 4600203C */ c.lt.s $f4, $f0
/* 00208 80BA6278 00000000 */ nop
/* 0020C 80BA627C 45000005 */ bc1f .L80BA6294
/* 00210 80BA6280 00000000 */ nop
/* 00214 80BA6284 C4266FD8 */ lwc1 $f6, %lo(D_80BA6FD8)($at)
/* 00218 80BA6288 46060201 */ sub.s $f8, $f0, $f6
/* 0021C 80BA628C 10000034 */ beq $zero, $zero, .L80BA6360
/* 00220 80BA6290 E4880174 */ swc1 $f8, 0x0174($a0) ## 00000174
.L80BA6294:
/* 00224 80BA6294 0C00B55C */ jal Actor_Kill
/* 00228 80BA6298 AFA5001C */ sw $a1, 0x001C($sp)
/* 0022C 80BA629C 3C0E8012 */ lui $t6, %hi(D_8011FB40)
/* 00230 80BA62A0 95CEFB40 */ lhu $t6, %lo(D_8011FB40)($t6)
/* 00234 80BA62A4 24010190 */ addiu $at, $zero, 0x0190 ## $at = 00000190
/* 00238 80BA62A8 8FA5001C */ lw $a1, 0x001C($sp)
/* 0023C 80BA62AC 11C10020 */ beq $t6, $at, .L80BA6330
/* 00240 80BA62B0 240A0004 */ addiu $t2, $zero, 0x0004 ## $t2 = 00000004
/* 00244 80BA62B4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00248 80BA62B8 00A11021 */ addu $v0, $a1, $at
/* 0024C 80BA62BC 844F04E6 */ lh $t7, 0x04E6($v0) ## 000004E6
/* 00250 80BA62C0 3C068016 */ lui $a2, %hi(gSaveContext)
/* 00254 80BA62C4 24C6E660 */ addiu $a2, %lo(gSaveContext)
/* 00258 80BA62C8 55E0001A */ bnel $t7, $zero, .L80BA6334
/* 0025C 80BA62CC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00260 80BA62D0 94D813FA */ lhu $t8, 0x13FA($a2) ## 8015FA5A
/* 00264 80BA62D4 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001
/* 00268 80BA62D8 3319000F */ andi $t9, $t8, 0x000F ## $t9 = 00000000
/* 0026C 80BA62DC 50790015 */ beql $v1, $t9, .L80BA6334
/* 00270 80BA62E0 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00274 80BA62E4 944804C8 */ lhu $t0, 0x04C8($v0) ## 000004C8
/* 00278 80BA62E8 24010031 */ addiu $at, $zero, 0x0031 ## $at = 00000031
/* 0027C 80BA62EC 3C0480BA */ lui $a0, %hi(D_80BA6F40) ## $a0 = 80BA0000
/* 00280 80BA62F0 15010005 */ bne $t0, $at, .L80BA6308
/* 00284 80BA62F4 24846F40 */ addiu $a0, $a0, %lo(D_80BA6F40) ## $a0 = 80BA6F40
/* 00288 80BA62F8 944904C6 */ lhu $t1, 0x04C6($v0) ## 000004C6
/* 0028C 80BA62FC 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008
/* 00290 80BA6300 51210018 */ beql $t1, $at, .L80BA6364
/* 00294 80BA6304 8FBF0014 */ lw $ra, 0x0014($sp)
.L80BA6308:
/* 00298 80BA6308 0C00084C */ jal osSyncPrintf
/* 0029C 80BA630C A4C31422 */ sh $v1, 0x1422($a2) ## 8015FA82
/* 002A0 80BA6310 3C0480BA */ lui $a0, %hi(D_80BA6F48) ## $a0 = 80BA0000
/* 002A4 80BA6314 0C00084C */ jal osSyncPrintf
/* 002A8 80BA6318 24846F48 */ addiu $a0, $a0, %lo(D_80BA6F48) ## $a0 = 80BA6F48
/* 002AC 80BA631C 3C0480BA */ lui $a0, %hi(D_80BA6F68) ## $a0 = 80BA0000
/* 002B0 80BA6320 0C00084C */ jal osSyncPrintf
/* 002B4 80BA6324 24846F68 */ addiu $a0, $a0, %lo(D_80BA6F68) ## $a0 = 80BA6F68
/* 002B8 80BA6328 1000000E */ beq $zero, $zero, .L80BA6364
/* 002BC 80BA632C 8FBF0014 */ lw $ra, 0x0014($sp)
.L80BA6330:
/* 002C0 80BA6330 3C010001 */ lui $at, 0x0001 ## $at = 00010000
.L80BA6334:
/* 002C4 80BA6334 00250821 */ addu $at, $at, $a1
/* 002C8 80BA6338 3C0480BA */ lui $a0, %hi(D_80BA6F6C) ## $a0 = 80BA0000
/* 002CC 80BA633C A42A04C6 */ sh $t2, 0x04C6($at) ## 000104C6
/* 002D0 80BA6340 0C00084C */ jal osSyncPrintf
/* 002D4 80BA6344 24846F6C */ addiu $a0, $a0, %lo(D_80BA6F6C) ## $a0 = 80BA6F6C
/* 002D8 80BA6348 3C0480BA */ lui $a0, %hi(D_80BA6F74) ## $a0 = 80BA0000
/* 002DC 80BA634C 0C00084C */ jal osSyncPrintf
/* 002E0 80BA6350 24846F74 */ addiu $a0, $a0, %lo(D_80BA6F74) ## $a0 = 80BA6F74
/* 002E4 80BA6354 3C0480BA */ lui $a0, %hi(D_80BA6F90) ## $a0 = 80BA0000
/* 002E8 80BA6358 0C00084C */ jal osSyncPrintf
/* 002EC 80BA635C 24846F90 */ addiu $a0, $a0, %lo(D_80BA6F90) ## $a0 = 80BA6F90
.L80BA6360:
/* 002F0 80BA6360 8FBF0014 */ lw $ra, 0x0014($sp)
.L80BA6364:
/* 002F4 80BA6364 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 002F8 80BA6368 03E00008 */ jr $ra
/* 002FC 80BA636C 00000000 */ nop

View file

@ -1,18 +0,0 @@
glabel func_80BA6370
/* 00300 80BA6370 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00304 80BA6374 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00308 80BA6378 AFA5001C */ sw $a1, 0x001C($sp)
/* 0030C 80BA637C 94820178 */ lhu $v0, 0x0178($a0) ## 00000178
/* 00310 80BA6380 3C0580BA */ lui $a1, %hi(func_80BA6260) ## $a1 = 80BA0000
/* 00314 80BA6384 18400003 */ blez $v0, .L80BA6394
/* 00318 80BA6388 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 0031C 80BA638C 10000003 */ beq $zero, $zero, .L80BA639C
/* 00320 80BA6390 A48E0178 */ sh $t6, 0x0178($a0) ## 00000178
.L80BA6394:
/* 00324 80BA6394 0C2E981C */ jal func_80BA6070
/* 00328 80BA6398 24A56260 */ addiu $a1, $a1, %lo(func_80BA6260) ## $a1 = 80BA6260
.L80BA639C:
/* 0032C 80BA639C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00330 80BA63A0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00334 80BA63A4 03E00008 */ jr $ra
/* 00338 80BA63A8 00000000 */ nop

View file

@ -1,33 +0,0 @@
.late_rodata
glabel D_80BA6FDC
.float 0.05
.text
glabel func_80BA63AC
/* 0033C 80BA63AC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00340 80BA63B0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00344 80BA63B4 AFA5001C */ sw $a1, 0x001C($sp)
/* 00348 80BA63B8 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 0034C 80BA63BC 44812000 */ mtc1 $at, $f4 ## $f4 = 1.00
/* 00350 80BA63C0 C4800174 */ lwc1 $f0, 0x0174($a0) ## 00000174
/* 00354 80BA63C4 3C0580BA */ lui $a1, %hi(func_80BA6370) ## $a1 = 80BA0000
/* 00358 80BA63C8 3C0180BA */ lui $at, %hi(D_80BA6FDC) ## $at = 80BA0000
/* 0035C 80BA63CC 4604003C */ c.lt.s $f0, $f4
/* 00360 80BA63D0 24A56370 */ addiu $a1, $a1, %lo(func_80BA6370) ## $a1 = 80BA6370
/* 00364 80BA63D4 45000005 */ bc1f .L80BA63EC
/* 00368 80BA63D8 00000000 */ nop
/* 0036C 80BA63DC C4266FDC */ lwc1 $f6, %lo(D_80BA6FDC)($at)
/* 00370 80BA63E0 46060200 */ add.s $f8, $f0, $f6
/* 00374 80BA63E4 10000006 */ beq $zero, $zero, .L80BA6400
/* 00378 80BA63E8 E4880174 */ swc1 $f8, 0x0174($a0) ## 00000174
.L80BA63EC:
/* 0037C 80BA63EC 0C2E981C */ jal func_80BA6070
/* 00380 80BA63F0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00384 80BA63F4 8FA40018 */ lw $a0, 0x0018($sp)
/* 00388 80BA63F8 240E003C */ addiu $t6, $zero, 0x003C ## $t6 = 0000003C
/* 0038C 80BA63FC A48E0178 */ sh $t6, 0x0178($a0) ## 00000178
.L80BA6400:
/* 00390 80BA6400 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00394 80BA6404 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00398 80BA6408 03E00008 */ jr $ra
/* 0039C 80BA640C 00000000 */ nop

View file

@ -12,7 +12,7 @@ glabel D_80BA8C90
.float 0.01
.text
glabel func_80BA7200
glabel OceffStorm_DefaultAction
/* 00120 80BA7200 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00124 80BA7204 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00128 80BA7208 AFA5001C */ sw $a1, 0x001C($sp)

View file

@ -1,21 +0,0 @@
glabel OceffStorm_Destroy
/* 000D4 80BA71B4 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 000D8 80BA71B8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000DC 80BA71BC AFA40020 */ sw $a0, 0x0020($sp)
/* 000E0 80BA71C0 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 000E4 80BA71C4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 000E8 80BA71C8 0C021DB2 */ jal func_800876C8
/* 000EC 80BA71CC AFA20018 */ sw $v0, 0x0018($sp)
/* 000F0 80BA71D0 3C0E8016 */ lui $t6, %hi(gSaveContext+0x13c8)
/* 000F4 80BA71D4 85CEFA28 */ lh $t6, %lo(gSaveContext+0x13c8)($t6)
/* 000F8 80BA71D8 8FA20018 */ lw $v0, 0x0018($sp)
/* 000FC 80BA71DC 51C00005 */ beql $t6, $zero, .L80BA71F4
/* 00100 80BA71E0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00104 80BA71E4 904F0692 */ lbu $t7, 0x0692($v0) ## 00000692
/* 00108 80BA71E8 35F80040 */ ori $t8, $t7, 0x0040 ## $t8 = 00000040
/* 0010C 80BA71EC A0580692 */ sb $t8, 0x0692($v0) ## 00000692
/* 00110 80BA71F0 8FBF0014 */ lw $ra, 0x0014($sp)
.L80BA71F4:
/* 00114 80BA71F4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00118 80BA71F8 03E00008 */ jr $ra
/* 0011C 80BA71FC 00000000 */ nop

View file

@ -1,158 +0,0 @@
.rdata
glabel D_80BA8C48
.asciz "../z_oceff_storm.c"
.balign 4
glabel D_80BA8C5C
.asciz "../z_oceff_storm.c"
.balign 4
glabel D_80BA8C70
.asciz "../z_oceff_storm.c"
.balign 4
.text
glabel OceffStorm_Draw
/* 00554 80BA7634 27BDFF78 */ addiu $sp, $sp, 0xFF78 ## $sp = FFFFFF78
/* 00558 80BA7638 AFBF003C */ sw $ra, 0x003C($sp)
/* 0055C 80BA763C AFB10038 */ sw $s1, 0x0038($sp)
/* 00560 80BA7640 AFB00034 */ sw $s0, 0x0034($sp)
/* 00564 80BA7644 AFA40088 */ sw $a0, 0x0088($sp)
/* 00568 80BA7648 8CAE009C */ lw $t6, 0x009C($a1) ## 0000009C
/* 0056C 80BA764C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00570 80BA7650 3C0680BB */ lui $a2, %hi(D_80BA8C48) ## $a2 = 80BB0000
/* 00574 80BA7654 31CF0FFF */ andi $t7, $t6, 0x0FFF ## $t7 = 00000000
/* 00578 80BA7658 AFAF0084 */ sw $t7, 0x0084($sp)
/* 0057C 80BA765C 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00580 80BA7660 24C68C48 */ addiu $a2, $a2, %lo(D_80BA8C48) ## $a2 = 80BA8C48
/* 00584 80BA7664 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFE0
/* 00588 80BA7668 240701E6 */ addiu $a3, $zero, 0x01E6 ## $a3 = 000001E6
/* 0058C 80BA766C 0C031AB1 */ jal Graph_OpenDisps
/* 00590 80BA7670 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00594 80BA7674 0C024F61 */ jal func_80093D84
/* 00598 80BA7678 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 0059C 80BA767C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 005A0 80BA7680 3C19FA00 */ lui $t9, 0xFA00 ## $t9 = FA000000
/* 005A4 80BA7684 37398080 */ ori $t9, $t9, 0x8080 ## $t9 = FA008080
/* 005A8 80BA7688 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 005AC 80BA768C AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 005B0 80BA7690 240BC8FF */ addiu $t3, $zero, 0xC8FF ## $t3 = FFFFC8FF
/* 005B4 80BA7694 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 005B8 80BA7698 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 005BC 80BA769C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 005C0 80BA76A0 3C0E9696 */ lui $t6, 0x9696 ## $t6 = 96960000
/* 005C4 80BA76A4 35CE0080 */ ori $t6, $t6, 0x0080 ## $t6 = 96960080
/* 005C8 80BA76A8 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 005CC 80BA76AC AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 005D0 80BA76B0 3C0DFB00 */ lui $t5, 0xFB00 ## $t5 = FB000000
/* 005D4 80BA76B4 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 005D8 80BA76B8 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 005DC 80BA76BC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 005E0 80BA76C0 3C18E300 */ lui $t8, 0xE300 ## $t8 = E3000000
/* 005E4 80BA76C4 37181A01 */ ori $t8, $t8, 0x1A01 ## $t8 = E3001A01
/* 005E8 80BA76C8 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 005EC 80BA76CC AE0F02D0 */ sw $t7, 0x02D0($s0) ## 000002D0
/* 005F0 80BA76D0 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 005F4 80BA76D4 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 005F8 80BA76D8 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 005FC 80BA76DC 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00600 80BA76E0 3C0CE300 */ lui $t4, 0xE300 ## $t4 = E3000000
/* 00604 80BA76E4 358C1801 */ ori $t4, $t4, 0x1801 ## $t4 = E3001801
/* 00608 80BA76E8 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 0060C 80BA76EC AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 00610 80BA76F0 240D0080 */ addiu $t5, $zero, 0x0080 ## $t5 = 00000080
/* 00614 80BA76F4 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 00618 80BA76F8 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 0061C 80BA76FC 8FA70088 */ lw $a3, 0x0088($sp)
/* 00620 80BA7700 3C0180BB */ lui $at, %hi(D_80BA8AD7) ## $at = 80BB0000
/* 00624 80BA7704 3C0FDA38 */ lui $t7, 0xDA38 ## $t7 = DA380000
/* 00628 80BA7708 90E2014F */ lbu $v0, 0x014F($a3) ## 0000014F
/* 0062C 80BA770C 35EF0003 */ ori $t7, $t7, 0x0003 ## $t7 = DA380003
/* 00630 80BA7710 3C0580BB */ lui $a1, %hi(D_80BA8C5C) ## $a1 = 80BB0000
/* 00634 80BA7714 00021043 */ sra $v0, $v0, 1
/* 00638 80BA7718 A0228AD7 */ sb $v0, %lo(D_80BA8AD7)($at)
/* 0063C 80BA771C 3C0180BB */ lui $at, %hi(D_80BA8A47) ## $at = 80BB0000
/* 00640 80BA7720 A0228A47 */ sb $v0, %lo(D_80BA8A47)($at)
/* 00644 80BA7724 3C0180BB */ lui $at, %hi(D_80BA89A7) ## $at = 80BB0000
/* 00648 80BA7728 A02289A7 */ sb $v0, %lo(D_80BA89A7)($at)
/* 0064C 80BA772C 3C0180BB */ lui $at, %hi(D_80BA8947) ## $at = 80BB0000
/* 00650 80BA7730 A0228947 */ sb $v0, %lo(D_80BA8947)($at)
/* 00654 80BA7734 90E3014F */ lbu $v1, 0x014F($a3) ## 0000014F
/* 00658 80BA7738 3C0180BB */ lui $at, %hi(D_80BA8AA7) ## $at = 80BB0000
/* 0065C 80BA773C 24A58C5C */ addiu $a1, $a1, %lo(D_80BA8C5C) ## $a1 = 80BA8C5C
/* 00660 80BA7740 A0238AA7 */ sb $v1, %lo(D_80BA8AA7)($at)
/* 00664 80BA7744 3C0180BB */ lui $at, %hi(D_80BA89E7) ## $at = 80BB0000
/* 00668 80BA7748 A02389E7 */ sb $v1, %lo(D_80BA89E7)($at)
/* 0066C 80BA774C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00670 80BA7750 240601F2 */ addiu $a2, $zero, 0x01F2 ## $a2 = 000001F2
/* 00674 80BA7754 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00678 80BA7758 AE0E02D0 */ sw $t6, 0x02D0($s0) ## 000002D0
/* 0067C 80BA775C AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00680 80BA7760 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 00684 80BA7764 0C0346A2 */ jal Matrix_NewMtx
/* 00688 80BA7768 AFA20054 */ sw $v0, 0x0054($sp)
/* 0068C 80BA776C 8FA30054 */ lw $v1, 0x0054($sp)
/* 00690 80BA7770 3C1980BB */ lui $t9, %hi(D_80BA8AE8) ## $t9 = 80BB0000
/* 00694 80BA7774 27398AE8 */ addiu $t9, $t9, %lo(D_80BA8AE8) ## $t9 = 80BA8AE8
/* 00698 80BA7778 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 0069C 80BA777C 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 006A0 80BA7780 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
/* 006A4 80BA7784 240C0020 */ addiu $t4, $zero, 0x0020 ## $t4 = 00000020
/* 006A8 80BA7788 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 006AC 80BA778C AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 006B0 80BA7790 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 006B4 80BA7794 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 006B8 80BA7798 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 006BC 80BA779C 8FAA0084 */ lw $t2, 0x0084($sp)
/* 006C0 80BA77A0 24190020 */ addiu $t9, $zero, 0x0020 ## $t9 = 00000020
/* 006C4 80BA77A4 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 006C8 80BA77A8 AE0B02D0 */ sw $t3, 0x02D0($s0) ## 000002D0
/* 006CC 80BA77AC AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 006D0 80BA77B0 8E240000 */ lw $a0, 0x0000($s1) ## 00000000
/* 006D4 80BA77B4 000A1823 */ subu $v1, $zero, $t2
/* 006D8 80BA77B8 0003C080 */ sll $t8, $v1, 2
/* 006DC 80BA77BC 0303C023 */ subu $t8, $t8, $v1
/* 006E0 80BA77C0 0018C080 */ sll $t8, $t8, 2
/* 006E4 80BA77C4 240B0020 */ addiu $t3, $zero, 0x0020 ## $t3 = 00000020
/* 006E8 80BA77C8 240D0020 */ addiu $t5, $zero, 0x0020 ## $t5 = 00000020
/* 006EC 80BA77CC 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 006F0 80BA77D0 000A78C0 */ sll $t7, $t2, 3
/* 006F4 80BA77D4 AFAF001C */ sw $t7, 0x001C($sp)
/* 006F8 80BA77D8 AFAE0018 */ sw $t6, 0x0018($sp)
/* 006FC 80BA77DC AFAD0014 */ sw $t5, 0x0014($sp)
/* 00700 80BA77E0 AFAB0028 */ sw $t3, 0x0028($sp)
/* 00704 80BA77E4 AFB80020 */ sw $t8, 0x0020($sp)
/* 00708 80BA77E8 000338C0 */ sll $a3, $v1, 3
/* 0070C 80BA77EC AFB90024 */ sw $t9, 0x0024($sp)
/* 00710 80BA77F0 AFAC0010 */ sw $t4, 0x0010($sp)
/* 00714 80BA77F4 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00718 80BA77F8 AFA2004C */ sw $v0, 0x004C($sp)
/* 0071C 80BA77FC 0C0253D0 */ jal Gfx_TwoTexScroll
/* 00720 80BA7800 000A3080 */ sll $a2, $t2, 2
/* 00724 80BA7804 8FA8004C */ lw $t0, 0x004C($sp)
/* 00728 80BA7808 3C0E80BB */ lui $t6, %hi(D_80BA8B90) ## $t6 = 80BB0000
/* 0072C 80BA780C 25CE8B90 */ addiu $t6, $t6, %lo(D_80BA8B90) ## $t6 = 80BA8B90
/* 00730 80BA7810 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
/* 00734 80BA7814 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00738 80BA7818 3C0DDE00 */ lui $t5, 0xDE00 ## $t5 = DE000000
/* 0073C 80BA781C 3C0680BB */ lui $a2, %hi(D_80BA8C70) ## $a2 = 80BB0000
/* 00740 80BA7820 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00744 80BA7824 AE0C02D0 */ sw $t4, 0x02D0($s0) ## 000002D0
/* 00748 80BA7828 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 0074C 80BA782C AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 00750 80BA7830 8E250000 */ lw $a1, 0x0000($s1) ## 00000000
/* 00754 80BA7834 24C68C70 */ addiu $a2, $a2, %lo(D_80BA8C70) ## $a2 = 80BA8C70
/* 00758 80BA7838 27A40068 */ addiu $a0, $sp, 0x0068 ## $a0 = FFFFFFE0
/* 0075C 80BA783C 0C031AD5 */ jal Graph_CloseDisps
/* 00760 80BA7840 24070200 */ addiu $a3, $zero, 0x0200 ## $a3 = 00000200
/* 00764 80BA7844 8FA40088 */ lw $a0, 0x0088($sp)
/* 00768 80BA7848 0C2E9D14 */ jal func_80BA7450
/* 0076C 80BA784C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00770 80BA7850 8FBF003C */ lw $ra, 0x003C($sp)
/* 00774 80BA7854 8FB00034 */ lw $s0, 0x0034($sp)
/* 00778 80BA7858 8FB10038 */ lw $s1, 0x0038($sp)
/* 0077C 80BA785C 03E00008 */ jr $ra
/* 00780 80BA7860 27BD0088 */ addiu $sp, $sp, 0x0088 ## $sp = 00000000
/* 00784 80BA7864 00000000 */ nop
/* 00788 80BA7868 00000000 */ nop
/* 0078C 80BA786C 00000000 */ nop

View file

@ -1,55 +0,0 @@
glabel OceffStorm_Init
/* 00008 80BA70E8 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 0000C 80BA70EC AFA5003C */ sw $a1, 0x003C($sp)
/* 00010 80BA70F0 AFBF0034 */ sw $ra, 0x0034($sp)
/* 00014 80BA70F4 AFB00030 */ sw $s0, 0x0030($sp)
/* 00018 80BA70F8 3C0580BA */ lui $a1, %hi(func_80BA7200) ## $a1 = 80BA0000
/* 0001C 80BA70FC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00020 80BA7100 0C2E9C38 */ jal func_80BA70E0
/* 00024 80BA7104 24A57200 */ addiu $a1, $a1, %lo(func_80BA7200) ## $a1 = 80BA7200
/* 00028 80BA7108 8FA5003C */ lw $a1, 0x003C($sp)
/* 0002C 80BA710C 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00030 80BA7110 860F001C */ lh $t7, 0x001C($s0) ## 0000001C
/* 00034 80BA7114 A6000152 */ sh $zero, 0x0152($s0) ## 00000152
/* 00038 80BA7118 860E0152 */ lh $t6, 0x0152($s0) ## 00000152
/* 0003C 80BA711C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 00040 80BA7120 A600014C */ sh $zero, 0x014C($s0) ## 0000014C
/* 00044 80BA7124 A200014E */ sb $zero, 0x014E($s0) ## 0000014E
/* 00048 80BA7128 A200014F */ sb $zero, 0x014F($s0) ## 0000014F
/* 0004C 80BA712C E6000054 */ swc1 $f0, 0x0054($s0) ## 00000054
/* 00050 80BA7130 E6000058 */ swc1 $f0, 0x0058($s0) ## 00000058
/* 00054 80BA7134 E6000050 */ swc1 $f0, 0x0050($s0) ## 00000050
/* 00058 80BA7138 15E10009 */ bne $t7, $at, .L80BA7160
/* 0005C 80BA713C A60E0150 */ sh $t6, 0x0150($s0) ## 00000150
/* 00060 80BA7140 3C0580BA */ lui $a1, %hi(func_80BA73C4) ## $a1 = 80BA0000
/* 00064 80BA7144 24A573C4 */ addiu $a1, $a1, %lo(func_80BA73C4) ## $a1 = 80BA73C4
/* 00068 80BA7148 0C2E9C38 */ jal func_80BA70E0
/* 0006C 80BA714C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00070 80BA7150 3C1880BA */ lui $t8, %hi(func_80BA7450) ## $t8 = 80BA0000
/* 00074 80BA7154 27187450 */ addiu $t8, $t8, %lo(func_80BA7450) ## $t8 = 80BA7450
/* 00078 80BA7158 10000011 */ beq $zero, $zero, .L80BA71A0
/* 0007C 80BA715C AE180134 */ sw $t8, 0x0134($s0) ## 00000134
.L80BA7160:
/* 00080 80BA7160 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00084 80BA7164 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00
/* 00088 80BA7168 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 0008C 80BA716C 8E070024 */ lw $a3, 0x0024($s0) ## 00000024
/* 00090 80BA7170 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001
/* 00094 80BA7174 46062201 */ sub.s $f8, $f4, $f6
/* 00098 80BA7178 24A41C24 */ addiu $a0, $a1, 0x1C24 ## $a0 = 00001C24
/* 0009C 80BA717C 24060170 */ addiu $a2, $zero, 0x0170 ## $a2 = 00000170
/* 000A0 80BA7180 E7A80010 */ swc1 $f8, 0x0010($sp)
/* 000A4 80BA7184 C60A002C */ lwc1 $f10, 0x002C($s0) ## 0000002C
/* 000A8 80BA7188 AFB90024 */ sw $t9, 0x0024($sp)
/* 000AC 80BA718C AFA00020 */ sw $zero, 0x0020($sp)
/* 000B0 80BA7190 AFA0001C */ sw $zero, 0x001C($sp)
/* 000B4 80BA7194 AFA00018 */ sw $zero, 0x0018($sp)
/* 000B8 80BA7198 0C00C7D4 */ jal Actor_Spawn
## ActorSpawn
/* 000BC 80BA719C E7AA0014 */ swc1 $f10, 0x0014($sp)
.L80BA71A0:
/* 000C0 80BA71A0 8FBF0034 */ lw $ra, 0x0034($sp)
/* 000C4 80BA71A4 8FB00030 */ lw $s0, 0x0030($sp)
/* 000C8 80BA71A8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 000CC 80BA71AC 03E00008 */ jr $ra
/* 000D0 80BA71B0 00000000 */ nop

View file

@ -1,28 +0,0 @@
glabel OceffStorm_Update
/* 00304 80BA73E4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00308 80BA73E8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0030C 80BA73EC 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00310 80BA73F0 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 00314 80BA73F4 8C4F0024 */ lw $t7, 0x0024($v0) ## 00000024
/* 00318 80BA73F8 AC8F0024 */ sw $t7, 0x0024($a0) ## 00000024
/* 0031C 80BA73FC 8C4E0028 */ lw $t6, 0x0028($v0) ## 00000028
/* 00320 80BA7400 AC8E0028 */ sw $t6, 0x0028($a0) ## 00000028
/* 00324 80BA7404 8C4F002C */ lw $t7, 0x002C($v0) ## 0000002C
/* 00328 80BA7408 AC8F002C */ sw $t7, 0x002C($a0) ## 0000002C
/* 0032C 80BA740C 84B807A0 */ lh $t8, 0x07A0($a1) ## 000007A0
/* 00330 80BA7410 0018C880 */ sll $t9, $t8, 2
/* 00334 80BA7414 00B94021 */ addu $t0, $a1, $t9
/* 00338 80BA7418 8D040790 */ lw $a0, 0x0790($t0) ## 00000790
/* 0033C 80BA741C AFA60018 */ sw $a2, 0x0018($sp)
/* 00340 80BA7420 0C016A7D */ jal func_8005A9F4
/* 00344 80BA7424 AFA5001C */ sw $a1, 0x001C($sp)
/* 00348 80BA7428 8FA40018 */ lw $a0, 0x0018($sp)
/* 0034C 80BA742C 8FA5001C */ lw $a1, 0x001C($sp)
/* 00350 80BA7430 8C990154 */ lw $t9, 0x0154($a0) ## 00000154
/* 00354 80BA7434 A48200B6 */ sh $v0, 0x00B6($a0) ## 000000B6
/* 00358 80BA7438 0320F809 */ jalr $ra, $t9
/* 0035C 80BA743C 00000000 */ nop
/* 00360 80BA7440 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00364 80BA7444 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00368 80BA7448 03E00008 */ jr $ra
/* 0036C 80BA744C 00000000 */ nop

View file

@ -1,3 +0,0 @@
glabel func_80BA70E0
/* 00000 80BA70E0 03E00008 */ jr $ra
/* 00004 80BA70E4 AC850154 */ sw $a1, 0x0154($a0) ## 00000154

View file

@ -1,10 +0,0 @@
glabel func_80BA73C4
/* 002E4 80BA73C4 AFA50004 */ sw $a1, 0x0004($sp)
/* 002E8 80BA73C8 9082014E */ lbu $v0, 0x014E($a0) ## 0000014E
/* 002EC 80BA73CC 28410064 */ slti $at, $v0, 0x0064
/* 002F0 80BA73D0 10200002 */ beq $at, $zero, .L80BA73DC
/* 002F4 80BA73D4 244E0005 */ addiu $t6, $v0, 0x0005 ## $t6 = 00000005
/* 002F8 80BA73D8 A08E014E */ sb $t6, 0x014E($a0) ## 0000014E
.L80BA73DC:
/* 002FC 80BA73DC 03E00008 */ jr $ra
/* 00300 80BA73E0 00000000 */ nop

View file

@ -1,132 +0,0 @@
.rdata
glabel D_80BA8C20
.asciz "../z_oceff_storm.c"
.balign 4
glabel D_80BA8C34
.asciz "../z_oceff_storm.c"
.balign 4
.text
glabel func_80BA7450
/* 00370 80BA7450 27BDFF80 */ addiu $sp, $sp, 0xFF80 ## $sp = FFFFFF80
/* 00374 80BA7454 AFBF0034 */ sw $ra, 0x0034($sp)
/* 00378 80BA7458 AFA40080 */ sw $a0, 0x0080($sp)
/* 0037C 80BA745C AFA50084 */ sw $a1, 0x0084($sp)
/* 00380 80BA7460 8CAF009C */ lw $t7, 0x009C($a1) ## 0000009C
/* 00384 80BA7464 3C0680BB */ lui $a2, %hi(D_80BA8C20) ## $a2 = 80BB0000
/* 00388 80BA7468 24C68C20 */ addiu $a2, $a2, %lo(D_80BA8C20) ## $a2 = 80BA8C20
/* 0038C 80BA746C 31F80FFF */ andi $t8, $t7, 0x0FFF ## $t8 = 00000000
/* 00390 80BA7470 AFB8007C */ sw $t8, 0x007C($sp)
/* 00394 80BA7474 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00398 80BA7478 27A40064 */ addiu $a0, $sp, 0x0064 ## $a0 = FFFFFFE4
/* 0039C 80BA747C 240701C1 */ addiu $a3, $zero, 0x01C1 ## $a3 = 000001C1
/* 003A0 80BA7480 0C031AB1 */ jal Graph_OpenDisps
/* 003A4 80BA7484 AFA50074 */ sw $a1, 0x0074($sp)
/* 003A8 80BA7488 8FA30074 */ lw $v1, 0x0074($sp)
/* 003AC 80BA748C 3C0BE700 */ lui $t3, 0xE700 ## $t3 = E7000000
/* 003B0 80BA7490 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 003B4 80BA7494 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 003B8 80BA7498 AC7902D0 */ sw $t9, 0x02D0($v1) ## 000002D0
/* 003BC 80BA749C AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 003C0 80BA74A0 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000
/* 003C4 80BA74A4 8C6402D0 */ lw $a0, 0x02D0($v1) ## 000002D0
/* 003C8 80BA74A8 0C024FCD */ jal func_80093F34
/* 003CC 80BA74AC AFA30074 */ sw $v1, 0x0074($sp)
/* 003D0 80BA74B0 8FA30074 */ lw $v1, 0x0074($sp)
/* 003D4 80BA74B4 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 003D8 80BA74B8 3C0DE300 */ lui $t5, 0xE300 ## $t5 = E3000000
/* 003DC 80BA74BC AC6202D0 */ sw $v0, 0x02D0($v1) ## 000002D0
/* 003E0 80BA74C0 AC6C02D0 */ sw $t4, 0x02D0($v1) ## 000002D0
/* 003E4 80BA74C4 35AD1A01 */ ori $t5, $t5, 0x1A01 ## $t5 = E3001A01
/* 003E8 80BA74C8 240F0020 */ addiu $t7, $zero, 0x0020 ## $t7 = 00000020
/* 003EC 80BA74CC AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 003F0 80BA74D0 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 003F4 80BA74D4 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 003F8 80BA74D8 3C0EE300 */ lui $t6, 0xE300 ## $t6 = E3000000
/* 003FC 80BA74DC 35CE1801 */ ori $t6, $t6, 0x1801 ## $t6 = E3001801
/* 00400 80BA74E0 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00404 80BA74E4 AC7802D0 */ sw $t8, 0x02D0($v1) ## 000002D0
/* 00408 80BA74E8 24190080 */ addiu $t9, $zero, 0x0080 ## $t9 = 00000080
/* 0040C 80BA74EC AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 00410 80BA74F0 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 00414 80BA74F4 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 00418 80BA74F8 3C0CFA00 */ lui $t4, 0xFA00 ## $t4 = FA000000
/* 0041C 80BA74FC 358C8080 */ ori $t4, $t4, 0x8080 ## $t4 = FA008080
/* 00420 80BA7500 244B0008 */ addiu $t3, $v0, 0x0008 ## $t3 = 00000008
/* 00424 80BA7504 AC6B02D0 */ sw $t3, 0x02D0($v1) ## 000002D0
/* 00428 80BA7508 AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 0042C 80BA750C 8FAD0080 */ lw $t5, 0x0080($sp)
/* 00430 80BA7510 3C01C8C8 */ lui $at, 0xC8C8 ## $at = C8C80000
/* 00434 80BA7514 34219600 */ ori $at, $at, 0x9600 ## $at = C8C89600
/* 00438 80BA7518 91B8014E */ lbu $t8, 0x014E($t5) ## E3001B4F
/* 0043C 80BA751C 3C0B80BB */ lui $t3, %hi(D_80BA8890) ## $t3 = 80BB0000
/* 00440 80BA7520 256B8890 */ addiu $t3, $t3, %lo(D_80BA8890) ## $t3 = 80BA8890
/* 00444 80BA7524 03017025 */ or $t6, $t8, $at ## $t6 = C8C89608
/* 00448 80BA7528 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 0044C 80BA752C 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 00450 80BA7530 3C09DE00 */ lui $t1, 0xDE00 ## $t1 = DE000000
/* 00454 80BA7534 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001
/* 00458 80BA7538 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 0045C 80BA753C AC7902D0 */ sw $t9, 0x02D0($v1) ## 000002D0
/* 00460 80BA7540 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00464 80BA7544 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00468 80BA7548 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 0046C 80BA754C 8FAA007C */ lw $t2, 0x007C($sp)
/* 00470 80BA7550 240B0040 */ addiu $t3, $zero, 0x0040 ## $t3 = 00000040
/* 00474 80BA7554 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 00478 80BA7558 AC6C02D0 */ sw $t4, 0x02D0($v1) ## 000002D0
/* 0047C 80BA755C AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 00480 80BA7560 8FAD0084 */ lw $t5, 0x0084($sp)
/* 00484 80BA7564 24190040 */ addiu $t9, $zero, 0x0040 ## $t9 = 00000040
/* 00488 80BA7568 24180040 */ addiu $t8, $zero, 0x0040 ## $t8 = 00000040
/* 0048C 80BA756C 8DA40000 */ lw $a0, 0x0000($t5) ## E3001A01
/* 00490 80BA7570 240F0040 */ addiu $t7, $zero, 0x0040 ## $t7 = 00000040
/* 00494 80BA7574 000A3880 */ sll $a3, $t2, 2
/* 00498 80BA7578 AFA7001C */ sw $a3, 0x001C($sp)
/* 0049C 80BA757C AFA70020 */ sw $a3, 0x0020($sp)
/* 004A0 80BA7580 AFAF0010 */ sw $t7, 0x0010($sp)
/* 004A4 80BA7584 AFAB0028 */ sw $t3, 0x0028($sp)
/* 004A8 80BA7588 AFB90024 */ sw $t9, 0x0024($sp)
/* 004AC 80BA758C AFAE0018 */ sw $t6, 0x0018($sp)
/* 004B0 80BA7590 AFB80014 */ sw $t8, 0x0014($sp)
/* 004B4 80BA7594 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 004B8 80BA7598 AFA30074 */ sw $v1, 0x0074($sp)
/* 004BC 80BA759C AFA2004C */ sw $v0, 0x004C($sp)
/* 004C0 80BA75A0 0C0253D0 */ jal Gfx_TwoTexScroll
/* 004C4 80BA75A4 000A30C0 */ sll $a2, $t2, 3
/* 004C8 80BA75A8 8FA8004C */ lw $t0, 0x004C($sp)
/* 004CC 80BA75AC 8FA30074 */ lw $v1, 0x0074($sp)
/* 004D0 80BA75B0 3C0DE450 */ lui $t5, 0xE450 ## $t5 = E4500000
/* 004D4 80BA75B4 AD020004 */ sw $v0, 0x0004($t0) ## 00000004
/* 004D8 80BA75B8 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 004DC 80BA75BC 35AD03C0 */ ori $t5, $t5, 0x03C0 ## $t5 = E45003C0
/* 004E0 80BA75C0 3C18E100 */ lui $t8, 0xE100 ## $t8 = E1000000
/* 004E4 80BA75C4 244C0008 */ addiu $t4, $v0, 0x0008 ## $t4 = 00000008
/* 004E8 80BA75C8 AC6C02D0 */ sw $t4, 0x02D0($v1) ## 000002D0
/* 004EC 80BA75CC AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 004F0 80BA75D0 AC4D0000 */ sw $t5, 0x0000($v0) ## 00000000
/* 004F4 80BA75D4 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 004F8 80BA75D8 3C0B008C */ lui $t3, 0x008C ## $t3 = 008C0000
/* 004FC 80BA75DC 356BFF74 */ ori $t3, $t3, 0xFF74 ## $t3 = 008CFF74
/* 00500 80BA75E0 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00504 80BA75E4 AC6F02D0 */ sw $t7, 0x02D0($v1) ## 000002D0
/* 00508 80BA75E8 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 0050C 80BA75EC AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00510 80BA75F0 8C6202D0 */ lw $v0, 0x02D0($v1) ## 000002D0
/* 00514 80BA75F4 3C19F100 */ lui $t9, 0xF100 ## $t9 = F1000000
/* 00518 80BA75F8 3C0680BB */ lui $a2, %hi(D_80BA8C34) ## $a2 = 80BB0000
/* 0051C 80BA75FC 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00520 80BA7600 AC6E02D0 */ sw $t6, 0x02D0($v1) ## 000002D0
/* 00524 80BA7604 AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00528 80BA7608 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 0052C 80BA760C 8FAC0084 */ lw $t4, 0x0084($sp)
/* 00530 80BA7610 24C68C34 */ addiu $a2, $a2, %lo(D_80BA8C34) ## $a2 = 80BA8C34
/* 00534 80BA7614 27A40064 */ addiu $a0, $sp, 0x0064 ## $a0 = FFFFFFE4
/* 00538 80BA7618 240701DD */ addiu $a3, $zero, 0x01DD ## $a3 = 000001DD
/* 0053C 80BA761C 0C031AD5 */ jal Graph_CloseDisps
/* 00540 80BA7620 8D850000 */ lw $a1, 0x0000($t4) ## 00000008
/* 00544 80BA7624 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00548 80BA7628 27BD0080 */ addiu $sp, $sp, 0x0080 ## $sp = 00000000
/* 0054C 80BA762C 03E00008 */ jr $ra
/* 00550 80BA7630 00000000 */ nop

View file

@ -1,30 +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 purposee registers
.section .data
glabel Oceff_Spot_InitVars
.word 0x017E0700, 0x02000010, 0x00010000, 0x00000180
.word OceffSpot_Init
.word OceffSpot_Destroy
.word OceffSpot_Update
.word OceffSpot_Draw
glabel D_80BA6860
.word 0x354D5AAC, 0xA5561C01, 0x124688B5, 0x74583231, 0x313D71D6, 0x9F5B3507, 0x104089AD, 0x748F440C, 0x408176AC, 0xB4661301, 0x2261C0BE, 0x49392533, 0x2C497FC4, 0x80451D06, 0x2466BBD0, 0x9CB85411, 0x40A09DA3, 0xB37F210B, 0x3D8AEAC7, 0x3F241930, 0x2F5591A7, 0x6441080F, 0x4191E8DB, 0xB7A76B18, 0x4094BAA0, 0x76532D22, 0x60BAFEE8, 0x8253545F, 0x6078A896, 0x73540723, 0x66C2FEBB, 0x87888723, 0x4B87C79E, 0x33123048, 0x88E3FFFC, 0xD39F7E72, 0x8DA2AE80, 0xA77B1940, 0x90EBFFA9, 0x6289973E, 0x6F9ACD83, 0x2D104B7F, 0xAEEBFDF3, 0xD8B26772, 0xA7C7AD77, 0xB1B34A61, 0xB0F8FFD5, 0x9496986B, 0x9EC6D25D, 0x503E85B3, 0xC0C1E1EE, 0xBD9B618E, 0xBFE4A975, 0x86E18B86, 0xABCFF7F2, 0xBC837E69, 0xB5EFE465, 0x5B66BACB, 0xC794AADC, 0xAC8982AE, 0xD3F59754, 0x65E2AAAD, 0x8C85D0E1, 0xAF634D39, 0xC7E2EDA3, 0x527ECACF, 0xBF777FC0, 0xA284A5A5, 0xE3FE8A2F, 0x60CCAFBE, 0x7164B8BA, 0x97553A2B, 0xE8BCBCDA, 0x76A1BBBA, 0x844D83BD, 0x9C6B875B, 0xD9FFAA3F, 0x6AC9B59B, 0x6592BD94, 0x956D3D3B, 0xFFA773D3, 0xB5B9AB90, 0x4033A0BC, 0x873E3E1D, 0xB5FFE48D, 0x8CC9A761, 0x62CBAF79, 0x98883457, 0xF3766FAF, 0xD5B2A26B, 0x44549D8B, 0x56232221, 0x7DFFF2DD, 0xC6B68840, 0x4ECCA267, 0x696D296E, 0xA8328AAD, 0xD3998447, 0x5E7D8C5B, 0x391F1E35, 0x4EF6CDD3, 0xDD9B6C2D, 0x27A09571, 0x37443656, 0x4C1265C9, 0xCA91612E, 0x3B5A7A65, 0x2F4F3421, 0x36EAC380, 0xB6814A1B, 0x0C607075, 0x5860803B, 0x27102CCD, 0xC9A87A47, 0x16204B80, 0x44B3860F, 0x28DAE042, 0x7F773710, 0x0235616D, 0xA089BE60, 0x34161EBC, 0xBBAAA972, 0x172A3B91, 0x96F6C319, 0x21B7F02A, 0x618F662A, 0x02327A8C, 0x97577B5C, 0x48171FB3, 0xA090AF87, 0x1F65609D, 0xD8FFD41E, 0x177CC522, 0x69A8A462, 0x0D3A93B6, 0x4F0C1821, 0x39151CA7, 0x928EAA9A, 0x33919BAF, 0xEBFBDA23, 0x093B6937, 0x80AEA66C, 0x304491C7, 0x3A031710, 0x16162197, 0x9B9FB5BA, 0x4C95CED8, 0xF8F0D425, 0x05144066, 0x84B17F5A, 0x725E8DCD, 0x5D376910, 0x19183886, 0xA3A1C4C6, 0x6584D1F1, 0xFFFABF12, 0x0E123F77, 0x88AF6881, 0xB97F98BB, 0x879BBC23, 0x4A20557C, 0x9BA5D0BB, 0x7583C6E0, 0xFEFFB322, 0x34283976, 0x95B06EB8, 0xE29B999F, 0xBDE9E582, 0x814C5C82, 0xA1C0ECBE, 0x789ED6B2, 0xF4FFD78F, 0x73324087, 0xA0C26FAB, 0xE0B1A5B9, 0xF2FFFADE, 0xAC906A89, 0xB3DDFFCB, 0x86B8CD75, 0xDFFFF1D7, 0x8F31579C, 0xAFDE7B87, 0xC8BAB4EB, 0xF0F2FFE4, 0xB29B798B, 0xC3F4FFD2, 0xA0A17C32, 0xA9FFE8BD, 0x784D7A91, 0xC7F5AB9B, 0xBEBB86D9, 0xB0BCF9D4, 0x835C4C70, 0xD8FFFFD7, 0xA2682907, 0x68FFE29F, 0x61707B7A, 0xE5FFE7C8, 0xCCC33C8E, 0x768CE0C7, 0x51281940, 0xCBFFFFCB, 0x87450C00, 0x4BF3D58E, 0x6D767B92, 0xFAFFFFC8, 0xC7BF175B, 0x708BBA9A, 0x3A161542, 0xB4FFF5A9, 0x6D39090C, 0x50D8BC86, 0x897AA1C8, 0xFFFFF4A1, 0x8C880B50, 0x91A49762, 0x2D0C1E78, 0xD4FFD97F, 0x58351E23, 0x6BB49283, 0x9B95C9EE, 0xFFFFD377, 0x4336075E, 0xBFB27641, 0x1B0224B5, 0xFCF7AC55, 0x41384344, 0x8FA06468, 0x9FB5DBFD, 0xFFF1A553, 0x190B1275, 0xCCA75D3A, 0x0C042ED9, 0xFFD97C33, 0x28405669, 0xB0914C3A, 0x9199C6FF, 0xFECF7835, 0x080C308B, 0xB38F6D47, 0x0A0D3DDB, 0xF3A75519, 0x1341558E, 0xBE7B4321, 0x6B4D94F8, 0xE4AC591A, 0x02175096, 0x8E7A9145, 0x1D224BBF, 0xC1723508, 0x0D3E5FA5, 0xA568351E, 0x422B6EE0, 0xBB85480B, 0x04256799, 0x716D6D21
glabel D_80BA6C60
.word 0x00230000, 0xFFDD0000, 0x05000400, 0xFFFFFF00, 0x00230096, 0xFFDD0000, 0x05000200, 0xFFFFFF7E, 0x00320096, 0x00000000, 0x04000200, 0xFFFFFF7E, 0x00320000, 0x00000000, 0x04000400, 0xFFFFFF00, 0x002301F4, 0xFFDD0000, 0x05000000, 0xFFFFFFFF, 0x003201F4, 0x00000000, 0x04000000, 0xFFFFFFFF, 0x00000000, 0xFFCE0000, 0x06000400, 0xFFFFFF00, 0x00000096, 0xFFCE0000, 0x06000200, 0xFFFFFF7E, 0x000001F4, 0xFFCE0000, 0x06000000, 0xFFFFFFFF, 0xFFDD0000, 0xFFDD0000, 0x07000400, 0xFFFFFF00, 0xFFDD0096, 0xFFDD0000, 0x07000200, 0xFFFFFF7E, 0xFFDD01F4, 0xFFDD0000, 0x07000000, 0xFFFFFFFF, 0xFFCE0000, 0x00000000, 0x08000400, 0xFFFFFF00, 0xFFCE0096, 0x00000000, 0x08000200, 0xFFFFFF7E, 0xFFCE01F4, 0x00000000, 0x08000000, 0xFFFFFFFF, 0xFFDD0000, 0x00230000, 0x01000400, 0xFFFFFF00, 0xFFDD0096, 0x00230000, 0x01000200, 0xFFFFFF7E, 0xFFCE0096, 0x00000000, 0x00000200, 0xFFFFFF7E, 0xFFCE0000, 0x00000000, 0x00000400, 0xFFFFFF00, 0xFFDD01F4, 0x00230000, 0x01000000, 0xFFFFFFFF, 0xFFCE01F4, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00320000, 0x02000400, 0xFFFFFF00, 0x00000096, 0x00320000, 0x02000200, 0xFFFFFF7E, 0x000001F4, 0x00320000, 0x02000000, 0xFFFFFFFF, 0x00230000, 0x00230000, 0x03000400, 0xFFFFFF00, 0x00230096, 0x00230000, 0x03000200, 0xFFFFFF7E, 0x002301F4, 0x00230000, 0x03000000, 0xFFFFFFFF
glabel D_80BA6E10
.word 0xE7000000, 0x00000000, 0xE3001001, 0x00000000, 0xD7000002, 0xFFFFFFFF, 0xFD900000
.word D_80BA6860
.word 0xF5900000, 0x07014051, 0xE6000000, 0x00000000, 0xF3000000, 0x071FF200, 0xE7000000, 0x00000000, 0xF5880800, 0x00014051, 0xF2000000, 0x0007C07C, 0xE8000000, 0x00000000, 0xF5880800, 0x01017C50, 0xF2000000, 0x0107C07C, 0xFC262A60, 0x3510937F, 0xE200001C, 0x0C1849D8, 0xD9F0FBFF, 0x00000000, 0xFA000000, 0xFFFFAAFF, 0xFB000000, 0xC8FF0080, 0xDF000000, 0x00000000
glabel D_80BA6EA8
.word 0x0101B036
.word D_80BA6C60
.word 0x06000204, 0x00000406, 0x0602080A, 0x00020A04, 0x060C0E02, 0x000C0200, 0x060E1008, 0x000E0802, 0x0612140E, 0x00120E0C, 0x06141610, 0x0014100E, 0x06181A14, 0x00181412, 0x061A1C16, 0x001A1614, 0x061E2022, 0x001E2224, 0x06202628, 0x00202822, 0x062A2C20, 0x002A201E, 0x062C2E26, 0x002C2620, 0x0630322C, 0x00302C2A, 0x0632342E, 0x00322E2C, 0x06060432, 0x00063230, 0x06040A34, 0x00043432, 0xDF000000, 0x00000000
glabel D_80BA6F38
.word 0xC8500000, 0x30F405DC

View file

@ -1,11 +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 purposee registers
.section .rodata
glabel D_80BA6FF0
.incbin "baserom/ovl_Oceff_Spot", 0xF80, 0x000000F0

File diff suppressed because one or more lines are too long

View file

@ -615,7 +615,8 @@ typedef struct {
/* 0xE3F4 */ u16 unk_E3F4;
/* 0xE3F6 */ char unk_E3F6[0x16];
/* 0xE40C */ u16 unk_E40C;
/* 0xE40E */ char unk_E40E[0x0A];
/* 0xE40E */ s16 unk_E40E;
/* 0xE410 */ char unk_E410[0x08];
} MessageContext; // size = 0xE418
typedef struct {

4
spec
View file

@ -3816,14 +3816,12 @@ endseg
beginseg
name "ovl_Oceff_Spot"
include "build/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.o"
include "build/data/overlays/actors/z_oceff_spot.data.o"
include "build/data/overlays/actors/z_oceff_spot.reloc.o"
include "build/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot_reloc.o"
endseg
beginseg
name "ovl_Oceff_Storm"
include "build/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.o"
include "build/data/overlays/actors/z_oceff_storm.data.o"
include "build/data/overlays/actors/z_oceff_storm.reloc.o"
endseg

View file

@ -1,4 +1,11 @@
/*
* File: z_oceff_spot.c
* Overlay: ovl_Oceff_Spot
* Description: Sun's Song Effect
*/
#include "z_oceff_spot.h"
#include <vt.h>
#define FLAGS 0x02000010
@ -9,7 +16,8 @@ void OceffSpot_Destroy(Actor* thisx, GlobalContext* globalCtx);
void OceffSpot_Update(Actor* thisx, GlobalContext* globalCtx);
void OceffSpot_Draw(Actor* thisx, GlobalContext* globalCtx);
/*
void OceffSpot_GrowCylinder(OceffSpot* this, GlobalContext* globalCtx);
const ActorInit Oceff_Spot_InitVars = {
ACTOR_OCEFF_SPOT,
ACTORTYPE_ITEMACTION,
@ -21,19 +29,141 @@ const ActorInit Oceff_Spot_InitVars = {
(ActorFunc)OceffSpot_Update,
(ActorFunc)OceffSpot_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/func_80BA6070.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/OceffSpot_Init.s")
#include "z_oceff_spot_gfx.c"
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/OceffSpot_Destroy.s")
static InitChainEntry initChain[] = {
ICHAIN_VEC3F_DIV1000(scale, 0, ICHAIN_CONTINUE),
ICHAIN_F32(unk_F4, 1500, ICHAIN_STOP),
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/func_80BA6260.s")
void OceffSpot_SetupAction(OceffSpot* this, OceffSpotActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/func_80BA6370.s")
void OceffSpot_Init(Actor* thisx, GlobalContext* globalCtx) {
u32 pad;
OceffSpot* this = THIS;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/func_80BA63AC.s")
Actor_ProcessInitChain(&this->actor, initChain);
OceffSpot_SetupAction(this, OceffSpot_GrowCylinder);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/OceffSpot_Update.s")
Lights_InitType0PositionalLight(&this->lightInfo1, this->actor.posRot.pos.x, this->actor.posRot.pos.y,
this->actor.posRot.pos.z, 0x00, 0x00, 0x00, 0);
this->light1 = Lights_Insert(globalCtx, &globalCtx->lightCtx, &this->lightInfo1);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Spot/OceffSpot_Draw.s")
Lights_InitType0PositionalLight(&this->lightInfo2, this->actor.posRot.pos.x, this->actor.posRot.pos.y,
this->actor.posRot.pos.z, 0x00, 0x00, 0x00, 0);
this->light2 = Lights_Insert(globalCtx, &globalCtx->lightCtx, &this->lightInfo2);
if (YREG(15)) {
this->actor.scale.y = 2.4f;
} else {
this->actor.scale.y = 0.3f;
}
this->unk_174 = 0;
}
void OceffSpot_Destroy(Actor* thisx, GlobalContext* globalCtx) {
u32 pad;
OceffSpot* this = THIS;
Player* player = PLAYER;
Lights_Remove(globalCtx, &globalCtx->lightCtx, this->light1);
Lights_Remove(globalCtx, &globalCtx->lightCtx, this->light2);
func_800876C8(globalCtx);
if (gSaveContext.nayrusLoveTimer && globalCtx->actorCtx.actorList[ACTORTYPE_PLAYER].length) {
player->unk_692 |= 0x40;
}
}
void OceffSpot_End(OceffSpot* this, GlobalContext* globalCtx) {
if (this->unk_174 > 0) {
this->unk_174 -= 0.05f;
} else {
Actor_Kill(&this->actor);
if (D_8011FB40 != 400 && globalCtx->msgCtx.unk_E40E == 0 && (gSaveContext.eventInf[0] & 0xF) != 1) {
if (globalCtx->msgCtx.unk_E3F0 != 0x31 || globalCtx->msgCtx.unk_E3EE != 8) {
gSaveContext.unk_1422 = 1;
osSyncPrintf(VT_FGCOL(YELLOW));
// Sun's Song Flag
osSyncPrintf("z_oceff_spot 太陽の歌フラグ\n");
osSyncPrintf(VT_RST);
}
} else {
globalCtx->msgCtx.unk_E3EE = 4;
osSyncPrintf(VT_FGCOL(YELLOW));
// Ocarina End
osSyncPrintf("z_oceff_spot オカリナ終了\n");
osSyncPrintf(VT_RST);
}
}
}
void OceffSpot_Wait(OceffSpot* this, GlobalContext* globalCtx) {
if (this->timer > 0) {
this->timer--;
} else {
OceffSpot_SetupAction(this, OceffSpot_End);
}
}
void OceffSpot_GrowCylinder(OceffSpot* this, GlobalContext* globalCtx) {
if (this->unk_174 < 1.0f) {
this->unk_174 += 0.05f;
} else {
OceffSpot_SetupAction(this, OceffSpot_Wait);
this->timer = 60;
}
}
void OceffSpot_Update(Actor* thisx, GlobalContext* globalCtx) {
OceffSpot* this = THIS;
u32 pad;
Player* player = PLAYER;
f32 temp;
temp = (1.0f - cosf(this->unk_174 * M_PI)) * 0.5f;
this->actionFunc(this, globalCtx);
this->actor.scale.z = 0.42f * temp;
this->actor.scale.x = 0.42f * temp;
this->actor.posRot.pos = player->actor.posRot.pos;
this->actor.posRot.pos.y += 5.0f;
temp = (2.0f - this->unk_174) * this->unk_174;
func_800773A8(globalCtx, temp * 0.5F, 880.0f, 0.2f, 0.9f);
Lights_InitType0PositionalLight(&this->lightInfo1, (s16)this->actor.posRot.pos.x,
(s16)this->actor.posRot.pos.y + 55.0f, (s16)this->actor.posRot.pos.z,
(s32)(255.0f * temp), (s32)(255.0f * temp), (s32)(200.0f * temp),
(s16)(100.0f * temp));
Lights_InitType0PositionalLight(
&this->lightInfo2, (s16)this->actor.posRot.pos.x + Math_Sins(player->actor.shape.rot.y) * 20.0f,
(s16)this->actor.posRot.pos.y + 20.0f,
(s16)this->actor.posRot.pos.z + Math_Coss(player->actor.shape.rot.y) * 20.0f, (s32)(255.0f * temp),
(s32)(255.0f * temp), (s32)(200.0f * temp), (s16)(100.0f * temp));
}
void OceffSpot_Draw(Actor* thisx, GlobalContext* globalCtx) {
OceffSpot* this = THIS;
u32 scroll;
GraphicsContext* gfxCtx;
Gfx* dispRefs[4];
scroll = globalCtx->state.frames & 0xFFFF;
gfxCtx = globalCtx->state.gfxCtx;
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_spot.c", 466);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_oceff_spot.c", 469),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, textureDl);
gSPDisplayList(gfxCtx->polyXlu.p++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * 2, scroll * (-2), 32, 32,
1, 0, scroll * (-8), 32, 32));
gSPDisplayList(gfxCtx->polyXlu.p++, cylinderDl);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_spot.c", 485);
}

View file

@ -6,9 +6,17 @@
struct OceffSpot;
typedef void (*OceffSpotActionFunc)(struct OceffSpot*, GlobalContext*);
typedef struct OceffSpot {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x34];
/* 0x014C */ z_Light* light1;
/* 0x0150 */ LightInfoPositional lightInfo1;
/* 0x0160 */ z_Light* light2;
/* 0x0164 */ LightInfoPositional lightInfo2;
/* 0x0174 */ f32 unk_174;
/* 0x0178 */ u16 timer;
/* 0x017C */ OceffSpotActionFunc actionFunc;
} OceffSpot; // size = 0x0180
extern const ActorInit Oceff_Spot_InitVars;

View file

@ -0,0 +1,92 @@
#include "z_oceff_spot.h"
static u32 texture[] = {
0x354D5AAC, 0xA5561C01, 0x124688B5, 0x74583231, 0x313D71D6, 0x9F5B3507, 0x104089AD, 0x748F440C, 0x408176AC,
0xB4661301, 0x2261C0BE, 0x49392533, 0x2C497FC4, 0x80451D06, 0x2466BBD0, 0x9CB85411, 0x40A09DA3, 0xB37F210B,
0x3D8AEAC7, 0x3F241930, 0x2F5591A7, 0x6441080F, 0x4191E8DB, 0xB7A76B18, 0x4094BAA0, 0x76532D22, 0x60BAFEE8,
0x8253545F, 0x6078A896, 0x73540723, 0x66C2FEBB, 0x87888723, 0x4B87C79E, 0x33123048, 0x88E3FFFC, 0xD39F7E72,
0x8DA2AE80, 0xA77B1940, 0x90EBFFA9, 0x6289973E, 0x6F9ACD83, 0x2D104B7F, 0xAEEBFDF3, 0xD8B26772, 0xA7C7AD77,
0xB1B34A61, 0xB0F8FFD5, 0x9496986B, 0x9EC6D25D, 0x503E85B3, 0xC0C1E1EE, 0xBD9B618E, 0xBFE4A975, 0x86E18B86,
0xABCFF7F2, 0xBC837E69, 0xB5EFE465, 0x5B66BACB, 0xC794AADC, 0xAC8982AE, 0xD3F59754, 0x65E2AAAD, 0x8C85D0E1,
0xAF634D39, 0xC7E2EDA3, 0x527ECACF, 0xBF777FC0, 0xA284A5A5, 0xE3FE8A2F, 0x60CCAFBE, 0x7164B8BA, 0x97553A2B,
0xE8BCBCDA, 0x76A1BBBA, 0x844D83BD, 0x9C6B875B, 0xD9FFAA3F, 0x6AC9B59B, 0x6592BD94, 0x956D3D3B, 0xFFA773D3,
0xB5B9AB90, 0x4033A0BC, 0x873E3E1D, 0xB5FFE48D, 0x8CC9A761, 0x62CBAF79, 0x98883457, 0xF3766FAF, 0xD5B2A26B,
0x44549D8B, 0x56232221, 0x7DFFF2DD, 0xC6B68840, 0x4ECCA267, 0x696D296E, 0xA8328AAD, 0xD3998447, 0x5E7D8C5B,
0x391F1E35, 0x4EF6CDD3, 0xDD9B6C2D, 0x27A09571, 0x37443656, 0x4C1265C9, 0xCA91612E, 0x3B5A7A65, 0x2F4F3421,
0x36EAC380, 0xB6814A1B, 0x0C607075, 0x5860803B, 0x27102CCD, 0xC9A87A47, 0x16204B80, 0x44B3860F, 0x28DAE042,
0x7F773710, 0x0235616D, 0xA089BE60, 0x34161EBC, 0xBBAAA972, 0x172A3B91, 0x96F6C319, 0x21B7F02A, 0x618F662A,
0x02327A8C, 0x97577B5C, 0x48171FB3, 0xA090AF87, 0x1F65609D, 0xD8FFD41E, 0x177CC522, 0x69A8A462, 0x0D3A93B6,
0x4F0C1821, 0x39151CA7, 0x928EAA9A, 0x33919BAF, 0xEBFBDA23, 0x093B6937, 0x80AEA66C, 0x304491C7, 0x3A031710,
0x16162197, 0x9B9FB5BA, 0x4C95CED8, 0xF8F0D425, 0x05144066, 0x84B17F5A, 0x725E8DCD, 0x5D376910, 0x19183886,
0xA3A1C4C6, 0x6584D1F1, 0xFFFABF12, 0x0E123F77, 0x88AF6881, 0xB97F98BB, 0x879BBC23, 0x4A20557C, 0x9BA5D0BB,
0x7583C6E0, 0xFEFFB322, 0x34283976, 0x95B06EB8, 0xE29B999F, 0xBDE9E582, 0x814C5C82, 0xA1C0ECBE, 0x789ED6B2,
0xF4FFD78F, 0x73324087, 0xA0C26FAB, 0xE0B1A5B9, 0xF2FFFADE, 0xAC906A89, 0xB3DDFFCB, 0x86B8CD75, 0xDFFFF1D7,
0x8F31579C, 0xAFDE7B87, 0xC8BAB4EB, 0xF0F2FFE4, 0xB29B798B, 0xC3F4FFD2, 0xA0A17C32, 0xA9FFE8BD, 0x784D7A91,
0xC7F5AB9B, 0xBEBB86D9, 0xB0BCF9D4, 0x835C4C70, 0xD8FFFFD7, 0xA2682907, 0x68FFE29F, 0x61707B7A, 0xE5FFE7C8,
0xCCC33C8E, 0x768CE0C7, 0x51281940, 0xCBFFFFCB, 0x87450C00, 0x4BF3D58E, 0x6D767B92, 0xFAFFFFC8, 0xC7BF175B,
0x708BBA9A, 0x3A161542, 0xB4FFF5A9, 0x6D39090C, 0x50D8BC86, 0x897AA1C8, 0xFFFFF4A1, 0x8C880B50, 0x91A49762,
0x2D0C1E78, 0xD4FFD97F, 0x58351E23, 0x6BB49283, 0x9B95C9EE, 0xFFFFD377, 0x4336075E, 0xBFB27641, 0x1B0224B5,
0xFCF7AC55, 0x41384344, 0x8FA06468, 0x9FB5DBFD, 0xFFF1A553, 0x190B1275, 0xCCA75D3A, 0x0C042ED9, 0xFFD97C33,
0x28405669, 0xB0914C3A, 0x9199C6FF, 0xFECF7835, 0x080C308B, 0xB38F6D47, 0x0A0D3DDB, 0xF3A75519, 0x1341558E,
0xBE7B4321, 0x6B4D94F8, 0xE4AC591A, 0x02175096, 0x8E7A9145, 0x1D224BBF, 0xC1723508, 0x0D3E5FA5, 0xA568351E,
0x422B6EE0, 0xBB85480B, 0x04256799, 0x716D6D21,
};
static Vtx vertices[] = {
VTX(35, 0, -35, 1280, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(35, 150, -35, 1280, 512, 0xFF, 0xFF, 0xFF, 0x7E),
VTX(50, 150, 0, 1024, 512, 0xFF, 0xFF, 0xFF, 0x7E), VTX(50, 0, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(35, 500, -35, 1280, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(50, 500, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(0, 0, -50, 1536, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(0, 150, -50, 1536, 512, 0xFF, 0xFF, 0xFF, 0x7E),
VTX(0, 500, -50, 1536, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-35, 0, -35, 1792, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-35, 150, -35, 1792, 512, 0xFF, 0xFF, 0xFF, 0x7E), VTX(-35, 500, -35, 1792, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-50, 0, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-50, 150, 0, 2048, 512, 0xFF, 0xFF, 0xFF, 0x7E),
VTX(-50, 500, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-35, 0, 35, 256, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-35, 150, 35, 256, 512, 0xFF, 0xFF, 0xFF, 0x7E), VTX(-50, 150, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0x7E),
VTX(-50, 0, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-35, 500, 35, 256, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(-50, 500, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, 0, 50, 512, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(0, 150, 50, 512, 512, 0xFF, 0xFF, 0xFF, 0x7E), VTX(0, 500, 50, 512, 0, 0xFF, 0xFF, 0xFF, 0xFF),
VTX(35, 0, 35, 768, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(35, 150, 35, 768, 512, 0xFF, 0xFF, 0xFF, 0x7E),
VTX(35, 500, 35, 768, 0, 0xFF, 0xFF, 0xFF, 0xFF),
};
static Gfx textureDl[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(texture, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 5, 1, 0),
gsDPTileSync(),
gsDPSetTile(G_IM_FMT_I, G_IM_SIZ_8b, 4, 0x0, 1, 0, G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 15,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 0),
gsDPSetTileSize(1, 0, 0, (31 << 2), (31 << 2)),
gsDPSetCombineLERP(TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE,
ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),
gsDPSetRenderMode(AA_EN | Z_CMP | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_XLU | FORCE_BL |
GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1),
G_RM_AA_ZB_XLU_SURF2),
gsSPClearGeometryMode(G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsDPSetPrimColor(0x00, 0x00, 0xFF, 0xFF, 0xAA, 0xFF),
gsDPSetEnvColor(0xC8, 0xFF, 0x00, 0x80),
gsSPEndDisplayList(),
};
static Gfx cylinderDl[] = {
gsSPVertex(vertices, 27, 0),
gsSP2Triangles(0, 1, 2, 0, 0, 2, 3, 0),
gsSP2Triangles(1, 4, 5, 0, 1, 5, 2, 0),
gsSP2Triangles(6, 7, 1, 0, 6, 1, 0, 0),
gsSP2Triangles(7, 8, 4, 0, 7, 4, 1, 0),
gsSP2Triangles(9, 10, 7, 0, 9, 7, 6, 0),
gsSP2Triangles(10, 11, 8, 0, 10, 8, 7, 0),
gsSP2Triangles(12, 13, 10, 0, 12, 10, 9, 0),
gsSP2Triangles(13, 14, 11, 0, 13, 11, 10, 0),
gsSP2Triangles(15, 16, 17, 0, 15, 17, 18, 0),
gsSP2Triangles(16, 19, 20, 0, 16, 20, 17, 0),
gsSP2Triangles(21, 22, 16, 0, 21, 16, 15, 0),
gsSP2Triangles(22, 23, 19, 0, 22, 19, 16, 0),
gsSP2Triangles(24, 25, 22, 0, 24, 22, 21, 0),
gsSP2Triangles(25, 26, 23, 0, 25, 23, 22, 0),
gsSP2Triangles(3, 2, 25, 0, 3, 25, 24, 0),
gsSP2Triangles(2, 5, 26, 0, 2, 26, 25, 0),
gsSPEndDisplayList(),
};

View file

@ -1,3 +1,9 @@
/*
* File: z_oceff_storm.c
* Overlay: ovl_Oceff_Storm
* Description: Song of Storms Effect
*/
#include "z_oceff_storm.h"
#define FLAGS 0x02000030
@ -8,8 +14,11 @@ void OceffStorm_Init(Actor* thisx, GlobalContext* globalCtx);
void OceffStorm_Destroy(Actor* thisx, GlobalContext* globalCtx);
void OceffStorm_Update(Actor* thisx, GlobalContext* globalCtx);
void OceffStorm_Draw(Actor* thisx, GlobalContext* globalCtx);
void OceffStorm_Draw2(Actor* thisx, GlobalContext* globalCtx);
void OceffStorm_DefaultAction(OceffStorm* this, GlobalContext* globalCtx);
void OceffStorm_UnkAction(OceffStorm* this, GlobalContext* globalCtx);
/*
const ActorInit Oceff_Storm_InitVars = {
ACTOR_OCEFF_STORM,
ACTORTYPE_ITEMACTION,
@ -21,19 +30,161 @@ const ActorInit Oceff_Storm_InitVars = {
(ActorFunc)OceffStorm_Update,
(ActorFunc)OceffStorm_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/func_80BA70E0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/OceffStorm_Init.s")
#include "z_oceff_storm_gfx.c"
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/OceffStorm_Destroy.s")
void OceffStorm_SetupAction(OceffStorm* this, OceffStormActionFunc actionFunc) {
this->actionFunc = actionFunc;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/func_80BA7200.s")
void OceffStorm_Init(Actor* thisx, GlobalContext* globalCtx) {
OceffStorm* this = THIS;
OceffStorm_SetupAction(this, OceffStorm_DefaultAction);
this->posYOffAdd = 0;
this->counter = 0;
this->primColorAlpha = 0;
this->vtxAlpha = 0;
this->actor.scale.y = 0.0f;
this->actor.scale.z = 0.0f;
this->actor.scale.x = 0.0f;
this->posYOff = this->posYOffAdd;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/func_80BA73C4.s")
if (this->actor.params == 1) {
OceffStorm_SetupAction(this, OceffStorm_UnkAction);
this->actor.draw = OceffStorm_Draw2;
} else {
Actor_Spawn(&globalCtx->actorCtx, globalCtx, ACTOR_EN_OKARINA_EFFECT, this->actor.posRot.pos.x,
this->actor.posRot.pos.y - 30.0f, this->actor.posRot.pos.z, 0, 0, 0, 1);
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/OceffStorm_Update.s")
void OceffStorm_Destroy(Actor* thisx, GlobalContext* globalCtx) {
OceffStorm* this = THIS;
Player* player = PLAYER;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/func_80BA7450.s")
func_800876C8(globalCtx);
if (gSaveContext.nayrusLoveTimer) {
player->unk_692 |= 0x40;
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/OceffStorm_Draw.s")
// very close from matching, single regalloc difference
#ifdef NON_MATCHING
void OceffStorm_DefaultAction(OceffStorm* this, GlobalContext* globalCtx) {
if (this->counter < 20) {
this->primColorAlpha = (s8)(this->counter * 5.0f);
} else if (this->counter > 80) {
this->primColorAlpha = (s8)((100 - this->counter) * 5.0f);
} else {
this->primColorAlpha = 100;
}
if (this->counter < 10 || this->counter >= 90) {
this->vtxAlpha = 0;
} else {
if (this->counter <= 65) {
if (this->vtxAlpha <= 200) {
this->vtxAlpha += 10;
}
this->actor.scale.x = this->actor.scale.z = 0.4f;
this->actor.scale.y = 0.3f;
} else if (this->counter > 65) {
this->vtxAlpha = (90 - this->counter) * 10;
} else {
this->vtxAlpha = 255;
this->actor.scale.x = this->actor.scale.z = 0.4f;
}
}
if (this->counter > 60) {
f32 f = this->actor.posRot.pos.y + (this->posYOff * 0.1f);
this->posYOff += this->posYOffAdd;
this->posYOffAdd += 10;
this->actor.posRot.pos.y = f;
}
if (this->counter < 100) {
this->counter++;
} else {
Actor_Kill(&this->actor);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Oceff_Storm/OceffStorm_DefaultAction.s")
#endif
void OceffStorm_UnkAction(OceffStorm* this, GlobalContext* globalCtx) {
if (this->primColorAlpha < 100) {
this->primColorAlpha += 5;
}
// ! @bug Actor_Kill is never called so the actor will stay alive forever
}
void OceffStorm_Update(Actor* thisx, GlobalContext* globalCtx) {
OceffStorm* this = THIS;
Player* player = PLAYER;
this->actor.posRot.pos = player->actor.posRot.pos;
this->actor.shape.rot.y = func_8005A9F4(ACTIVE_CAM);
this->actionFunc(this, globalCtx);
}
void OceffStorm_Draw2(Actor* thisx, GlobalContext* globalCtx) {
u32 scroll;
OceffStorm* this = THIS;
GraphicsContext* gfxCtx;
Gfx* dispRefs[4];
scroll = globalCtx->state.frames & 0xFFF;
gfxCtx = globalCtx->state.gfxCtx;
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_storm.c", 449);
gDPPipeSync(gfxCtx->polyXlu.p++);
if (1) {}
gfxCtx->polyXlu.p = func_80093F34(gfxCtx->polyXlu.p);
gDPSetAlphaDither(gfxCtx->polyXlu.p++, G_AD_NOISE);
gDPSetColorDither(gfxCtx->polyXlu.p++, G_CD_NOISE);
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0x80, 0x80, 200, 200, 150, this->primColorAlpha);
gSPDisplayList(gfxCtx->polyXlu.p++, textureDl);
gSPDisplayList(gfxCtx->polyXlu.p++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * 8, scroll * 4, 64, 64, 1,
scroll * 4, scroll * 4, 64, 64));
gSPTextureRectangle(gfxCtx->polyXlu.p++, 0, 0, (SCREEN_WIDTH << 2), (SCREEN_HEIGHT << 2), G_TX_RENDERTILE, 0, 0,
140, (1 << 15) | (31 << 10) | 884);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_storm.c", 477);
}
void OceffStorm_Draw(Actor* thisx, GlobalContext* globalCtx) {
u32 scroll;
OceffStorm* this;
GraphicsContext* gfxCtx;
Vtx_t* vtxPtr;
Gfx* dispRefs[4];
this = THIS;
vtxPtr = (Vtx_t*)vertices;
scroll = globalCtx->state.frames & 0xFFF;
gfxCtx = globalCtx->state.gfxCtx;
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_storm.c", 486);
func_80093D84(globalCtx->state.gfxCtx);
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0x80, 0x80, 0xFF, 0xFF, 0xC8, 0xFF);
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0x96, 0x96, 0x00, 0x80);
gDPSetAlphaDither(gfxCtx->polyXlu.p++, G_AD_NOISE);
gDPSetColorDither(gfxCtx->polyXlu.p++, G_CD_NOISE);
vtxPtr[0].cn[3] = vtxPtr[6].cn[3] = vtxPtr[16].cn[3] = vtxPtr[25].cn[3] = this->vtxAlpha >> 1;
vtxPtr[10].cn[3] = vtxPtr[22].cn[3] = this->vtxAlpha;
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_oceff_storm.c", 498),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, cylinderTexDl);
gSPDisplayList(gfxCtx->polyXlu.p++, Gfx_TwoTexScroll(globalCtx->state.gfxCtx, 0, scroll * 4, (0 - scroll) * 8, 32,
32, 1, scroll * 8, (0 - scroll) * 12, 32, 32));
gSPDisplayList(gfxCtx->polyXlu.p++, cylinderDl);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_oceff_storm.c", 512);
OceffStorm_Draw2(&this->actor, globalCtx);
}

View file

@ -6,9 +6,16 @@
struct OceffStorm;
typedef void (*OceffStormActionFunc)(struct OceffStorm*, GlobalContext*);
typedef struct OceffStorm {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xC];
/* 0x014C */ u16 counter;
/* 0x014E */ u8 primColorAlpha;
/* 0x014F */ u8 vtxAlpha;
/* 0x0150 */ s16 posYOff;
/* 0x0152 */ s16 posYOffAdd;
/* 0x0154 */ OceffStormActionFunc actionFunc;
} OceffStorm; // size = 0x0158
extern const ActorInit Oceff_Storm_InitVars;

View file

@ -0,0 +1,192 @@
#include "z_oceff_storm.h"
extern u32 D_04032490[];
extern u32 D_04032890[];
static u32 tex0[] = {
0x2F6E6F59, 0x6197B3CC, 0xC8AD8E6C, 0x5333170A, 0x17366173, 0x86ABC7C6, 0xA9928C7E, 0x55496341, 0x40705B59,
0x79A5DAE8, 0xC9A5927F, 0x6F50270D, 0x17304F6C, 0x8BAAC3B9, 0x9189A0A5, 0x854A2F1F, 0x33808E74, 0x709BB7CC,
0xC6B18E69, 0x4627100D, 0x21406880, 0x9BC2DAC1, 0x92808378, 0x514B7350, 0x386E6768, 0x80AAE1E4, 0xC6A0866D,
0x644B2513, 0x2541617F, 0xA2BBD7C6, 0x9C97B8B9, 0x86322A2C, 0x3381A28F, 0x82A0BECA, 0xCBBF956B, 0x40210A15,
0x2F4D718F, 0xB1D7E8BA, 0x856B706D, 0x49447654, 0x366C6C71, 0x87ADDFD8, 0xB8967B68, 0x543A1B15, 0x32537094,
0xB5D1E5CF, 0xAEA9C9CD, 0x9F3C3235, 0x3883AEA8, 0x98A4C1C5, 0xC9CCA576, 0x45210D1D, 0x3C5D7E9F, 0xC3E7EFAF,
0x785B5C5B, 0x3935684F, 0x36646A79, 0x8FADD5C9, 0xA6877561, 0x40271721, 0x406180A5, 0xC7E2EED5, 0xC1BDCACD,
0xAD46333D, 0x3A82B5BB, 0xADADC5BD, 0xC4D5B282, 0x532C152A, 0x4B6D8FB0, 0xD5F4F4AD, 0x73534F4D, 0x2D28584D,
0x3C5E6981, 0x9AB0CCBB, 0x987B775E, 0x2D151B2F, 0x507192B8, 0xDAF0F2D6, 0xD0CAC1C0, 0xB5573241, 0x4180B2C3,
0xBFB9C8B3, 0xB9CCB085, 0x5E392138, 0x5B7DA1C3, 0xE5FBF8BC, 0x805B534F, 0x383C605E, 0x5363738F, 0xA9B7CAB1,
0x8E79805E, 0x1F10233F, 0x6081A4CA, 0xEAFAF1CF, 0xD4CBB0B2, 0xC06E3246, 0x4D7BA9C3, 0xC8C4CAAB, 0xA5AF9777,
0x62463249, 0x6B90B4D4, 0xF2FEFBD3, 0xA47B6B69, 0x686B7D7E, 0x777D869D, 0xB4C3C6A8, 0x8E888E5F, 0x1B173050,
0x7292B8DC, 0xF6FFE7C0, 0xC2B99CAC, 0xC682334E, 0x57779EBB, 0xCBCFD0A4, 0x8D856E58, 0x5B514459, 0x7BA1C6E5,
0xFAFFFEE9, 0xC9A48D8F, 0x8C868E92, 0x8C999DA8, 0xBCCABE9F, 0x99A4A065, 0x23254060, 0x83A4CBEB, 0xFCFFDDAC,
0xA69D8CAF, 0xC8993A56, 0x617998B5, 0xCBD7D29F, 0x765B4138, 0x505D596E, 0x8CB2D6F1, 0xFEFFFEF8, 0xE7C5B0AD,
0xA295979B, 0x99AFB3B2, 0xC3CAB197, 0xA9C1B36F, 0x32354F72, 0x94B5DCF6, 0xFFFFD99F, 0x8E898BB8, 0xC3A84A5D,
0x6E819AB5, 0xCEDECF98, 0x65402323, 0x4B6B7283, 0x9EC1E4FA, 0xFFFFFCF7, 0xF6DAC7C2, 0xAC96929D, 0xA2BFC5BD,
0xC9C6A192, 0xB6D7C682, 0x49466281, 0xA4C4ECFD, 0xFFFFDFAD, 0x95919DBE, 0xB8B26768, 0x8190A4BC, 0xD5DFC38C,
0x61402328, 0x547D8C99, 0xADCFEBFA, 0xFEFFFAF1, 0xF3DCD0C8, 0x9C808AA2, 0xA9C9D4CA, 0xD0C09D94, 0xB9DCD7A2,
0x685D7290, 0xB2CFF4FF, 0xFFFFEBC6, 0xADA2AABE, 0xB1B98781, 0x99A2B1C6, 0xDEDBAD7E, 0x6957393A, 0x6995A8AF,
0xBED7E7EF, 0xF7FEFAED, 0xE8D1CEC1, 0x907595AA, 0xB3CEDFD7, 0xD5B69F99, 0xADCEE4C4, 0x8B7482A0, 0xBFCFF2FC,
0xFEFFF7DD, 0xC7B5B2B5, 0xB0B69390, 0xADB8C0D4, 0xE9D69970, 0x74745656, 0x82AEC0C0, 0xC9D9DBDC, 0xEAF8FAEB,
0xDEC9C4B8, 0x8F71A5B5, 0xC1D6E7E4, 0xD7AFA39D, 0x9CBAECE1, 0xAD8A93AF, 0xC5C6E1F1, 0xFAFEFCED, 0xDAC6B0A6,
0xACAD9094, 0xB5CDD2E3, 0xF3D38D69, 0x808A6D70, 0xA0C7CECB, 0xD1D8CCC6, 0xD4EFF9E9, 0xD5C3BCAD, 0x937AB7BE,
0xCBDFEFEE, 0xD3A5A097, 0x88A4EDF6, 0xC39CA2BF, 0xC4B5C9DE, 0xEEF7F9ED, 0xDAC4A092, 0xA0967C8B, 0xB1DFE4EE,
0xF9DA926C, 0x83927C84, 0xBCD7D5D5, 0xD8D5C0B2, 0xB9DDF4E1, 0xCFBCB4A4, 0xA190C5C3, 0xCFE3F4F6, 0xCD9B9388,
0x7899E8F9, 0xCCA8B3CD, 0xBDA0ACC3, 0xDBEDF4E4, 0xD7C09481, 0x8B7C5B71, 0xABEDEDF0, 0xFCE6A97A, 0x818B8198,
0xD1DDD5DC, 0xDDD2B9A4, 0x9FCCECD5, 0xCCBAAF9F, 0xACAACAC9, 0xDAEBF8FA, 0xC68F7E72, 0x6F98E2F1, 0xCBB1C2D8,
0xB49191A8, 0xC6E4EAD7, 0xCCBB8B75, 0x7867495E, 0xADF6EFE5, 0xF7F1C692, 0x817F84A9, 0xDEDBD2E3, 0xDECCB299,
0x8ABBE1C7, 0xCAB6A7A4, 0xB5C1C6C4, 0xE1F4FCFC, 0xC3876A5E, 0x6C98DAE8, 0xC4B8CFDA, 0xA9858399, 0xBBDEDCC9,
0xC2B2846D, 0x6D5D4357, 0xBCFBEAD2, 0xE7F7E1AF, 0x85798DB9, 0xDFD2D1E5, 0xD6BCA48C, 0x81B1DABF, 0xCBB399A9,
0xBFC9B1B1, 0xE1FAFEFE, 0xC8895F55, 0x6D9DD8DF, 0xC1C2D3D0, 0x9E80829D, 0xBFDACDB7, 0xB8B0846E, 0x6E5E4061,
0xD3FEE5BC, 0xCFECF1CF, 0x9882A0CA, 0xDAC7CEDD, 0xC19F8B7D, 0x82B5D7C0, 0xCBB288A1, 0xB4B98E8F, 0xD9FEFFFE,
0xD697695C, 0x729FDADB, 0xC5C8C9BC, 0x928392B5, 0xCCD3BFA8, 0xB3B49178, 0x77603C76, 0xE6FFE6AB, 0xB1D4EDE6,
0xB094B9D3, 0xD1C0C6CB, 0xA37E6F6E, 0x92C0D5C3, 0xCAAC758F, 0x9F996568, 0xC8FEFFFF, 0xE6B28271, 0x7BA5DFD9,
0xC8C7B9A0, 0x878CAECF, 0xD2CBB69D, 0xB2B9A485, 0x7D5C368E, 0xF2FFE89F, 0x95B8DAF3, 0xC9A9CCD5, 0xC7BCBDB3,
0x84615364, 0xA6C7D3C9, 0xC3A06472, 0x8372444B, 0xB1FAFFFF, 0xF4D1A890, 0x8BB1E1D6, 0xC9C09F87, 0x7A95C9DF,
0xD2BDAF93, 0xB3C0B290, 0x7C5138A6, 0xFAFFE38F, 0x88A4BFF2, 0xDDBAD7D0, 0xC0BCB09A, 0x70534569, 0xB9C6CAC6,
0xB18D5B51, 0x5F50363F, 0x92F0FFFF, 0xFDE9CDB5, 0xA8C1DECE, 0xC4B18B74, 0x6B98DBE4, 0xC9B0A48A, 0xA9BAB494,
0x784541BD, 0xFCFAC978, 0x8DA8A6E6, 0xE9C6DAC5, 0xBDBFA385, 0x6E61537A, 0xC3BAB7B3, 0x97765141, 0x50433D4A,
0x70D8FFFF, 0xFCF3E6D6, 0xC6D0D7C4, 0xBCA17E69, 0x5B90E1DF, 0xC3AD9C80, 0x93A3A38D, 0x723C4ECA, 0xF3EBA45D,
0x99BC98D7, 0xF0CDD2BA, 0xB9BD9475, 0x7A7D6C91, 0xC2A6A29C, 0x7C634A3A, 0x50414A64, 0x55B9FDFF, 0xF7E6F1ED,
0xE0DACEBA, 0xB394725F, 0x4A7AD6D8, 0xC1AF9C7C, 0x7D888680, 0x6E3557CA, 0xDECF7743, 0xA2CD99CF, 0xEFCFC7AF,
0xB1B38063, 0x809482A2, 0xBC978E82, 0x6A5E4339, 0x4D3F5077, 0x4B90FBFF, 0xF1CEE6F1, 0xF0DFC3B0, 0xA8896454,
0x3A60C2D1, 0xB9A99F85, 0x64656776, 0x743854BA, 0xBBAA4E2D, 0x9CCFA4D6, 0xEDCCBDA5, 0xA19F6D54, 0x7B998AA4,
0xB79A8B71, 0x615E4145, 0x49384B79, 0x4F67F7FF, 0xEDB7CCDF, 0xEBDCB9A5, 0x9A7C5846, 0x2F43A4C3, 0xADA0A097,
0x624B5576, 0x85504A95, 0x8C853A1F, 0x80BCBBDF, 0xE6CAB9A3, 0x92885E46, 0x65827B95, 0xA59B9778, 0x5C57546E,
0x5B333D67, 0x574DF0FF, 0xEFACAFBD, 0xD2DAAD98, 0x896E4D39, 0x282882AD, 0x9D9298A0, 0x7E5F6188, 0xA27A516C,
0x5F6A3817, 0x5C99CEE7, 0xDFCBBDA8, 0x8E7D5E48, 0x4D5E6079, 0x8D929B8C, 0x584E75A1, 0x86412C4B, 0x583AE8FF,
0xF5B99292, 0xB3D3A48A, 0x775E412C, 0x21196191, 0x8F8187A4, 0x9A857D9F, 0xBFA9724E, 0x3C5F3A15, 0x3871DAE8,
0xDAD1C6B3, 0x9B887055, 0x4139405D, 0x73859FA4, 0x584E9ECC, 0xB7632338, 0x513ADAFF, 0xFBCA7E6A, 0x90CDA17F,
0x6B533821, 0x1B10457A, 0x8C807A9F, 0xB7AB96AD, 0xCECC9C4A, 0x2C624013, 0x2151E1DE, 0xD7D2CEBC, 0xAEA28A68,
0x411F324E, 0x536F9FB9, 0x6C6FC7ED, 0xE1872736, 0x4D3FC6FE, 0xFEDA724A, 0x72C2A57F, 0x6E59361D, 0x1710356D,
0x918A7D9B, 0xCFC09FA7, 0xC7D2B854, 0x326E4113, 0x2540DCD5, 0xD5CCD0BB, 0xBEB9A378, 0x481D4055, 0x4D63A2C1,
0x939FE2FC, 0xFAA42F3F, 0x4B45AAFB, 0xFFE46838, 0x63B5B091, 0x87744F2A, 0x1B15356D, 0x97998EA9, 0xCBB58F8A,
0xA4B9B553, 0x417D3F17, 0x2D39D8CF, 0xD1BECBB3, 0xC6C6B583, 0x4527606D, 0x576DAFBF, 0xB8C5F3FD, 0xFFB93541,
0x494D86F2, 0xFEE25932, 0x5DB0BAA4, 0x9F967343, 0x21193C72, 0x9FA9A4BD, 0xB8926C62, 0x748A9549, 0x51873D19,
0x3238D4CE, 0xC8ADC2A6, 0xC4C9C089, 0x3F2D7F8A, 0x6A7DBCB8, 0xD6E4FAFE, 0xFFC7333D, 0x454A63DB, 0xF8D34D36,
0x61ADC0B2, 0xB1B3955E, 0x2C214477, 0xA4B7BACC, 0x9E614438, 0x43516436, 0x5F83391B, 0x3338CCCF, 0xBEA0BC9D,
0xC2C4C990, 0x403A99A8, 0x8090C5B1, 0xE9F1FCFF, 0xFDD63238, 0x394445BB, 0xDCB14540, 0x73B5C3BC, 0xBFC6AC72,
0x3C304D7B, 0xA5BCC9DA, 0x7E362117, 0x1D27352F, 0x5F723821, 0x3238C2D2, 0xB59DB99F, 0xC1C0D09B, 0x4E46A9BC,
0x9DA9CAB5, 0xEDF5FEF9, 0xF6E43236, 0x2D353592, 0xB08D544D, 0x88B9C3BF, 0xC0C4A97A, 0x50455579, 0xA2BCCDDF,
0x74271319, 0x32251738, 0x53553928, 0x3238B5D2, 0xB19DBCAB, 0xC0BFD8A9, 0x624EADC9, 0xB7C3D2C3, 0xEFFAFEEF,
0xEDF03536, 0x23233569, 0x7F797259, 0x99B5C3C3, 0xBBB2977C, 0x6C65637B, 0x9FB9CEE3, 0x862F1932, 0x60401040,
0x40393632, 0x383FA7D2, 0xB5A3BFB9, 0xC0C3E1B8, 0x7759A7CF, 0xCCD9DFDA, 0xF2FEFDE6, 0xE8F23539, 0x1F19324A,
0x50759267, 0xA5ADC5CA, 0xB59C827D, 0x8A867680, 0x9EB8CCE8, 0xA03D2F57, 0x9664153D, 0x2D283538, 0x414A98CF,
0xBAADBEC0, 0xC3CFE7C3, 0x8A639FCC, 0xD8E6E8EB, 0xF6FFFDE5, 0xEBEA3238, 0x1D173035, 0x3D7DA973, 0xA9A4C5CE,
0xAB82778A, 0xA9A5888A, 0xA4BCC6E6, 0xBA4F548A, 0xC6881F33, 0x302D3239, 0x535C8AC9, 0xBAB6BAC1, 0xCBD6E6CB,
0x967195C3, 0xD7E6EEF8, 0xFAFFFDEB, 0xF1D42A35, 0x1F25322F, 0x417DAF7D, 0xA6ACC0CE, 0xA27583A9, 0xC9BF9898,
0xB0BEBEE1, 0xCC6585BB, 0xE7A53832, 0x4E402F38, 0x697084C4, 0xB3BEB4BD, 0xD5D7E1CC, 0x9F7E92BC, 0xD2E4EFFB,
0xFEFFFEF6, 0xF4B5212C, 0x273C3A30, 0x4A70AC89, 0xA3B7BCCD, 0x9F7499C8, 0xE1CFA3A4, 0xBCBDB0D7, 0xD87DB5DF,
0xF9BC604B, 0x7454323D, 0x7C7D7FBF, 0xAAC1B1BE, 0xDFD8D9CB, 0xA48994B5, 0xCEE1E6F1, 0xFEFFFFFE, 0xF59F2D30,
0x3D574D36, 0x5462A394, 0xA2C2B9CF, 0xA277AFE1, 0xF3DAABAF, 0xC4B69FCF, 0xE29FDBF6, 0xFECF947D, 0x9C65414D,
0x898282BB, 0xA3C3B4C6, 0xE6DCD7C7, 0xA2919CB6, 0xCFE1DBE2, 0xFDFFFFFF, 0xF4A56358, 0x64725C3D, 0x5F5F9FA0,
0xA1C9B9D4, 0xA47BB8ED, 0xFADFB5B9, 0xC8AE99CF, 0xECC3F3FE, 0xFEE1C3B2, 0xBB765B69, 0x8D7D90BA, 0xA9C6BCD5,
0xEFE6DFC5, 0x9F97A8C0, 0xD9E7CDCC, 0xF9FFFFFF, 0xF6C09D90, 0x91866343, 0x6564A7AB, 0xA2CCC1DC, 0xA379B3E6,
0xF6E1BEC4, 0xCBB2AADA, 0xF6E0FDFF, 0xFFF1E4D7, 0xCD877D8B, 0x8E7596BD, 0xB6C8C7E5, 0xF6F3E8C3, 0x9D9FB2CC,
0xE5ECB9B3, 0xF4FFFFFE, 0xF9DDC6B9, 0xB78F6549, 0x646EB0B4, 0xA9D0CCE5, 0xA378A6D5, 0xEBE1C6CC, 0xCCBFC6E8,
0xFBF5FEFF, 0xFFFBF4E9, 0xD99FA2A9, 0x947399BD, 0xC1CCD2F1, 0xFBFCF2C3, 0x9FA7BED5, 0xE9E4A299, 0xEBFEFFFD,
0xFAEFE3D5, 0xCE8C6150, 0x657EB9BA, 0xAFD4D7EF, 0xA97D9AC3, 0xDFDCCCCF, 0xCACAE0F6, 0xFCF7F7FE, 0xFFFEF3EA,
0xDAB5B9BA, 0xA2819EBB, 0xC8D0DEFA, 0xFFFFF6C6, 0xA7B3C5D1, 0xDECF887E, 0xD6F9FFFD, 0xF9EFE4D8, 0xD5846160,
0x7396B9BD, 0xB9D7E3F7, 0xB48899B9, 0xD2D7D2CD, 0xC0CAF1FD, 0xF1E4E6F9, 0xFFFDEBE0, 0xD6BEBEBB, 0xA890A3BC,
0xC9D7EAFE, 0xFFFFF6C9, 0xB4BDC2C0, 0xC2AC6963, 0xB6EBFEFD, 0xF8E6D7C9, 0xCC78687A, 0x8DA3ADBB, 0xC6DEEDFB,
0xC79FAABB, 0xCAD3D8C9, 0xACB5E8F8, 0xDEC9CDEB, 0xFDFAE7DA, 0xCEB9B1AA, 0xA18F99B9, 0xCCE2F4FF, 0xFFFFF5CE,
0xC0C0B7A6, 0x997E4948, 0x91D7FDFE, 0xF8E0CCC0, 0xBC6B7192, 0x9FA39CB5, 0xD1E7F6FE, 0xDDBCC5C6, 0xC9D5E3C4,
0x8F92D1E8, 0xC6A9B0DB, 0xF7F6E7D6, 0xBCA3958D, 0x8A818AB1, 0xD3EDFBFF, 0xFFFFF2D2, 0xC5BCA489, 0x6F542F32,
0x6BBEFBFF, 0xFADCC2B8, 0xAE657AA9, 0xA9988AB1, 0xDDF1FCFF, 0xEDD7DDD0, 0xCBDCEFBF, 0x716AB1D2, 0xAC9199CA,
0xEEEDE6D0, 0xA884786E, 0x656373A1, 0xD6F4FFFE, 0xFFFFEFD3, 0xC3B0906F, 0x4E331B23, 0x4FA5F7FF, 0xF8D7B8B1,
0xA56780B5, 0xAC8785B3, 0xE9FBFFFF, 0xFAEDEDD4, 0xCBE4F8BC, 0x57458FB9, 0x9B878FBC, 0xE1DFDFC4, 0x916D5F50,
0x46455189, 0xCCF6FFFE, 0xFFFFE8CF, 0xBA9F8260, 0x3A1F101F, 0x4692F4FE, 0xF4D1B0AC, 0xA97382B3, 0xAB878CC2,
0xF2FEFFFF, 0xFEFAF1CF, 0xC4E8FCB4, 0x453278A5, 0x968A92BB, 0xD6CED1B1, 0x7C604E3A, 0x323C4B74, 0xB9F1FFFE,
0xFFFCE0C7, 0xAE927956, 0x30151027, 0x4888EDFA, 0xEFCBA9A6, 0xB28384AD, 0xB4969ED6, 0xFAFFFFFF, 0xFFFAE8C3,
0xB6DDF4A9, 0x3925659A, 0x99959EBE, 0xCDBCBB9A, 0x6C5B452C, 0x25435772, 0xA8EBFFFE, 0xFFF6D2BB, 0xA2897250,
0x2C131730, 0x5186E4F1, 0xE5C3A5A3, 0xBA9689A6, 0xC3ACB5EA, 0xFEFEFFFF, 0xFFF4D9B3, 0xA2C5DC95, 0x301F5B96,
0xA4A5ACC3, 0xC3ABA183, 0x60574121, 0x1F4D6A82, 0xA6EAFFFF, 0xFDECC4AC, 0x96826D4E, 0x2F1B213F, 0x608BDBE2,
0xD5BAA3A2, 0xBCA991A6, 0xD0C1CCF7, 0xFEFCFFFF, 0xFCE7C9A2, 0x8AA0B87A, 0x271F5998, 0xB5B7B9C8, 0xB99D8A70,
0x59503A19, 0x1F577F9E, 0xBFEFFFFF, 0xF7DEB59B, 0x8A7D654D, 0x3D2F324E, 0x6F98D1CF, 0xC3AFA2A4, 0xBAB79DAE,
0xD9D2E1FE, 0xFEFCFFFE, 0xF6D7B691, 0x7576895C, 0x1D21599F, 0xCAC8C3C9, 0xAC907964, 0x51453013, 0x215E92BD,
0xDAF6FFFC, 0xEDCEA58A, 0x7D7A604E, 0x5549415E, 0x82A4CCBD, 0xADA09EA4, 0xB5C1ADBB, 0xE1DFEFFF, 0xFEFCFFFB,
0xE9C5A581, 0x61505B3F, 0x192A60A8, 0xDAD1C9C6, 0x9E836D5D, 0x4936230D, 0x2361A5D9, 0xF1FDFEF7, 0xDDBC9476,
0x6E745C53, 0x6B5F5371, 0x92B2C9AF, 0x9A8E919F, 0xB1C8BEC9, 0xE4E7F9FF, 0xFEFDFEF3, 0xDAB29471, 0x4F35352D,
0x1D3869B3, 0xE1D2C9C0, 0x91776859, 0x3F251710, 0x2767B9EE, 0xFEFFFCEC, 0xCAA88364, 0x5E6C5859, 0x7D706282,
0xA3C0C6A6, 0x8B7B7C8C, 0xACC9C6CB, 0xDEEBFEFF, 0xFFFFFAE6, 0xC7A08563, 0x3F231F27, 0x2A4874BB, 0xDFCBC3B7,
0x8A736C5B, 0x3219131F, 0x2A69C6FA, 0xFFFFF6DC, 0xB8957253, 0x4E5F5963, 0x84797394, 0xB5C9C09F, 0x826F6570,
0xA5C6BFBC, 0xCFECFFFF, 0xFFFDEFD5, 0xB48F7454, 0x3017172D, 0x3C5D82BD, 0xD5C0B9B0, 0x8C7D7A5B, 0x271B132F,
0x306CD2FE, 0xFFFEEBCC, 0xA5856143, 0x3C505B6D, 0x837B82A5, 0xC3CFB897, 0x7E695751, 0x9CC0A9A0, 0xB8E6FFFF,
0xFFF6E2C8, 0xA47D6346, 0x23101939, 0x4F7091C3, 0xCAB3ABA9, 0x99928955, 0x1F23173A, 0x3975D9FE, 0xFFF8DCBA,
0x94765333, 0x2C415D73, 0x7D7D92B6, 0xD2D0AE92, 0x7A675136, 0x8EB38979, 0x9EDDFEFF, 0xFDECD4C1, 0x9B6F5039,
0x190D2345, 0x6181A0C4, 0xC0A89FA6, 0xABA98F48, 0x1B271940, 0x437CCFF4, 0xF3E4C3A1, 0x82674023, 0x1F365E71,
0x757F9DC1, 0xD8C4A18A, 0x705D4F25, 0x7C9F6756, 0x85C9EDF7, 0xEDD5C3B9, 0x8F5F3D2C, 0x1310274A, 0x688DA4BC,
0xAD998FA0, 0xB2AD8236, 0x23463343, 0x4B85C4E6, 0xE2CDAE8D, 0x72563215, 0x15305F6F, 0x718AA9C6, 0xCEB99C84,
0x64534E25, 0x658A5146, 0x78B3E1F2, 0xE2C1B4A9, 0x8759351F, 0x0D173350, 0x7292ACBA, 0x9E8F8792, 0xA0956725,
0x2A5C534B, 0x5691BCD9, 0xD5BB9E7D, 0x6245250D, 0x13305F6F, 0x7999B8CA, 0xC0A89782, 0x5C4B5732, 0x517A504B,
0x74AADCEF, 0xD7B4A497, 0x7E562D15, 0x1023405E, 0x7E9FB7B9, 0x95898F97, 0x90734619,
};
static Gfx textureDl[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsDPSetRenderMode(IM_RD | CVG_DST_SAVE | ZMODE_OPA | FORCE_BL | GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1),
G_RM_CLD_SURF2),
gsDPSetEnvColor(0x32, 0x32, 0x00, 0x00),
gsSPClearGeometryMode(G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsDPSetCombineLERP(TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, TEXEL1, TEXEL0, PRIM_LOD_FRAC, TEXEL0, PRIMITIVE,
ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, PRIMITIVE, 0),
gsDPLoadTextureBlock(tex0, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 6, 3, 1),
gsDPLoadMultiBlock(tex0, 0x0, 1, G_IM_FMT_I, G_IM_SIZ_8b, 64, 64, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 6, 6, 2, 0),
gsSPEndDisplayList(),
};
static Vtx vertices[] = {
VTX(-35, 150, -35, 1792, 512, 0xFF, 0xFF, 0xFF, 0x7E), VTX(-35, 500, -35, 1792, 0, 0xFF, 0xFF, 0xFF, 0x00),
VTX(0, 500, -50, 1536, 0, 0xFF, 0xFF, 0xFF, 0x00), VTX(35, 0, -35, 1280, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(50, 150, 0, 1024, 512, 0xFF, 0xFF, 0xFF, 0x00), VTX(50, 0, 0, 1024, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(35, 150, -35, 1280, 512, 0xFF, 0xFF, 0xFF, 0x7E), VTX(35, 500, -35, 1280, 0, 0xFF, 0xFF, 0xFF, 0x00),
VTX(50, 500, 0, 1024, 0, 0xFF, 0xFF, 0xFF, 0x00), VTX(0, 0, -50, 1536, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(0, 150, -50, 1536, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(-35, 0, -35, 1792, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-50, 0, 0, 2048, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-50, 150, 0, 2048, 512, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-50, 500, 0, 2048, 0, 0xFF, 0xFF, 0xFF, 0x00), VTX(-35, 0, 35, 256, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-35, 150, 35, 256, 512, 0xFF, 0xFF, 0xFF, 0x7E), VTX(-50, 150, 0, 0, 512, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-50, 0, 0, 0, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(-35, 500, 35, 256, 0, 0xFF, 0xFF, 0xFF, 0x00),
VTX(-50, 500, 0, 0, 0, 0xFF, 0xFF, 0xFF, 0x00), VTX(0, 0, 50, 512, 1024, 0xFF, 0xFF, 0xFF, 0x00),
VTX(0, 150, 50, 512, 512, 0xFF, 0xFF, 0xFF, 0xFF), VTX(0, 500, 50, 512, 0, 0xFF, 0xFF, 0xFF, 0x00),
VTX(35, 0, 35, 768, 1024, 0xFF, 0xFF, 0xFF, 0x00), VTX(35, 150, 35, 768, 512, 0xFF, 0xFF, 0xFF, 0x7E),
VTX(35, 500, 35, 768, 0, 0xFF, 0xFF, 0xFF, 0x00),
};
static Gfx cylinderTexDl[] = {
gsDPPipeSync(),
gsDPSetTextureLUT(G_TT_NONE),
gsSPTexture(0xFFFF, 0xFFFF, 0, G_TX_RENDERTILE, G_ON),
gsDPLoadTextureBlock(D_04032490, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 5, 2, 13),
gsDPLoadMultiBlock(D_04032890, 0x100, 1, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_NOMIRROR,
G_TX_NOMIRROR | G_TX_NOMIRROR, 5, 5, 1, 12),
gsDPSetCombineLERP(TEXEL1, TEXEL0, ENV_ALPHA, TEXEL0, TEXEL1, TEXEL0, ENVIRONMENT, TEXEL0, PRIMITIVE, ENVIRONMENT,
COMBINED, ENVIRONMENT, COMBINED, 0, SHADE, 0),
gsDPSetRenderMode(AA_EN | Z_CMP | IM_RD | CLR_ON_CVG | CVG_DST_WRAP | ZMODE_XLU | FORCE_BL |
GBL_c1(G_BL_CLR_IN, G_BL_0, G_BL_CLR_IN, G_BL_1),
G_RM_AA_ZB_XLU_SURF2),
gsSPClearGeometryMode(G_TEXTURE_ENABLE | G_CULL_BACK | G_FOG | G_LIGHTING | G_TEXTURE_GEN | G_TEXTURE_GEN_LINEAR),
gsSPEndDisplayList(),
};
static Gfx cylinderDl[] = {
gsSPVertex(vertices, 27, 0),
gsSP2Triangles(0, 1, 2, 0, 3, 4, 5, 0),
gsSP2Triangles(6, 7, 8, 0, 6, 8, 4, 0),
gsSP2Triangles(9, 10, 6, 0, 9, 6, 3, 0),
gsSP2Triangles(10, 2, 7, 0, 10, 7, 6, 0),
gsSP2Triangles(11, 0, 10, 0, 11, 10, 9, 0),
gsSP2Triangles(3, 6, 4, 0, 0, 2, 10, 0),
gsSP2Triangles(12, 13, 0, 0, 12, 0, 11, 0),
gsSP2Triangles(13, 14, 1, 0, 13, 1, 0, 0),
gsSP2Triangles(15, 16, 17, 0, 15, 17, 18, 0),
gsSP2Triangles(16, 19, 20, 0, 16, 20, 17, 0),
gsSP2Triangles(21, 22, 16, 0, 21, 16, 15, 0),
gsSP2Triangles(22, 23, 19, 0, 22, 19, 16, 0),
gsSP2Triangles(24, 25, 22, 0, 24, 22, 21, 0),
gsSP2Triangles(25, 26, 23, 0, 25, 23, 22, 0),
gsSP2Triangles(5, 4, 25, 0, 5, 25, 24, 0),
gsSP2Triangles(4, 8, 26, 0, 4, 26, 25, 0),
gsSPEndDisplayList(),
};

52
tools/ichaindis.py Normal file
View file

@ -0,0 +1,52 @@
#!/usr/bin/python3
import os
import sys
import struct
import argparse
ICHAIN_MACROS = [
'ICHAIN_U8',
'ICHAIN_S8',
'ICHAIN_U16',
'ICHAIN_S16',
'ICHAIN_U32',
'ICHAIN_S32',
'ICHAIN_F32',
'ICHAIN_F32_DIV1000',
'ICHAIN_VEC3F',
'ICHAIN_VEC3F_DIV1000',
'ICHAIN_VEC3S',
]
def main():
parser = argparse.ArgumentParser(description='Decompiles an InitChain')
parser.add_argument('filename', help='ROM file path')
parser.add_argument('offset', help='ROM offset to an InitChain')
args = parser.parse_args()
romOff = int(args.offset, 16)
try:
with open(args.filename, 'rb') as f:
romData = f.read()
except IOError:
print('failed to read file' + args.filename)
sys.exit(1)
print ('static InitChainEntry initChain[] = {')
while True:
entry = struct.unpack('>I', romData[romOff:romOff+4])[0]
romOff += 4
cont = entry >> 31
t = (entry >> 27) & 0xF
offset = ((entry) >> 16) & 0x7FF
value = (entry) & 0xFFFF
print(' {0}(unk_{1:X}, {2}, {3}),'.format(ICHAIN_MACROS[t], offset, value, ('ICHAIN_CONTINUE' if cont == 1 else 'ICHAIN_STOP')))
if cont == 0:
break
print ('};')
if __name__ == "__main__":
main()

View file

@ -548,3 +548,7 @@ D_060039B0 = 0x060039B0;
// z_oceff_wipe4
D_04032C90 = 0x04032C90;
// z_oceff_storm
D_04032490 = 0x04032490;
D_04032890 = 0x04032890;