1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-05-10 19:13:42 +00:00

Merge branch 'master' into ovl_Demo_Geff

This commit is contained in:
Ethan Roseman 2020-03-19 20:07:08 -04:00
commit 2d00e319fe
93 changed files with 1361 additions and 5148 deletions

View file

@ -286,12 +286,12 @@ glabel func_800C5C2C
/* B3CDF8 800C5C58 3C0F8080 */ lui $t7, %hi(func_80801E44) # $t7, 0x8080
/* B3CDFC 800C5C5C 25EF1E44 */ addiu $t7, %lo(func_80801E44) # addiu $t7, $t7, 0x1e44
/* B3CE00 800C5C60 144F0004 */ bne $v0, $t7, .L800C5C74
/* B3CE04 800C5C64 3C188080 */ lui $t8, %hi(func_80800878) # $t8, 0x8080
/* B3CE04 800C5C64 3C188080 */ lui $t8, %hi(Title_Init) # $t8, 0x8080
/* B3CE08 800C5C68 3C028012 */ lui $v0, %hi(D_8011F860) # $v0, 0x8012
/* B3CE0C 800C5C6C 10000022 */ b .L800C5CF8
/* B3CE10 800C5C70 2442F860 */ addiu $v0, %lo(D_8011F860) # addiu $v0, $v0, -0x7a0
.L800C5C74:
/* B3CE14 800C5C74 27180878 */ addiu $t8, %lo(func_80800878) # addiu $t8, $t8, 0x878
/* B3CE14 800C5C74 27180878 */ addiu $t8, %lo(Title_Init) # addiu $t8, $t8, 0x878
/* B3CE18 800C5C78 14580004 */ bne $v0, $t8, .L800C5C8C
/* B3CE1C 800C5C7C 3C19800C */ lui $t9, %hi(func_800BCA64) # $t9, 0x800c
/* B3CE20 800C5C80 3C028012 */ lui $v0, %hi(D_8011F890) # $v0, 0x8012

View file

@ -1,175 +0,0 @@
.rdata
glabel D_8014B0A0
.asciz "ARENA INFO (0x%08x)\n"
.balign 4
glabel D_8014B0B8
.asciz "Arena is uninitalized\n"
.balign 4
glabel D_8014B0D0
.asciz "Memory Block Region status size\n"
.balign 4
glabel D_8014B0F4
.asciz "%08x-%08x%c %s %08x"
.balign 4
glabel D_8014B108
.asciz "F"
.balign 4
glabel D_8014B10C
.asciz "A"
.balign 4
glabel D_8014B110
.asciz "\n"
.balign 4
glabel D_8014B114
.asciz "%08x Block Invalid\n"
.balign 4
glabel D_8014B128
.asciz "Total Alloc Block Size %08x\n"
.balign 4
glabel D_8014B148
.asciz "Total Free Block Size %08x\n"
.balign 4
glabel D_8014B168
.asciz "Largest Free Block Size %08x\n"
.balign 4
.text
glabel ArenaImpl_FaultClient
/* B7624C 800FF0AC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B76250 800FF0B0 AFB10020 */ sw $s1, 0x20($sp)
/* B76254 800FF0B4 00808825 */ move $s1, $a0
/* B76258 800FF0B8 AFBF003C */ sw $ra, 0x3c($sp)
/* B7625C 800FF0BC 3C048015 */ lui $a0, %hi(D_8014B0A0) # $a0, 0x8015
/* B76260 800FF0C0 AFB70038 */ sw $s7, 0x38($sp)
/* B76264 800FF0C4 AFB60034 */ sw $s6, 0x34($sp)
/* B76268 800FF0C8 AFB50030 */ sw $s5, 0x30($sp)
/* B7626C 800FF0CC AFB4002C */ sw $s4, 0x2c($sp)
/* B76270 800FF0D0 AFB30028 */ sw $s3, 0x28($sp)
/* B76274 800FF0D4 AFB20024 */ sw $s2, 0x24($sp)
/* B76278 800FF0D8 AFB0001C */ sw $s0, 0x1c($sp)
/* B7627C 800FF0DC 2484B0A0 */ addiu $a0, %lo(D_8014B0A0) # addiu $a0, $a0, -0x4f60
/* B76280 800FF0E0 0C035C12 */ jal FaultDrawer_Printf
/* B76284 800FF0E4 02202825 */ move $a1, $s1
/* B76288 800FF0E8 0C03F7D3 */ jal __osMallocIsInitalized
/* B7628C 800FF0EC 02202025 */ move $a0, $s1
/* B76290 800FF0F0 14400007 */ bnez $v0, .L800FF110
/* B76294 800FF0F4 00009825 */ move $s3, $zero
/* B76298 800FF0F8 3C048015 */ lui $a0, %hi(D_8014B0B8) # $a0, 0x8015
/* B7629C 800FF0FC 2484B0B8 */ addiu $a0, %lo(D_8014B0B8) # addiu $a0, $a0, -0x4f48
/* B762A0 800FF100 0C035C12 */ jal FaultDrawer_Printf
/* B762A4 800FF104 02202825 */ move $a1, $s1
/* B762A8 800FF108 10000053 */ b .L800FF258
/* B762AC 800FF10C 8FBF003C */ lw $ra, 0x3c($sp)
.L800FF110:
/* B762B0 800FF110 3C048015 */ lui $a0, %hi(D_8014B0D0) # $a0, 0x8015
/* B762B4 800FF114 0000A025 */ move $s4, $zero
/* B762B8 800FF118 00009025 */ move $s2, $zero
/* B762BC 800FF11C 0C035C12 */ jal FaultDrawer_Printf
/* B762C0 800FF120 2484B0D0 */ addiu $a0, %lo(D_8014B0D0) # addiu $a0, $a0, -0x4f30
/* B762C4 800FF124 8E300000 */ lw $s0, ($s1)
/* B762C8 800FF128 3C178015 */ lui $s7, %hi(D_8014B10C) # $s7, 0x8015
/* B762CC 800FF12C 26F7B10C */ addiu $s7, %lo(D_8014B10C) # addiu $s7, $s7, -0x4ef4
/* B762D0 800FF130 1200003A */ beqz $s0, .L800FF21C
/* B762D4 800FF134 3C168015 */ lui $s6, %hi(D_8014B108) # $s6, 0x8015
/* B762D8 800FF138 26D6B108 */ addiu $s6, %lo(D_8014B108) # addiu $s6, $s6, -0x4ef8
/* B762DC 800FF13C 24157373 */ li $s5, 29555
.L800FF140:
/* B762E0 800FF140 1200002E */ beqz $s0, .L800FF1FC
/* B762E4 800FF144 3404F801 */ li $a0, 63489
/* B762E8 800FF148 860E0000 */ lh $t6, ($s0)
/* B762EC 800FF14C 02002825 */ move $a1, $s0
/* B762F0 800FF150 16AE002A */ bne $s5, $t6, .L800FF1FC
/* B762F4 800FF154 00000000 */ nop
/* B762F8 800FF158 8E110008 */ lw $s1, 8($s0)
/* B762FC 800FF15C 3C048015 */ lui $a0, %hi(D_8014B0F4) # $a0, 0x8015
/* B76300 800FF160 02E01825 */ move $v1, $s7
/* B76304 800FF164 56200004 */ bnezl $s1, .L800FF178
/* B76308 800FF168 8E2F000C */ lw $t7, 0xc($s1)
/* B7630C 800FF16C 10000008 */ b .L800FF190
/* B76310 800FF170 24070024 */ li $a3, 36
/* B76314 800FF174 8E2F000C */ lw $t7, 0xc($s1)
.L800FF178:
/* B76318 800FF178 24020020 */ li $v0, 32
/* B7631C 800FF17C 120F0003 */ beq $s0, $t7, .L800FF18C
/* B76320 800FF180 00000000 */ nop
/* B76324 800FF184 10000001 */ b .L800FF18C
/* B76328 800FF188 24020021 */ li $v0, 33
.L800FF18C:
/* B7632C 800FF18C 00403825 */ move $a3, $v0
.L800FF190:
/* B76330 800FF190 86180002 */ lh $t8, 2($s0)
/* B76334 800FF194 13000003 */ beqz $t8, .L800FF1A4
/* B76338 800FF198 00000000 */ nop
/* B7633C 800FF19C 10000001 */ b .L800FF1A4
/* B76340 800FF1A0 02C01825 */ move $v1, $s6
.L800FF1A4:
/* B76344 800FF1A4 8E020004 */ lw $v0, 4($s0)
/* B76348 800FF1A8 AFA30010 */ sw $v1, 0x10($sp)
/* B7634C 800FF1AC 2484B0F4 */ addiu $a0, %lo(D_8014B0F4) # addiu $a0, $a0, -0x4f0c
/* B76350 800FF1B0 02023021 */ addu $a2, $s0, $v0
/* B76354 800FF1B4 24C60030 */ addiu $a2, $a2, 0x30
/* B76358 800FF1B8 0C035C12 */ jal FaultDrawer_Printf
/* B7635C 800FF1BC AFA20014 */ sw $v0, 0x14($sp)
/* B76360 800FF1C0 3C048015 */ lui $a0, %hi(D_8014B110) # $a0, 0x8015
/* B76364 800FF1C4 0C035C12 */ jal FaultDrawer_Printf
/* B76368 800FF1C8 2484B110 */ addiu $a0, %lo(D_8014B110) # addiu $a0, $a0, -0x4ef0
/* B7636C 800FF1CC 86190002 */ lh $t9, 2($s0)
/* B76370 800FF1D0 53200008 */ beql $t9, $zero, .L800FF1F4
/* B76374 800FF1D4 8E080004 */ lw $t0, 4($s0)
/* B76378 800FF1D8 8E020004 */ lw $v0, 4($s0)
/* B7637C 800FF1DC 0262082B */ sltu $at, $s3, $v0
/* B76380 800FF1E0 1020000C */ beqz $at, .L800FF214
/* B76384 800FF1E4 0282A021 */ addu $s4, $s4, $v0
/* B76388 800FF1E8 1000000A */ b .L800FF214
/* B7638C 800FF1EC 00409825 */ move $s3, $v0
/* B76390 800FF1F0 8E080004 */ lw $t0, 4($s0)
.L800FF1F4:
/* B76394 800FF1F4 10000007 */ b .L800FF214
/* B76398 800FF1F8 02489021 */ addu $s2, $s2, $t0
.L800FF1FC:
/* B7639C 800FF1FC 0C035AFB */ jal FaultDrawer_SetFontColor
/* B763A0 800FF200 00008825 */ move $s1, $zero
/* B763A4 800FF204 3C048015 */ lui $a0, %hi(D_8014B114) # $a0, 0x8015
/* B763A8 800FF208 2484B114 */ addiu $a0, %lo(D_8014B114) # addiu $a0, $a0, -0x4eec
/* B763AC 800FF20C 0C035C12 */ jal FaultDrawer_Printf
/* B763B0 800FF210 02002825 */ move $a1, $s0
.L800FF214:
/* B763B4 800FF214 1620FFCA */ bnez $s1, .L800FF140
/* B763B8 800FF218 02208025 */ move $s0, $s1
.L800FF21C:
/* B763BC 800FF21C 0C035AFB */ jal FaultDrawer_SetFontColor
/* B763C0 800FF220 240407F1 */ li $a0, 2033
/* B763C4 800FF224 3C048015 */ lui $a0, %hi(D_8014B128) # $a0, 0x8015
/* B763C8 800FF228 2484B128 */ addiu $a0, %lo(D_8014B128) # addiu $a0, $a0, -0x4ed8
/* B763CC 800FF22C 0C035C12 */ jal FaultDrawer_Printf
/* B763D0 800FF230 02402825 */ move $a1, $s2
/* B763D4 800FF234 3C048015 */ lui $a0, %hi(D_8014B148) # $a0, 0x8015
/* B763D8 800FF238 2484B148 */ addiu $a0, %lo(D_8014B148) # addiu $a0, $a0, -0x4eb8
/* B763DC 800FF23C 0C035C12 */ jal FaultDrawer_Printf
/* B763E0 800FF240 02802825 */ move $a1, $s4
/* B763E4 800FF244 3C048015 */ lui $a0, %hi(D_8014B168) # $a0, 0x8015
/* B763E8 800FF248 2484B168 */ addiu $a0, %lo(D_8014B168) # addiu $a0, $a0, -0x4e98
/* B763EC 800FF24C 0C035C12 */ jal FaultDrawer_Printf
/* B763F0 800FF250 02602825 */ move $a1, $s3
/* B763F4 800FF254 8FBF003C */ lw $ra, 0x3c($sp)
.L800FF258:
/* B763F8 800FF258 8FB0001C */ lw $s0, 0x1c($sp)
/* B763FC 800FF25C 8FB10020 */ lw $s1, 0x20($sp)
/* B76400 800FF260 8FB20024 */ lw $s2, 0x24($sp)
/* B76404 800FF264 8FB30028 */ lw $s3, 0x28($sp)
/* B76408 800FF268 8FB4002C */ lw $s4, 0x2c($sp)
/* B7640C 800FF26C 8FB50030 */ lw $s5, 0x30($sp)
/* B76410 800FF270 8FB60034 */ lw $s6, 0x34($sp)
/* B76414 800FF274 8FB70038 */ lw $s7, 0x38($sp)
/* B76418 800FF278 03E00008 */ jr $ra
/* B7641C 800FF27C 27BD0040 */ addiu $sp, $sp, 0x40

View file

@ -1,208 +0,0 @@
.rdata
glabel D_8014AF48
.asciz "\n" #Arena is not initalized
.balign 4
glabel D_8014AF68
.asciz " (0x%08x)\n" #Arena contents
.balign 4
glabel D_8014AF84
.asciz " status [ s ms us ns: TID:src:]\n" #Memory block range status size [time s ms us ns: TID: src: line]
.balign 4
glabel D_8014AFC8
.asciz "%08x-%08x%c %s %08x"
.balign 4
glabel D_8014AFDC
.asciz "" #Free
.balign 4
glabel D_8014AFE4
.asciz "" #Secure
.balign 4
glabel D_8014AFEC
.asciz " [%016llu:%2d:%s:%d]"
.balign 4
glabel D_8014B004
.asciz "**NULL**"
.balign 4
glabel D_8014B010
.asciz "\n"
.balign 4
glabel D_8014B014
.asciz "%08x Block Invalid\n"
.balign 4
glabel D_8014B028
.asciz " 0x%08x \n" #Total reserved block size 0x% 08x bytes
.balign 4
glabel D_8014B050
.asciz " 0x%08x \n" #Total free block size 0x% 08x bytes
.balign 4
glabel D_8014B078
.asciz " 0x%08x \n" #Maximum free block size 0x% 08x bytes
.balign 4
.text
glabel __osDisplayArena
/* B76020 800FEE80 27BDFF98 */ addiu $sp, $sp, -0x68
/* B76024 800FEE84 AFBF003C */ sw $ra, 0x3c($sp)
/* B76028 800FEE88 AFB40038 */ sw $s4, 0x38($sp)
/* B7602C 800FEE8C AFB30034 */ sw $s3, 0x34($sp)
/* B76030 800FEE90 AFB20030 */ sw $s2, 0x30($sp)
/* B76034 800FEE94 AFB1002C */ sw $s1, 0x2c($sp)
/* B76038 800FEE98 AFB00028 */ sw $s0, 0x28($sp)
/* B7603C 800FEE9C 0C03F7D3 */ jal __osMallocIsInitalized
/* B76040 800FEEA0 AFA40068 */ sw $a0, 0x68($sp)
/* B76044 800FEEA4 14400005 */ bnez $v0, .L800FEEBC
/* B76048 800FEEA8 3C048015 */ lui $a0, %hi(D_8014AF48) # $a0, 0x8015
/* B7604C 800FEEAC 0C00084C */ jal osSyncPrintf
/* B76050 800FEEB0 2484AF48 */ addiu $a0, %lo(D_8014AF48) # addiu $a0, $a0, -0x50b8
/* B76054 800FEEB4 10000076 */ b .L800FF090
/* B76058 800FEEB8 8FBF003C */ lw $ra, 0x3c($sp)
.L800FEEBC:
/* B7605C 800FEEBC 0C03F70F */ jal ArenaImpl_Lock
/* B76060 800FEEC0 8FA40068 */ lw $a0, 0x68($sp)
/* B76064 800FEEC4 3C048015 */ lui $a0, %hi(D_8014AF68) # $a0, 0x8015
/* B76068 800FEEC8 0000A025 */ move $s4, $zero
/* B7606C 800FEECC 00009025 */ move $s2, $zero
/* B76070 800FEED0 00009825 */ move $s3, $zero
/* B76074 800FEED4 2484AF68 */ addiu $a0, %lo(D_8014AF68) # addiu $a0, $a0, -0x5098
/* B76078 800FEED8 0C00084C */ jal osSyncPrintf
/* B7607C 800FEEDC 8FA50068 */ lw $a1, 0x68($sp)
/* B76080 800FEEE0 3C048015 */ lui $a0, %hi(D_8014AF84) # $a0, 0x8015
/* B76084 800FEEE4 0C00084C */ jal osSyncPrintf
/* B76088 800FEEE8 2484AF84 */ addiu $a0, %lo(D_8014AF84) # addiu $a0, $a0, -0x507c
/* B7608C 800FEEEC 8FAE0068 */ lw $t6, 0x68($sp)
/* B76090 800FEEF0 8DD00000 */ lw $s0, ($t6)
/* B76094 800FEEF4 12000057 */ beqz $s0, .L800FF054
/* B76098 800FEEF8 00000000 */ nop
.L800FEEFC:
/* B7609C 800FEEFC 1200004F */ beqz $s0, .L800FF03C
/* B760A0 800FEF00 3C048015 */ lui $a0, %hi(D_8014B014)
/* B760A4 800FEF04 860F0000 */ lh $t7, ($s0)
/* B760A8 800FEF08 24017373 */ li $at, 29555
/* B760AC 800FEF0C 02002825 */ move $a1, $s0
/* B760B0 800FEF10 15E1004A */ bne $t7, $at, .L800FF03C
/* B760B4 800FEF14 00000000 */ nop
/* B760B8 800FEF18 8E110008 */ lw $s1, 8($s0)
/* B760BC 800FEF1C 3C038015 */ lui $v1, %hi(D_8014AFE4) # $v1, 0x8015
/* B760C0 800FEF20 2463AFE4 */ addiu $v1, %lo(D_8014AFE4) # addiu $v1, $v1, -0x501c
/* B760C4 800FEF24 16200003 */ bnez $s1, .L800FEF34
/* B760C8 800FEF28 3C048015 */ lui $a0, %hi(D_8014AFC8) # $a0, 0x8015
/* B760CC 800FEF2C 10000008 */ b .L800FEF50
/* B760D0 800FEF30 24070024 */ li $a3, 36
.L800FEF34:
/* B760D4 800FEF34 8E38000C */ lw $t8, 0xc($s1)
/* B760D8 800FEF38 24020020 */ li $v0, 32
/* B760DC 800FEF3C 12180003 */ beq $s0, $t8, .L800FEF4C
/* B760E0 800FEF40 00000000 */ nop
/* B760E4 800FEF44 10000001 */ b .L800FEF4C
/* B760E8 800FEF48 24020021 */ li $v0, 33
.L800FEF4C:
/* B760EC 800FEF4C 00403825 */ move $a3, $v0
.L800FEF50:
/* B760F0 800FEF50 86190002 */ lh $t9, 2($s0)
/* B760F4 800FEF54 13200004 */ beqz $t9, .L800FEF68
/* B760F8 800FEF58 00000000 */ nop
/* B760FC 800FEF5C 3C038015 */ lui $v1, %hi(D_8014AFDC) # $v1, 0x8015
/* B76100 800FEF60 10000001 */ b .L800FEF68
/* B76104 800FEF64 2463AFDC */ addiu $v1, %lo(D_8014AFDC) # addiu $v1, $v1, -0x5024
.L800FEF68:
/* B76108 800FEF68 8E020004 */ lw $v0, 4($s0)
/* B7610C 800FEF6C AFA30010 */ sw $v1, 0x10($sp)
/* B76110 800FEF70 2484AFC8 */ addiu $a0, %lo(D_8014AFC8) # addiu $a0, $a0, -0x5038
/* B76114 800FEF74 02023021 */ addu $a2, $s0, $v0
/* B76118 800FEF78 24C60030 */ addiu $a2, $a2, 0x30
/* B7611C 800FEF7C 0C00084C */ jal osSyncPrintf
/* B76120 800FEF80 AFA20014 */ sw $v0, 0x14($sp)
/* B76124 800FEF84 86080002 */ lh $t0, 2($s0)
/* B76128 800FEF88 24060000 */ li $a2, 0
/* B7612C 800FEF8C 24070040 */ li $a3, 64
/* B76130 800FEF90 1500001B */ bnez $t0, .L800FF000
/* B76134 800FEF94 00000000 */ nop
/* B76138 800FEF98 8E040020 */ lw $a0, 0x20($s0)
/* B7613C 800FEF9C 0C000E1E */ jal __ll_mul
/* B76140 800FEFA0 8E050024 */ lw $a1, 0x24($s0)
/* B76144 800FEFA4 00402025 */ move $a0, $v0
/* B76148 800FEFA8 00602825 */ move $a1, $v1
/* B7614C 800FEFAC 24060000 */ li $a2, 0
/* B76150 800FEFB0 0C000DDE */ jal __ull_div
/* B76154 800FEFB4 24070003 */ li $a3, 3
/* B76158 800FEFB8 AFA20040 */ sw $v0, 0x40($sp)
/* B7615C 800FEFBC AFA30044 */ sw $v1, 0x44($sp)
/* B76160 800FEFC0 8E040010 */ lw $a0, 0x10($s0)
/* B76164 800FEFC4 8FA70044 */ lw $a3, 0x44($sp)
/* B76168 800FEFC8 3C038015 */ lui $v1, %hi(D_8014B004) # $v1, 0x8015
/* B7616C 800FEFCC 10800003 */ beqz $a0, .L800FEFDC
/* B76170 800FEFD0 8FA60040 */ lw $a2, 0x40($sp)
/* B76174 800FEFD4 10000002 */ b .L800FEFE0
/* B76178 800FEFD8 00801825 */ move $v1, $a0
.L800FEFDC:
/* B7617C 800FEFDC 2463B004 */ addiu $v1, %lo(D_8014B004) # addiu $v1, $v1, -0x4ffc
.L800FEFE0:
/* B76180 800FEFE0 8E090018 */ lw $t1, 0x18($s0)
/* B76184 800FEFE4 AFA30014 */ sw $v1, 0x14($sp)
/* B76188 800FEFE8 3C048015 */ lui $a0, %hi(D_8014AFEC) # $a0, 0x8015
/* B7618C 800FEFEC AFA90010 */ sw $t1, 0x10($sp)
/* B76190 800FEFF0 8E0A0014 */ lw $t2, 0x14($s0)
/* B76194 800FEFF4 2484AFEC */ addiu $a0, %lo(D_8014AFEC) # addiu $a0, $a0, -0x5014
/* B76198 800FEFF8 0C00084C */ jal osSyncPrintf
/* B7619C 800FEFFC AFAA0018 */ sw $t2, 0x18($sp)
.L800FF000:
/* B761A0 800FF000 3C048015 */ lui $a0, %hi(D_8014B010) # $a0, 0x8015
/* B761A4 800FF004 0C00084C */ jal osSyncPrintf
/* B761A8 800FF008 2484B010 */ addiu $a0, %lo(D_8014B010) # addiu $a0, $a0, -0x4ff0
/* B761AC 800FF00C 860B0002 */ lh $t3, 2($s0)
/* B761B0 800FF010 51600008 */ beql $t3, $zero, .L800FF034
/* B761B4 800FF014 8E0C0004 */ lw $t4, 4($s0)
/* B761B8 800FF018 8E020004 */ lw $v0, 4($s0)
/* B761BC 800FF01C 0282082B */ sltu $at, $s4, $v0
/* B761C0 800FF020 1020000A */ beqz $at, .L800FF04C
/* B761C4 800FF024 02429021 */ addu $s2, $s2, $v0
/* B761C8 800FF028 10000008 */ b .L800FF04C
/* B761CC 800FF02C 0040A025 */ move $s4, $v0
/* B761D0 800FF030 8E0C0004 */ lw $t4, 4($s0)
.L800FF034:
/* B761D4 800FF034 10000005 */ b .L800FF04C
/* B761D8 800FF038 026C9821 */ addu $s3, $s3, $t4
.L800FF03C:
/* B761DC 800FF03C 2484B014 */ addiu $a0, %lo(D_8014B014)
/* B761E0 800FF040 02002825 */ move $a1, $s0
/* B761E4 800FF044 0C00084C */ jal osSyncPrintf
/* B761E8 800FF048 00008825 */ move $s1, $zero
.L800FF04C:
/* B761EC 800FF04C 1620FFAB */ bnez $s1, .L800FEEFC
/* B761F0 800FF050 02208025 */ move $s0, $s1
.L800FF054:
/* B761F4 800FF054 3C048015 */ lui $a0, %hi(D_8014B028) # $a0, 0x8015
/* B761F8 800FF058 2484B028 */ addiu $a0, %lo(D_8014B028) # addiu $a0, $a0, -0x4fd8
/* B761FC 800FF05C 0C00084C */ jal osSyncPrintf
/* B76200 800FF060 02602825 */ move $a1, $s3
/* B76204 800FF064 3C048015 */ lui $a0, %hi(D_8014B050) # $a0, 0x8015
/* B76208 800FF068 2484B050 */ addiu $a0, %lo(D_8014B050) # addiu $a0, $a0, -0x4fb0
/* B7620C 800FF06C 0C00084C */ jal osSyncPrintf
/* B76210 800FF070 02402825 */ move $a1, $s2
/* B76214 800FF074 3C048015 */ lui $a0, %hi(D_8014B078) # $a0, 0x8015
/* B76218 800FF078 2484B078 */ addiu $a0, %lo(D_8014B078) # addiu $a0, $a0, -0x4f88
/* B7621C 800FF07C 0C00084C */ jal osSyncPrintf
/* B76220 800FF080 02802825 */ move $a1, $s4
/* B76224 800FF084 0C03F719 */ jal ArenaImpl_Unlock
/* B76228 800FF088 8FA40068 */ lw $a0, 0x68($sp)
/* B7622C 800FF08C 8FBF003C */ lw $ra, 0x3c($sp)
.L800FF090:
/* B76230 800FF090 8FB00028 */ lw $s0, 0x28($sp)
/* B76234 800FF094 8FB1002C */ lw $s1, 0x2c($sp)
/* B76238 800FF098 8FB20030 */ lw $s2, 0x30($sp)
/* B7623C 800FF09C 8FB30034 */ lw $s3, 0x34($sp)
/* B76240 800FF0A0 8FB40038 */ lw $s4, 0x38($sp)
/* B76244 800FF0A4 03E00008 */ jr $ra
/* B76248 800FF0A8 27BD0068 */ addiu $sp, $sp, 0x68

View file

@ -1,155 +0,0 @@
.rdata
glabel D_8014ACBC
.asciz "\x1b[41;37m__osFree:不正解放(%08x)\n\x1b[m" #Unauthorized release
.balign 4
glabel D_8014ACE0
.asciz "\x1b[41;37m__osFree:二重解放(%08x)\n\x1b[m" #Double release
.balign 4
glabel D_8014AD04
.asciz "\x1b[41;37m__osFree:確保時と違う方法で解放しようとした (%08x:%08x)\n\x1b[m" #Tried to release in a different way than when it was secured
.balign 4
.text
glabel __osFree_NoLock
/* B75784 800FE5E4 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B75788 800FE5E8 AFBF001C */ sw $ra, 0x1c($sp)
/* B7578C 800FE5EC AFB10018 */ sw $s1, 0x18($sp)
/* B75790 800FE5F0 AFB00014 */ sw $s0, 0x14($sp)
/* B75794 800FE5F4 10A00076 */ beqz $a1, .L800FE7D0
/* B75798 800FE5F8 00803825 */ move $a3, $a0
/* B7579C 800FE5FC 24B0FFD0 */ addiu $s0, $a1, -0x30
/* B757A0 800FE600 12000005 */ beqz $s0, .L800FE618
/* B757A4 800FE604 3C048015 */ lui $a0, %hi(D_8014ACBC) # $a0, 0x8015
/* B757A8 800FE608 860E0000 */ lh $t6, ($s0)
/* B757AC 800FE60C 24017373 */ li $at, 29555
/* B757B0 800FE610 51C10006 */ beql $t6, $at, .L800FE62C
/* B757B4 800FE614 860F0002 */ lh $t7, 2($s0)
.L800FE618:
/* B757B8 800FE618 0C00084C */ jal osSyncPrintf
/* B757BC 800FE61C 2484ACBC */ addiu $a0, %lo(D_8014ACBC) # addiu $a0, $a0, -0x5344
/* B757C0 800FE620 1000006C */ b .L800FE7D4
/* B757C4 800FE624 8FBF001C */ lw $ra, 0x1c($sp)
/* B757C8 800FE628 860F0002 */ lh $t7, 2($s0)
.L800FE62C:
/* B757CC 800FE62C 3C048015 */ lui $a0, %hi(D_8014ACE0) # $a0, 0x8015
/* B757D0 800FE630 51E00006 */ beql $t7, $zero, .L800FE64C
/* B757D4 800FE634 8E06001C */ lw $a2, 0x1c($s0)
/* B757D8 800FE638 0C00084C */ jal osSyncPrintf
/* B757DC 800FE63C 2484ACE0 */ addiu $a0, %lo(D_8014ACE0) # addiu $a0, $a0, -0x5320
/* B757E0 800FE640 10000064 */ b .L800FE7D4
/* B757E4 800FE644 8FBF001C */ lw $ra, 0x1c($sp)
/* B757E8 800FE648 8E06001C */ lw $a2, 0x1c($s0)
.L800FE64C:
/* B757EC 800FE64C 02002025 */ move $a0, $s0
/* B757F0 800FE650 10E60008 */ beq $a3, $a2, .L800FE674
/* B757F4 800FE654 00000000 */ nop
/* B757F8 800FE658 10E00006 */ beqz $a3, .L800FE674
/* B757FC 800FE65C 00E02825 */ move $a1, $a3
/* B75800 800FE660 3C048015 */ lui $a0, %hi(D_8014AD04) # $a0, 0x8015
/* B75804 800FE664 0C00084C */ jal osSyncPrintf
/* B75808 800FE668 2484AD04 */ addiu $a0, %lo(D_8014AD04) # addiu $a0, $a0, -0x52fc
/* B7580C 800FE66C 10000059 */ b .L800FE7D4
/* B75810 800FE670 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE674:
/* B75814 800FE674 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75818 800FE678 AFA70030 */ sw $a3, 0x30($sp)
/* B7581C 800FE67C 00408825 */ move $s1, $v0
/* B75820 800FE680 0C03F739 */ jal ArenaImpl_GetPrevBlock
/* B75824 800FE684 02002025 */ move $a0, $s0
/* B75828 800FE688 24180001 */ li $t8, 1
/* B7582C 800FE68C A6180002 */ sh $t8, 2($s0)
/* B75830 800FE690 AFA20024 */ sw $v0, 0x24($sp)
/* B75834 800FE694 8FA70030 */ lw $a3, 0x30($sp)
/* B75838 800FE698 02002025 */ move $a0, $s0
/* B7583C 800FE69C 00002825 */ move $a1, $zero
/* B75840 800FE6A0 0C03F6F0 */ jal ArenaImpl_SetDebugInfo
/* B75844 800FE6A4 00003025 */ move $a2, $zero
/* B75848 800FE6A8 8FB90030 */ lw $t9, 0x30($sp)
/* B7584C 800FE6AC 8FA30024 */ lw $v1, 0x24($sp)
/* B75850 800FE6B0 26040030 */ addiu $a0, $s0, 0x30
/* B75854 800FE6B4 93280022 */ lbu $t0, 0x22($t9)
/* B75858 800FE6B8 240500EF */ li $a1, 239
/* B7585C 800FE6BC 31090002 */ andi $t1, $t0, 2
/* B75860 800FE6C0 51200006 */ beql $t1, $zero, .L800FE6DC
/* B75864 800FE6C4 8E0A0004 */ lw $t2, 4($s0)
/* B75868 800FE6C8 8E060004 */ lw $a2, 4($s0)
/* B7586C 800FE6CC 0C041A18 */ jal func_80106860
/* B75870 800FE6D0 AFA30024 */ sw $v1, 0x24($sp)
/* B75874 800FE6D4 8FA30024 */ lw $v1, 0x24($sp)
/* B75878 800FE6D8 8E0A0004 */ lw $t2, 4($s0)
.L800FE6DC:
/* B7587C 800FE6DC 020A5821 */ addu $t3, $s0, $t2
/* B75880 800FE6E0 256C0030 */ addiu $t4, $t3, 0x30
/* B75884 800FE6E4 162C001F */ bne $s1, $t4, .L800FE764
/* B75888 800FE6E8 00000000 */ nop
/* B7588C 800FE6EC 862D0002 */ lh $t5, 2($s1)
/* B75890 800FE6F0 02202025 */ move $a0, $s1
/* B75894 800FE6F4 11A0001B */ beqz $t5, .L800FE764
/* B75898 800FE6F8 00000000 */ nop
/* B7589C 800FE6FC 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B758A0 800FE700 AFA30024 */ sw $v1, 0x24($sp)
/* B758A4 800FE704 8FA30024 */ lw $v1, 0x24($sp)
/* B758A8 800FE708 10400002 */ beqz $v0, .L800FE714
/* B758AC 800FE70C 00403825 */ move $a3, $v0
/* B758B0 800FE710 AC50000C */ sw $s0, 0xc($v0)
.L800FE714:
/* B758B4 800FE714 8E0E0004 */ lw $t6, 4($s0)
/* B758B8 800FE718 8E2F0004 */ lw $t7, 4($s1)
/* B758BC 800FE71C 02202025 */ move $a0, $s1
/* B758C0 800FE720 240500EF */ li $a1, 239
/* B758C4 800FE724 01CFC021 */ addu $t8, $t6, $t7
/* B758C8 800FE728 27190030 */ addiu $t9, $t8, 0x30
/* B758CC 800FE72C AE190004 */ sw $t9, 4($s0)
/* B758D0 800FE730 8FA80030 */ lw $t0, 0x30($sp)
/* B758D4 800FE734 24060030 */ li $a2, 48
/* B758D8 800FE738 91090022 */ lbu $t1, 0x22($t0)
/* B758DC 800FE73C 312A0002 */ andi $t2, $t1, 2
/* B758E0 800FE740 51400007 */ beql $t2, $zero, .L800FE760
/* B758E4 800FE744 AE070008 */ sw $a3, 8($s0)
/* B758E8 800FE748 AFA30024 */ sw $v1, 0x24($sp)
/* B758EC 800FE74C 0C041A18 */ jal func_80106860
/* B758F0 800FE750 AFA70020 */ sw $a3, 0x20($sp)
/* B758F4 800FE754 8FA30024 */ lw $v1, 0x24($sp)
/* B758F8 800FE758 8FA70020 */ lw $a3, 0x20($sp)
/* B758FC 800FE75C AE070008 */ sw $a3, 8($s0)
.L800FE760:
/* B75900 800FE760 00E08825 */ move $s1, $a3
.L800FE764:
/* B75904 800FE764 5060001B */ beql $v1, $zero, .L800FE7D4
/* B75908 800FE768 8FBF001C */ lw $ra, 0x1c($sp)
/* B7590C 800FE76C 846B0002 */ lh $t3, 2($v1)
/* B75910 800FE770 51600018 */ beql $t3, $zero, .L800FE7D4
/* B75914 800FE774 8FBF001C */ lw $ra, 0x1c($sp)
/* B75918 800FE778 8C620004 */ lw $v0, 4($v1)
/* B7591C 800FE77C 00626021 */ addu $t4, $v1, $v0
/* B75920 800FE780 258D0030 */ addiu $t5, $t4, 0x30
/* B75924 800FE784 560D0013 */ bnel $s0, $t5, .L800FE7D4
/* B75928 800FE788 8FBF001C */ lw $ra, 0x1c($sp)
/* B7592C 800FE78C 12200003 */ beqz $s1, .L800FE79C
/* B75930 800FE790 02002025 */ move $a0, $s0
/* B75934 800FE794 AE23000C */ sw $v1, 0xc($s1)
/* B75938 800FE798 8C620004 */ lw $v0, 4($v1)
.L800FE79C:
/* B7593C 800FE79C AC710008 */ sw $s1, 8($v1)
/* B75940 800FE7A0 8E0E0004 */ lw $t6, 4($s0)
/* B75944 800FE7A4 240500EF */ li $a1, 239
/* B75948 800FE7A8 004E7821 */ addu $t7, $v0, $t6
/* B7594C 800FE7AC 25F80030 */ addiu $t8, $t7, 0x30
/* B75950 800FE7B0 AC780004 */ sw $t8, 4($v1)
/* B75954 800FE7B4 8FB90030 */ lw $t9, 0x30($sp)
/* B75958 800FE7B8 93280022 */ lbu $t0, 0x22($t9)
/* B7595C 800FE7BC 31090002 */ andi $t1, $t0, 2
/* B75960 800FE7C0 51200004 */ beql $t1, $zero, .L800FE7D4
/* B75964 800FE7C4 8FBF001C */ lw $ra, 0x1c($sp)
/* B75968 800FE7C8 0C041A18 */ jal func_80106860
/* B7596C 800FE7CC 24060030 */ li $a2, 48
.L800FE7D0:
/* B75970 800FE7D0 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE7D4:
/* B75974 800FE7D4 8FB00014 */ lw $s0, 0x14($sp)
/* B75978 800FE7D8 8FB10018 */ lw $s1, 0x18($sp)
/* B7597C 800FE7DC 03E00008 */ jr $ra
/* B75980 800FE7E0 27BD0030 */ addiu $sp, $sp, 0x30

View file

@ -1,159 +0,0 @@
.rdata
glabel D_8014AD48
.asciz "\x1b[41;37m__osFree:不正解放(%08x) [%s:%d ]\n\x1b[m" #Unauthorized release
.balign 4
glabel D_8014AD78
.asciz "\x1b[41;37m__osFree:二重解放(%08x) [%s:%d ]\n\x1b[m" #Double release
.balign 4
glabel D_8014ADA8
.asciz "\x1b[41;37m__osFree:確保時と違う方法で解放しようとした (%08x:%08x)\n\x1b[m" #Tried to release in a different way than when it was secured
.balign 4
.text
glabel __osFree_NoLockDebug
/* B759BC 800FE81C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* B759C0 800FE820 AFB10018 */ sw $s1, 0x18($sp)
/* B759C4 800FE824 00808825 */ move $s1, $a0
/* B759C8 800FE828 AFBF001C */ sw $ra, 0x1c($sp)
/* B759CC 800FE82C AFB00014 */ sw $s0, 0x14($sp)
/* B759D0 800FE830 10A00078 */ beqz $a1, .L800FEA14
/* B759D4 800FE834 AFA60038 */ sw $a2, 0x38($sp)
/* B759D8 800FE838 24B0FFD0 */ addiu $s0, $a1, -0x30
/* B759DC 800FE83C 12000004 */ beqz $s0, .L800FE850
/* B759E0 800FE840 3C048015 */ lui $a0, %hi(D_8014AD48) # $a0, 0x8015
/* B759E4 800FE844 860E0000 */ lh $t6, ($s0)
/* B759E8 800FE848 24017373 */ li $at, 29555
/* B759EC 800FE84C 11C10005 */ beq $t6, $at, .L800FE864
.L800FE850:
/* B759F0 800FE850 2484AD48 */ addiu $a0, %lo(D_8014AD48) # addiu $a0, $a0, -0x52b8
/* B759F4 800FE854 0C00084C */ jal osSyncPrintf
/* B759F8 800FE858 8FA60038 */ lw $a2, 0x38($sp)
/* B759FC 800FE85C 1000006E */ b .L800FEA18
/* B75A00 800FE860 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE864:
/* B75A04 800FE864 860F0002 */ lh $t7, 2($s0)
/* B75A08 800FE868 3C048015 */ lui $a0, %hi(D_8014AD78) # $a0, 0x8015
/* B75A0C 800FE86C 2484AD78 */ addiu $a0, %lo(D_8014AD78) # addiu $a0, $a0, -0x5288
/* B75A10 800FE870 51E00006 */ beql $t7, $zero, .L800FE88C
/* B75A14 800FE874 8E06001C */ lw $a2, 0x1c($s0)
/* B75A18 800FE878 0C00084C */ jal osSyncPrintf
/* B75A1C 800FE87C 8FA60038 */ lw $a2, 0x38($sp)
/* B75A20 800FE880 10000065 */ b .L800FEA18
/* B75A24 800FE884 8FBF001C */ lw $ra, 0x1c($sp)
/* B75A28 800FE888 8E06001C */ lw $a2, 0x1c($s0)
.L800FE88C:
/* B75A2C 800FE88C 02002025 */ move $a0, $s0
/* B75A30 800FE890 52260009 */ beql $s1, $a2, .L800FE8B8
/* B75A34 800FE894 AFA7003C */ sw $a3, 0x3c($sp)
/* B75A38 800FE898 12200006 */ beqz $s1, .L800FE8B4
/* B75A3C 800FE89C 02202825 */ move $a1, $s1
/* B75A40 800FE8A0 3C048015 */ lui $a0, %hi(D_8014ADA8) # $a0, 0x8015
/* B75A44 800FE8A4 0C00084C */ jal osSyncPrintf
/* B75A48 800FE8A8 2484ADA8 */ addiu $a0, %lo(D_8014ADA8) # addiu $a0, $a0, -0x5258
/* B75A4C 800FE8AC 1000005A */ b .L800FEA18
/* B75A50 800FE8B0 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE8B4:
/* B75A54 800FE8B4 AFA7003C */ sw $a3, 0x3c($sp)
.L800FE8B8:
/* B75A58 800FE8B8 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75A5C 800FE8BC AFB10030 */ sw $s1, 0x30($sp)
/* B75A60 800FE8C0 00408825 */ move $s1, $v0
/* B75A64 800FE8C4 0C03F739 */ jal ArenaImpl_GetPrevBlock
/* B75A68 800FE8C8 02002025 */ move $a0, $s0
/* B75A6C 800FE8CC 24180001 */ li $t8, 1
/* B75A70 800FE8D0 A6180002 */ sh $t8, 2($s0)
/* B75A74 800FE8D4 AFA20024 */ sw $v0, 0x24($sp)
/* B75A78 800FE8D8 8FA70030 */ lw $a3, 0x30($sp)
/* B75A7C 800FE8DC 8FA6003C */ lw $a2, 0x3c($sp)
/* B75A80 800FE8E0 8FA50038 */ lw $a1, 0x38($sp)
/* B75A84 800FE8E4 0C03F6F0 */ jal ArenaImpl_SetDebugInfo
/* B75A88 800FE8E8 02002025 */ move $a0, $s0
/* B75A8C 800FE8EC 8FB90030 */ lw $t9, 0x30($sp)
/* B75A90 800FE8F0 8FA30024 */ lw $v1, 0x24($sp)
/* B75A94 800FE8F4 26040030 */ addiu $a0, $s0, 0x30
/* B75A98 800FE8F8 93280022 */ lbu $t0, 0x22($t9)
/* B75A9C 800FE8FC 240500EF */ li $a1, 239
/* B75AA0 800FE900 31090002 */ andi $t1, $t0, 2
/* B75AA4 800FE904 51200006 */ beql $t1, $zero, .L800FE920
/* B75AA8 800FE908 8E0A0004 */ lw $t2, 4($s0)
/* B75AAC 800FE90C 8E060004 */ lw $a2, 4($s0)
/* B75AB0 800FE910 0C041A18 */ jal func_80106860
/* B75AB4 800FE914 AFA30024 */ sw $v1, 0x24($sp)
/* B75AB8 800FE918 8FA30024 */ lw $v1, 0x24($sp)
/* B75ABC 800FE91C 8E0A0004 */ lw $t2, 4($s0)
.L800FE920:
/* B75AC0 800FE920 020A5821 */ addu $t3, $s0, $t2
/* B75AC4 800FE924 256C0030 */ addiu $t4, $t3, 0x30
/* B75AC8 800FE928 162C001F */ bne $s1, $t4, .L800FE9A8
/* B75ACC 800FE92C 00000000 */ nop
/* B75AD0 800FE930 862D0002 */ lh $t5, 2($s1)
/* B75AD4 800FE934 02202025 */ move $a0, $s1
/* B75AD8 800FE938 11A0001B */ beqz $t5, .L800FE9A8
/* B75ADC 800FE93C 00000000 */ nop
/* B75AE0 800FE940 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75AE4 800FE944 AFA30024 */ sw $v1, 0x24($sp)
/* B75AE8 800FE948 8FA30024 */ lw $v1, 0x24($sp)
/* B75AEC 800FE94C 10400002 */ beqz $v0, .L800FE958
/* B75AF0 800FE950 00403825 */ move $a3, $v0
/* B75AF4 800FE954 AC50000C */ sw $s0, 0xc($v0)
.L800FE958:
/* B75AF8 800FE958 8E0E0004 */ lw $t6, 4($s0)
/* B75AFC 800FE95C 8E2F0004 */ lw $t7, 4($s1)
/* B75B00 800FE960 02202025 */ move $a0, $s1
/* B75B04 800FE964 240500EF */ li $a1, 239
/* B75B08 800FE968 01CFC021 */ addu $t8, $t6, $t7
/* B75B0C 800FE96C 27190030 */ addiu $t9, $t8, 0x30
/* B75B10 800FE970 AE190004 */ sw $t9, 4($s0)
/* B75B14 800FE974 8FA80030 */ lw $t0, 0x30($sp)
/* B75B18 800FE978 24060030 */ li $a2, 48
/* B75B1C 800FE97C 91090022 */ lbu $t1, 0x22($t0)
/* B75B20 800FE980 312A0002 */ andi $t2, $t1, 2
/* B75B24 800FE984 51400007 */ beql $t2, $zero, .L800FE9A4
/* B75B28 800FE988 AE070008 */ sw $a3, 8($s0)
/* B75B2C 800FE98C AFA30024 */ sw $v1, 0x24($sp)
/* B75B30 800FE990 0C041A18 */ jal func_80106860
/* B75B34 800FE994 AFA70020 */ sw $a3, 0x20($sp)
/* B75B38 800FE998 8FA30024 */ lw $v1, 0x24($sp)
/* B75B3C 800FE99C 8FA70020 */ lw $a3, 0x20($sp)
/* B75B40 800FE9A0 AE070008 */ sw $a3, 8($s0)
.L800FE9A4:
/* B75B44 800FE9A4 00E08825 */ move $s1, $a3
.L800FE9A8:
/* B75B48 800FE9A8 5060001B */ beql $v1, $zero, .L800FEA18
/* B75B4C 800FE9AC 8FBF001C */ lw $ra, 0x1c($sp)
/* B75B50 800FE9B0 846B0002 */ lh $t3, 2($v1)
/* B75B54 800FE9B4 51600018 */ beql $t3, $zero, .L800FEA18
/* B75B58 800FE9B8 8FBF001C */ lw $ra, 0x1c($sp)
/* B75B5C 800FE9BC 8C620004 */ lw $v0, 4($v1)
/* B75B60 800FE9C0 00626021 */ addu $t4, $v1, $v0
/* B75B64 800FE9C4 258D0030 */ addiu $t5, $t4, 0x30
/* B75B68 800FE9C8 560D0013 */ bnel $s0, $t5, .L800FEA18
/* B75B6C 800FE9CC 8FBF001C */ lw $ra, 0x1c($sp)
/* B75B70 800FE9D0 12200003 */ beqz $s1, .L800FE9E0
/* B75B74 800FE9D4 02002025 */ move $a0, $s0
/* B75B78 800FE9D8 AE23000C */ sw $v1, 0xc($s1)
/* B75B7C 800FE9DC 8C620004 */ lw $v0, 4($v1)
.L800FE9E0:
/* B75B80 800FE9E0 AC710008 */ sw $s1, 8($v1)
/* B75B84 800FE9E4 8E0E0004 */ lw $t6, 4($s0)
/* B75B88 800FE9E8 240500EF */ li $a1, 239
/* B75B8C 800FE9EC 004E7821 */ addu $t7, $v0, $t6
/* B75B90 800FE9F0 25F80030 */ addiu $t8, $t7, 0x30
/* B75B94 800FE9F4 AC780004 */ sw $t8, 4($v1)
/* B75B98 800FE9F8 8FB90030 */ lw $t9, 0x30($sp)
/* B75B9C 800FE9FC 93280022 */ lbu $t0, 0x22($t9)
/* B75BA0 800FEA00 31090002 */ andi $t1, $t0, 2
/* B75BA4 800FEA04 51200004 */ beql $t1, $zero, .L800FEA18
/* B75BA8 800FEA08 8FBF001C */ lw $ra, 0x1c($sp)
/* B75BAC 800FEA0C 0C041A18 */ jal func_80106860
/* B75BB0 800FEA10 24060030 */ li $a2, 48
.L800FEA14:
/* B75BB4 800FEA14 8FBF001C */ lw $ra, 0x1c($sp)
.L800FEA18:
/* B75BB8 800FEA18 8FB00014 */ lw $s0, 0x14($sp)
/* B75BBC 800FEA1C 8FB10018 */ lw $s1, 0x18($sp)
/* B75BC0 800FEA20 03E00008 */ jr $ra
/* B75BC4 800FEA24 27BD0030 */ addiu $sp, $sp, 0x30

View file

@ -1,95 +0,0 @@
glabel __osMallocR
/* B75624 800FE484 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B75628 800FE488 AFB1001C */ sw $s1, 0x1c($sp)
/* B7562C 800FE48C AFBF0024 */ sw $ra, 0x24($sp)
/* B75630 800FE490 AFB20020 */ sw $s2, 0x20($sp)
/* B75634 800FE494 24B1000F */ addiu $s1, $a1, 0xf
/* B75638 800FE498 2401FFF0 */ li $at, -16
/* B7563C 800FE49C 00809025 */ move $s2, $a0
/* B75640 800FE4A0 AFB00018 */ sw $s0, 0x18($sp)
/* B75644 800FE4A4 AFA00034 */ sw $zero, 0x34($sp)
/* B75648 800FE4A8 0C03F70F */ jal ArenaImpl_Lock
/* B7564C 800FE4AC 02218824 */ and $s1, $s1, $at
/* B75650 800FE4B0 0C03F74F */ jal ArenaImpl_GetLastBlock
/* B75654 800FE4B4 02402025 */ move $a0, $s2
/* B75658 800FE4B8 10400041 */ beqz $v0, .L800FE5C0
/* B7565C 800FE4BC 00408025 */ move $s0, $v0
.L800FE4C0:
/* B75660 800FE4C0 844E0002 */ lh $t6, 2($v0)
/* B75664 800FE4C4 11C0003A */ beqz $t6, .L800FE5B0
/* B75668 800FE4C8 00000000 */ nop
/* B7566C 800FE4CC 8C4F0004 */ lw $t7, 4($v0)
/* B75670 800FE4D0 01F1082B */ sltu $at, $t7, $s1
/* B75674 800FE4D4 14200036 */ bnez $at, .L800FE5B0
/* B75678 800FE4D8 00000000 */ nop
/* B7567C 800FE4DC 92580022 */ lbu $t8, 0x22($s2)
/* B75680 800FE4E0 02402025 */ move $a0, $s2
/* B75684 800FE4E4 33190004 */ andi $t9, $t8, 4
/* B75688 800FE4E8 53200004 */ beql $t9, $zero, .L800FE4FC
/* B7568C 800FE4EC 8E020004 */ lw $v0, 4($s0)
/* B75690 800FE4F0 0C03F7D5 */ jal __osMalloc_FreeBlockTest
/* B75694 800FE4F4 02002825 */ move $a1, $s0
/* B75698 800FE4F8 8E020004 */ lw $v0, 4($s0)
.L800FE4FC:
/* B7569C 800FE4FC 2623000F */ addiu $v1, $s1, 0xf
/* B756A0 800FE500 2401FFF0 */ li $at, -16
/* B756A4 800FE504 00611824 */ and $v1, $v1, $at
/* B756A8 800FE508 24630030 */ addiu $v1, $v1, 0x30
/* B756AC 800FE50C 0062082B */ sltu $at, $v1, $v0
/* B756B0 800FE510 10200016 */ beqz $at, .L800FE56C
/* B756B4 800FE514 02024021 */ addu $t0, $s0, $v0
/* B756B8 800FE518 01112823 */ subu $a1, $t0, $s1
/* B756BC 800FE51C AFA50040 */ sw $a1, 0x40($sp)
/* B756C0 800FE520 02002025 */ move $a0, $s0
/* B756C4 800FE524 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B756C8 800FE528 AFA3002C */ sw $v1, 0x2c($sp)
/* B756CC 800FE52C 8FA40040 */ lw $a0, 0x40($sp)
/* B756D0 800FE530 8FA3002C */ lw $v1, 0x2c($sp)
/* B756D4 800FE534 24097373 */ li $t1, 29555
/* B756D8 800FE538 AC820008 */ sw $v0, 8($a0)
/* B756DC 800FE53C AC90000C */ sw $s0, 0xc($a0)
/* B756E0 800FE540 AC910004 */ sw $s1, 4($a0)
/* B756E4 800FE544 A4890000 */ sh $t1, ($a0)
/* B756E8 800FE548 8E0A0004 */ lw $t2, 4($s0)
/* B756EC 800FE54C AE040008 */ sw $a0, 8($s0)
/* B756F0 800FE550 01435823 */ subu $t3, $t2, $v1
/* B756F4 800FE554 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B756F8 800FE558 AE0B0004 */ sw $t3, 4($s0)
/* B756FC 800FE55C 10400002 */ beqz $v0, .L800FE568
/* B75700 800FE560 8FA50040 */ lw $a1, 0x40($sp)
/* B75704 800FE564 AC45000C */ sw $a1, 0xc($v0)
.L800FE568:
/* B75708 800FE568 00A08025 */ move $s0, $a1
.L800FE56C:
/* B7570C 800FE56C A6000002 */ sh $zero, 2($s0)
/* B75710 800FE570 02002025 */ move $a0, $s0
/* B75714 800FE574 00002825 */ move $a1, $zero
/* B75718 800FE578 00003025 */ move $a2, $zero
/* B7571C 800FE57C 0C03F6F0 */ jal ArenaImpl_SetDebugInfo
/* B75720 800FE580 02403825 */ move $a3, $s2
/* B75724 800FE584 26040030 */ addiu $a0, $s0, 0x30
/* B75728 800FE588 AFA40034 */ sw $a0, 0x34($sp)
/* B7572C 800FE58C 924C0022 */ lbu $t4, 0x22($s2)
/* B75730 800FE590 240500CD */ li $a1, 205
/* B75734 800FE594 318D0001 */ andi $t5, $t4, 1
/* B75738 800FE598 11A00009 */ beqz $t5, .L800FE5C0
/* B7573C 800FE59C 00000000 */ nop
/* B75740 800FE5A0 0C041A18 */ jal func_80106860
/* B75744 800FE5A4 02203025 */ move $a2, $s1
/* B75748 800FE5A8 10000005 */ b .L800FE5C0
/* B7574C 800FE5AC 00000000 */ nop
.L800FE5B0:
/* B75750 800FE5B0 0C03F739 */ jal ArenaImpl_GetPrevBlock
/* B75754 800FE5B4 02002025 */ move $a0, $s0
/* B75758 800FE5B8 1440FFC1 */ bnez $v0, .L800FE4C0
/* B7575C 800FE5BC 00408025 */ move $s0, $v0
.L800FE5C0:
/* B75760 800FE5C0 0C03F719 */ jal ArenaImpl_Unlock
/* B75764 800FE5C4 02402025 */ move $a0, $s2
/* B75768 800FE5C8 8FBF0024 */ lw $ra, 0x24($sp)
/* B7576C 800FE5CC 8FA20034 */ lw $v0, 0x34($sp)
/* B75770 800FE5D0 8FB00018 */ lw $s0, 0x18($sp)
/* B75774 800FE5D4 8FB1001C */ lw $s1, 0x1c($sp)
/* B75778 800FE5D8 8FB20020 */ lw $s2, 0x20($sp)
/* B7577C 800FE5DC 03E00008 */ jr $ra
/* B75780 800FE5E0 27BD0048 */ addiu $sp, $sp, 0x48

View file

@ -1,97 +0,0 @@
glabel __osMallocRDebug
/* B75334 800FE194 27BDFFB8 */ addiu $sp, $sp, -0x48
/* B75338 800FE198 AFB1001C */ sw $s1, 0x1c($sp)
/* B7533C 800FE19C AFBF0024 */ sw $ra, 0x24($sp)
/* B75340 800FE1A0 AFB20020 */ sw $s2, 0x20($sp)
/* B75344 800FE1A4 24B1000F */ addiu $s1, $a1, 0xf
/* B75348 800FE1A8 2401FFF0 */ li $at, -16
/* B7534C 800FE1AC 00809025 */ move $s2, $a0
/* B75350 800FE1B0 AFB00018 */ sw $s0, 0x18($sp)
/* B75354 800FE1B4 AFA60050 */ sw $a2, 0x50($sp)
/* B75358 800FE1B8 AFA70054 */ sw $a3, 0x54($sp)
/* B7535C 800FE1BC AFA00034 */ sw $zero, 0x34($sp)
/* B75360 800FE1C0 0C03F70F */ jal ArenaImpl_Lock
/* B75364 800FE1C4 02218824 */ and $s1, $s1, $at
/* B75368 800FE1C8 0C03F74F */ jal ArenaImpl_GetLastBlock
/* B7536C 800FE1CC 02402025 */ move $a0, $s2
/* B75370 800FE1D0 10400041 */ beqz $v0, .L800FE2D8
/* B75374 800FE1D4 00408025 */ move $s0, $v0
.L800FE1D8:
/* B75378 800FE1D8 844E0002 */ lh $t6, 2($v0)
/* B7537C 800FE1DC 11C0003A */ beqz $t6, .L800FE2C8
/* B75380 800FE1E0 00000000 */ nop
/* B75384 800FE1E4 8C4F0004 */ lw $t7, 4($v0)
/* B75388 800FE1E8 01F1082B */ sltu $at, $t7, $s1
/* B7538C 800FE1EC 14200036 */ bnez $at, .L800FE2C8
/* B75390 800FE1F0 00000000 */ nop
/* B75394 800FE1F4 92580022 */ lbu $t8, 0x22($s2)
/* B75398 800FE1F8 02402025 */ move $a0, $s2
/* B7539C 800FE1FC 33190004 */ andi $t9, $t8, 4
/* B753A0 800FE200 53200004 */ beql $t9, $zero, .L800FE214
/* B753A4 800FE204 8E020004 */ lw $v0, 4($s0)
/* B753A8 800FE208 0C03F7D5 */ jal __osMalloc_FreeBlockTest
/* B753AC 800FE20C 02002825 */ move $a1, $s0
/* B753B0 800FE210 8E020004 */ lw $v0, 4($s0)
.L800FE214:
/* B753B4 800FE214 2623000F */ addiu $v1, $s1, 0xf
/* B753B8 800FE218 2401FFF0 */ li $at, -16
/* B753BC 800FE21C 00611824 */ and $v1, $v1, $at
/* B753C0 800FE220 24630030 */ addiu $v1, $v1, 0x30
/* B753C4 800FE224 0062082B */ sltu $at, $v1, $v0
/* B753C8 800FE228 10200016 */ beqz $at, .L800FE284
/* B753CC 800FE22C 02024021 */ addu $t0, $s0, $v0
/* B753D0 800FE230 01112823 */ subu $a1, $t0, $s1
/* B753D4 800FE234 AFA50040 */ sw $a1, 0x40($sp)
/* B753D8 800FE238 02002025 */ move $a0, $s0
/* B753DC 800FE23C 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B753E0 800FE240 AFA3002C */ sw $v1, 0x2c($sp)
/* B753E4 800FE244 8FA40040 */ lw $a0, 0x40($sp)
/* B753E8 800FE248 8FA3002C */ lw $v1, 0x2c($sp)
/* B753EC 800FE24C 24097373 */ li $t1, 29555
/* B753F0 800FE250 AC820008 */ sw $v0, 8($a0)
/* B753F4 800FE254 AC90000C */ sw $s0, 0xc($a0)
/* B753F8 800FE258 AC910004 */ sw $s1, 4($a0)
/* B753FC 800FE25C A4890000 */ sh $t1, ($a0)
/* B75400 800FE260 8E0A0004 */ lw $t2, 4($s0)
/* B75404 800FE264 AE040008 */ sw $a0, 8($s0)
/* B75408 800FE268 01435823 */ subu $t3, $t2, $v1
/* B7540C 800FE26C 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75410 800FE270 AE0B0004 */ sw $t3, 4($s0)
/* B75414 800FE274 10400002 */ beqz $v0, .L800FE280
/* B75418 800FE278 8FA50040 */ lw $a1, 0x40($sp)
/* B7541C 800FE27C AC45000C */ sw $a1, 0xc($v0)
.L800FE280:
/* B75420 800FE280 00A08025 */ move $s0, $a1
.L800FE284:
/* B75424 800FE284 A6000002 */ sh $zero, 2($s0)
/* B75428 800FE288 8FA60054 */ lw $a2, 0x54($sp)
/* B7542C 800FE28C 8FA50050 */ lw $a1, 0x50($sp)
/* B75430 800FE290 02002025 */ move $a0, $s0
/* B75434 800FE294 0C03F6F0 */ jal ArenaImpl_SetDebugInfo
/* B75438 800FE298 02403825 */ move $a3, $s2
/* B7543C 800FE29C 26040030 */ addiu $a0, $s0, 0x30
/* B75440 800FE2A0 AFA40034 */ sw $a0, 0x34($sp)
/* B75444 800FE2A4 924C0022 */ lbu $t4, 0x22($s2)
/* B75448 800FE2A8 240500CD */ li $a1, 205
/* B7544C 800FE2AC 318D0001 */ andi $t5, $t4, 1
/* B75450 800FE2B0 11A00009 */ beqz $t5, .L800FE2D8
/* B75454 800FE2B4 00000000 */ nop
/* B75458 800FE2B8 0C041A18 */ jal func_80106860
/* B7545C 800FE2BC 02203025 */ move $a2, $s1
/* B75460 800FE2C0 10000005 */ b .L800FE2D8
/* B75464 800FE2C4 00000000 */ nop
.L800FE2C8:
/* B75468 800FE2C8 0C03F739 */ jal ArenaImpl_GetPrevBlock
/* B7546C 800FE2CC 02002025 */ move $a0, $s0
/* B75470 800FE2D0 1440FFC1 */ bnez $v0, .L800FE1D8
/* B75474 800FE2D4 00408025 */ move $s0, $v0
.L800FE2D8:
/* B75478 800FE2D8 0C03F719 */ jal ArenaImpl_Unlock
/* B7547C 800FE2DC 02402025 */ move $a0, $s2
/* B75480 800FE2E0 8FBF0024 */ lw $ra, 0x24($sp)
/* B75484 800FE2E4 8FA20034 */ lw $v0, 0x34($sp)
/* B75488 800FE2E8 8FB00018 */ lw $s0, 0x18($sp)
/* B7548C 800FE2EC 8FB1001C */ lw $s1, 0x1c($sp)
/* B75490 800FE2F0 8FB20020 */ lw $s2, 0x20($sp)
/* B75494 800FE2F4 03E00008 */ jr $ra
/* B75498 800FE2F8 27BD0048 */ addiu $sp, $sp, 0x48

View file

@ -1,89 +0,0 @@
glabel __osMalloc_NoLock
/* B7549C 800FE2FC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B754A0 800FE300 AFBF001C */ sw $ra, 0x1c($sp)
/* B754A4 800FE304 AFB10018 */ sw $s1, 0x18($sp)
/* B754A8 800FE308 AFB00014 */ sw $s0, 0x14($sp)
/* B754AC 800FE30C AFA40040 */ sw $a0, 0x40($sp)
/* B754B0 800FE310 AFA00030 */ sw $zero, 0x30($sp)
/* B754B4 800FE314 8C900000 */ lw $s0, ($a0)
/* B754B8 800FE318 24B1000F */ addiu $s1, $a1, 0xf
/* B754BC 800FE31C 2401FFF0 */ li $at, -16
/* B754C0 800FE320 12000042 */ beqz $s0, .L800FE42C
/* B754C4 800FE324 02218824 */ and $s1, $s1, $at
.L800FE328:
/* B754C8 800FE328 860F0002 */ lh $t7, 2($s0)
/* B754CC 800FE32C 11E0003B */ beqz $t7, .L800FE41C
/* B754D0 800FE330 00000000 */ nop
/* B754D4 800FE334 8E020004 */ lw $v0, 4($s0)
/* B754D8 800FE338 0051082B */ sltu $at, $v0, $s1
/* B754DC 800FE33C 14200037 */ bnez $at, .L800FE41C
/* B754E0 800FE340 00000000 */ nop
/* B754E4 800FE344 8FB80040 */ lw $t8, 0x40($sp)
/* B754E8 800FE348 93190022 */ lbu $t9, 0x22($t8)
/* B754EC 800FE34C 03002025 */ move $a0, $t8
/* B754F0 800FE350 33280004 */ andi $t0, $t9, 4
/* B754F4 800FE354 51000005 */ beql $t0, $zero, .L800FE36C
/* B754F8 800FE358 2623000F */ addiu $v1, $s1, 0xf
/* B754FC 800FE35C 0C03F7D5 */ jal __osMalloc_FreeBlockTest
/* B75500 800FE360 02002825 */ move $a1, $s0
/* B75504 800FE364 8E020004 */ lw $v0, 4($s0)
/* B75508 800FE368 2623000F */ addiu $v1, $s1, 0xf
.L800FE36C:
/* B7550C 800FE36C 2401FFF0 */ li $at, -16
/* B75510 800FE370 00611824 */ and $v1, $v1, $at
/* B75514 800FE374 24630030 */ addiu $v1, $v1, 0x30
/* B75518 800FE378 0062082B */ sltu $at, $v1, $v0
/* B7551C 800FE37C 10200015 */ beqz $at, .L800FE3D4
/* B75520 800FE380 02002025 */ move $a0, $s0
/* B75524 800FE384 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75528 800FE388 AFA30028 */ sw $v1, 0x28($sp)
/* B7552C 800FE38C 8FA30028 */ lw $v1, 0x28($sp)
/* B75530 800FE390 240B0001 */ li $t3, 1
/* B75534 800FE394 240C7373 */ li $t4, 29555
/* B75538 800FE398 02032021 */ addu $a0, $s0, $v1
/* B7553C 800FE39C AC820008 */ sw $v0, 8($a0)
/* B75540 800FE3A0 AC90000C */ sw $s0, 0xc($a0)
/* B75544 800FE3A4 8E090004 */ lw $t1, 4($s0)
/* B75548 800FE3A8 A48B0002 */ sh $t3, 2($a0)
/* B7554C 800FE3AC A48C0000 */ sh $t4, ($a0)
/* B75550 800FE3B0 01235023 */ subu $t2, $t1, $v1
/* B75554 800FE3B4 AC8A0004 */ sw $t2, 4($a0)
/* B75558 800FE3B8 AE040008 */ sw $a0, 8($s0)
/* B7555C 800FE3BC AE110004 */ sw $s1, 4($s0)
/* B75560 800FE3C0 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75564 800FE3C4 AFA40024 */ sw $a0, 0x24($sp)
/* B75568 800FE3C8 10400002 */ beqz $v0, .L800FE3D4
/* B7556C 800FE3CC 8FA40024 */ lw $a0, 0x24($sp)
/* B75570 800FE3D0 AC44000C */ sw $a0, 0xc($v0)
.L800FE3D4:
/* B75574 800FE3D4 A6000002 */ sh $zero, 2($s0)
/* B75578 800FE3D8 8FA70040 */ lw $a3, 0x40($sp)
/* B7557C 800FE3DC 02002025 */ move $a0, $s0
/* B75580 800FE3E0 00002825 */ move $a1, $zero
/* B75584 800FE3E4 0C03F6F0 */ jal ArenaImpl_SetDebugInfo
/* B75588 800FE3E8 00003025 */ move $a2, $zero
/* B7558C 800FE3EC 8FAD0040 */ lw $t5, 0x40($sp)
/* B75590 800FE3F0 26040030 */ addiu $a0, $s0, 0x30
/* B75594 800FE3F4 AFA40030 */ sw $a0, 0x30($sp)
/* B75598 800FE3F8 91AE0022 */ lbu $t6, 0x22($t5)
/* B7559C 800FE3FC 240500CD */ li $a1, 205
/* B755A0 800FE400 31CF0001 */ andi $t7, $t6, 1
/* B755A4 800FE404 51E0000A */ beql $t7, $zero, .L800FE430
/* B755A8 800FE408 8FBF001C */ lw $ra, 0x1c($sp)
/* B755AC 800FE40C 0C041A18 */ jal func_80106860
/* B755B0 800FE410 02203025 */ move $a2, $s1
/* B755B4 800FE414 10000006 */ b .L800FE430
/* B755B8 800FE418 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE41C:
/* B755BC 800FE41C 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B755C0 800FE420 02002025 */ move $a0, $s0
/* B755C4 800FE424 1440FFC0 */ bnez $v0, .L800FE328
/* B755C8 800FE428 00408025 */ move $s0, $v0
.L800FE42C:
/* B755CC 800FE42C 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE430:
/* B755D0 800FE430 8FA20030 */ lw $v0, 0x30($sp)
/* B755D4 800FE434 8FB00014 */ lw $s0, 0x14($sp)
/* B755D8 800FE438 8FB10018 */ lw $s1, 0x18($sp)
/* B755DC 800FE43C 03E00008 */ jr $ra
/* B755E0 800FE440 27BD0040 */ addiu $sp, $sp, 0x40

View file

@ -1,91 +0,0 @@
glabel __osMalloc_NoLockDebug
/* B75194 800FDFF4 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B75198 800FDFF8 AFBF001C */ sw $ra, 0x1c($sp)
/* B7519C 800FDFFC AFB10018 */ sw $s1, 0x18($sp)
/* B751A0 800FE000 AFB00014 */ sw $s0, 0x14($sp)
/* B751A4 800FE004 AFA40040 */ sw $a0, 0x40($sp)
/* B751A8 800FE008 AFA60048 */ sw $a2, 0x48($sp)
/* B751AC 800FE00C AFA7004C */ sw $a3, 0x4c($sp)
/* B751B0 800FE010 AFA00030 */ sw $zero, 0x30($sp)
/* B751B4 800FE014 8C900000 */ lw $s0, ($a0)
/* B751B8 800FE018 24B1000F */ addiu $s1, $a1, 0xf
/* B751BC 800FE01C 2401FFF0 */ li $at, -16
/* B751C0 800FE020 12000042 */ beqz $s0, .L800FE12C
/* B751C4 800FE024 02218824 */ and $s1, $s1, $at
.L800FE028:
/* B751C8 800FE028 860F0002 */ lh $t7, 2($s0)
/* B751CC 800FE02C 11E0003B */ beqz $t7, .L800FE11C
/* B751D0 800FE030 00000000 */ nop
/* B751D4 800FE034 8E020004 */ lw $v0, 4($s0)
/* B751D8 800FE038 0051082B */ sltu $at, $v0, $s1
/* B751DC 800FE03C 14200037 */ bnez $at, .L800FE11C
/* B751E0 800FE040 00000000 */ nop
/* B751E4 800FE044 8FB80040 */ lw $t8, 0x40($sp)
/* B751E8 800FE048 93190022 */ lbu $t9, 0x22($t8)
/* B751EC 800FE04C 03002025 */ move $a0, $t8
/* B751F0 800FE050 33280004 */ andi $t0, $t9, 4
/* B751F4 800FE054 51000005 */ beql $t0, $zero, .L800FE06C
/* B751F8 800FE058 2623000F */ addiu $v1, $s1, 0xf
/* B751FC 800FE05C 0C03F7D5 */ jal __osMalloc_FreeBlockTest
/* B75200 800FE060 02002825 */ move $a1, $s0
/* B75204 800FE064 8E020004 */ lw $v0, 4($s0)
/* B75208 800FE068 2623000F */ addiu $v1, $s1, 0xf
.L800FE06C:
/* B7520C 800FE06C 2401FFF0 */ li $at, -16
/* B75210 800FE070 00611824 */ and $v1, $v1, $at
/* B75214 800FE074 24630030 */ addiu $v1, $v1, 0x30
/* B75218 800FE078 0062082B */ sltu $at, $v1, $v0
/* B7521C 800FE07C 10200015 */ beqz $at, .L800FE0D4
/* B75220 800FE080 02002025 */ move $a0, $s0
/* B75224 800FE084 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75228 800FE088 AFA30028 */ sw $v1, 0x28($sp)
/* B7522C 800FE08C 8FA30028 */ lw $v1, 0x28($sp)
/* B75230 800FE090 240B0001 */ li $t3, 1
/* B75234 800FE094 240C7373 */ li $t4, 29555
/* B75238 800FE098 02032021 */ addu $a0, $s0, $v1
/* B7523C 800FE09C AC820008 */ sw $v0, 8($a0)
/* B75240 800FE0A0 AC90000C */ sw $s0, 0xc($a0)
/* B75244 800FE0A4 8E090004 */ lw $t1, 4($s0)
/* B75248 800FE0A8 A48B0002 */ sh $t3, 2($a0)
/* B7524C 800FE0AC A48C0000 */ sh $t4, ($a0)
/* B75250 800FE0B0 01235023 */ subu $t2, $t1, $v1
/* B75254 800FE0B4 AC8A0004 */ sw $t2, 4($a0)
/* B75258 800FE0B8 AE040008 */ sw $a0, 8($s0)
/* B7525C 800FE0BC AE110004 */ sw $s1, 4($s0)
/* B75260 800FE0C0 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75264 800FE0C4 AFA40024 */ sw $a0, 0x24($sp)
/* B75268 800FE0C8 10400002 */ beqz $v0, .L800FE0D4
/* B7526C 800FE0CC 8FA40024 */ lw $a0, 0x24($sp)
/* B75270 800FE0D0 AC44000C */ sw $a0, 0xc($v0)
.L800FE0D4:
/* B75274 800FE0D4 A6000002 */ sh $zero, 2($s0)
/* B75278 800FE0D8 8FA70040 */ lw $a3, 0x40($sp)
/* B7527C 800FE0DC 8FA6004C */ lw $a2, 0x4c($sp)
/* B75280 800FE0E0 8FA50048 */ lw $a1, 0x48($sp)
/* B75284 800FE0E4 0C03F6F0 */ jal ArenaImpl_SetDebugInfo
/* B75288 800FE0E8 02002025 */ move $a0, $s0
/* B7528C 800FE0EC 8FAD0040 */ lw $t5, 0x40($sp)
/* B75290 800FE0F0 26040030 */ addiu $a0, $s0, 0x30
/* B75294 800FE0F4 AFA40030 */ sw $a0, 0x30($sp)
/* B75298 800FE0F8 91AE0022 */ lbu $t6, 0x22($t5)
/* B7529C 800FE0FC 240500CD */ li $a1, 205
/* B752A0 800FE100 31CF0001 */ andi $t7, $t6, 1
/* B752A4 800FE104 51E0000A */ beql $t7, $zero, .L800FE130
/* B752A8 800FE108 8FBF001C */ lw $ra, 0x1c($sp)
/* B752AC 800FE10C 0C041A18 */ jal func_80106860
/* B752B0 800FE110 02203025 */ move $a2, $s1
/* B752B4 800FE114 10000006 */ b .L800FE130
/* B752B8 800FE118 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE11C:
/* B752BC 800FE11C 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B752C0 800FE120 02002025 */ move $a0, $s0
/* B752C4 800FE124 1440FFC0 */ bnez $v0, .L800FE028
/* B752C8 800FE128 00408025 */ move $s0, $v0
.L800FE12C:
/* B752CC 800FE12C 8FBF001C */ lw $ra, 0x1c($sp)
.L800FE130:
/* B752D0 800FE130 8FA20030 */ lw $v0, 0x30($sp)
/* B752D4 800FE134 8FB00014 */ lw $s0, 0x14($sp)
/* B752D8 800FE138 8FB10018 */ lw $s1, 0x18($sp)
/* B752DC 800FE13C 03E00008 */ jr $ra
/* B752E0 800FE140 27BD0040 */ addiu $sp, $sp, 0x40

View file

@ -1,247 +0,0 @@
.rdata
glabel D_8014ADEC
.asciz "__osRealloc(%08x, %d)\n"
.balign 4
glabel D_8014AE04
.asciz "\n" #Does nothing because the memory block size does not change
.balign 4
glabel D_8014AE38
.asciz "\n" #Merge because there is a free block after the current memory block
.balign 4
glabel D_8014AE74
.asciz "\n" #Allocate a new memory block and move the contents
.balign 4
glabel D_8014AEA4
.asciz "\n" #Increased free block behind current memory block
.balign 4
glabel D_8014AEDC
.asciz "\n" #Generated because there is no free block after the current memory block
.balign 4
glabel D_8014AF18
.asciz "\n" #There is no room to generate free blocks
.balign 4
.text
glabel __osRealloc
/* B75C10 800FEA70 27BDFF78 */ addiu $sp, $sp, -0x88
/* B75C14 800FEA74 AFB00018 */ sw $s0, 0x18($sp)
/* B75C18 800FEA78 AFA40088 */ sw $a0, 0x88($sp)
/* B75C1C 800FEA7C 24D0000F */ addiu $s0, $a2, 0xf
/* B75C20 800FEA80 2401FFF0 */ li $at, -16
/* B75C24 800FEA84 AFBF001C */ sw $ra, 0x1c($sp)
/* B75C28 800FEA88 02018024 */ and $s0, $s0, $at
/* B75C2C 800FEA8C 3C048015 */ lui $a0, %hi(D_8014ADEC) # $a0, 0x8015
/* B75C30 800FEA90 AFA5008C */ sw $a1, 0x8c($sp)
/* B75C34 800FEA94 2484ADEC */ addiu $a0, %lo(D_8014ADEC) # addiu $a0, $a0, -0x5214
/* B75C38 800FEA98 0C00084C */ jal osSyncPrintf
/* B75C3C 800FEA9C 02003025 */ move $a2, $s0
/* B75C40 800FEAA0 0C03F70F */ jal ArenaImpl_Lock
/* B75C44 800FEAA4 8FA40088 */ lw $a0, 0x88($sp)
/* B75C48 800FEAA8 8FAE008C */ lw $t6, 0x8c($sp)
/* B75C4C 800FEAAC 8FA40088 */ lw $a0, 0x88($sp)
/* B75C50 800FEAB0 15C00005 */ bnez $t6, .L800FEAC8
/* B75C54 800FEAB4 00000000 */ nop
/* B75C58 800FEAB8 0C03F8BF */ jal __osMalloc_NoLock
/* B75C5C 800FEABC 02002825 */ move $a1, $s0
/* B75C60 800FEAC0 100000AF */ b .L800FED80
/* B75C64 800FEAC4 AFA2008C */ sw $v0, 0x8c($sp)
.L800FEAC8:
/* B75C68 800FEAC8 16000006 */ bnez $s0, .L800FEAE4
/* B75C6C 800FEACC 8FA7008C */ lw $a3, 0x8c($sp)
/* B75C70 800FEAD0 8FA40088 */ lw $a0, 0x88($sp)
/* B75C74 800FEAD4 0C03F979 */ jal __osFree_NoLock
/* B75C78 800FEAD8 8FA5008C */ lw $a1, 0x8c($sp)
/* B75C7C 800FEADC 100000A8 */ b .L800FED80
/* B75C80 800FEAE0 AFA0008C */ sw $zero, 0x8c($sp)
.L800FEAE4:
/* B75C84 800FEAE4 8CE3FFD4 */ lw $v1, -0x2c($a3)
/* B75C88 800FEAE8 24E7FFD0 */ addiu $a3, $a3, -0x30
/* B75C8C 800FEAEC 3C048015 */ lui $a0, %hi(D_8014AE04) # $a0, 0x8015
/* B75C90 800FEAF0 16030005 */ bne $s0, $v1, .L800FEB08
/* B75C94 800FEAF4 0070082B */ sltu $at, $v1, $s0
/* B75C98 800FEAF8 0C00084C */ jal osSyncPrintf
/* B75C9C 800FEAFC 2484AE04 */ addiu $a0, %lo(D_8014AE04) # addiu $a0, $a0, -0x51fc
/* B75CA0 800FEB00 1000009F */ b .L800FED80
/* B75CA4 800FEB04 00000000 */ nop
.L800FEB08:
/* B75CA8 800FEB08 1020003C */ beqz $at, .L800FEBFC
/* B75CAC 800FEB0C 00E02025 */ move $a0, $a3
/* B75CB0 800FEB10 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75CB4 800FEB14 AFA70024 */ sw $a3, 0x24($sp)
/* B75CB8 800FEB18 8FA70024 */ lw $a3, 0x24($sp)
/* B75CBC 800FEB1C 3C048015 */ lui $a0, %hi(D_8014AE74) # $a0, 0x8015
/* B75CC0 800FEB20 2484AE74 */ addiu $a0, %lo(D_8014AE74) # addiu $a0, $a0, -0x518c
/* B75CC4 800FEB24 8CE30004 */ lw $v1, 4($a3)
/* B75CC8 800FEB28 00E37821 */ addu $t7, $a3, $v1
/* B75CCC 800FEB2C 25F80030 */ addiu $t8, $t7, 0x30
/* B75CD0 800FEB30 14580021 */ bne $v0, $t8, .L800FEBB8
/* B75CD4 800FEB34 02034023 */ subu $t0, $s0, $v1
/* B75CD8 800FEB38 84590002 */ lh $t9, 2($v0)
/* B75CDC 800FEB3C 1320001E */ beqz $t9, .L800FEBB8
/* B75CE0 800FEB40 00000000 */ nop
/* B75CE4 800FEB44 8C490004 */ lw $t1, 4($v0)
/* B75CE8 800FEB48 0128082B */ sltu $at, $t1, $t0
/* B75CEC 800FEB4C 1420001A */ bnez $at, .L800FEBB8
/* B75CF0 800FEB50 00000000 */ nop
/* B75CF4 800FEB54 3C048015 */ lui $a0, %hi(D_8014AE38) # $a0, 0x8015
/* B75CF8 800FEB58 2484AE38 */ addiu $a0, %lo(D_8014AE38) # addiu $a0, $a0, -0x51c8
/* B75CFC 800FEB5C AFA2007C */ sw $v0, 0x7c($sp)
/* B75D00 800FEB60 AFA70024 */ sw $a3, 0x24($sp)
/* B75D04 800FEB64 0C00084C */ jal osSyncPrintf
/* B75D08 800FEB68 AFA80068 */ sw $t0, 0x68($sp)
/* B75D0C 800FEB6C 8FA4007C */ lw $a0, 0x7c($sp)
/* B75D10 800FEB70 8FA80068 */ lw $t0, 0x68($sp)
/* B75D14 800FEB74 8C8A0004 */ lw $t2, 4($a0)
/* B75D18 800FEB78 01485823 */ subu $t3, $t2, $t0
/* B75D1C 800FEB7C 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75D20 800FEB80 AC8B0004 */ sw $t3, 4($a0)
/* B75D24 800FEB84 8FA5007C */ lw $a1, 0x7c($sp)
/* B75D28 800FEB88 8FA70024 */ lw $a3, 0x24($sp)
/* B75D2C 800FEB8C 10400003 */ beqz $v0, .L800FEB9C
/* B75D30 800FEB90 8FA80068 */ lw $t0, 0x68($sp)
/* B75D34 800FEB94 00A86021 */ addu $t4, $a1, $t0
/* B75D38 800FEB98 AC4C000C */ sw $t4, 0xc($v0)
.L800FEB9C:
/* B75D3C 800FEB9C 00A82021 */ addu $a0, $a1, $t0
/* B75D40 800FEBA0 ACE40008 */ sw $a0, 8($a3)
/* B75D44 800FEBA4 ACF00004 */ sw $s0, 4($a3)
/* B75D48 800FEBA8 0C041A2C */ jal func_801068B0
/* B75D4C 800FEBAC 24060030 */ li $a2, 48
/* B75D50 800FEBB0 10000073 */ b .L800FED80
/* B75D54 800FEBB4 00000000 */ nop
.L800FEBB8:
/* B75D58 800FEBB8 0C00084C */ jal osSyncPrintf
/* B75D5C 800FEBBC AFA70024 */ sw $a3, 0x24($sp)
/* B75D60 800FEBC0 8FA40088 */ lw $a0, 0x88($sp)
/* B75D64 800FEBC4 0C03F8BF */ jal __osMalloc_NoLock
/* B75D68 800FEBC8 02002825 */ move $a1, $s0
/* B75D6C 800FEBCC 8FA70024 */ lw $a3, 0x24($sp)
/* B75D70 800FEBD0 10400008 */ beqz $v0, .L800FEBF4
/* B75D74 800FEBD4 00408025 */ move $s0, $v0
/* B75D78 800FEBD8 8FA4008C */ lw $a0, 0x8c($sp)
/* B75D7C 800FEBDC 00402825 */ move $a1, $v0
/* B75D80 800FEBE0 0C001BC4 */ jal bcopy
/* B75D84 800FEBE4 8CE60004 */ lw $a2, 4($a3)
/* B75D88 800FEBE8 8FA40088 */ lw $a0, 0x88($sp)
/* B75D8C 800FEBEC 0C03F979 */ jal __osFree_NoLock
/* B75D90 800FEBF0 8FA5008C */ lw $a1, 0x8c($sp)
.L800FEBF4:
/* B75D94 800FEBF4 10000062 */ b .L800FED80
/* B75D98 800FEBF8 AFB0008C */ sw $s0, 0x8c($sp)
.L800FEBFC:
/* B75D9C 800FEBFC 0203082B */ sltu $at, $s0, $v1
/* B75DA0 800FEC00 1020005F */ beqz $at, .L800FED80
/* B75DA4 800FEC04 00E02025 */ move $a0, $a3
/* B75DA8 800FEC08 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75DAC 800FEC0C AFA70024 */ sw $a3, 0x24($sp)
/* B75DB0 800FEC10 10400035 */ beqz $v0, .L800FECE8
/* B75DB4 800FEC14 8FA70024 */ lw $a3, 0x24($sp)
/* B75DB8 800FEC18 844D0002 */ lh $t5, 2($v0)
/* B75DBC 800FEC1C 3C048015 */ lui $a0, %hi(D_8014AEA4) # $a0, 0x8015
/* B75DC0 800FEC20 2484AEA4 */ addiu $a0, %lo(D_8014AEA4) # addiu $a0, $a0, -0x515c
/* B75DC4 800FEC24 51A00031 */ beql $t5, $zero, .L800FECEC
/* B75DC8 800FEC28 8CF90004 */ lw $t9, 4($a3)
/* B75DCC 800FEC2C AFA2006C */ sw $v0, 0x6c($sp)
/* B75DD0 800FEC30 0C00084C */ jal osSyncPrintf
/* B75DD4 800FEC34 AFA70024 */ sw $a3, 0x24($sp)
/* B75DD8 800FEC38 8FB8006C */ lw $t8, 0x6c($sp)
/* B75DDC 800FEC3C 27A20030 */ addiu $v0, $sp, 0x30
/* B75DE0 800FEC40 8FA70024 */ lw $a3, 0x24($sp)
/* B75DE4 800FEC44 0040C825 */ move $t9, $v0
/* B75DE8 800FEC48 27090030 */ addiu $t1, $t8, 0x30
.L800FEC4C:
/* B75DEC 800FEC4C 8F0F0000 */ lw $t7, ($t8)
/* B75DF0 800FEC50 2718000C */ addiu $t8, $t8, 0xc
/* B75DF4 800FEC54 2739000C */ addiu $t9, $t9, 0xc
/* B75DF8 800FEC58 AF2FFFF4 */ sw $t7, -0xc($t9)
/* B75DFC 800FEC5C 8F0EFFF8 */ lw $t6, -8($t8)
/* B75E00 800FEC60 AF2EFFF8 */ sw $t6, -8($t9)
/* B75E04 800FEC64 8F0FFFFC */ lw $t7, -4($t8)
/* B75E08 800FEC68 1709FFF8 */ bne $t8, $t1, .L800FEC4C
/* B75E0C 800FEC6C AF2FFFFC */ sw $t7, -4($t9)
/* B75E10 800FEC70 260A000F */ addiu $t2, $s0, 0xf
/* B75E14 800FEC74 2401FFF0 */ li $at, -16
/* B75E18 800FEC78 01415824 */ and $t3, $t2, $at
/* B75E1C 800FEC7C 00EB2021 */ addu $a0, $a3, $t3
/* B75E20 800FEC80 24840030 */ addiu $a0, $a0, 0x30
/* B75E24 800FEC84 0080C025 */ move $t8, $a0
/* B75E28 800FEC88 00404825 */ move $t1, $v0
/* B75E2C 800FEC8C 24590030 */ addiu $t9, $v0, 0x30
.L800FEC90:
/* B75E30 800FEC90 8D2D0000 */ lw $t5, ($t1)
/* B75E34 800FEC94 2529000C */ addiu $t1, $t1, 0xc
/* B75E38 800FEC98 2718000C */ addiu $t8, $t8, 0xc
/* B75E3C 800FEC9C AF0DFFF4 */ sw $t5, -0xc($t8)
/* B75E40 800FECA0 8D2CFFF8 */ lw $t4, -8($t1)
/* B75E44 800FECA4 AF0CFFF8 */ sw $t4, -8($t8)
/* B75E48 800FECA8 8D2DFFFC */ lw $t5, -4($t1)
/* B75E4C 800FECAC 1539FFF8 */ bne $t1, $t9, .L800FEC90
/* B75E50 800FECB0 AF0DFFFC */ sw $t5, -4($t8)
/* B75E54 800FECB4 8C8E0004 */ lw $t6, 4($a0)
/* B75E58 800FECB8 8CEF0004 */ lw $t7, 4($a3)
/* B75E5C 800FECBC 01CF5021 */ addu $t2, $t6, $t7
/* B75E60 800FECC0 01505823 */ subu $t3, $t2, $s0
/* B75E64 800FECC4 AC8B0004 */ sw $t3, 4($a0)
/* B75E68 800FECC8 ACE40008 */ sw $a0, 8($a3)
/* B75E6C 800FECCC ACF00004 */ sw $s0, 4($a3)
/* B75E70 800FECD0 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75E74 800FECD4 AFA40020 */ sw $a0, 0x20($sp)
/* B75E78 800FECD8 10400029 */ beqz $v0, .L800FED80
/* B75E7C 800FECDC 8FA40020 */ lw $a0, 0x20($sp)
/* B75E80 800FECE0 10000027 */ b .L800FED80
/* B75E84 800FECE4 AC44000C */ sw $a0, 0xc($v0)
.L800FECE8:
/* B75E88 800FECE8 8CF90004 */ lw $t9, 4($a3)
.L800FECEC:
/* B75E8C 800FECEC 26090030 */ addiu $t1, $s0, 0x30
/* B75E90 800FECF0 3C048015 */ lui $a0, %hi(D_8014AF18)
/* B75E94 800FECF4 0139082B */ sltu $at, $t1, $t9
/* B75E98 800FECF8 1020001E */ beqz $at, .L800FED74
/* B75E9C 800FECFC 00000000 */ nop
/* B75EA0 800FED00 3C048015 */ lui $a0, %hi(D_8014AEDC) # $a0, 0x8015
/* B75EA4 800FED04 2484AEDC */ addiu $a0, %lo(D_8014AEDC) # addiu $a0, $a0, -0x5124
/* B75EA8 800FED08 0C00084C */ jal osSyncPrintf
/* B75EAC 800FED0C AFA70024 */ sw $a3, 0x24($sp)
/* B75EB0 800FED10 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75EB4 800FED14 8FA40024 */ lw $a0, 0x24($sp)
/* B75EB8 800FED18 8FA70024 */ lw $a3, 0x24($sp)
/* B75EBC 800FED1C 2603000F */ addiu $v1, $s0, 0xf
/* B75EC0 800FED20 2401FFF0 */ li $at, -16
/* B75EC4 800FED24 00611824 */ and $v1, $v1, $at
/* B75EC8 800FED28 24630030 */ addiu $v1, $v1, 0x30
/* B75ECC 800FED2C 00E32021 */ addu $a0, $a3, $v1
/* B75ED0 800FED30 AC820008 */ sw $v0, 8($a0)
/* B75ED4 800FED34 AC87000C */ sw $a3, 0xc($a0)
/* B75ED8 800FED38 8CF80004 */ lw $t8, 4($a3)
/* B75EDC 800FED3C 240D0001 */ li $t5, 1
/* B75EE0 800FED40 240E7373 */ li $t6, 29555
/* B75EE4 800FED44 03036023 */ subu $t4, $t8, $v1
/* B75EE8 800FED48 AC8C0004 */ sw $t4, 4($a0)
/* B75EEC 800FED4C A48D0002 */ sh $t5, 2($a0)
/* B75EF0 800FED50 A48E0000 */ sh $t6, ($a0)
/* B75EF4 800FED54 ACE40008 */ sw $a0, 8($a3)
/* B75EF8 800FED58 ACF00004 */ sw $s0, 4($a3)
/* B75EFC 800FED5C 0C03F723 */ jal ArenaImpl_GetNextBlock
/* B75F00 800FED60 AFA40020 */ sw $a0, 0x20($sp)
/* B75F04 800FED64 10400006 */ beqz $v0, .L800FED80
/* B75F08 800FED68 8FA40020 */ lw $a0, 0x20($sp)
/* B75F0C 800FED6C 10000004 */ b .L800FED80
/* B75F10 800FED70 AC44000C */ sw $a0, 0xc($v0)
.L800FED74:
/* B75F14 800FED74 0C00084C */ jal osSyncPrintf
/* B75F18 800FED78 2484AF18 */ addiu $a0, %lo(D_8014AF18)
/* B75F1C 800FED7C AFA0008C */ sw $zero, 0x8c($sp)
.L800FED80:
/* B75F20 800FED80 0C03F719 */ jal ArenaImpl_Unlock
/* B75F24 800FED84 8FA40088 */ lw $a0, 0x88($sp)
/* B75F28 800FED88 8FBF001C */ lw $ra, 0x1c($sp)
/* B75F2C 800FED8C 8FA2008C */ lw $v0, 0x8c($sp)
/* B75F30 800FED90 8FB00018 */ lw $s0, 0x18($sp)
/* B75F34 800FED94 03E00008 */ jr $ra
/* B75F38 800FED98 27BD0088 */ addiu $sp, $sp, 0x88

View file

@ -1,52 +0,0 @@
.late_rodata
glabel D_8013CB80
.float 0.01
.text
glabel func_8007C0F8
/* AF3298 8007C0F8 27BDFFC8 */ addiu $sp, $sp, -0x38
/* AF329C 8007C0FC AFBF0014 */ sw $ra, 0x14($sp)
/* AF32A0 8007C100 AFA40038 */ sw $a0, 0x38($sp)
/* AF32A4 8007C104 C4A60000 */ lwc1 $f6, ($a1)
/* AF32A8 8007C108 C4C40000 */ lwc1 $f4, ($a2)
/* AF32AC 8007C10C C4AA0004 */ lwc1 $f10, 4($a1)
/* AF32B0 8007C110 C4C80004 */ lwc1 $f8, 4($a2)
/* AF32B4 8007C114 46062081 */ sub.s $f2, $f4, $f6
/* AF32B8 8007C118 C4A60008 */ lwc1 $f6, 8($a1)
/* AF32BC 8007C11C C4C40008 */ lwc1 $f4, 8($a2)
/* AF32C0 8007C120 460A4401 */ sub.s $f16, $f8, $f10
/* AF32C4 8007C124 46021202 */ mul.s $f8, $f2, $f2
/* AF32C8 8007C128 3C018014 */ lui $at, %hi(D_8013CB80)
/* AF32CC 8007C12C 46062481 */ sub.s $f18, $f4, $f6
/* AF32D0 8007C130 46108282 */ mul.s $f10, $f16, $f16
/* AF32D4 8007C134 C42ECB80 */ lwc1 $f14, %lo(D_8013CB80)($at)
/* AF32D8 8007C138 E7B00030 */ swc1 $f16, 0x30($sp)
/* AF32DC 8007C13C 46129182 */ mul.s $f6, $f18, $f18
/* AF32E0 8007C140 E7B20034 */ swc1 $f18, 0x34($sp)
/* AF32E4 8007C144 E7A2002C */ swc1 $f2, 0x2c($sp)
/* AF32E8 8007C148 460A4100 */ add.s $f4, $f8, $f10
/* AF32EC 8007C14C 46062000 */ add.s $f0, $f4, $f6
/* AF32F0 8007C150 0C01F016 */ jal func_8007C058
/* AF32F4 8007C154 46000304 */ sqrt.s $f12, $f0
/* AF32F8 8007C158 C7A2002C */ lwc1 $f2, 0x2c($sp)
/* AF32FC 8007C15C C7B00030 */ lwc1 $f16, 0x30($sp)
/* AF3300 8007C160 C7B20034 */ lwc1 $f18, 0x34($sp)
/* AF3304 8007C164 46001203 */ div.s $f8, $f2, $f0
/* AF3308 8007C168 27AE0020 */ addiu $t6, $sp, 0x20
/* AF330C 8007C16C 8FA20038 */ lw $v0, 0x38($sp)
/* AF3310 8007C170 46008283 */ div.s $f10, $f16, $f0
/* AF3314 8007C174 E7A80020 */ swc1 $f8, 0x20($sp)
/* AF3318 8007C178 46009103 */ div.s $f4, $f18, $f0
/* AF331C 8007C17C E7AA0024 */ swc1 $f10, 0x24($sp)
/* AF3320 8007C180 E7A40028 */ swc1 $f4, 0x28($sp)
/* AF3324 8007C184 8DD80000 */ lw $t8, ($t6)
/* AF3328 8007C188 AC580000 */ sw $t8, ($v0)
/* AF332C 8007C18C 8DCF0004 */ lw $t7, 4($t6)
/* AF3330 8007C190 AC4F0004 */ sw $t7, 4($v0)
/* AF3334 8007C194 8DD80008 */ lw $t8, 8($t6)
/* AF3338 8007C198 AC580008 */ sw $t8, 8($v0)
/* AF333C 8007C19C 8FBF0014 */ lw $ra, 0x14($sp)
/* AF3340 8007C1A0 27BD0038 */ addiu $sp, $sp, 0x38
/* AF3344 8007C1A4 03E00008 */ jr $ra
/* AF3348 8007C1A8 00000000 */ nop

View file

@ -1,46 +0,0 @@
glabel func_8007C1AC
/* AF334C 8007C1AC 27BDFFC0 */ addiu $sp, $sp, -0x40
/* AF3350 8007C1B0 AFBF001C */ sw $ra, 0x1c($sp)
/* AF3354 8007C1B4 AFB00018 */ sw $s0, 0x18($sp)
/* AF3358 8007C1B8 AFA40040 */ sw $a0, 0x40($sp)
/* AF335C 8007C1BC 00A08025 */ move $s0, $a1
/* AF3360 8007C1C0 0C01DE0D */ jal Math_Coss
/* AF3364 8007C1C4 84A40004 */ lh $a0, 4($a1)
/* AF3368 8007C1C8 E7A0002C */ swc1 $f0, 0x2c($sp)
/* AF336C 8007C1CC 0C01DE0D */ jal Math_Coss
/* AF3370 8007C1D0 86040006 */ lh $a0, 6($s0)
/* AF3374 8007C1D4 E7A00024 */ swc1 $f0, 0x24($sp)
/* AF3378 8007C1D8 0C01DE1C */ jal Math_Sins
/* AF337C 8007C1DC 86040004 */ lh $a0, 4($s0)
/* AF3380 8007C1E0 86040006 */ lh $a0, 6($s0)
/* AF3384 8007C1E4 0C01DE1C */ jal Math_Sins
/* AF3388 8007C1E8 E7A00030 */ swc1 $f0, 0x30($sp)
/* AF338C 8007C1EC C7A20030 */ lwc1 $f2, 0x30($sp)
/* AF3390 8007C1F0 C6040000 */ lwc1 $f4, ($s0)
/* AF3394 8007C1F4 C7B0002C */ lwc1 $f16, 0x2c($sp)
/* AF3398 8007C1F8 27AE0034 */ addiu $t6, $sp, 0x34
/* AF339C 8007C1FC 46022182 */ mul.s $f6, $f4, $f2
/* AF33A0 8007C200 8FA20040 */ lw $v0, 0x40($sp)
/* AF33A4 8007C204 46003202 */ mul.s $f8, $f6, $f0
/* AF33A8 8007C208 E7A80034 */ swc1 $f8, 0x34($sp)
/* AF33AC 8007C20C C60A0000 */ lwc1 $f10, ($s0)
/* AF33B0 8007C210 C7A80024 */ lwc1 $f8, 0x24($sp)
/* AF33B4 8007C214 46105482 */ mul.s $f18, $f10, $f16
/* AF33B8 8007C218 E7B20038 */ swc1 $f18, 0x38($sp)
/* AF33BC 8007C21C C6040000 */ lwc1 $f4, ($s0)
/* AF33C0 8007C220 46022182 */ mul.s $f6, $f4, $f2
/* AF33C4 8007C224 00000000 */ nop
/* AF33C8 8007C228 46083282 */ mul.s $f10, $f6, $f8
/* AF33CC 8007C22C E7AA003C */ swc1 $f10, 0x3c($sp)
/* AF33D0 8007C230 8DD80000 */ lw $t8, ($t6)
/* AF33D4 8007C234 AC580000 */ sw $t8, ($v0)
/* AF33D8 8007C238 8DCF0004 */ lw $t7, 4($t6)
/* AF33DC 8007C23C AC4F0004 */ sw $t7, 4($v0)
/* AF33E0 8007C240 8DD80008 */ lw $t8, 8($t6)
/* AF33E4 8007C244 AC580008 */ sw $t8, 8($v0)
/* AF33E8 8007C248 8FBF001C */ lw $ra, 0x1c($sp)
/* AF33EC 8007C24C 8FB00018 */ lw $s0, 0x18($sp)
/* AF33F0 8007C250 27BD0040 */ addiu $sp, $sp, 0x40
/* AF33F4 8007C254 03E00008 */ jr $ra
/* AF33F8 8007C258 00000000 */ nop

View file

@ -1,24 +0,0 @@
glabel func_800AA0F0
/* B21290 800AA0F0 3C0F8016 */ lui $t7, %hi(gPadMgr+0x460) # $t7, 0x8016
/* B21294 800AA0F4 8DEF6D20 */ lw $t7, %lo(gPadMgr+0x460)($t7)
/* B21298 800AA0F8 3C0E800B */ lui $t6, %hi(func_800A9F30) # $t6, 0x800b
/* B2129C 800AA0FC 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B212A0 800AA100 25CE9F30 */ addiu $t6, %lo(func_800A9F30) # addiu $t6, $t6, -0x60d0
/* B212A4 800AA104 15CF0009 */ bne $t6, $t7, .L800AA12C
/* B212A8 800AA108 AFBF0014 */ sw $ra, 0x14($sp)
/* B212AC 800AA10C 3C188016 */ lui $t8, %hi(gPadMgr+0x464) # $t8, 0x8016
/* B212B0 800AA110 8F186D24 */ lw $t8, %lo(gPadMgr+0x464)($t8)
/* B212B4 800AA114 3C018016 */ lui $at, %hi(gPadMgr+0x460) # $at, 0x8016
/* B212B8 800AA118 17000004 */ bnez $t8, .L800AA12C
/* B212BC 800AA11C 00000000 */ nop
/* B212C0 800AA120 AC206D20 */ sw $zero, %lo(gPadMgr+0x460)($at)
/* B212C4 800AA124 3C018016 */ lui $at, %hi(gPadMgr+0x464) # $at, 0x8016
/* B212C8 800AA128 AC206D24 */ sw $zero, %lo(gPadMgr+0x464)($at)
.L800AA12C:
/* B212CC 800AA12C 3C048016 */ lui $a0, %hi(D_80160FD0) # $a0, 0x8016
/* B212D0 800AA130 0C034C5E */ jal func_800D3178
/* B212D4 800AA134 24840FD0 */ addiu $a0, %lo(D_80160FD0) # addiu $a0, $a0, 0xfd0
/* B212D8 800AA138 8FBF0014 */ lw $ra, 0x14($sp)
/* B212DC 800AA13C 27BD0018 */ addiu $sp, $sp, 0x18
/* B212E0 800AA140 03E00008 */ jr $ra
/* B212E4 800AA144 00000000 */ nop

View file

@ -1,61 +0,0 @@
.rdata
glabel D_80146E8C
.asciz "F%02d:%14.7e "
.balign 4
glabel D_80146E9C
.asciz "F%02d: %08x(16) "
.balign 4
.text
glabel Fault_LogFReg
/* B4BC40 800D4AA0 3C18FFFA */ lui $t8, (0xFFFA5A5A >> 16) # lui $t8, 0xfffa
/* B4BC44 800D4AA4 03A0C825 */ move $t9, $sp
/* B4BC48 800D4AA8 27BDFFE8 */ addiu $sp, $sp, -0x18
/* B4BC4C 800D4AAC 37185A5A */ ori $t8, (0xFFFA5A5A & 0xFFFF) # ori $t8, $t8, 0x5a5a
.L800D4AB0:
/* B4BC50 800D4AB0 2739FFF8 */ addiu $t9, $t9, -8
/* B4BC54 800D4AB4 AF380000 */ sw $t8, ($t9)
/* B4BC58 800D4AB8 173DFFFD */ bne $t9, $sp, .L800D4AB0
/* B4BC5C 800D4ABC AF380004 */ sw $t8, 4($t9)
/* B4BC60 800D4AC0 AFBF0014 */ sw $ra, 0x14($sp)
/* B4BC64 800D4AC4 AFA40018 */ sw $a0, 0x18($sp)
/* B4BC68 800D4AC8 AFA5001C */ sw $a1, 0x1c($sp)
/* B4BC6C 800D4ACC 8FAE001C */ lw $t6, 0x1c($sp)
/* B4BC70 800D4AD0 3C017F80 */ lui $at, 0x7f80
/* B4BC74 800D4AD4 8DC60000 */ lw $a2, ($t6)
/* B4BC78 800D4AD8 00C11824 */ and $v1, $a2, $at
/* B4BC7C 800D4ADC 00031DC2 */ srl $v1, $v1, 0x17
/* B4BC80 800D4AE0 2463FF81 */ addiu $v1, $v1, -0x7f
/* B4BC84 800D4AE4 2861FF82 */ slti $at, $v1, -0x7e
/* B4BC88 800D4AE8 14200004 */ bnez $at, .L800D4AFC
/* B4BC8C 800D4AEC 00C01025 */ move $v0, $a2
/* B4BC90 800D4AF0 28610080 */ slti $at, $v1, 0x80
/* B4BC94 800D4AF4 54200004 */ bnezl $at, .L800D4B08
/* B4BC98 800D4AF8 8FAF001C */ lw $t7, 0x1c($sp)
.L800D4AFC:
/* B4BC9C 800D4AFC 1440000D */ bnez $v0, .L800D4B34
/* B4BCA0 800D4B00 3C048014 */ lui $a0, %hi(D_80146E9C)
/* B4BCA4 800D4B04 8FAF001C */ lw $t7, 0x1c($sp)
.L800D4B08:
/* B4BCA8 800D4B08 3C048014 */ lui $a0, %hi(D_80146E8C) # $a0, 0x8014
/* B4BCAC 800D4B0C 24846E8C */ addiu $a0, %lo(D_80146E8C) # addiu $a0, $a0, 0x6e8c
/* B4BCB0 800D4B10 C5E40000 */ lwc1 $f4, ($t7)
/* B4BCB4 800D4B14 8FA50018 */ lw $a1, 0x18($sp)
/* B4BCB8 800D4B18 460021A1 */ cvt.d.s $f6, $f4
/* B4BCBC 800D4B1C 44073000 */ mfc1 $a3, $f6
/* B4BCC0 800D4B20 44063800 */ mfc1 $a2, $f7
/* B4BCC4 800D4B24 0C00084C */ jal osSyncPrintf
/* B4BCC8 800D4B28 00000000 */ nop
/* B4BCCC 800D4B2C 10000005 */ b .L800D4B44
/* B4BCD0 800D4B30 8FBF0014 */ lw $ra, 0x14($sp)
.L800D4B34:
/* B4BCD4 800D4B34 24846E9C */ addiu $a0, %lo(D_80146E9C)
/* B4BCD8 800D4B38 0C00084C */ jal osSyncPrintf
/* B4BCDC 800D4B3C 8FA50018 */ lw $a1, 0x18($sp)
/* B4BCE0 800D4B40 8FBF0014 */ lw $ra, 0x14($sp)
.L800D4B44:
/* B4BCE4 800D4B44 27BD0018 */ addiu $sp, $sp, 0x18
/* B4BCE8 800D4B48 03E00008 */ jr $ra
/* B4BCEC 800D4B4C 00000000 */ nop

View file

@ -1,105 +0,0 @@
glabel Fault_ProcessClientContext
/* B4B1A4 800D4004 3C0DFFFA */ lui $t5, (0xFFFA5A5A >> 16) # lui $t5, 0xfffa
/* B4B1A8 800D4008 03A07025 */ move $t6, $sp
/* B4B1AC 800D400C 27BDFF58 */ addiu $sp, $sp, -0xa8
/* B4B1B0 800D4010 35AD5A5A */ ori $t5, (0xFFFA5A5A & 0xFFFF) # ori $t5, $t5, 0x5a5a
.L800D4014:
/* B4B1B4 800D4014 25CEFFF8 */ addiu $t6, $t6, -8
/* B4B1B8 800D4018 ADCD0000 */ sw $t5, ($t6)
/* B4B1BC 800D401C 15DDFFFD */ bne $t6, $sp, .L800D4014
/* B4B1C0 800D4020 ADCD0004 */ sw $t5, 4($t6)
/* B4B1C4 800D4024 AFBE0050 */ sw $fp, 0x50($sp)
/* B4B1C8 800D4028 AFB00038 */ sw $s0, 0x38($sp)
/* B4B1CC 800D402C 27B00090 */ addiu $s0, $sp, 0x90
/* B4B1D0 800D4030 03A0F025 */ move $fp, $sp
/* B4B1D4 800D4034 AFBF0054 */ sw $ra, 0x54($sp)
/* B4B1D8 800D4038 AFB5004C */ sw $s5, 0x4c($sp)
/* B4B1DC 800D403C AFB40048 */ sw $s4, 0x48($sp)
/* B4B1E0 800D4040 AFB30044 */ sw $s3, 0x44($sp)
/* B4B1E4 800D4044 AFB20040 */ sw $s2, 0x40($sp)
/* B4B1E8 800D4048 AFB1003C */ sw $s1, 0x3c($sp)
/* B4B1EC 800D404C AFA400A8 */ sw $a0, 0xa8($sp)
/* B4B1F0 800D4050 0000A825 */ move $s5, $zero
/* B4B1F4 800D4054 02002025 */ move $a0, $s0
/* B4B1F8 800D4058 27C5008C */ addiu $a1, $fp, 0x8c
/* B4B1FC 800D405C 0C001874 */ jal osCreateMesgQueue
/* B4B200 800D4060 24060001 */ li $a2, 1
/* B4B204 800D4064 8FC700A8 */ lw $a3, 0xa8($fp)
/* B4B208 800D4068 3C0E8017 */ lui $t6, %hi(sFaultStructPtr) # $t6, 0x8017
/* B4B20C 800D406C 3C06800D */ lui $a2, %hi(Fault_ClientProcessThread) # $a2, 0x800d
/* B4B210 800D4070 ACF00010 */ sw $s0, 0x10($a3)
/* B4B214 800D4074 ACE00014 */ sw $zero, 0x14($a3)
/* B4B218 800D4078 8DCEA800 */ lw $t6, %lo(sFaultStructPtr)($t6)
/* B4B21C 800D407C 24C63F90 */ addiu $a2, %lo(Fault_ClientProcessThread) # addiu $a2, $a2, 0x3f90
/* B4B220 800D4080 24050002 */ li $a1, 2
/* B4B224 800D4084 8DC20848 */ lw $v0, 0x848($t6)
/* B4B228 800D4088 240F007E */ li $t7, 126
/* B4B22C 800D408C 1040000B */ beqz $v0, .L800D40BC
/* B4B230 800D4090 00000000 */ nop
/* B4B234 800D4094 27BDFE50 */ addiu $sp, $sp, -0x1b0
/* B4B238 800D4098 27B50020 */ addiu $s5, $sp, 0x20
/* B4B23C 800D409C 02A02025 */ move $a0, $s5
/* B4B240 800D40A0 AFA20010 */ sw $v0, 0x10($sp)
/* B4B244 800D40A4 0C001154 */ jal osCreateThread
/* B4B248 800D40A8 AFAF0014 */ sw $t7, 0x14($sp)
/* B4B24C 800D40AC 0C0023F0 */ jal osStartThread
/* B4B250 800D40B0 02A02025 */ move $a0, $s5
/* B4B254 800D40B4 10000003 */ b .L800D40C4
/* B4B258 800D40B8 00000000 */ nop
.L800D40BC:
/* B4B25C 800D40BC 0C034FE4 */ jal Fault_ClientProcessThread
/* B4B260 800D40C0 00E02025 */ move $a0, $a3
.L800D40C4:
/* B4B264 800D40C4 3C138017 */ lui $s3, %hi(sFaultIsWaitingForInput) # $s3, 0x8017
/* B4B268 800D40C8 2673A804 */ addiu $s3, %lo(sFaultIsWaitingForInput) # addiu $s3, $s3, -0x57fc
/* B4B26C 800D40CC 27D40060 */ addiu $s4, $fp, 0x60
/* B4B270 800D40D0 2412029A */ li $s2, 666
/* B4B274 800D40D4 27D10088 */ addiu $s1, $fp, 0x88
/* B4B278 800D40D8 3C0702CB */ lui $a3, (0x02CB4178 >> 16) # lui $a3, 0x2cb
.L800D40DC:
/* B4B27C 800D40DC 24180000 */ li $t8, 0
/* B4B280 800D40E0 24190000 */ li $t9, 0
/* B4B284 800D40E4 2408029A */ li $t0, 666
/* B4B288 800D40E8 AFA8001C */ sw $t0, 0x1c($sp)
/* B4B28C 800D40EC AFB90014 */ sw $t9, 0x14($sp)
/* B4B290 800D40F0 AFB80010 */ sw $t8, 0x10($sp)
/* B4B294 800D40F4 34E74178 */ ori $a3, (0x02CB4178 & 0xFFFF) # ori $a3, $a3, 0x4178
/* B4B298 800D40F8 02802025 */ move $a0, $s4
/* B4B29C 800D40FC 24060000 */ li $a2, 0
/* B4B2A0 800D4100 0C0418B8 */ jal osSetTimer
/* B4B2A4 800D4104 AFB00018 */ sw $s0, 0x18($sp)
/* B4B2A8 800D4108 02002025 */ move $a0, $s0
/* B4B2AC 800D410C 02202825 */ move $a1, $s1
/* B4B2B0 800D4110 0C000CA0 */ jal osRecvMesg
/* B4B2B4 800D4114 24060001 */ li $a2, 1
/* B4B2B8 800D4118 8FC90088 */ lw $t1, 0x88($fp)
/* B4B2BC 800D411C 15320007 */ bne $t1, $s2, .L800D413C
/* B4B2C0 800D4120 00000000 */ nop
/* B4B2C4 800D4124 926A0000 */ lbu $t2, ($s3)
/* B4B2C8 800D4128 5540FFEC */ bnezl $t2, .L800D40DC
/* B4B2CC 800D412C 3C0702CB */ lui $a3, 0x2cb
/* B4B2D0 800D4130 8FCC00A8 */ lw $t4, 0xa8($fp)
/* B4B2D4 800D4134 240BFFFF */ li $t3, -1
/* B4B2D8 800D4138 AD8B000C */ sw $t3, 0xc($t4)
.L800D413C:
/* B4B2DC 800D413C 0C0408CC */ jal osStopTimer
/* B4B2E0 800D4140 02802025 */ move $a0, $s4
/* B4B2E4 800D4144 52A00006 */ beql $s5, $zero, .L800D4160
/* B4B2E8 800D4148 8FDF0054 */ lw $ra, 0x54($fp)
/* B4B2EC 800D414C 0C000C6C */ jal osStopThread
/* B4B2F0 800D4150 02A02025 */ move $a0, $s5
/* B4B2F4 800D4154 0C0010D0 */ jal osDestroyThread
/* B4B2F8 800D4158 02A02025 */ move $a0, $s5
/* B4B2FC 800D415C 8FDF0054 */ lw $ra, 0x54($fp)
.L800D4160:
/* B4B300 800D4160 03C0E825 */ move $sp, $fp
/* B4B304 800D4164 8FD00038 */ lw $s0, 0x38($fp)
/* B4B308 800D4168 8FD1003C */ lw $s1, 0x3c($fp)
/* B4B30C 800D416C 8FD20040 */ lw $s2, 0x40($fp)
/* B4B310 800D4170 8FD30044 */ lw $s3, 0x44($fp)
/* B4B314 800D4174 8FD40048 */ lw $s4, 0x48($fp)
/* B4B318 800D4178 8FD5004C */ lw $s5, 0x4c($fp)
/* B4B31C 800D417C 8FDE0050 */ lw $fp, 0x50($fp)
/* B4B320 800D4180 03E00008 */ jr $ra
/* B4B324 800D4184 27BD00A8 */ addiu $sp, $sp, 0xa8

View file

@ -1,157 +0,0 @@
.rdata
glabel D_80147998
.asciz "\n"
.balign 4
glabel D_8014799C
.asciz "%c"
.balign 4
.text
glabel FaultDrawer_FormatStringFunc
/* B4DF8C 800D6DEC 3C09FFFA */ lui $t1, (0xFFFA5A5A >> 16) # lui $t1, 0xfffa
/* B4DF90 800D6DF0 03A05025 */ move $t2, $sp
/* B4DF94 800D6DF4 27BDFFC8 */ addiu $sp, $sp, -0x38
/* B4DF98 800D6DF8 35295A5A */ ori $t1, (0xFFFA5A5A & 0xFFFF) # ori $t1, $t1, 0x5a5a
.L800D6DFC:
/* B4DF9C 800D6DFC 254AFFF8 */ addiu $t2, $t2, -8
/* B4DFA0 800D6E00 AD490000 */ sw $t1, ($t2)
/* B4DFA4 800D6E04 155DFFFD */ bne $t2, $sp, .L800D6DFC
/* B4DFA8 800D6E08 AD490004 */ sw $t1, 4($t2)
/* B4DFAC 800D6E0C AFB2001C */ sw $s2, 0x1c($sp)
/* B4DFB0 800D6E10 AFB10018 */ sw $s1, 0x18($sp)
/* B4DFB4 800D6E14 00A08825 */ move $s1, $a1
/* B4DFB8 800D6E18 00C09025 */ move $s2, $a2
/* B4DFBC 800D6E1C AFBF0034 */ sw $ra, 0x34($sp)
/* B4DFC0 800D6E20 AFB70030 */ sw $s7, 0x30($sp)
/* B4DFC4 800D6E24 AFB6002C */ sw $s6, 0x2c($sp)
/* B4DFC8 800D6E28 AFB50028 */ sw $s5, 0x28($sp)
/* B4DFCC 800D6E2C AFB40024 */ sw $s4, 0x24($sp)
/* B4DFD0 800D6E30 AFB30020 */ sw $s3, 0x20($sp)
/* B4DFD4 800D6E34 AFB00014 */ sw $s0, 0x14($sp)
/* B4DFD8 800D6E38 AFA40038 */ sw $a0, 0x38($sp)
/* B4DFDC 800D6E3C 12400060 */ beqz $s2, .L800D6FC0
/* B4DFE0 800D6E40 3C178014 */ lui $s7, %hi(D_80147998) # $s7, 0x8014
/* B4DFE4 800D6E44 3C158014 */ lui $s5, %hi(D_8014799C) # $s5, 0x8014
/* B4DFE8 800D6E48 3C108017 */ lui $s0, %hi(sFaultDrawerStruct) # $s0, 0x8017
/* B4DFEC 800D6E4C 2610B680 */ addiu $s0, %lo(sFaultDrawerStruct) # addiu $s0, $s0, -0x4980
/* B4DFF0 800D6E50 26B5799C */ addiu $s5, %lo(D_8014799C) # addiu $s5, $s5, 0x799c
/* B4DFF4 800D6E54 26F77998 */ addiu $s7, %lo(D_80147998) # addiu $s7, $s7, 0x7998
/* B4DFF8 800D6E58 24160001 */ li $s6, 1
/* B4DFFC 800D6E5C 2414001A */ li $s4, 26
/* B4E000 800D6E60 2413000A */ li $s3, 10
.L800D6E64:
/* B4E004 800D6E64 920E0034 */ lbu $t6, 0x34($s0)
/* B4E008 800D6E68 51C00011 */ beql $t6, $zero, .L800D6EB0
/* B4E00C 800D6E6C 92240000 */ lbu $a0, ($s1)
/* B4E010 800D6E70 A2000034 */ sb $zero, 0x34($s0)
/* B4E014 800D6E74 92250000 */ lbu $a1, ($s1)
/* B4E018 800D6E78 28A10031 */ slti $at, $a1, 0x31
/* B4E01C 800D6E7C 14200006 */ bnez $at, .L800D6E98
/* B4E020 800D6E80 28A1003A */ slti $at, $a1, 0x3a
/* B4E024 800D6E84 10200004 */ beqz $at, .L800D6E98
/* B4E028 800D6E88 00057840 */ sll $t7, $a1, 1
/* B4E02C 800D6E8C 020FC021 */ addu $t8, $s0, $t7
/* B4E030 800D6E90 0C035AD7 */ jal FaultDrawer_SetForeColor
/* B4E034 800D6E94 9704FFC0 */ lhu $a0, -0x40($t8)
.L800D6E98:
/* B4E038 800D6E98 9619000E */ lhu $t9, 0xe($s0)
/* B4E03C 800D6E9C 9208001C */ lbu $t0, 0x1c($s0)
/* B4E040 800D6EA0 96030014 */ lhu $v1, 0x14($s0)
/* B4E044 800D6EA4 1000002A */ b .L800D6F50
/* B4E048 800D6EA8 03282023 */ subu $a0, $t9, $t0
/* B4E04C 800D6EAC 92240000 */ lbu $a0, ($s1)
.L800D6EB0:
/* B4E050 800D6EB0 10930005 */ beq $a0, $s3, .L800D6EC8
/* B4E054 800D6EB4 00802825 */ move $a1, $a0
/* B4E058 800D6EB8 50940010 */ beql $a0, $s4, .L800D6EFC
/* B4E05C 800D6EBC 960D000E */ lhu $t5, 0xe($s0)
/* B4E060 800D6EC0 10000013 */ b .L800D6F10
/* B4E064 800D6EC4 92020035 */ lbu $v0, 0x35($s0)
.L800D6EC8:
/* B4E068 800D6EC8 92090035 */ lbu $t1, 0x35($s0)
/* B4E06C 800D6ECC 51200004 */ beql $t1, $zero, .L800D6EE0
/* B4E070 800D6ED0 960A0004 */ lhu $t2, 4($s0)
/* B4E074 800D6ED4 0C00084C */ jal osSyncPrintf
/* B4E078 800D6ED8 02E02025 */ move $a0, $s7
/* B4E07C 800D6EDC 960A0004 */ lhu $t2, 4($s0)
.L800D6EE0:
/* B4E080 800D6EE0 960B000E */ lhu $t3, 0xe($s0)
/* B4E084 800D6EE4 920C001C */ lbu $t4, 0x1c($s0)
/* B4E088 800D6EE8 A60A0014 */ sh $t2, 0x14($s0)
/* B4E08C 800D6EEC 3143FFFF */ andi $v1, $t2, 0xffff
/* B4E090 800D6EF0 10000017 */ b .L800D6F50
/* B4E094 800D6EF4 016C2023 */ subu $a0, $t3, $t4
/* B4E098 800D6EF8 960D000E */ lhu $t5, 0xe($s0)
.L800D6EFC:
/* B4E09C 800D6EFC 920E001C */ lbu $t6, 0x1c($s0)
/* B4E0A0 800D6F00 A2160034 */ sb $s6, 0x34($s0)
/* B4E0A4 800D6F04 96030014 */ lhu $v1, 0x14($s0)
/* B4E0A8 800D6F08 10000011 */ b .L800D6F50
/* B4E0AC 800D6F0C 01AE2023 */ subu $a0, $t5, $t6
.L800D6F10:
/* B4E0B0 800D6F10 10400004 */ beqz $v0, .L800D6F24
/* B4E0B4 800D6F14 00000000 */ nop
/* B4E0B8 800D6F18 0C00084C */ jal osSyncPrintf
/* B4E0BC 800D6F1C 02A02025 */ move $a0, $s5
/* B4E0C0 800D6F20 92240000 */ lbu $a0, ($s1)
.L800D6F24:
/* B4E0C4 800D6F24 0C035A27 */ jal FaultDrawer_DrawChar
/* B4E0C8 800D6F28 00000000 */ nop
/* B4E0CC 800D6F2C 9202001C */ lbu $v0, 0x1c($s0)
/* B4E0D0 800D6F30 960F0014 */ lhu $t7, 0x14($s0)
/* B4E0D4 800D6F34 8219001E */ lb $t9, 0x1e($s0)
/* B4E0D8 800D6F38 9609000E */ lhu $t1, 0xe($s0)
/* B4E0DC 800D6F3C 01E2C021 */ addu $t8, $t7, $v0
/* B4E0E0 800D6F40 03194021 */ addu $t0, $t8, $t9
/* B4E0E4 800D6F44 A6080014 */ sh $t0, 0x14($s0)
/* B4E0E8 800D6F48 3103FFFF */ andi $v1, $t0, 0xffff
/* B4E0EC 800D6F4C 01222023 */ subu $a0, $t1, $v0
.L800D6F50:
/* B4E0F0 800D6F50 0064082A */ slt $at, $v1, $a0
/* B4E0F4 800D6F54 54200018 */ bnezl $at, .L800D6FB8
/* B4E0F8 800D6F58 2652FFFF */ addiu $s2, $s2, -1
/* B4E0FC 800D6F5C 9202001D */ lbu $v0, 0x1d($s0)
/* B4E100 800D6F60 960B0016 */ lhu $t3, 0x16($s0)
/* B4E104 800D6F64 820D001F */ lb $t5, 0x1f($s0)
/* B4E108 800D6F68 9618000A */ lhu $t8, 0xa($s0)
/* B4E10C 800D6F6C 01626021 */ addu $t4, $t3, $v0
/* B4E110 800D6F70 018D7021 */ addu $t6, $t4, $t5
/* B4E114 800D6F74 960A000C */ lhu $t2, 0xc($s0)
/* B4E118 800D6F78 31CFFFFF */ andi $t7, $t6, 0xffff
/* B4E11C 800D6F7C 0302C823 */ subu $t9, $t8, $v0
/* B4E120 800D6F80 01F9082A */ slt $at, $t7, $t9
/* B4E124 800D6F84 A60E0016 */ sh $t6, 0x16($s0)
/* B4E128 800D6F88 1420000A */ bnez $at, .L800D6FB4
/* B4E12C 800D6F8C A60A0014 */ sh $t2, 0x14($s0)
/* B4E130 800D6F90 8E020038 */ lw $v0, 0x38($s0)
/* B4E134 800D6F94 50400006 */ beql $v0, $zero, .L800D6FB0
/* B4E138 800D6F98 96080008 */ lhu $t0, 8($s0)
/* B4E13C 800D6F9C 0040F809 */ jalr $v0
/* B4E140 800D6FA0 00000000 */ nop
/* B4E144 800D6FA4 0C035B57 */ jal FaultDrawer_FillScreen
/* B4E148 800D6FA8 00000000 */ nop
/* B4E14C 800D6FAC 96080008 */ lhu $t0, 8($s0)
.L800D6FB0:
/* B4E150 800D6FB0 A6080016 */ sh $t0, 0x16($s0)
.L800D6FB4:
/* B4E154 800D6FB4 2652FFFF */ addiu $s2, $s2, -1
.L800D6FB8:
/* B4E158 800D6FB8 1640FFAA */ bnez $s2, .L800D6E64
/* B4E15C 800D6FBC 26310001 */ addiu $s1, $s1, 1
.L800D6FC0:
/* B4E160 800D6FC0 0C041924 */ jal osWritebackDCacheAll
/* B4E164 800D6FC4 00000000 */ nop
/* B4E168 800D6FC8 8FA20038 */ lw $v0, 0x38($sp)
/* B4E16C 800D6FCC 8FBF0034 */ lw $ra, 0x34($sp)
/* B4E170 800D6FD0 8FB00014 */ lw $s0, 0x14($sp)
/* B4E174 800D6FD4 8FB10018 */ lw $s1, 0x18($sp)
/* B4E178 800D6FD8 8FB2001C */ lw $s2, 0x1c($sp)
/* B4E17C 800D6FDC 8FB30020 */ lw $s3, 0x20($sp)
/* B4E180 800D6FE0 8FB40024 */ lw $s4, 0x24($sp)
/* B4E184 800D6FE4 8FB50028 */ lw $s5, 0x28($sp)
/* B4E188 800D6FE8 8FB6002C */ lw $s6, 0x2c($sp)
/* B4E18C 800D6FEC 8FB70030 */ lw $s7, 0x30($sp)
/* B4E190 800D6FF0 03E00008 */ jr $ra
/* B4E194 800D6FF4 27BD0038 */ addiu $sp, $sp, 0x38

View file

@ -1,142 +0,0 @@
.late_rodata
glabel jtbl_8014A6F0
.word L800FBA84
.word L800FBA6C
.word L800FBA5C
.word L800FBA4C
.word L800FBA98
.text
glabel GfxPrint_PrintChar
/* B72A8C 800FB8EC 27BDFFE0 */ addiu $sp, $sp, -0x20
/* B72A90 800FB8F0 AFA50024 */ sw $a1, 0x24($sp)
/* B72A94 800FB8F4 30A500FF */ andi $a1, $a1, 0xff
/* B72A98 800FB8F8 AFB00018 */ sw $s0, 0x18($sp)
/* B72A9C 800FB8FC 24010020 */ li $at, 32
/* B72AA0 800FB900 00808025 */ move $s0, $a0
/* B72AA4 800FB904 AFBF001C */ sw $ra, 0x1c($sp)
/* B72AA8 800FB908 30A600FF */ andi $a2, $a1, 0xff
/* B72AAC 800FB90C 14A10005 */ bne $a1, $at, .L800FB924
/* B72AB0 800FB910 00A01025 */ move $v0, $a1
/* B72AB4 800FB914 948E0008 */ lhu $t6, 8($a0)
/* B72AB8 800FB918 25CF0020 */ addiu $t7, $t6, 0x20
/* B72ABC 800FB91C 1000005E */ b .L800FBA98
/* B72AC0 800FB920 A48F0008 */ sh $t7, 8($a0)
.L800FB924:
/* B72AC4 800FB924 28410021 */ slti $at, $v0, 0x21
/* B72AC8 800FB928 14200007 */ bnez $at, .L800FB948
/* B72ACC 800FB92C 2841007F */ slti $at, $v0, 0x7f
/* B72AD0 800FB930 50200006 */ beql $at, $zero, .L800FB94C
/* B72AD4 800FB934 284100A0 */ slti $at, $v0, 0xa0
/* B72AD8 800FB938 0C03ED16 */ jal GfxPrint_PrintCharImpl
/* B72ADC 800FB93C 02002025 */ move $a0, $s0
/* B72AE0 800FB940 10000056 */ b .L800FBA9C
/* B72AE4 800FB944 8FBF001C */ lw $ra, 0x1c($sp)
.L800FB948:
/* B72AE8 800FB948 284100A0 */ slti $at, $v0, 0xa0
.L800FB94C:
/* B72AEC 800FB94C 14200012 */ bnez $at, .L800FB998
/* B72AF0 800FB950 284100E0 */ slti $at, $v0, 0xe0
/* B72AF4 800FB954 10200010 */ beqz $at, .L800FB998
/* B72AF8 800FB958 02002025 */ move $a0, $s0
/* B72AFC 800FB95C 9218000F */ lbu $t8, 0xf($s0)
/* B72B00 800FB960 284100C0 */ slti $at, $v0, 0xc0
/* B72B04 800FB964 33190001 */ andi $t9, $t8, 1
/* B72B08 800FB968 13200007 */ beqz $t9, .L800FB988
/* B72B0C 800FB96C 00000000 */ nop
/* B72B10 800FB970 10200004 */ beqz $at, .L800FB984
/* B72B14 800FB974 24460020 */ addiu $a2, $v0, 0x20
/* B72B18 800FB978 2446FFE0 */ addiu $a2, $v0, -0x20
/* B72B1C 800FB97C 10000002 */ b .L800FB988
/* B72B20 800FB980 30C600FF */ andi $a2, $a2, 0xff
.L800FB984:
/* B72B24 800FB984 30C600FF */ andi $a2, $a2, 0xff
.L800FB988:
/* B72B28 800FB988 0C03ED16 */ jal GfxPrint_PrintCharImpl
/* B72B2C 800FB98C 30C500FF */ andi $a1, $a2, 0xff
/* B72B30 800FB990 10000042 */ b .L800FBA9C
/* B72B34 800FB994 8FBF001C */ lw $ra, 0x1c($sp)
.L800FB998:
/* B72B38 800FB998 2841000B */ slti $at, $v0, 0xb
/* B72B3C 800FB99C 14200010 */ bnez $at, .L800FB9E0
/* B72B40 800FB9A0 2841000E */ slti $at, $v0, 0xe
/* B72B44 800FB9A4 14200009 */ bnez $at, .L800FB9CC
/* B72B48 800FB9A8 2448FF76 */ addiu $t0, $v0, -0x8a
/* B72B4C 800FB9AC 2D010005 */ sltiu $at, $t0, 5
/* B72B50 800FB9B0 10200039 */ beqz $at, .L800FBA98
/* B72B54 800FB9B4 00084080 */ sll $t0, $t0, 2
/* B72B58 800FB9B8 3C018015 */ lui $at, %hi(jtbl_8014A6F0)
/* B72B5C 800FB9BC 00280821 */ addu $at, $at, $t0
/* B72B60 800FB9C0 8C28A6F0 */ lw $t0, %lo(jtbl_8014A6F0)($at)
/* B72B64 800FB9C4 01000008 */ jr $t0
/* B72B68 800FB9C8 00000000 */ nop
.L800FB9CC:
/* B72B6C 800FB9CC 2401000D */ li $at, 13
/* B72B70 800FB9D0 5041000D */ beql $v0, $at, .L800FBA08
/* B72B74 800FB9D4 960B000C */ lhu $t3, 0xc($s0)
/* B72B78 800FB9D8 10000030 */ b .L800FBA9C
/* B72B7C 800FB9DC 8FBF001C */ lw $ra, 0x1c($sp)
.L800FB9E0:
/* B72B80 800FB9E0 1040002D */ beqz $v0, .L800FBA98
/* B72B84 800FB9E4 24010009 */ li $at, 9
/* B72B88 800FB9E8 10410009 */ beq $v0, $at, .L800FBA10
/* B72B8C 800FB9EC 2401000A */ li $at, 10
/* B72B90 800FB9F0 5441002A */ bnel $v0, $at, .L800FBA9C
/* B72B94 800FB9F4 8FBF001C */ lw $ra, 0x1c($sp)
/* B72B98 800FB9F8 9609000A */ lhu $t1, 0xa($s0)
/* B72B9C 800FB9FC 252A0020 */ addiu $t2, $t1, 0x20
/* B72BA0 800FBA00 A60A000A */ sh $t2, 0xa($s0)
/* B72BA4 800FBA04 960B000C */ lhu $t3, 0xc($s0)
.L800FBA08:
/* B72BA8 800FBA08 10000023 */ b .L800FBA98
/* B72BAC 800FBA0C A60B0008 */ sh $t3, 8($s0)
.L800FBA10:
/* B72BB0 800FBA10 02002025 */ move $a0, $s0
.L800FBA14:
/* B72BB4 800FBA14 0C03ED16 */ jal GfxPrint_PrintCharImpl
/* B72BB8 800FBA18 24050020 */ li $a1, 32
/* B72BBC 800FBA1C 960C0008 */ lhu $t4, 8($s0)
/* B72BC0 800FBA20 960D000C */ lhu $t5, 0xc($s0)
/* B72BC4 800FBA24 018D7023 */ subu $t6, $t4, $t5
/* B72BC8 800FBA28 05C10004 */ bgez $t6, .L800FBA3C
/* B72BCC 800FBA2C 31CF00FF */ andi $t7, $t6, 0xff
/* B72BD0 800FBA30 11E00002 */ beqz $t7, .L800FBA3C
/* B72BD4 800FBA34 00000000 */ nop
/* B72BD8 800FBA38 25EFFF00 */ addiu $t7, $t7, -0x100
.L800FBA3C:
/* B72BDC 800FBA3C 55E0FFF5 */ bnezl $t7, .L800FBA14
/* B72BE0 800FBA40 02002025 */ move $a0, $s0
/* B72BE4 800FBA44 10000015 */ b .L800FBA9C
/* B72BE8 800FBA48 8FBF001C */ lw $ra, 0x1c($sp)
glabel L800FBA4C
/* B72BEC 800FBA4C 9218000F */ lbu $t8, 0xf($s0)
/* B72BF0 800FBA50 37190001 */ ori $t9, $t8, 1
/* B72BF4 800FBA54 10000010 */ b .L800FBA98
/* B72BF8 800FBA58 A219000F */ sb $t9, 0xf($s0)
glabel L800FBA5C
/* B72BFC 800FBA5C 9208000F */ lbu $t0, 0xf($s0)
/* B72C00 800FBA60 3109FFFE */ andi $t1, $t0, 0xfffe
/* B72C04 800FBA64 1000000C */ b .L800FBA98
/* B72C08 800FBA68 A209000F */ sb $t1, 0xf($s0)
glabel L800FBA6C
/* B72C0C 800FBA6C 920A000F */ lbu $t2, 0xf($s0)
/* B72C10 800FBA70 354C0002 */ ori $t4, $t2, 2
/* B72C14 800FBA74 A20C000F */ sb $t4, 0xf($s0)
/* B72C18 800FBA78 358D0008 */ ori $t5, $t4, 8
/* B72C1C 800FBA7C 10000006 */ b .L800FBA98
/* B72C20 800FBA80 A20D000F */ sb $t5, 0xf($s0)
glabel L800FBA84
/* B72C24 800FBA84 920E000F */ lbu $t6, 0xf($s0)
/* B72C28 800FBA88 31D8FFFD */ andi $t8, $t6, 0xfffd
/* B72C2C 800FBA8C A218000F */ sb $t8, 0xf($s0)
/* B72C30 800FBA90 37190008 */ ori $t9, $t8, 8
/* B72C34 800FBA94 A219000F */ sb $t9, 0xf($s0)
.L800FBA98:
glabel L800FBA98
/* B72C38 800FBA98 8FBF001C */ lw $ra, 0x1c($sp)
.L800FBA9C:
/* B72C3C 800FBA9C 8FB00018 */ lw $s0, 0x18($sp)
/* B72C40 800FBAA0 27BD0020 */ addiu $sp, $sp, 0x20
/* B72C44 800FBAA4 03E00008 */ jr $ra
/* B72C48 800FBAA8 00000000 */ nop

View file

@ -1,86 +0,0 @@
.late_rodata
glabel D_80139DDC
.float 0.1
glabel D_80139DE0
.float 0.2
.text
glabel func_800457A8
/* ABC948 800457A8 27BDFFA0 */ addiu $sp, $sp, -0x60
/* ABC94C 800457AC AFB00020 */ sw $s0, 0x20($sp)
/* ABC950 800457B0 00808025 */ move $s0, $a0
/* ABC954 800457B4 AFBF0024 */ sw $ra, 0x24($sp)
/* ABC958 800457B8 AFA50064 */ sw $a1, 0x64($sp)
/* ABC95C 800457BC AFA60068 */ sw $a2, 0x68($sp)
/* ABC960 800457C0 AFA7006C */ sw $a3, 0x6c($sp)
/* ABC964 800457C4 0C00B721 */ jal func_8002DC84
/* ABC968 800457C8 8C840090 */ lw $a0, 0x90($a0)
/* ABC96C 800457CC C7A40068 */ lwc1 $f4, 0x68($sp)
/* ABC970 800457D0 44801000 */ mtc1 $zero, $f2
/* ABC974 800457D4 87AE006E */ lh $t6, 0x6e($sp)
/* ABC978 800457D8 46040180 */ add.s $f6, $f0, $f4
/* ABC97C 800457DC 46000386 */ mov.s $f14, $f0
/* ABC980 800457E0 E7A20050 */ swc1 $f2, 0x50($sp)
/* ABC984 800457E4 E7A20058 */ swc1 $f2, 0x58($sp)
/* ABC988 800457E8 11C00014 */ beqz $t6, .L8004583C
/* ABC98C 800457EC E7A60054 */ swc1 $f6, 0x54($sp)
/* ABC990 800457F0 3C188016 */ lui $t8, %hi(gGameInfo) # $t8, 0x8016
/* ABC994 800457F4 8F18FA90 */ lw $t8, %lo(gGameInfo)($t8)
/* ABC998 800457F8 8FAF0064 */ lw $t7, 0x64($sp)
/* ABC99C 800457FC 860500A2 */ lh $a1, 0xa2($s0)
/* ABC9A0 80045800 871901A6 */ lh $t9, 0x1a6($t8)
/* ABC9A4 80045804 85E60006 */ lh $a2, 6($t7)
/* ABC9A8 80045808 E7AE0038 */ swc1 $f14, 0x38($sp)
/* ABC9AC 8004580C 44994000 */ mtc1 $t9, $f8
/* ABC9B0 80045810 26040108 */ addiu $a0, $s0, 0x108
/* ABC9B4 80045814 46804220 */ cvt.s.w $f8, $f8
/* ABC9B8 80045818 44074000 */ mfc1 $a3, $f8
/* ABC9BC 8004581C 0C0115C5 */ jal func_80045714
/* ABC9C0 80045820 00000000 */ nop
/* ABC9C4 80045824 C7AE0038 */ lwc1 $f14, 0x38($sp)
/* ABC9C8 80045828 0C01F02A */ jal func_8007C0A8
/* ABC9CC 8004582C 46000306 */ mov.s $f12, $f0
/* ABC9D0 80045830 C7AA0054 */ lwc1 $f10, 0x54($sp)
/* ABC9D4 80045834 46005401 */ sub.s $f16, $f10, $f0
/* ABC9D8 80045838 E7B00054 */ swc1 $f16, 0x54($sp)
.L8004583C:
/* ABC9DC 8004583C 3C018014 */ lui $at, %hi(D_80139DDC)
/* ABC9E0 80045840 C4329DDC */ lwc1 $f18, %lo(D_80139DDC)($at)
/* ABC9E4 80045844 8E0600D0 */ lw $a2, 0xd0($s0)
/* ABC9E8 80045848 8E0700CC */ lw $a3, 0xcc($s0)
/* ABC9EC 8004584C 26020094 */ addiu $v0, $s0, 0x94
/* ABC9F0 80045850 AFA2002C */ sw $v0, 0x2c($sp)
/* ABC9F4 80045854 27A40050 */ addiu $a0, $sp, 0x50
/* ABC9F8 80045858 260500E4 */ addiu $a1, $s0, 0xe4
/* ABC9FC 8004585C 0C010E8F */ jal func_80043A3C
/* ABCA00 80045860 E7B20010 */ swc1 $f18, 0x10($sp)
/* ABCA04 80045864 8FA2002C */ lw $v0, 0x2c($sp)
/* ABCA08 80045868 C60600E4 */ lwc1 $f6, 0xe4($s0)
/* ABCA0C 8004586C 3C018014 */ lui $at, %hi(D_80139DE0)
/* ABCA10 80045870 C4440000 */ lwc1 $f4, ($v0)
/* ABCA14 80045874 27A40044 */ addiu $a0, $sp, 0x44
/* ABCA18 80045878 26050050 */ addiu $a1, $s0, 0x50
/* ABCA1C 8004587C 46062200 */ add.s $f8, $f4, $f6
/* ABCA20 80045880 E7A80044 */ swc1 $f8, 0x44($sp)
/* ABCA24 80045884 C61000E8 */ lwc1 $f16, 0xe8($s0)
/* ABCA28 80045888 C44A0004 */ lwc1 $f10, 4($v0)
/* ABCA2C 8004588C 46105480 */ add.s $f18, $f10, $f16
/* ABCA30 80045890 C42A9DE0 */ lwc1 $f10, %lo(D_80139DE0)($at)
/* ABCA34 80045894 E7B20048 */ swc1 $f18, 0x48($sp)
/* ABCA38 80045898 C60600EC */ lwc1 $f6, 0xec($s0)
/* ABCA3C 8004589C C4440008 */ lwc1 $f4, 8($v0)
/* ABCA40 800458A0 46062200 */ add.s $f8, $f4, $f6
/* ABCA44 800458A4 E7A8004C */ swc1 $f8, 0x4c($sp)
/* ABCA48 800458A8 C6000100 */ lwc1 $f0, 0x100($s0)
/* ABCA4C 800458AC E7AA0010 */ swc1 $f10, 0x10($sp)
/* ABCA50 800458B0 44060000 */ mfc1 $a2, $f0
/* ABCA54 800458B4 44070000 */ mfc1 $a3, $f0
/* ABCA58 800458B8 0C010E8F */ jal func_80043A3C
/* ABCA5C 800458BC 00000000 */ nop
/* ABCA60 800458C0 8FBF0024 */ lw $ra, 0x24($sp)
/* ABCA64 800458C4 8FB00020 */ lw $s0, 0x20($sp)
/* ABCA68 800458C8 27BD0060 */ addiu $sp, $sp, 0x60
/* ABCA6C 800458CC 03E00008 */ jr $ra
/* ABCA70 800458D0 24020001 */ li $v0, 1

View file

@ -1,116 +0,0 @@
.rdata
glabel D_8013984C
.asciz "camera: room type: default set field\n"
.balign 4
glabel D_80139874
.asciz "camera: room type: default set etc (%d)\n"
.balign 4
glabel D_801398A0
.asciz "camera: room type: prerender\n"
.balign 4
.text
glabel func_80057FC4
/* ACF164 80057FC4 27BDFFD0 */ addiu $sp, $sp, -0x30
/* ACF168 80057FC8 AFBF002C */ sw $ra, 0x2c($sp)
/* ACF16C 80057FCC AFB00028 */ sw $s0, 0x28($sp)
/* ACF170 80057FD0 8C82008C */ lw $v0, 0x8c($a0)
/* ACF174 80057FD4 3C010001 */ lui $at, 1
/* ACF178 80057FD8 00808025 */ move $s0, $a0
/* ACF17C 80057FDC 244E01E0 */ addiu $t6, $v0, 0x1e0
/* ACF180 80057FE0 108E0009 */ beq $a0, $t6, .L80058008
/* ACF184 80057FE4 00411821 */ addu $v1, $v0, $at
/* ACF188 80057FE8 8499014C */ lh $t9, 0x14c($a0)
/* ACF18C 80057FEC 240F0021 */ li $t7, 33
/* ACF190 80057FF0 A48F0142 */ sh $t7, 0x142($a0)
/* ACF194 80057FF4 84980142 */ lh $t8, 0x142($a0)
/* ACF198 80057FF8 3328FFFB */ andi $t0, $t9, 0xfffb
/* ACF19C 80057FFC A488014C */ sh $t0, 0x14c($a0)
/* ACF1A0 80058000 1000004A */ b .L8005812C
/* ACF1A4 80058004 A4980154 */ sh $t8, 0x154($a0)
.L80058008:
/* ACF1A8 80058008 8C691CC4 */ lw $t1, 0x1cc4($v1)
/* ACF1AC 8005800C 24060001 */ li $a2, 1
/* ACF1B0 80058010 3C048014 */ lui $a0, %hi(D_801398A0)
/* ACF1B4 80058014 912A0000 */ lbu $t2, ($t1)
/* ACF1B8 80058018 10CA003B */ beq $a2, $t2, .L80058108
/* ACF1BC 8005801C 00000000 */ nop
/* ACF1C0 80058020 90651CBF */ lbu $a1, 0x1cbf($v1)
/* ACF1C4 80058024 3C048014 */ lui $a0, %hi(D_8013984C)
/* ACF1C8 80058028 10A00012 */ beqz $a1, .L80058074
/* ACF1CC 8005802C 00000000 */ nop
/* ACF1D0 80058030 14A60021 */ bne $a1, $a2, .L800580B8
/* ACF1D4 80058034 3C048014 */ lui $a0, %hi(D_80139874) # $a0, 0x8014
/* ACF1D8 80058038 240B0012 */ li $t3, 18
/* ACF1DC 8005803C 240C000A */ li $t4, 10
/* ACF1E0 80058040 AFAC0018 */ sw $t4, 0x18($sp)
/* ACF1E4 80058044 AFAB0014 */ sw $t3, 0x14($sp)
/* ACF1E8 80058048 02002025 */ move $a0, $s0
/* ACF1EC 8005804C 00002825 */ move $a1, $zero
/* ACF1F0 80058050 2406FF9D */ li $a2, -99
/* ACF1F4 80058054 24070000 */ li $a3, 0
/* ACF1F8 80058058 0C016B50 */ jal func_8005AD40
/* ACF1FC 8005805C AFA00010 */ sw $zero, 0x10($sp)
/* ACF200 80058060 240D0003 */ li $t5, 3
/* ACF204 80058064 A60D0142 */ sh $t5, 0x142($s0)
/* ACF208 80058068 860E0142 */ lh $t6, 0x142($s0)
/* ACF20C 8005806C 1000002F */ b .L8005812C
/* ACF210 80058070 A60E0154 */ sh $t6, 0x154($s0)
.L80058074:
/* ACF214 80058074 0C00084C */ jal osSyncPrintf
/* ACF218 80058078 2484984C */ addiu $a0, %lo(D_8013984C) # addiu $a0, $a0, -0x67b4
/* ACF21C 8005807C 240F0012 */ li $t7, 18
/* ACF220 80058080 2418000A */ li $t8, 10
/* ACF224 80058084 AFB80018 */ sw $t8, 0x18($sp)
/* ACF228 80058088 AFAF0014 */ sw $t7, 0x14($sp)
/* ACF22C 8005808C 02002025 */ move $a0, $s0
/* ACF230 80058090 00002825 */ move $a1, $zero
/* ACF234 80058094 2406FF9D */ li $a2, -99
/* ACF238 80058098 24070000 */ li $a3, 0
/* ACF23C 8005809C 0C016B50 */ jal func_8005AD40
/* ACF240 800580A0 AFA00010 */ sw $zero, 0x10($sp)
/* ACF244 800580A4 24190001 */ li $t9, 1
/* ACF248 800580A8 A6190142 */ sh $t9, 0x142($s0)
/* ACF24C 800580AC 86080142 */ lh $t0, 0x142($s0)
/* ACF250 800580B0 1000001E */ b .L8005812C
/* ACF254 800580B4 A6080154 */ sh $t0, 0x154($s0)
.L800580B8:
/* ACF258 800580B8 0C00084C */ jal osSyncPrintf
/* ACF25C 800580BC 24849874 */ addiu $a0, %lo(D_80139874)
/* ACF260 800580C0 24090012 */ li $t1, 18
/* ACF264 800580C4 240A000A */ li $t2, 10
/* ACF268 800580C8 AFAA0018 */ sw $t2, 0x18($sp)
/* ACF26C 800580CC AFA90014 */ sw $t1, 0x14($sp)
/* ACF270 800580D0 02002025 */ move $a0, $s0
/* ACF274 800580D4 00002825 */ move $a1, $zero
/* ACF278 800580D8 2406FF9D */ li $a2, -99
/* ACF27C 800580DC 24070000 */ li $a3, 0
/* ACF280 800580E0 0C016B50 */ jal func_8005AD40
/* ACF284 800580E4 AFA00010 */ sw $zero, 0x10($sp)
/* ACF288 800580E8 860D014C */ lh $t5, 0x14c($s0)
/* ACF28C 800580EC 240B0001 */ li $t3, 1
/* ACF290 800580F0 A60B0142 */ sh $t3, 0x142($s0)
/* ACF294 800580F4 860C0142 */ lh $t4, 0x142($s0)
/* ACF298 800580F8 35AE0004 */ ori $t6, $t5, 4
/* ACF29C 800580FC A60E014C */ sh $t6, 0x14c($s0)
/* ACF2A0 80058100 1000000A */ b .L8005812C
/* ACF2A4 80058104 A60C0154 */ sh $t4, 0x154($s0)
.L80058108:
/* ACF2A8 80058108 0C00084C */ jal osSyncPrintf
/* ACF2AC 8005810C 248498A0 */ addiu $a0, %lo(D_801398A0)
/* ACF2B0 80058110 240F0021 */ li $t7, 33
/* ACF2B4 80058114 8619014C */ lh $t9, 0x14c($s0)
/* ACF2B8 80058118 A60F0142 */ sh $t7, 0x142($s0)
/* ACF2BC 8005811C 86180142 */ lh $t8, 0x142($s0)
/* ACF2C0 80058120 3328FFFB */ andi $t0, $t9, 0xfffb
/* ACF2C4 80058124 A608014C */ sh $t0, 0x14c($s0)
/* ACF2C8 80058128 A6180154 */ sh $t8, 0x154($s0)
.L8005812C:
/* ACF2CC 8005812C 8FBF002C */ lw $ra, 0x2c($sp)
/* ACF2D0 80058130 8FB00028 */ lw $s0, 0x28($sp)
/* ACF2D4 80058134 27BD0030 */ addiu $sp, $sp, 0x30
/* ACF2D8 80058138 03E00008 */ jr $ra
/* ACF2DC 8005813C 00000000 */ nop

View file

@ -1,67 +0,0 @@
glabel func_8097CB0C
/* 0029C 8097CB0C 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 002A0 8097CB10 AFBF0014 */ sw $ra, 0x0014($sp)
/* 002A4 8097CB14 AFA40040 */ sw $a0, 0x0040($sp)
/* 002A8 8097CB18 90AE1D6C */ lbu $t6, 0x1D6C($a1) ## 00001D6C
/* 002AC 8097CB1C 51C00037 */ beql $t6, $zero, .L8097CBFC
/* 002B0 8097CB20 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002B4 8097CB24 0C25F21C */ jal func_8097C870
/* 002B8 8097CB28 AFA50044 */ sw $a1, 0x0044($sp)
/* 002BC 8097CB2C 8FA50044 */ lw $a1, 0x0044($sp)
/* 002C0 8097CB30 00027880 */ sll $t7, $v0, 2
/* 002C4 8097CB34 24A71D64 */ addiu $a3, $a1, 0x1D64 ## $a3 = 00001D64
/* 002C8 8097CB38 00EFC021 */ addu $t8, $a3, $t7
/* 002CC 8097CB3C 8F030028 */ lw $v1, 0x0028($t8) ## 00000028
/* 002D0 8097CB40 5060002E */ beql $v1, $zero, .L8097CBFC
/* 002D4 8097CB44 8FBF0014 */ lw $ra, 0x0014($sp)
/* 002D8 8097CB48 94640004 */ lhu $a0, 0x0004($v1) ## 00000004
/* 002DC 8097CB4C 94650002 */ lhu $a1, 0x0002($v1) ## 00000002
/* 002E0 8097CB50 94E60010 */ lhu $a2, 0x0010($a3) ## 00001D74
/* 002E4 8097CB54 0C01BE4F */ jal func_8006F93C
/* 002E8 8097CB58 AFA30030 */ sw $v1, 0x0030($sp)
/* 002EC 8097CB5C 8FA30030 */ lw $v1, 0x0030($sp)
/* 002F0 8097CB60 8FA50040 */ lw $a1, 0x0040($sp)
/* 002F4 8097CB64 8C680010 */ lw $t0, 0x0010($v1) ## 00000010
/* 002F8 8097CB68 8C79000C */ lw $t9, 0x000C($v1) ## 0000000C
/* 002FC 8097CB6C 8C6A0018 */ lw $t2, 0x0018($v1) ## 00000018
/* 00300 8097CB70 8C690014 */ lw $t1, 0x0014($v1) ## 00000014
/* 00304 8097CB74 44883000 */ mtc1 $t0, $f6 ## $f6 = 0.00
/* 00308 8097CB78 8C6C0020 */ lw $t4, 0x0020($v1) ## 00000020
/* 0030C 8097CB7C 44992000 */ mtc1 $t9, $f4 ## $f4 = 0.00
/* 00310 8097CB80 8C6B001C */ lw $t3, 0x001C($v1) ## 0000001C
/* 00314 8097CB84 448A5000 */ mtc1 $t2, $f10 ## $f10 = 0.00
/* 00318 8097CB88 46803320 */ cvt.s.w $f12, $f6
/* 0031C 8097CB8C 44894000 */ mtc1 $t1, $f8 ## $f8 = 0.00
/* 00320 8097CB90 448C3000 */ mtc1 $t4, $f6 ## $f6 = 0.00
/* 00324 8097CB94 24A20024 */ addiu $v0, $a1, 0x0024 ## $v0 = 00000024
/* 00328 8097CB98 468020A0 */ cvt.s.w $f2, $f4
/* 0032C 8097CB9C 448B2000 */ mtc1 $t3, $f4 ## $f4 = 0.00
/* 00330 8097CBA0 46805420 */ cvt.s.w $f16, $f10
/* 00334 8097CBA4 468043A0 */ cvt.s.w $f14, $f8
/* 00338 8097CBA8 46803220 */ cvt.s.w $f8, $f6
/* 0033C 8097CBAC 468024A0 */ cvt.s.w $f18, $f4
/* 00340 8097CBB0 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00344 8097CBB4 46028281 */ sub.s $f10, $f16, $f2
/* 00348 8097CBB8 460C9201 */ sub.s $f8, $f18, $f12
/* 0034C 8097CBBC 46005102 */ mul.s $f4, $f10, $f0
/* 00350 8097CBC0 00000000 */ nop
/* 00354 8097CBC4 46004282 */ mul.s $f10, $f8, $f0
/* 00358 8097CBC8 46022180 */ add.s $f6, $f4, $f2
/* 0035C 8097CBCC 460C5100 */ add.s $f4, $f10, $f12
/* 00360 8097CBD0 E4460000 */ swc1 $f6, 0x0000($v0) ## 00000024
/* 00364 8097CBD4 E4440004 */ swc1 $f4, 0x0004($v0) ## 00000028
/* 00368 8097CBD8 C7A60018 */ lwc1 $f6, 0x0018($sp)
/* 0036C 8097CBDC 460E3201 */ sub.s $f8, $f6, $f14
/* 00370 8097CBE0 46004282 */ mul.s $f10, $f8, $f0
/* 00374 8097CBE4 460E5100 */ add.s $f4, $f10, $f14
/* 00378 8097CBE8 E4440008 */ swc1 $f4, 0x0008($v0) ## 0000002C
/* 0037C 8097CBEC 84640008 */ lh $a0, 0x0008($v1) ## 00000008
/* 00380 8097CBF0 A4A400B6 */ sh $a0, 0x00B6($a1) ## 000000B6
/* 00384 8097CBF4 A444000E */ sh $a0, 0x000E($v0) ## 00000032
/* 00388 8097CBF8 8FBF0014 */ lw $ra, 0x0014($sp)
.L8097CBFC:
/* 0038C 8097CBFC 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00390 8097CC00 03E00008 */ jr $ra
/* 00394 8097CC04 00000000 */ nop

View file

@ -1,95 +0,0 @@
.rdata
glabel D_8097D4CC
.asciz "../z_demo_go.c"
.balign 4
glabel D_8097D4DC
.asciz "../z_demo_go.c"
.balign 4
.text
glabel func_8097D29C
/* 00A2C 8097D29C 27BDFFA0 */ addiu $sp, $sp, 0xFFA0 ## $sp = FFFFFFA0
/* 00A30 8097D2A0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00A34 8097D2A4 AFA40060 */ sw $a0, 0x0060($sp)
/* 00A38 8097D2A8 AFA50064 */ sw $a1, 0x0064($sp)
/* 00A3C 8097D2AC 84820190 */ lh $v0, 0x0190($a0) ## 00000190
/* 00A40 8097D2B0 3C188098 */ lui $t8, %hi(D_8097D440) ## $t8 = 80980000
/* 00A44 8097D2B4 3C068098 */ lui $a2, %hi(D_8097D4CC) ## $a2 = 80980000
/* 00A48 8097D2B8 00027880 */ sll $t7, $v0, 2
/* 00A4C 8097D2BC 030FC021 */ addu $t8, $t8, $t7
/* 00A50 8097D2C0 8F18D440 */ lw $t8, %lo(D_8097D440)($t8)
/* 00A54 8097D2C4 24C6D4CC */ addiu $a2, $a2, %lo(D_8097D4CC) ## $a2 = 8097D4CC
/* 00A58 8097D2C8 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFD8
/* 00A5C 8097D2CC AFB80050 */ sw $t8, 0x0050($sp)
/* 00A60 8097D2D0 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00A64 8097D2D4 240702DC */ addiu $a3, $zero, 0x02DC ## $a3 = 000002DC
/* 00A68 8097D2D8 0C031AB1 */ jal func_800C6AC4
/* 00A6C 8097D2DC AFA50048 */ sw $a1, 0x0048($sp)
/* 00A70 8097D2E0 8FA90064 */ lw $t1, 0x0064($sp)
/* 00A74 8097D2E4 0C024F46 */ jal func_80093D18
/* 00A78 8097D2E8 8D240000 */ lw $a0, 0x0000($t1) ## 00000000
/* 00A7C 8097D2EC 8FA80048 */ lw $t0, 0x0048($sp)
/* 00A80 8097D2F0 8FA40050 */ lw $a0, 0x0050($sp)
/* 00A84 8097D2F4 3C058016 */ lui $a1, 0x8016 ## $a1 = 80160000
/* 00A88 8097D2F8 8D0302C0 */ lw $v1, 0x02C0($t0) ## 000002C0
/* 00A8C 8097D2FC 00046100 */ sll $t4, $a0, 4
/* 00A90 8097D300 000C6F02 */ srl $t5, $t4, 28
/* 00A94 8097D304 3C0BDB06 */ lui $t3, 0xDB06 ## $t3 = DB060000
/* 00A98 8097D308 246A0008 */ addiu $t2, $v1, 0x0008 ## $t2 = 00000008
/* 00A9C 8097D30C 356B0020 */ ori $t3, $t3, 0x0020 ## $t3 = DB060020
/* 00AA0 8097D310 000D7080 */ sll $t6, $t5, 2
/* 00AA4 8097D314 24A56FA8 */ addiu $a1, $a1, 0x6FA8 ## $a1 = 80166FA8
/* 00AA8 8097D318 AD0A02C0 */ sw $t2, 0x02C0($t0) ## 000002C0
/* 00AAC 8097D31C 00AE7821 */ addu $t7, $a1, $t6
/* 00AB0 8097D320 AC6B0000 */ sw $t3, 0x0000($v1) ## 00000000
/* 00AB4 8097D324 8DF80000 */ lw $t8, 0x0000($t7) ## 00000000
/* 00AB8 8097D328 3C0600FF */ lui $a2, 0x00FF ## $a2 = 00FF0000
/* 00ABC 8097D32C 34C6FFFF */ ori $a2, $a2, 0xFFFF ## $a2 = 00FFFFFF
/* 00AC0 8097D330 0086C824 */ and $t9, $a0, $a2
/* 00AC4 8097D334 3C078000 */ lui $a3, 0x8000 ## $a3 = 80000000
/* 00AC8 8097D338 03194821 */ addu $t1, $t8, $t9
/* 00ACC 8097D33C 01275021 */ addu $t2, $t1, $a3
/* 00AD0 8097D340 AC6A0004 */ sw $t2, 0x0004($v1) ## 00000004
/* 00AD4 8097D344 8D0302C0 */ lw $v1, 0x02C0($t0) ## 000002C0
/* 00AD8 8097D348 3C040601 */ lui $a0, 0x0601 ## $a0 = 06010000
/* 00ADC 8097D34C 2484E680 */ addiu $a0, $a0, 0xE680 ## $a0 = 0600E680
/* 00AE0 8097D350 00046900 */ sll $t5, $a0, 4
/* 00AE4 8097D354 000D7702 */ srl $t6, $t5, 28
/* 00AE8 8097D358 3C0CDB06 */ lui $t4, 0xDB06 ## $t4 = DB060000
/* 00AEC 8097D35C 246B0008 */ addiu $t3, $v1, 0x0008 ## $t3 = 00000008
/* 00AF0 8097D360 358C0024 */ ori $t4, $t4, 0x0024 ## $t4 = DB060024
/* 00AF4 8097D364 000E7880 */ sll $t7, $t6, 2
/* 00AF8 8097D368 AD0B02C0 */ sw $t3, 0x02C0($t0) ## 000002C0
/* 00AFC 8097D36C 00AFC021 */ addu $t8, $a1, $t7
/* 00B00 8097D370 AC6C0000 */ sw $t4, 0x0000($v1) ## 00000000
/* 00B04 8097D374 8F190000 */ lw $t9, 0x0000($t8) ## 00000000
/* 00B08 8097D378 00864824 */ and $t1, $a0, $a2
/* 00B0C 8097D37C 03295021 */ addu $t2, $t9, $t1
/* 00B10 8097D380 01475821 */ addu $t3, $t2, $a3
/* 00B14 8097D384 AC6B0004 */ sw $t3, 0x0004($v1) ## 00000004
/* 00B18 8097D388 8FA30060 */ lw $v1, 0x0060($sp)
/* 00B1C 8097D38C 8FA40064 */ lw $a0, 0x0064($sp)
/* 00B20 8097D390 2462014C */ addiu $v0, $v1, 0x014C ## $v0 = 0000014C
/* 00B24 8097D394 8C450004 */ lw $a1, 0x0004($v0) ## 00000150
/* 00B28 8097D398 8C460020 */ lw $a2, 0x0020($v0) ## 0000016C
/* 00B2C 8097D39C 90470002 */ lbu $a3, 0x0002($v0) ## 0000014E
/* 00B30 8097D3A0 AFA00014 */ sw $zero, 0x0014($sp)
/* 00B34 8097D3A4 AFA00010 */ sw $zero, 0x0010($sp)
/* 00B38 8097D3A8 0C0286B2 */ jal func_800A1AC8
/* 00B3C 8097D3AC AFA30018 */ sw $v1, 0x0018($sp)
/* 00B40 8097D3B0 8FAC0064 */ lw $t4, 0x0064($sp)
/* 00B44 8097D3B4 3C068098 */ lui $a2, %hi(D_8097D4DC) ## $a2 = 80980000
/* 00B48 8097D3B8 24C6D4DC */ addiu $a2, $a2, %lo(D_8097D4DC) ## $a2 = 8097D4DC
/* 00B4C 8097D3BC 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFD8
/* 00B50 8097D3C0 240702EA */ addiu $a3, $zero, 0x02EA ## $a3 = 000002EA
/* 00B54 8097D3C4 0C031AD5 */ jal func_800C6B54
/* 00B58 8097D3C8 8D850000 */ lw $a1, 0x0000($t4) ## 00000000
/* 00B5C 8097D3CC 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00B60 8097D3D0 27BD0060 */ addiu $sp, $sp, 0x0060 ## $sp = 00000000
/* 00B64 8097D3D4 03E00008 */ jr $ra
/* 00B68 8097D3D8 00000000 */ nop

View file

@ -1,19 +0,0 @@
glabel DoorAna_Destroy
/* 000C4 80993FB4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 000C8 80993FB8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 000CC 80993FBC 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 000D0 80993FC0 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 000D4 80993FC4 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 000D8 80993FC8 31CF0200 */ andi $t7, $t6, 0x0200 ## $t7 = 00000000
/* 000DC 80993FCC 51E00004 */ beql $t7, $zero, .L80993FE0
/* 000E0 80993FD0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000E4 80993FD4 0C0170EB */ jal ActorCollider_FreeCylinder
/* 000E8 80993FD8 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C
/* 000EC 80993FDC 8FBF0014 */ lw $ra, 0x0014($sp)
.L80993FE0:
/* 000F0 80993FE0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000F4 80993FE4 03E00008 */ jr $ra
/* 000F8 80993FE8 00000000 */ nop

View file

@ -1,52 +0,0 @@
glabel DoorAna_Draw
/* 004E8 809943D8 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 004EC 809943DC AFBF001C */ sw $ra, 0x001C($sp)
/* 004F0 809943E0 AFB00018 */ sw $s0, 0x0018($sp)
/* 004F4 809943E4 AFA40040 */ sw $a0, 0x0040($sp)
/* 004F8 809943E8 AFA50044 */ sw $a1, 0x0044($sp)
/* 004FC 809943EC 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00500 809943F0 3C068099 */ lui $a2, %hi(D_80994510) ## $a2 = 80990000
/* 00504 809943F4 24C64510 */ addiu $a2, $a2, %lo(D_80994510) ## $a2 = 80994510
/* 00508 809943F8 27A4002C */ addiu $a0, $sp, 0x002C ## $a0 = FFFFFFEC
/* 0050C 809943FC 240701B8 */ addiu $a3, $zero, 0x01B8 ## $a3 = 000001B8
/* 00510 80994400 0C031AB1 */ jal func_800C6AC4
/* 00514 80994404 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000
/* 00518 80994408 8FAF0044 */ lw $t7, 0x0044($sp)
/* 0051C 8099440C 0C024F61 */ jal func_80093D84
/* 00520 80994410 8DE40000 */ lw $a0, 0x0000($t7) ## 00000000
/* 00524 80994414 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 00528 80994418 3C19DA38 */ lui $t9, 0xDA38 ## $t9 = DA380000
/* 0052C 8099441C 37390003 */ ori $t9, $t9, 0x0003 ## $t9 = DA380003
/* 00530 80994420 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00534 80994424 AE1802D0 */ sw $t8, 0x02D0($s0) ## 000002D0
/* 00538 80994428 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 0053C 8099442C 8FA80044 */ lw $t0, 0x0044($sp)
/* 00540 80994430 3C058099 */ lui $a1, %hi(D_80994520) ## $a1 = 80990000
/* 00544 80994434 24A54520 */ addiu $a1, $a1, %lo(D_80994520) ## $a1 = 80994520
/* 00548 80994438 8D040000 */ lw $a0, 0x0000($t0) ## 00000000
/* 0054C 8099443C 240601BE */ addiu $a2, $zero, 0x01BE ## $a2 = 000001BE
/* 00550 80994440 0C0346A2 */ jal Matrix_NewMtx
/* 00554 80994444 AFA20028 */ sw $v0, 0x0028($sp)
/* 00558 80994448 8FA30028 */ lw $v1, 0x0028($sp)
/* 0055C 8099444C 3C0B0500 */ lui $t3, 0x0500 ## $t3 = 05000000
/* 00560 80994450 256B1390 */ addiu $t3, $t3, 0x1390 ## $t3 = 05001390
/* 00564 80994454 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 00568 80994458 8E0202D0 */ lw $v0, 0x02D0($s0) ## 000002D0
/* 0056C 8099445C 3C0ADE00 */ lui $t2, 0xDE00 ## $t2 = DE000000
/* 00570 80994460 3C068099 */ lui $a2, %hi(D_80994530) ## $a2 = 80990000
/* 00574 80994464 24490008 */ addiu $t1, $v0, 0x0008 ## $t1 = 00000008
/* 00578 80994468 AE0902D0 */ sw $t1, 0x02D0($s0) ## 000002D0
/* 0057C 8099446C AC4B0004 */ sw $t3, 0x0004($v0) ## 00000004
/* 00580 80994470 AC4A0000 */ sw $t2, 0x0000($v0) ## 00000000
/* 00584 80994474 8FAC0044 */ lw $t4, 0x0044($sp)
/* 00588 80994478 24C64530 */ addiu $a2, $a2, %lo(D_80994530) ## $a2 = 80994530
/* 0058C 8099447C 27A4002C */ addiu $a0, $sp, 0x002C ## $a0 = FFFFFFEC
/* 00590 80994480 240701C1 */ addiu $a3, $zero, 0x01C1 ## $a3 = 000001C1
/* 00594 80994484 0C031AD5 */ jal func_800C6B54
/* 00598 80994488 8D850000 */ lw $a1, 0x0000($t4) ## 00000000
/* 0059C 8099448C 8FBF001C */ lw $ra, 0x001C($sp)
/* 005A0 80994490 8FB00018 */ lw $s0, 0x0018($sp)
/* 005A4 80994494 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 005A8 80994498 03E00008 */ jr $ra
/* 005AC 8099449C 00000000 */ nop

View file

@ -1,57 +0,0 @@
glabel DoorAna_Init
/* 00008 80993EF8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 0000C 80993EFC AFBF001C */ sw $ra, 0x001C($sp)
/* 00010 80993F00 AFB00018 */ sw $s0, 0x0018($sp)
/* 00014 80993F04 AFA5002C */ sw $a1, 0x002C($sp)
/* 00018 80993F08 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 0001C 80993F0C A48000B8 */ sh $zero, 0x00B8($a0) ## 000000B8
/* 00020 80993F10 848E00B8 */ lh $t6, 0x00B8($a0) ## 000000B8
/* 00024 80993F14 304F0300 */ andi $t7, $v0, 0x0300 ## $t7 = 00000000
/* 00028 80993F18 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0002C 80993F1C 11E0001B */ beq $t7, $zero, .L80993F8C
/* 00030 80993F20 A48E00B6 */ sh $t6, 0x00B6($a0) ## 000000B6
/* 00034 80993F24 30580200 */ andi $t8, $v0, 0x0200 ## $t8 = 00000000
/* 00038 80993F28 1300000C */ beq $t8, $zero, .L80993F5C
/* 0003C 80993F2C 8FA4002C */ lw $a0, 0x002C($sp)
/* 00040 80993F30 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 00044 80993F34 0C0170D9 */ jal ActorCollider_AllocCylinder
/* 00048 80993F38 AFA50020 */ sw $a1, 0x0020($sp)
/* 0004C 80993F3C 3C078099 */ lui $a3, %hi(D_809944C0) ## $a3 = 80990000
/* 00050 80993F40 8FA50020 */ lw $a1, 0x0020($sp)
/* 00054 80993F44 24E744C0 */ addiu $a3, $a3, %lo(D_809944C0) ## $a3 = 809944C0
/* 00058 80993F48 8FA4002C */ lw $a0, 0x002C($sp)
/* 0005C 80993F4C 0C01712B */ jal ActorCollider_InitCylinder
/* 00060 80993F50 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00064 80993F54 10000005 */ beq $zero, $zero, .L80993F6C
/* 00068 80993F58 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80993F5C:
/* 0006C 80993F5C 8E190004 */ lw $t9, 0x0004($s0) ## 00000004
/* 00070 80993F60 37280010 */ ori $t0, $t9, 0x0010 ## $t0 = 00000010
/* 00074 80993F64 AE080004 */ sw $t0, 0x0004($s0) ## 00000004
/* 00078 80993F68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80993F6C:
/* 0007C 80993F6C 0C00B58B */ jal Actor_SetScale
/* 00080 80993F70 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00084 80993F74 3C058099 */ lui $a1, %hi(func_80993FEC) ## $a1 = 80990000
/* 00088 80993F78 24A53FEC */ addiu $a1, $a1, %lo(func_80993FEC) ## $a1 = 80993FEC
/* 0008C 80993F7C 0C264FBC */ jal func_80993EF0
/* 00090 80993F80 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00094 80993F84 10000006 */ beq $zero, $zero, .L80993FA0
/* 00098 80993F88 A200001F */ sb $zero, 0x001F($s0) ## 0000001F
.L80993F8C:
/* 0009C 80993F8C 3C058099 */ lui $a1, %hi(func_80994124) ## $a1 = 80990000
/* 000A0 80993F90 24A54124 */ addiu $a1, $a1, %lo(func_80994124) ## $a1 = 80994124
/* 000A4 80993F94 0C264FBC */ jal func_80993EF0
/* 000A8 80993F98 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 000AC 80993F9C A200001F */ sb $zero, 0x001F($s0) ## 0000001F
.L80993FA0:
/* 000B0 80993FA0 8FBF001C */ lw $ra, 0x001C($sp)
/* 000B4 80993FA4 8FB00018 */ lw $s0, 0x0018($sp)
/* 000B8 80993FA8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 000BC 80993FAC 03E00008 */ jr $ra
/* 000C0 80993FB0 00000000 */ nop

View file

@ -1,24 +0,0 @@
glabel DoorAna_Update
/* 00494 80994384 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00498 80994388 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0049C 8099438C AFA40018 */ sw $a0, 0x0018($sp)
/* 004A0 80994390 AFA5001C */ sw $a1, 0x001C($sp)
/* 004A4 80994394 8C990198 */ lw $t9, 0x0198($a0) ## 00000198
/* 004A8 80994398 0320F809 */ jalr $ra, $t9
/* 004AC 8099439C 00000000 */ nop
/* 004B0 809943A0 8FA5001C */ lw $a1, 0x001C($sp)
/* 004B4 809943A4 84AE07A0 */ lh $t6, 0x07A0($a1) ## 000007A0
/* 004B8 809943A8 000E7880 */ sll $t7, $t6, 2
/* 004BC 809943AC 00AFC021 */ addu $t8, $a1, $t7
/* 004C0 809943B0 0C016A7D */ jal func_8005A9F4
/* 004C4 809943B4 8F040790 */ lw $a0, 0x0790($t8) ## 00000790
/* 004C8 809943B8 8FA90018 */ lw $t1, 0x0018($sp)
/* 004CC 809943BC 34018000 */ ori $at, $zero, 0x8000 ## $at = 00008000
/* 004D0 809943C0 00414021 */ addu $t0, $v0, $at
/* 004D4 809943C4 A52800B6 */ sh $t0, 0x00B6($t1) ## 000000B6
/* 004D8 809943C8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 004DC 809943CC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 004E0 809943D0 03E00008 */ jr $ra
/* 004E4 809943D4 00000000 */ nop

View file

@ -1,5 +0,0 @@
glabel func_80993EF0
/* 00000 80993EF0 03E00008 */ jr $ra
/* 00004 80993EF4 AC850198 */ sw $a1, 0x0198($a0) ## 00000198

View file

@ -1,90 +0,0 @@
glabel func_80993FEC
/* 000FC 80993FEC 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00100 80993FF0 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00104 80993FF4 AFB00020 */ sw $s0, 0x0020($sp)
/* 00108 80993FF8 AFA50034 */ sw $a1, 0x0034($sp)
/* 0010C 80993FFC AFA0002C */ sw $zero, 0x002C($sp)
/* 00110 80994000 848E001C */ lh $t6, 0x001C($a0) ## 0000001C
/* 00114 80994004 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00118 80994008 3C018099 */ lui $at, %hi(D_80994540) ## $at = 80990000
/* 0011C 8099400C 31CF0200 */ andi $t7, $t6, 0x0200 ## $t7 = 00000000
/* 00120 80994010 55E00013 */ bnel $t7, $zero, .L80994060
/* 00124 80994014 9209015D */ lbu $t1, 0x015D($s0) ## 0000015D
/* 00128 80994018 C484008C */ lwc1 $f4, 0x008C($a0) ## 0000008C
/* 0012C 8099401C C4264540 */ lwc1 $f6, %lo(D_80994540)($at)
/* 00130 80994020 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00134 80994024 4606203C */ c.lt.s $f4, $f6
/* 00138 80994028 00000000 */ nop
/* 0013C 8099402C 45020021 */ bc1fl .L809940B4
/* 00140 80994030 8FAD002C */ lw $t5, 0x002C($sp)
/* 00144 80994034 0C01B129 */ jal func_8006C4A4
/* 00148 80994038 24050005 */ addiu $a1, $zero, 0x0005 ## $a1 = 00000005
/* 0014C 8099403C 1040001C */ beq $v0, $zero, .L809940B0
/* 00150 80994040 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00154 80994044 AFB8002C */ sw $t8, 0x002C($sp)
/* 00158 80994048 8E190004 */ lw $t9, 0x0004($s0) ## 00000004
/* 0015C 8099404C 2401FFEF */ addiu $at, $zero, 0xFFEF ## $at = FFFFFFEF
/* 00160 80994050 03214024 */ and $t0, $t9, $at
/* 00164 80994054 10000016 */ beq $zero, $zero, .L809940B0
/* 00168 80994058 AE080004 */ sw $t0, 0x0004($s0) ## 00000004
/* 0016C 8099405C 9209015D */ lbu $t1, 0x015D($s0) ## 0000015D
.L80994060:
/* 00170 80994060 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C
/* 00174 80994064 00C02825 */ or $a1, $a2, $zero ## $a1 = 0000014C
/* 00178 80994068 312A0002 */ andi $t2, $t1, 0x0002 ## $t2 = 00000000
/* 0017C 8099406C 11400008 */ beq $t2, $zero, .L80994090
/* 00180 80994070 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00184 80994074 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001
/* 00188 80994078 AFAB002C */ sw $t3, 0x002C($sp)
/* 0018C 8099407C 8FA40034 */ lw $a0, 0x0034($sp)
/* 00190 80994080 0C0170EB */ jal ActorCollider_FreeCylinder
/* 00194 80994084 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 00198 80994088 1000000A */ beq $zero, $zero, .L809940B4
/* 0019C 8099408C 8FAD002C */ lw $t5, 0x002C($sp)
.L80994090:
/* 001A0 80994090 0C0189B7 */ jal ActorCollider_Cylinder_Update
/* 001A4 80994094 AFA60028 */ sw $a2, 0x0028($sp)
/* 001A8 80994098 8FA40034 */ lw $a0, 0x0034($sp)
/* 001AC 8099409C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 001B0 809940A0 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 001B4 809940A4 8FA60028 */ lw $a2, 0x0028($sp)
/* 001B8 809940A8 0C01767D */ jal Actor_CollisionCheck_SetAC
## CollisionCheck_setAC
/* 001BC 809940AC 00812821 */ addu $a1, $a0, $at
.L809940B0:
/* 001C0 809940B0 8FAD002C */ lw $t5, 0x002C($sp)
.L809940B4:
/* 001C4 809940B4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001C8 809940B8 51A00013 */ beql $t5, $zero, .L80994108
/* 001CC 809940BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 001D0 809940C0 860E001C */ lh $t6, 0x001C($s0) ## 0000001C
/* 001D4 809940C4 3C058099 */ lui $a1, %hi(func_80994124) ## $a1 = 80990000
/* 001D8 809940C8 24A54124 */ addiu $a1, $a1, %lo(func_80994124) ## $a1 = 80994124
/* 001DC 809940CC 31CFFCFF */ andi $t7, $t6, 0xFCFF ## $t7 = 00000000
/* 001E0 809940D0 0C264FBC */ jal func_80993EF0
/* 001E4 809940D4 A60F001C */ sh $t7, 0x001C($s0) ## 0000001C
/* 001E8 809940D8 3C078013 */ lui $a3, 0x8013 ## $a3 = 80130000
/* 001EC 809940DC 3C188013 */ lui $t8, 0x8013 ## $t8 = 80130000
/* 001F0 809940E0 24E733E0 */ addiu $a3, $a3, 0x33E0 ## $a3 = 801333E0
/* 001F4 809940E4 271833E8 */ addiu $t8, $t8, 0x33E8 ## $t8 = 801333E8
/* 001F8 809940E8 3C058013 */ lui $a1, 0x8013 ## $a1 = 80130000
/* 001FC 809940EC 24A533D4 */ addiu $a1, $a1, 0x33D4 ## $a1 = 801333D4
/* 00200 809940F0 AFB80014 */ sw $t8, 0x0014($sp)
/* 00204 809940F4 AFA70010 */ sw $a3, 0x0010($sp)
/* 00208 809940F8 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802
/* 0020C 809940FC 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* 00210 80994100 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 00214 80994104 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80994108:
/* 00218 80994108 0C00BD7C */ jal func_8002F5F0
/* 0021C 8099410C 8FA50034 */ lw $a1, 0x0034($sp)
/* 00220 80994110 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00224 80994114 8FB00020 */ lw $s0, 0x0020($sp)
/* 00228 80994118 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0022C 8099411C 03E00008 */ jr $ra
/* 00230 80994120 00000000 */ nop

View file

@ -1,119 +0,0 @@
glabel func_80994124
/* 00234 80994124 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00238 80994128 AFBF001C */ sw $ra, 0x001C($sp)
/* 0023C 8099412C AFB00018 */ sw $s0, 0x0018($sp)
/* 00240 80994130 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 00244 80994134 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000
/* 00248 80994138 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0024C 8099413C 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00250 80994140 3C063A83 */ lui $a2, 0x3A83 ## $a2 = 3A830000
/* 00254 80994144 34C6126F */ ori $a2, $a2, 0x126F ## $a2 = 3A83126F
/* 00258 80994148 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 0025C 8099414C 24840050 */ addiu $a0, $a0, 0x0050 ## $a0 = 00000050
/* 00260 80994150 AFA7002C */ sw $a3, 0x002C($sp)
/* 00264 80994154 0C01DE80 */ jal Math_ApproxF
/* 00268 80994158 AFA30024 */ sw $v1, 0x0024($sp)
/* 0026C 8099415C 8FA30024 */ lw $v1, 0x0024($sp)
/* 00270 80994160 10400055 */ beq $v0, $zero, .L809942B8
/* 00274 80994164 8FA7002C */ lw $a3, 0x002C($sp)
/* 00278 80994168 820E001F */ lb $t6, 0x001F($s0) ## 0000001F
/* 0027C 8099416C 3C0F0001 */ lui $t7, 0x0001 ## $t7 = 00010000
/* 00280 80994170 01E77821 */ addu $t7, $t7, $a3
/* 00284 80994174 11C0002F */ beq $t6, $zero, .L80994234
/* 00288 80994178 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 0028C 8099417C 81EF1E15 */ lb $t7, 0x1E15($t7) ## 00011E15
/* 00290 80994180 15E0002C */ bne $t7, $zero, .L80994234
/* 00294 80994184 00000000 */ nop
/* 00298 80994188 8C78067C */ lw $t8, 0x067C($v1) ## 0000067C
/* 0029C 8099418C 0018C800 */ sll $t9, $t8, 0
/* 002A0 80994190 07210028 */ bgez $t9, .L80994234
/* 002A4 80994194 00000000 */ nop
/* 002A8 80994198 8068084F */ lb $t0, 0x084F($v1) ## 0000084F
/* 002AC 8099419C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 002B0 809941A0 240604FF */ addiu $a2, $zero, 0x04FF ## $a2 = 000004FF
/* 002B4 809941A4 15000023 */ bne $t0, $zero, .L80994234
/* 002B8 809941A8 00000000 */ nop
/* 002BC 809941AC 8602001C */ lh $v0, 0x001C($s0) ## 0000001C
/* 002C0 809941B0 AFA7002C */ sw $a3, 0x002C($sp)
/* 002C4 809941B4 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000
/* 002C8 809941B8 00021303 */ sra $v0, $v0, 12
/* 002CC 809941BC 30420007 */ andi $v0, $v0, 0x0007 ## $v0 = 00000000
/* 002D0 809941C0 2442FFFF */ addiu $v0, $v0, 0xFFFF ## $v0 = FFFFFFFF
/* 002D4 809941C4 0C0302BD */ jal func_800C0AF4
/* 002D8 809941C8 AFA20020 */ sw $v0, 0x0020($sp)
/* 002DC 809941CC C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 002E0 809941D0 3C038016 */ lui $v1, 0x8016 ## $v1 = 80160000
/* 002E4 809941D4 2463E660 */ addiu $v1, $v1, 0xE660 ## $v1 = 8015E660
/* 002E8 809941D8 E4641388 */ swc1 $f4, 0x1388($v1) ## 8015F9E8
/* 002EC 809941DC 86090016 */ lh $t1, 0x0016($s0) ## 00000016
/* 002F0 809941E0 8FA20020 */ lw $v0, 0x0020($sp)
/* 002F4 809941E4 8FA7002C */ lw $a3, 0x002C($sp)
/* 002F8 809941E8 A4691390 */ sh $t1, 0x1390($v1) ## 8015F9F0
/* 002FC 809941EC 860B001C */ lh $t3, 0x001C($s0) ## 0000001C
/* 00300 809941F0 3C0D8099 */ lui $t5, %hi(D_809944EC) ## $t5 = 80990000
/* 00304 809941F4 04410003 */ bgez $v0, .L80994204
/* 00308 809941F8 A06B1397 */ sb $t3, 0x1397($v1) ## 8015F9F7
/* 0030C 809941FC 86020018 */ lh $v0, 0x0018($s0) ## 00000018
/* 00310 80994200 24420001 */ addiu $v0, $v0, 0x0001 ## $v0 = 00000001
.L80994204:
/* 00314 80994204 00026040 */ sll $t4, $v0, 1
/* 00318 80994208 01AC6821 */ addu $t5, $t5, $t4
/* 0031C 8099420C 85AD44EC */ lh $t5, %lo(D_809944EC)($t5)
/* 00320 80994210 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00324 80994214 00270821 */ addu $at, $at, $a3
/* 00328 80994218 3C058099 */ lui $a1, %hi(func_809942D8) ## $a1 = 80990000
/* 0032C 8099421C 24A542D8 */ addiu $a1, $a1, %lo(func_809942D8) ## $a1 = 809942D8
/* 00330 80994220 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00334 80994224 0C264FBC */ jal func_80993EF0
/* 00338 80994228 A42D1E1A */ sh $t5, 0x1E1A($at) ## 00011E1A
/* 0033C 8099422C 10000023 */ beq $zero, $zero, .L809942BC
/* 00340 80994230 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80994234:
/* 00344 80994234 0C023A62 */ jal func_8008E988
/* 00348 80994238 AFA30024 */ sw $v1, 0x0024($sp)
/* 0034C 8099423C 1440001D */ bne $v0, $zero, .L809942B4
/* 00350 80994240 8FA30024 */ lw $v1, 0x0024($sp)
/* 00354 80994244 8C62067C */ lw $v0, 0x067C($v1) ## 0000067C
/* 00358 80994248 3C010880 */ lui $at, 0x0880 ## $at = 08800000
/* 0035C 8099424C 00417024 */ and $t6, $v0, $at
/* 00360 80994250 15C00018 */ bne $t6, $zero, .L809942B4
/* 00364 80994254 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00368 80994258 44811000 */ mtc1 $at, $f2 ## $f2 = 15.00
/* 0036C 8099425C C6060090 */ lwc1 $f6, 0x0090($s0) ## 00000090
/* 00370 80994260 3C01C248 */ lui $at, 0xC248 ## $at = C2480000
/* 00374 80994264 4602303E */ c.le.s $f6, $f2
/* 00378 80994268 00000000 */ nop
/* 0037C 8099426C 45020012 */ bc1fl .L809942B8
/* 00380 80994270 A200001F */ sb $zero, 0x001F($s0) ## 0000001F
/* 00384 80994274 C6000094 */ lwc1 $f0, 0x0094($s0) ## 00000094
/* 00388 80994278 44814000 */ mtc1 $at, $f8 ## $f8 = -50.00
/* 0038C 8099427C 00000000 */ nop
/* 00390 80994280 4600403E */ c.le.s $f8, $f0
/* 00394 80994284 00000000 */ nop
/* 00398 80994288 4502000B */ bc1fl .L809942B8
/* 0039C 8099428C A200001F */ sb $zero, 0x001F($s0) ## 0000001F
/* 003A0 80994290 4602003E */ c.le.s $f0, $f2
/* 003A4 80994294 3C018000 */ lui $at, 0x8000 ## $at = 80000000
/* 003A8 80994298 00417825 */ or $t7, $v0, $at ## $t7 = 80000000
/* 003AC 8099429C 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 003B0 809942A0 45020005 */ bc1fl .L809942B8
/* 003B4 809942A4 A200001F */ sb $zero, 0x001F($s0) ## 0000001F
/* 003B8 809942A8 AC6F067C */ sw $t7, 0x067C($v1) ## 0000067C
/* 003BC 809942AC 10000002 */ beq $zero, $zero, .L809942B8
/* 003C0 809942B0 A218001F */ sb $t8, 0x001F($s0) ## 0000001F
.L809942B4:
/* 003C4 809942B4 A200001F */ sb $zero, 0x001F($s0) ## 0000001F
.L809942B8:
/* 003C8 809942B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L809942BC:
/* 003CC 809942BC 0C00B58B */ jal Actor_SetScale
/* 003D0 809942C0 8E050050 */ lw $a1, 0x0050($s0) ## 00000050
/* 003D4 809942C4 8FBF001C */ lw $ra, 0x001C($sp)
/* 003D8 809942C8 8FB00018 */ lw $s0, 0x0018($sp)
/* 003DC 809942CC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 003E0 809942D0 03E00008 */ jr $ra
/* 003E4 809942D4 00000000 */ nop

View file

@ -1,49 +0,0 @@
glabel func_809942D8
/* 003E8 809942D8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 003EC 809942DC AFBF0014 */ sw $ra, 0x0014($sp)
/* 003F0 809942E0 C4860094 */ lwc1 $f6, 0x0094($a0) ## 00000094
/* 003F4 809942E4 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00
/* 003F8 809942E8 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 003FC 809942EC 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00400 809942F0 4604303E */ c.le.s $f6, $f4
/* 00404 809942F4 00000000 */ nop
/* 00408 809942F8 4502001F */ bc1fl .L80994378
/* 0040C 809942FC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00410 80994300 44814000 */ mtc1 $at, $f8 ## $f8 = 15.00
/* 00414 80994304 C48A0090 */ lwc1 $f10, 0x0090($a0) ## 00000090
/* 00418 80994308 460A403C */ c.lt.s $f8, $f10
/* 0041C 8099430C 00000000 */ nop
/* 00420 80994310 45020019 */ bc1fl .L80994378
/* 00424 80994314 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00428 80994318 8CAE1C44 */ lw $t6, 0x1C44($a1) ## 00001C44
/* 0042C 8099431C AFAE001C */ sw $t6, 0x001C($sp)
/* 00430 80994320 8484008A */ lh $a0, 0x008A($a0) ## 0000008A
/* 00434 80994324 0C01DE1C */ jal Math_Sins
## sins?
/* 00438 80994328 AFA60020 */ sw $a2, 0x0020($sp)
/* 0043C 8099432C 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00440 80994330 44818000 */ mtc1 $at, $f16 ## $f16 = 15.00
/* 00444 80994334 8FA60020 */ lw $a2, 0x0020($sp)
/* 00448 80994338 8FAF001C */ lw $t7, 0x001C($sp)
/* 0044C 8099433C 46100482 */ mul.s $f18, $f0, $f16
/* 00450 80994340 C4C40024 */ lwc1 $f4, 0x0024($a2) ## 00000024
/* 00454 80994344 46049180 */ add.s $f6, $f18, $f4
/* 00458 80994348 E5E60024 */ swc1 $f6, 0x0024($t7) ## 00000024
/* 0045C 8099434C 0C01DE0D */ jal Math_Coss
## coss?
/* 00460 80994350 84C4008A */ lh $a0, 0x008A($a2) ## 0000008A
/* 00464 80994354 3C014170 */ lui $at, 0x4170 ## $at = 41700000
/* 00468 80994358 44814000 */ mtc1 $at, $f8 ## $f8 = 15.00
/* 0046C 8099435C 8FA60020 */ lw $a2, 0x0020($sp)
/* 00470 80994360 8FB8001C */ lw $t8, 0x001C($sp)
/* 00474 80994364 46080282 */ mul.s $f10, $f0, $f8
/* 00478 80994368 C4D0002C */ lwc1 $f16, 0x002C($a2) ## 0000002C
/* 0047C 8099436C 46105480 */ add.s $f18, $f10, $f16
/* 00480 80994370 E712002C */ swc1 $f18, 0x002C($t8) ## 0000002C
/* 00484 80994374 8FBF0014 */ lw $ra, 0x0014($sp)
.L80994378:
/* 00488 80994378 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 0048C 8099437C 03E00008 */ jr $ra
/* 00490 80994380 00000000 */ nop

View file

@ -1,16 +0,0 @@
glabel EnLightbox_Destroy
/* 0012C 80A9EAFC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00130 80A9EB00 AFA40018 */ sw $a0, 0x0018($sp)
/* 00134 80A9EB04 8FAE0018 */ lw $t6, 0x0018($sp)
/* 00138 80A9EB08 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0013C 80A9EB0C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 00140 80A9EB10 24A50810 */ addiu $a1, $a1, 0x0810 ## $a1 = 00000810
/* 00144 80A9EB14 0C00FB56 */ jal DynaPolyInfo_Free
## DynaPolyInfo_delReserve
/* 00148 80A9EB18 8DC6014C */ lw $a2, 0x014C($t6) ## 0000014C
/* 0014C 80A9EB1C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00150 80A9EB20 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00154 80A9EB24 03E00008 */ jr $ra
/* 00158 80A9EB28 00000000 */ nop

View file

@ -1,14 +0,0 @@
glabel EnLightbox_Draw
/* 003E4 80A9EDB4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 003E8 80A9EDB8 AFA40018 */ sw $a0, 0x0018($sp)
/* 003EC 80A9EDBC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000
/* 003F0 80A9EDC0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 003F4 80A9EDC4 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000
/* 003F8 80A9EDC8 0C00D498 */ jal Draw_DListOpa
/* 003FC 80A9EDCC 24A50B70 */ addiu $a1, $a1, 0x0B70 ## $a1 = 06000B70
/* 00400 80A9EDD0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00404 80A9EDD4 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00408 80A9EDD8 03E00008 */ jr $ra
/* 0040C 80A9EDDC 00000000 */ nop

View file

@ -1,90 +0,0 @@
glabel EnLightbox_Init
/* 00000 80A9E9D0 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00004 80A9E9D4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00008 80A9E9D8 AFB00018 */ sw $s0, 0x0018($sp)
/* 0000C 80A9E9DC AFA50044 */ sw $a1, 0x0044($sp)
/* 00010 80A9E9E0 AFA0003C */ sw $zero, 0x003C($sp)
/* 00014 80A9E9E4 8482001C */ lh $v0, 0x001C($a0) ## 0000001C
/* 00018 80A9E9E8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 0001C 80A9E9EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00020 80A9E9F0 1040000C */ beq $v0, $zero, .L80A9EA24
/* 00024 80A9E9F4 3C053CCC */ lui $a1, 0x3CCC ## $a1 = 3CCC0000
/* 00028 80A9E9F8 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001
/* 0002C 80A9E9FC 1041000D */ beq $v0, $at, .L80A9EA34
/* 00030 80A9EA00 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00034 80A9EA04 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00038 80A9EA08 1041000F */ beq $v0, $at, .L80A9EA48
/* 0003C 80A9EA0C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00040 80A9EA10 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00044 80A9EA14 10410011 */ beq $v0, $at, .L80A9EA5C
/* 00048 80A9EA18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0004C 80A9EA1C 10000013 */ beq $zero, $zero, .L80A9EA6C
/* 00050 80A9EA20 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024
.L80A9EA24:
/* 00054 80A9EA24 0C00B58B */ jal Actor_SetScale
/* 00058 80A9EA28 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3CCCCCCD
/* 0005C 80A9EA2C 1000000F */ beq $zero, $zero, .L80A9EA6C
/* 00060 80A9EA30 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024
.L80A9EA34:
/* 00064 80A9EA34 3C053D4C */ lui $a1, 0x3D4C ## $a1 = 3D4C0000
/* 00068 80A9EA38 0C00B58B */ jal Actor_SetScale
/* 0006C 80A9EA3C 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3D4CCCCD
/* 00070 80A9EA40 1000000A */ beq $zero, $zero, .L80A9EA6C
/* 00074 80A9EA44 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024
.L80A9EA48:
/* 00078 80A9EA48 3C053D99 */ lui $a1, 0x3D99 ## $a1 = 3D990000
/* 0007C 80A9EA4C 0C00B58B */ jal Actor_SetScale
/* 00080 80A9EA50 34A5999A */ ori $a1, $a1, 0x999A ## $a1 = 3D99999A
/* 00084 80A9EA54 10000005 */ beq $zero, $zero, .L80A9EA6C
/* 00088 80A9EA58 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024
.L80A9EA5C:
/* 0008C 80A9EA5C 3C053DCC */ lui $a1, 0x3DCC ## $a1 = 3DCC0000
/* 00090 80A9EA60 0C00B58B */ jal Actor_SetScale
/* 00094 80A9EA64 34A5CCCD */ ori $a1, $a1, 0xCCCD ## $a1 = 3DCCCCCD
/* 00098 80A9EA68 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024
.L80A9EA6C:
/* 0009C 80A9EA6C 8E0E0028 */ lw $t6, 0x0028($s0) ## 00000028
/* 000A0 80A9EA70 2418001E */ addiu $t8, $zero, 0x001E ## $t8 = 0000001E
/* 000A4 80A9EA74 AE0F0038 */ sw $t7, 0x0038($s0) ## 00000038
/* 000A8 80A9EA78 8E0F002C */ lw $t7, 0x002C($s0) ## 0000002C
/* 000AC 80A9EA7C 24190032 */ addiu $t9, $zero, 0x0032 ## $t9 = 00000032
/* 000B0 80A9EA80 3C068003 */ lui $a2, 0x8003 ## $a2 = 80030000
/* 000B4 80A9EA84 A61800A8 */ sh $t8, 0x00A8($s0) ## 000000A8
/* 000B8 80A9EA88 A61900AA */ sh $t9, 0x00AA($s0) ## 000000AA
/* 000BC 80A9EA8C 24C6B5EC */ addiu $a2, $a2, 0xB5EC ## $a2 = 8002B5EC
/* 000C0 80A9EA90 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4
/* 000C4 80A9EA94 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 000C8 80A9EA98 3C0740C0 */ lui $a3, 0x40C0 ## $a3 = 40C00000
/* 000CC 80A9EA9C AE0E003C */ sw $t6, 0x003C($s0) ## 0000003C
/* 000D0 80A9EAA0 0C00AC78 */ jal ActorShape_Init
/* 000D4 80A9EAA4 AE0F0040 */ sw $t7, 0x0040($s0) ## 00000040
/* 000D8 80A9EAA8 3C01C000 */ lui $at, 0xC000 ## $at = C0000000
/* 000DC 80A9EAAC 44812000 */ mtc1 $at, $f4 ## $f4 = -2.00
/* 000E0 80A9EAB0 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000
/* 000E4 80A9EAB4 A2000160 */ sb $zero, 0x0160($s0) ## 00000160
/* 000E8 80A9EAB8 AE00015C */ sw $zero, 0x015C($s0) ## 0000015C
/* 000EC 80A9EABC A200001F */ sb $zero, 0x001F($s0) ## 0000001F
/* 000F0 80A9EAC0 24841F10 */ addiu $a0, $a0, 0x1F10 ## $a0 = 06001F10
/* 000F4 80A9EAC4 27A5003C */ addiu $a1, $sp, 0x003C ## $a1 = FFFFFFFC
/* 000F8 80A9EAC8 0C010620 */ jal DynaPolyInfo_Alloc
/* 000FC 80A9EACC E604006C */ swc1 $f4, 0x006C($s0) ## 0000006C
/* 00100 80A9EAD0 8FA40044 */ lw $a0, 0x0044($sp)
/* 00104 80A9EAD4 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 00108 80A9EAD8 8FA7003C */ lw $a3, 0x003C($sp)
/* 0010C 80A9EADC 0C00FA9D */ jal DynaPolyInfo_RegisterActor
## DynaPolyInfo_setActor
/* 00110 80A9EAE0 24850810 */ addiu $a1, $a0, 0x0810 ## $a1 = 00000810
/* 00114 80A9EAE4 AE02014C */ sw $v0, 0x014C($s0) ## 0000014C
/* 00118 80A9EAE8 8FBF001C */ lw $ra, 0x001C($sp)
/* 0011C 80A9EAEC 8FB00018 */ lw $s0, 0x0018($sp)
/* 00120 80A9EAF0 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 00124 80A9EAF4 03E00008 */ jr $ra
/* 00128 80A9EAF8 00000000 */ nop

View file

@ -1,177 +0,0 @@
glabel EnLightbox_Update
/* 0015C 80A9EB2C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00160 80A9EB30 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00164 80A9EB34 AFB00020 */ sw $s0, 0x0020($sp)
/* 00168 80A9EB38 AFA5002C */ sw $a1, 0x002C($sp)
/* 0016C 80A9EB3C 848E0162 */ lh $t6, 0x0162($a0) ## 00000162
/* 00170 80A9EB40 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00174 80A9EB44 51C00008 */ beql $t6, $zero, .L80A9EB68
/* 00178 80A9EB48 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0017C 80A9EB4C 0C00BD68 */ jal func_8002F5A0
/* 00180 80A9EB50 00000000 */ nop
/* 00184 80A9EB54 1040007C */ beq $v0, $zero, .L80A9ED48
/* 00188 80A9EB58 00000000 */ nop
/* 0018C 80A9EB5C 1000007A */ beq $zero, $zero, .L80A9ED48
/* 00190 80A9EB60 A6000162 */ sh $zero, 0x0162($s0) ## 00000162
/* 00194 80A9EB64 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80A9EB68:
/* 00198 80A9EB68 0C00BD04 */ jal func_8002F410
/* 0019C 80A9EB6C 8FA5002C */ lw $a1, 0x002C($sp)
/* 001A0 80A9EB70 50400006 */ beql $v0, $zero, .L80A9EB8C
/* 001A4 80A9EB74 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 001A8 80A9EB78 860F0162 */ lh $t7, 0x0162($s0) ## 00000162
/* 001AC 80A9EB7C 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 001B0 80A9EB80 10000071 */ beq $zero, $zero, .L80A9ED48
/* 001B4 80A9EB84 A6180162 */ sh $t8, 0x0162($s0) ## 00000162
/* 001B8 80A9EB88 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
.L80A9EB8C:
/* 001BC 80A9EB8C C6040068 */ lwc1 $f4, 0x0068($s0) ## 00000068
/* 001C0 80A9EB90 46040032 */ c.eq.s $f0, $f4
/* 001C4 80A9EB94 00000000 */ nop
/* 001C8 80A9EB98 4503001D */ bc1tl .L80A9EC10
/* 001CC 80A9EB9C 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
/* 001D0 80A9EBA0 96190088 */ lhu $t9, 0x0088($s0) ## 00000088
/* 001D4 80A9EBA4 3C078013 */ lui $a3, 0x8013 ## $a3 = 80130000
/* 001D8 80A9EBA8 24E733E0 */ addiu $a3, $a3, 0x33E0 ## $a3 = 801333E0
/* 001DC 80A9EBAC 33280008 */ andi $t0, $t9, 0x0008 ## $t0 = 00000000
/* 001E0 80A9EBB0 11000016 */ beq $t0, $zero, .L80A9EC0C
/* 001E4 80A9EBB4 2404282F */ addiu $a0, $zero, 0x282F ## $a0 = 0000282F
/* 001E8 80A9EBB8 86020032 */ lh $v0, 0x0032($s0) ## 00000032
/* 001EC 80A9EBBC 8609007E */ lh $t1, 0x007E($s0) ## 0000007E
/* 001F0 80A9EBC0 3C0C8013 */ lui $t4, 0x8013 ## $t4 = 80130000
/* 001F4 80A9EBC4 258C33E8 */ addiu $t4, $t4, 0x33E8 ## $t4 = 801333E8
/* 001F8 80A9EBC8 00495021 */ addu $t2, $v0, $t1
/* 001FC 80A9EBCC 01425823 */ subu $t3, $t2, $v0
/* 00200 80A9EBD0 A60B0032 */ sh $t3, 0x0032($s0) ## 00000032
/* 00204 80A9EBD4 AFAC0014 */ sw $t4, 0x0014($sp)
/* 00208 80A9EBD8 AFA70010 */ sw $a3, 0x0010($sp)
/* 0020C 80A9EBDC 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4
/* 00210 80A9EBE0 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* 00214 80A9EBE4 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 00218 80A9EBE8 3C0180AA */ lui $at, %hi(D_80A9EE00) ## $at = 80AA0000
/* 0021C 80A9EBEC C428EE00 */ lwc1 $f8, %lo(D_80A9EE00)($at)
/* 00220 80A9EBF0 C6060068 */ lwc1 $f6, 0x0068($s0) ## 00000068
/* 00224 80A9EBF4 960D0088 */ lhu $t5, 0x0088($s0) ## 00000088
/* 00228 80A9EBF8 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0022C 80A9EBFC 46083282 */ mul.s $f10, $f6, $f8
/* 00230 80A9EC00 31AEFFF7 */ andi $t6, $t5, 0xFFF7 ## $t6 = 00000000
/* 00234 80A9EC04 A60E0088 */ sh $t6, 0x0088($s0) ## 00000088
/* 00238 80A9EC08 E60A0068 */ swc1 $f10, 0x0068($s0) ## 00000068
.L80A9EC0C:
/* 0023C 80A9EC0C 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088
.L80A9EC10:
/* 00240 80A9EC10 3C198016 */ lui $t9, 0x8016 ## $t9 = 80160000
/* 00244 80A9EC14 3C098016 */ lui $t1, 0x8016 ## $t1 = 80160000
/* 00248 80A9EC18 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000000
/* 0024C 80A9EC1C 17000010 */ bne $t8, $zero, .L80A9EC60
/* 00250 80A9EC20 00000000 */ nop
/* 00254 80A9EC24 8F39FA90 */ lw $t9, -0x0570($t9) ## 8015FA90
/* 00258 80A9EC28 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 0025C 80A9EC2C 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00
/* 00260 80A9EC30 87280746 */ lh $t0, 0x0746($t9) ## 80160746
/* 00264 80A9EC34 44050000 */ mfc1 $a1, $f0
/* 00268 80A9EC38 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 0026C 80A9EC3C 44888000 */ mtc1 $t0, $f16 ## $f16 = 0.00
/* 00270 80A9EC40 00000000 */ nop
/* 00274 80A9EC44 468084A0 */ cvt.s.w $f18, $f16
/* 00278 80A9EC48 46049183 */ div.s $f6, $f18, $f4
/* 0027C 80A9EC4C 44063000 */ mfc1 $a2, $f6
/* 00280 80A9EC50 0C01DE80 */ jal Math_ApproxF
/* 00284 80A9EC54 00000000 */ nop
/* 00288 80A9EC58 1000003B */ beq $zero, $zero, .L80A9ED48
/* 0028C 80A9EC5C 00000000 */ nop
.L80A9EC60:
/* 00290 80A9EC60 8D29FA90 */ lw $t1, -0x0570($t1) ## FFFFFA90
/* 00294 80A9EC64 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00298 80A9EC68 44818000 */ mtc1 $at, $f16 ## $f16 = 100.00
/* 0029C 80A9EC6C 852A0748 */ lh $t2, 0x0748($t1) ## 00000748
/* 002A0 80A9EC70 44050000 */ mfc1 $a1, $f0
/* 002A4 80A9EC74 26040068 */ addiu $a0, $s0, 0x0068 ## $a0 = 00000068
/* 002A8 80A9EC78 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00
/* 002AC 80A9EC7C 00000000 */ nop
/* 002B0 80A9EC80 468042A0 */ cvt.s.w $f10, $f8
/* 002B4 80A9EC84 46105483 */ div.s $f18, $f10, $f16
/* 002B8 80A9EC88 44069000 */ mfc1 $a2, $f18
/* 002BC 80A9EC8C 0C01DE80 */ jal Math_ApproxF
/* 002C0 80A9EC90 00000000 */ nop
/* 002C4 80A9EC94 960B0088 */ lhu $t3, 0x0088($s0) ## 00000088
/* 002C8 80A9EC98 3C0D8016 */ lui $t5, 0x8016 ## $t5 = 80160000
/* 002CC 80A9EC9C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 002D0 80A9ECA0 316C0002 */ andi $t4, $t3, 0x0002 ## $t4 = 00000000
/* 002D4 80A9ECA4 11800026 */ beq $t4, $zero, .L80A9ED40
/* 002D8 80A9ECA8 00000000 */ nop
/* 002DC 80A9ECAC 8DADFA90 */ lw $t5, -0x0570($t5) ## 8015FA90
/* 002E0 80A9ECB0 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 002E4 80A9ECB4 44815000 */ mtc1 $at, $f10 ## $f10 = 100.00
/* 002E8 80A9ECB8 85AE074A */ lh $t6, 0x074A($t5) ## 8016074A
/* 002EC 80A9ECBC C6040060 */ lwc1 $f4, 0x0060($s0) ## 00000060
/* 002F0 80A9ECC0 3C0F8013 */ lui $t7, 0x8013 ## $t7 = 80130000
/* 002F4 80A9ECC4 448E3000 */ mtc1 $t6, $f6 ## $f6 = 0.00
/* 002F8 80A9ECC8 3C188013 */ lui $t8, 0x8013 ## $t8 = 80130000
/* 002FC 80A9ECCC 271833E8 */ addiu $t8, $t8, 0x33E8 ## $t8 = 801333E8
/* 00300 80A9ECD0 46803220 */ cvt.s.w $f8, $f6
/* 00304 80A9ECD4 25E733E0 */ addiu $a3, $t7, 0x33E0 ## $a3 = 801333E0
/* 00308 80A9ECD8 260500E4 */ addiu $a1, $s0, 0x00E4 ## $a1 = 000000E4
/* 0030C 80A9ECDC 24060004 */ addiu $a2, $zero, 0x0004 ## $a2 = 00000004
/* 00310 80A9ECE0 460A4403 */ div.s $f16, $f8, $f10
/* 00314 80A9ECE4 4610203C */ c.lt.s $f4, $f16
/* 00318 80A9ECE8 00000000 */ nop
/* 0031C 80A9ECEC 45000014 */ bc1f .L80A9ED40
/* 00320 80A9ECF0 00000000 */ nop
/* 00324 80A9ECF4 2404282F */ addiu $a0, $zero, 0x282F ## $a0 = 0000282F
/* 00328 80A9ECF8 AFA70010 */ sw $a3, 0x0010($sp)
/* 0032C 80A9ECFC 0C03DCE3 */ jal Audio_PlaySoundGeneral
/* 00330 80A9ED00 AFB80014 */ sw $t8, 0x0014($sp)
/* 00334 80A9ED04 3C198016 */ lui $t9, 0x8016 ## $t9 = 80160000
/* 00338 80A9ED08 8F39FA90 */ lw $t9, -0x0570($t9) ## 8015FA90
/* 0033C 80A9ED0C 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000
/* 00340 80A9ED10 44814000 */ mtc1 $at, $f8 ## $f8 = 100.00
/* 00344 80A9ED14 8728074C */ lh $t0, 0x074C($t9) ## 8016074C
/* 00348 80A9ED18 C6040060 */ lwc1 $f4, 0x0060($s0) ## 00000060
/* 0034C 80A9ED1C 96090088 */ lhu $t1, 0x0088($s0) ## 00000088
/* 00350 80A9ED20 44889000 */ mtc1 $t0, $f18 ## $f18 = 0.00
/* 00354 80A9ED24 312AFFFE */ andi $t2, $t1, 0xFFFE ## $t2 = 00000000
/* 00358 80A9ED28 468091A0 */ cvt.s.w $f6, $f18
/* 0035C 80A9ED2C A60A0088 */ sh $t2, 0x0088($s0) ## 00000088
/* 00360 80A9ED30 46083283 */ div.s $f10, $f6, $f8
/* 00364 80A9ED34 460A2402 */ mul.s $f16, $f4, $f10
/* 00368 80A9ED38 10000003 */ beq $zero, $zero, .L80A9ED48
/* 0036C 80A9ED3C E6100060 */ swc1 $f16, 0x0060($s0) ## 00000060
.L80A9ED40:
/* 00370 80A9ED40 0C00BD60 */ jal func_8002F580
/* 00374 80A9ED44 8FA5002C */ lw $a1, 0x002C($sp)
.L80A9ED48:
/* 00378 80A9ED48 0C00B638 */ jal Actor_MoveForward
/* 0037C 80A9ED4C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00380 80A9ED50 860B00AA */ lh $t3, 0x00AA($s0) ## 000000AA
/* 00384 80A9ED54 860C00A8 */ lh $t4, 0x00A8($s0) ## 000000A8
/* 00388 80A9ED58 240D001D */ addiu $t5, $zero, 0x001D ## $t5 = 0000001D
/* 0038C 80A9ED5C 448B9000 */ mtc1 $t3, $f18 ## $f18 = 0.00
/* 00390 80A9ED60 448C3000 */ mtc1 $t4, $f6 ## $f6 = 0.00
/* 00394 80A9ED64 AFAD0014 */ sw $t5, 0x0014($sp)
/* 00398 80A9ED68 468094A0 */ cvt.s.w $f18, $f18
/* 0039C 80A9ED6C 8FA4002C */ lw $a0, 0x002C($sp)
/* 003A0 80A9ED70 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 003A4 80A9ED74 46803020 */ cvt.s.w $f0, $f6
/* 003A8 80A9ED78 44069000 */ mfc1 $a2, $f18
/* 003AC 80A9ED7C 44070000 */ mfc1 $a3, $f0
/* 003B0 80A9ED80 0C00B92D */ jal func_8002E4B4
/* 003B4 80A9ED84 E7A00010 */ swc1 $f0, 0x0010($sp)
/* 003B8 80A9ED88 8E0F0024 */ lw $t7, 0x0024($s0) ## 00000024
/* 003BC 80A9ED8C 8E0E0028 */ lw $t6, 0x0028($s0) ## 00000028
/* 003C0 80A9ED90 AE0F0038 */ sw $t7, 0x0038($s0) ## 00000038
/* 003C4 80A9ED94 8E0F002C */ lw $t7, 0x002C($s0) ## 0000002C
/* 003C8 80A9ED98 AE0E003C */ sw $t6, 0x003C($s0) ## 0000003C
/* 003CC 80A9ED9C AE0F0040 */ sw $t7, 0x0040($s0) ## 00000040
/* 003D0 80A9EDA0 8FBF0024 */ lw $ra, 0x0024($sp)
/* 003D4 80A9EDA4 8FB00020 */ lw $s0, 0x0020($sp)
/* 003D8 80A9EDA8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 003DC 80A9EDAC 03E00008 */ jr $ra
/* 003E0 80A9EDB0 00000000 */ nop

View file

@ -1,57 +0,0 @@
glabel EnTuboTrap_Fly
/* 00A38 80B26328 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 00A3C 80B2632C AFBF001C */ sw $ra, 0x001C($sp)
/* 00A40 80B26330 AFB00018 */ sw $s0, 0x0018($sp)
/* 00A44 80B26334 AFA50034 */ sw $a1, 0x0034($sp)
/* 00A48 80B26338 C4920154 */ lwc1 $f18, 0x0154($a0) ## 00000154
/* 00A4C 80B2633C C4900024 */ lwc1 $f16, 0x0024($a0) ## 00000024
/* 00A50 80B26340 C48E0158 */ lwc1 $f14, 0x0158($a0) ## 00000158
/* 00A54 80B26344 C48C0028 */ lwc1 $f12, 0x0028($a0) ## 00000028
/* 00A58 80B26348 46109401 */ sub.s $f16, $f18, $f16
/* 00A5C 80B2634C C492015C */ lwc1 $f18, 0x015C($a0) ## 0000015C
/* 00A60 80B26350 C48A002C */ lwc1 $f10, 0x002C($a0) ## 0000002C
/* 00A64 80B26354 460C7301 */ sub.s $f12, $f14, $f12
/* 00A68 80B26358 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00A6C 80B2635C E7B0002C */ swc1 $f16, 0x002C($sp)
/* 00A70 80B26360 460A9281 */ sub.s $f10, $f18, $f10
/* 00A74 80B26364 E7AC0028 */ swc1 $f12, 0x0028($sp)
/* 00A78 80B26368 24053037 */ addiu $a1, $zero, 0x3037 ## $a1 = 00003037
/* 00A7C 80B2636C 0C00BE0A */ jal Audio_PlayActorSound2
/* 00A80 80B26370 E7AA0024 */ swc1 $f10, 0x0024($sp)
/* 00A84 80B26374 C7A2002C */ lwc1 $f2, 0x002C($sp)
/* 00A88 80B26378 C7AC0028 */ lwc1 $f12, 0x0028($sp)
/* 00A8C 80B2637C C7AE0024 */ lwc1 $f14, 0x0024($sp)
/* 00A90 80B26380 46021102 */ mul.s $f4, $f2, $f2
/* 00A94 80B26384 3C014370 */ lui $at, 0x4370 ## $at = 43700000
/* 00A98 80B26388 44818000 */ mtc1 $at, $f16 ## $f16 = 240.00
/* 00A9C 80B2638C 460C6182 */ mul.s $f6, $f12, $f12
/* 00AA0 80B26390 3C063E4C */ lui $a2, 0x3E4C ## $a2 = 3E4C0000
/* 00AA4 80B26394 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3E4CCCCD
/* 00AA8 80B26398 460E7282 */ mul.s $f10, $f14, $f14
/* 00AAC 80B2639C 2604006C */ addiu $a0, $s0, 0x006C ## $a0 = 0000006C
/* 00AB0 80B263A0 3C05C040 */ lui $a1, 0xC040 ## $a1 = C0400000
/* 00AB4 80B263A4 46062200 */ add.s $f8, $f4, $f6
/* 00AB8 80B263A8 460A4000 */ add.s $f0, $f8, $f10
/* 00ABC 80B263AC 46000004 */ sqrt.s $f0, $f0
/* 00AC0 80B263B0 4600803C */ c.lt.s $f16, $f0
/* 00AC4 80B263B4 00000000 */ nop
/* 00AC8 80B263B8 45020004 */ bc1fl .L80B263CC
/* 00ACC 80B263BC 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6
/* 00AD0 80B263C0 0C01E107 */ jal Math_SmoothScaleMaxF
/* 00AD4 80B263C4 3C073F00 */ lui $a3, 0x3F00 ## $a3 = 3F000000
/* 00AD8 80B263C8 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6
.L80B263CC:
/* 00ADC 80B263CC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00AE0 80B263D0 25CF1388 */ addiu $t7, $t6, 0x1388 ## $t7 = 00001388
/* 00AE4 80B263D4 A60F00B6 */ sh $t7, 0x00B6($s0) ## 000000B6
/* 00AE8 80B263D8 0C2C97C2 */ jal EnTuboTrap_TestCollider
/* 00AEC 80B263DC 8FA50034 */ lw $a1, 0x0034($sp)
/* 00AF0 80B263E0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00AF4 80B263E4 8FB00018 */ lw $s0, 0x0018($sp)
/* 00AF8 80B263E8 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 00AFC 80B263EC 03E00008 */ jr $ra
/* 00B00 80B263F0 00000000 */ nop

View file

@ -1,4 +1,4 @@
glabel EnTuboTrap_TestCollider
glabel EnTuboTrap_HandleImpact
/* 00618 80B25F08 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 0061C 80B25F0C AFBF001C */ sw $ra, 0x001C($sp)
/* 00620 80B25F10 AFB10018 */ sw $s1, 0x0018($sp)
@ -18,7 +18,7 @@ glabel EnTuboTrap_TestCollider
/* 00658 80B25F48 00000000 */ nop
/* 0065C 80B25F4C 45020010 */ bc1fl .L80B25F90
/* 00660 80B25F50 92020170 */ lbu $v0, 0x0170($s0) ## 00000170
/* 00664 80B25F54 0C2C9723 */ jal EnTuboTrap_FragmentsWater
/* 00664 80B25F54 0C2C9723 */ jal EnTuboTrap_SpawnWaterFragments
/* 00668 80B25F58 00000000 */ nop
/* 0066C 80B25F5C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00670 80B25F60 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
@ -41,7 +41,7 @@ glabel EnTuboTrap_TestCollider
/* 006A8 80B25F98 30580004 */ andi $t8, $v0, 0x0004 ## $t8 = 00000000
/* 006AC 80B25F9C 13000015 */ beq $t8, $zero, .L80B25FF4
/* 006B0 80B25FA0 3059FFFB */ andi $t9, $v0, 0xFFFB ## $t9 = 00000000
/* 006B4 80B25FA4 0C2C9686 */ jal EnTuboTrap_Fragments
/* 006B4 80B25FA4 0C2C9686 */ jal EnTuboTrap_SpawnFragments
/* 006B8 80B25FA8 A2190170 */ sb $t9, 0x0170($s0) ## 00000170
/* 006BC 80B25FAC 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 006C0 80B25FB0 AFA50024 */ sw $a1, 0x0024($sp)
@ -72,7 +72,7 @@ glabel EnTuboTrap_TestCollider
/* 00714 80B26004 11000016 */ beq $t0, $zero, .L80B26060
/* 00718 80B26008 3069FFFD */ andi $t1, $v1, 0xFFFD ## $t1 = 00000000
/* 0071C 80B2600C A2090171 */ sb $t1, 0x0171($s0) ## 00000171
/* 00720 80B26010 0C2C9686 */ jal EnTuboTrap_Fragments
/* 00720 80B26010 0C2C9686 */ jal EnTuboTrap_SpawnFragments
/* 00724 80B26014 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00728 80B26018 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
/* 0072C 80B2601C AFA50024 */ sw $a1, 0x0024($sp)
@ -103,7 +103,7 @@ glabel EnTuboTrap_TestCollider
/* 00780 80B26070 A20B0170 */ sb $t3, 0x0170($s0) ## 00000170
/* 00784 80B26074 14CC0015 */ bne $a2, $t4, .L80B260CC
/* 00788 80B26078 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 0078C 80B2607C 0C2C9686 */ jal EnTuboTrap_Fragments
/* 0078C 80B2607C 0C2C9686 */ jal EnTuboTrap_SpawnFragments
/* 00790 80B26080 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00794 80B26084 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00798 80B26088 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024
@ -136,7 +136,7 @@ glabel EnTuboTrap_TestCollider
/* 007F0 80B260E0 51C0000E */ beql $t6, $zero, .L80B2611C
/* 007F4 80B260E4 8FBF001C */ lw $ra, 0x001C($sp)
.L80B260E8:
/* 007F8 80B260E8 0C2C9686 */ jal EnTuboTrap_Fragments
/* 007F8 80B260E8 0C2C9686 */ jal EnTuboTrap_SpawnFragments
/* 007FC 80B260EC 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00800 80B260F0 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00804 80B260F4 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024

View file

@ -1,40 +0,0 @@
glabel EnTuboTrap_InitializeAttack
/* 009AC 80B2629C 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 009B0 80B262A0 AFBF001C */ sw $ra, 0x001C($sp)
/* 009B4 80B262A4 AFB00018 */ sw $s0, 0x0018($sp)
/* 009B8 80B262A8 AFA50024 */ sw $a1, 0x0024($sp)
/* 009BC 80B262AC 848E00B6 */ lh $t6, 0x00B6($a0) ## 000000B6
/* 009C0 80B262B0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 009C4 80B262B4 3C063F4C */ lui $a2, 0x3F4C ## $a2 = 3F4C0000
/* 009C8 80B262B8 25CF1388 */ addiu $t7, $t6, 0x1388 ## $t7 = 00001388
/* 009CC 80B262BC A48F00B6 */ sh $t7, 0x00B6($a0) ## 000000B6
/* 009D0 80B262C0 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 009D4 80B262C4 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3F4CCCCD
/* 009D8 80B262C8 24840028 */ addiu $a0, $a0, 0x0028 ## $a0 = 00000028
/* 009DC 80B262CC 0C01E107 */ jal Math_SmoothScaleMaxF
/* 009E0 80B262D0 3C074040 */ lui $a3, 0x4040 ## $a3 = 40400000
/* 009E4 80B262D4 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 009E8 80B262D8 C6060150 */ lwc1 $f6, 0x0150($s0) ## 00000150
/* 009EC 80B262DC 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 009F0 80B262E0 44811000 */ mtc1 $at, $f2 ## $f2 = 10.00
/* 009F4 80B262E4 46062001 */ sub.s $f0, $f4, $f6
/* 009F8 80B262E8 3C1980B2 */ lui $t9, %hi(EnTuboTrap_Fly) ## $t9 = 80B20000
/* 009FC 80B262EC 27396328 */ addiu $t9, $t9, %lo(EnTuboTrap_Fly) ## $t9 = 80B26328
/* 00A00 80B262F0 46000005 */ abs.s $f0, $f0
/* 00A04 80B262F4 4602003C */ c.lt.s $f0, $f2
/* 00A08 80B262F8 00000000 */ nop
/* 00A0C 80B262FC 45020006 */ bc1fl .L80B26318
/* 00A10 80B26300 8FBF001C */ lw $ra, 0x001C($sp)
/* 00A14 80B26304 8618008A */ lh $t8, 0x008A($s0) ## 0000008A
/* 00A18 80B26308 E6020068 */ swc1 $f2, 0x0068($s0) ## 00000068
/* 00A1C 80B2630C AE19014C */ sw $t9, 0x014C($s0) ## 0000014C
/* 00A20 80B26310 A6180032 */ sh $t8, 0x0032($s0) ## 00000032
/* 00A24 80B26314 8FBF001C */ lw $ra, 0x001C($sp)
.L80B26318:
/* 00A28 80B26318 8FB00018 */ lw $s0, 0x0018($sp)
/* 00A2C 80B2631C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00A30 80B26320 03E00008 */ jr $ra
/* 00A34 80B26324 00000000 */ nop

View file

@ -1,12 +1,15 @@
.late_rodata
glabel D_80B265C0
.float 0.23
D_80B265C0: .float 0.23
D_80B265C4: .float 0.2
D_80B265C8: .float 0.6
glabel D_80B265C4
.float 0.2
glabel D_80B265C8
.float 0.6
.text
glabel EnTuboTrap_Fragments
glabel EnTuboTrap_SpawnFragments
/* 00128 80B25A18 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20
/* 0012C 80B25A1C F7BE0070 */ sdc1 $f30, 0x0070($sp)
/* 00130 80B25A20 3C0180B2 */ lui $at, %hi(D_80B265C0) ## $at = 80B20000

View file

@ -1,11 +1,12 @@
.late_rodata
glabel D_80B265CC
.float 0.2
D_80B265CC: .float 0.2
D_80B265D0: .float 0.2
glabel D_80B265D0
.float 0.2
.text
glabel EnTuboTrap_FragmentsWater
glabel EnTuboTrap_SpawnWaterFragments
/* 0039C 80B25C8C 27BDFF20 */ addiu $sp, $sp, 0xFF20 ## $sp = FFFFFF20
/* 003A0 80B25C90 AFB1007C */ sw $s1, 0x007C($sp)
/* 003A4 80B25C94 AFBF009C */ sw $ra, 0x009C($sp)

View file

@ -1,119 +0,0 @@
.rdata
D_80B26564:
.asciz "\x1b[32m %f\n\x1b[m"
.balign 4
D_80B26590:
.asciz "\x1b[32m %f\n\x1b[m"
.balign 4
D_80B265BC:
.asciz "\n\n"
.balign 4
.text
glabel EnTuboTrap_TestLevitate
/* 0083C 80B2612C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00840 80B26130 AFBF001C */ sw $ra, 0x001C($sp)
/* 00844 80B26134 AFB00018 */ sw $s0, 0x0018($sp)
/* 00848 80B26138 AFA5002C */ sw $a1, 0x002C($sp)
/* 0084C 80B2613C 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44
/* 00850 80B26140 3C188016 */ lui $t8, 0x8016 ## $t8 = 80160000
/* 00854 80B26144 8F18FA90 */ lw $t8, -0x0570($t8) ## 8015FA90
/* 00858 80B26148 AFAF0024 */ sw $t7, 0x0024($sp)
/* 0085C 80B2614C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00860 80B26150 871912D8 */ lh $t9, 0x12D8($t8) ## 801612D8
/* 00864 80B26154 53200016 */ beql $t9, $zero, .L80B261B0
/* 00868 80B26158 3C014348 */ lui $at, 0x4348 ## $at = 43480000
/* 0086C 80B2615C C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028
/* 00870 80B26160 3C0480B2 */ lui $a0, %hi(D_80B26564) ## $a0 = 80B20000
/* 00874 80B26164 24846564 */ addiu $a0, $a0, %lo(D_80B26564) ## $a0 = 80B26564
/* 00878 80B26168 460021A1 */ cvt.d.s $f6, $f4
/* 0087C 80B2616C 44073000 */ mfc1 $a3, $f6
/* 00880 80B26170 44063800 */ mfc1 $a2, $f7
/* 00884 80B26174 0C00084C */ jal osSyncPrintf
/* 00888 80B26178 00000000 */ nop
/* 0088C 80B2617C 8FA80024 */ lw $t0, 0x0024($sp)
/* 00890 80B26180 3C0480B2 */ lui $a0, %hi(D_80B26590) ## $a0 = 80B20000
/* 00894 80B26184 24846590 */ addiu $a0, $a0, %lo(D_80B26590) ## $a0 = 80B26590
/* 00898 80B26188 C5080028 */ lwc1 $f8, 0x0028($t0) ## 00000028
/* 0089C 80B2618C 460042A1 */ cvt.d.s $f10, $f8
/* 008A0 80B26190 44075000 */ mfc1 $a3, $f10
/* 008A4 80B26194 44065800 */ mfc1 $a2, $f11
/* 008A8 80B26198 0C00084C */ jal osSyncPrintf
/* 008AC 80B2619C 00000000 */ nop
/* 008B0 80B261A0 3C0480B2 */ lui $a0, %hi(D_80B265BC) ## $a0 = 80B20000
/* 008B4 80B261A4 0C00084C */ jal osSyncPrintf
/* 008B8 80B261A8 248465BC */ addiu $a0, $a0, %lo(D_80B265BC) ## $a0 = 80B265BC
/* 008BC 80B261AC 3C014348 */ lui $at, 0x4348 ## $at = 43480000
.L80B261B0:
/* 008C0 80B261B0 44819000 */ mtc1 $at, $f18 ## $f18 = 200.00
/* 008C4 80B261B4 C6100090 */ lwc1 $f16, 0x0090($s0) ## 00000090
/* 008C8 80B261B8 8FA90024 */ lw $t1, 0x0024($sp)
/* 008CC 80B261BC 4612803C */ c.lt.s $f16, $f18
/* 008D0 80B261C0 00000000 */ nop
/* 008D4 80B261C4 45020031 */ bc1fl .L80B2628C
/* 008D8 80B261C8 8FBF001C */ lw $ra, 0x001C($sp)
/* 008DC 80B261CC C5240028 */ lwc1 $f4, 0x0028($t1) ## 00000028
/* 008E0 80B261D0 C6060028 */ lwc1 $f6, 0x0028($s0) ## 00000028
/* 008E4 80B261D4 8FA4002C */ lw $a0, 0x002C($sp)
/* 008E8 80B261D8 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 008EC 80B261DC 4604303E */ c.le.s $f6, $f4
/* 008F0 80B261E0 24851C24 */ addiu $a1, $a0, 0x1C24 ## $a1 = 00001C24
/* 008F4 80B261E4 45020029 */ bc1fl .L80B2628C
/* 008F8 80B261E8 8FBF001C */ lw $ra, 0x001C($sp)
/* 008FC 80B261EC 0C00CDD2 */ jal Actor_ChangeType
/* 00900 80B261F0 24070005 */ addiu $a3, $zero, 0x0005 ## $a3 = 00000005
/* 00904 80B261F4 8E0B0004 */ lw $t3, 0x0004($s0) ## 00000004
/* 00908 80B261F8 3C0D8016 */ lui $t5, 0x8016 ## $t5 = 80160000
/* 0090C 80B261FC 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 00910 80B26200 356C0001 */ ori $t4, $t3, 0x0001 ## $t4 = 00000001
/* 00914 80B26204 AE0C0004 */ sw $t4, 0x0004($s0) ## 00000004
/* 00918 80B26208 8DADE664 */ lw $t5, -0x199C($t5) ## 8015E664
/* 0091C 80B2620C 44818000 */ mtc1 $at, $f16 ## $f16 = -10.00
/* 00920 80B26210 3C014220 */ lui $at, 0x4220 ## $at = 42200000
/* 00924 80B26214 448D4000 */ mtc1 $t5, $f8 ## $f8 = -0.00
/* 00928 80B26218 44812000 */ mtc1 $at, $f4 ## $f4 = 40.00
/* 0092C 80B2621C 8FAE0024 */ lw $t6, 0x0024($sp)
/* 00930 80B26220 468042A0 */ cvt.s.w $f10, $f8
/* 00934 80B26224 C6000028 */ lwc1 $f0, 0x0028($s0) ## 00000028
/* 00938 80B26228 C5C60028 */ lwc1 $f6, 0x0028($t6) ## 00000028
/* 0093C 80B2622C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00940 80B26230 46105482 */ mul.s $f18, $f10, $f16
/* 00944 80B26234 46049080 */ add.s $f2, $f18, $f4
/* 00948 80B26238 46023200 */ add.s $f8, $f6, $f2
/* 0094C 80B2623C E6080150 */ swc1 $f8, 0x0150($s0) ## 00000150
/* 00950 80B26240 C60A0150 */ lwc1 $f10, 0x0150($s0) ## 00000150
/* 00954 80B26244 4600503C */ c.lt.s $f10, $f0
/* 00958 80B26248 00000000 */ nop
/* 0095C 80B2624C 45020004 */ bc1fl .L80B26260
/* 00960 80B26250 8E180024 */ lw $t8, 0x0024($s0) ## 00000024
/* 00964 80B26254 46020400 */ add.s $f16, $f0, $f2
/* 00968 80B26258 E6100150 */ swc1 $f16, 0x0150($s0) ## 00000150
/* 0096C 80B2625C 8E180024 */ lw $t8, 0x0024($s0) ## 00000024
.L80B26260:
/* 00970 80B26260 8E0F0028 */ lw $t7, 0x0028($s0) ## 00000028
/* 00974 80B26264 240528C4 */ addiu $a1, $zero, 0x28C4 ## $a1 = 000028C4
/* 00978 80B26268 AE180154 */ sw $t8, 0x0154($s0) ## 00000154
/* 0097C 80B2626C 8E18002C */ lw $t8, 0x002C($s0) ## 0000002C
/* 00980 80B26270 AE0F0158 */ sw $t7, 0x0158($s0) ## 00000158
/* 00984 80B26274 0C00BE0A */ jal Audio_PlayActorSound2
/* 00988 80B26278 AE18015C */ sw $t8, 0x015C($s0) ## 0000015C
/* 0098C 80B2627C 3C1980B2 */ lui $t9, %hi(EnTuboTrap_InitializeAttack) ## $t9 = 80B20000
/* 00990 80B26280 2739629C */ addiu $t9, $t9, %lo(EnTuboTrap_InitializeAttack) ## $t9 = 80B2629C
/* 00994 80B26284 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C
/* 00998 80B26288 8FBF001C */ lw $ra, 0x001C($sp)
.L80B2628C:
/* 0099C 80B2628C 8FB00018 */ lw $s0, 0x0018($sp)
/* 009A0 80B26290 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 009A4 80B26294 03E00008 */ jr $ra
/* 009A8 80B26298 00000000 */ nop

View file

@ -1,47 +0,0 @@
glabel EnTuboTrap_Update
/* 00B04 80B263F4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00B08 80B263F8 AFB0001C */ sw $s0, 0x001C($sp)
/* 00B0C 80B263FC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B10 80B26400 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00B14 80B26404 AFB10020 */ sw $s1, 0x0020($sp)
/* 00B18 80B26408 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C
/* 00B1C 80B2640C 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00B20 80B26410 0320F809 */ jalr $ra, $t9
/* 00B24 80B26414 00000000 */ nop
/* 00B28 80B26418 0C00B638 */ jal Actor_MoveForward
/* 00B2C 80B2641C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B30 80B26420 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00B34 80B26424 44810000 */ mtc1 $at, $f0 ## $f0 = 10.00
/* 00B38 80B26428 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000
/* 00B3C 80B2642C 44812000 */ mtc1 $at, $f4 ## $f4 = 20.00
/* 00B40 80B26430 240E001D */ addiu $t6, $zero, 0x001D ## $t6 = 0000001D
/* 00B44 80B26434 44060000 */ mfc1 $a2, $f0
/* 00B48 80B26438 44070000 */ mfc1 $a3, $f0
/* 00B4C 80B2643C AFAE0014 */ sw $t6, 0x0014($sp)
/* 00B50 80B26440 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00B54 80B26444 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00B58 80B26448 0C00B92D */ jal func_8002E4B4
/* 00B5C 80B2644C E7A40010 */ swc1 $f4, 0x0010($sp)
/* 00B60 80B26450 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B64 80B26454 0C00B56E */ jal Actor_SetHeight
/* 00B68 80B26458 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00B6C 80B2645C 26050160 */ addiu $a1, $s0, 0x0160 ## $a1 = 00000160
/* 00B70 80B26460 AFA50028 */ sw $a1, 0x0028($sp)
/* 00B74 80B26464 0C0189B7 */ jal ActorCollider_Cylinder_Update
/* 00B78 80B26468 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B7C 80B2646C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B80 80B26470 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00B84 80B26474 02212821 */ addu $a1, $s1, $at
/* 00B88 80B26478 AFA5002C */ sw $a1, 0x002C($sp)
/* 00B8C 80B2647C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00B90 80B26480 0C01767D */ jal Actor_CollisionCheck_SetAC ## CollisionCheck_setAC
/* 00B94 80B26484 8FA60028 */ lw $a2, 0x0028($sp)
/* 00B98 80B26488 8FA5002C */ lw $a1, 0x002C($sp)
/* 00B9C 80B2648C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00BA0 80B26490 0C0175E7 */ jal Actor_CollisionCheck_SetAT ## CollisionCheck_setAT
/* 00BA4 80B26494 8FA60028 */ lw $a2, 0x0028($sp)
/* 00BA8 80B26498 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00BAC 80B2649C 8FB0001C */ lw $s0, 0x001C($sp)
/* 00BB0 80B264A0 8FB10020 */ lw $s1, 0x0020($sp)
/* 00BB4 80B264A4 03E00008 */ jr $ra
/* 00BB8 80B264A8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,91 +0,0 @@
.rdata
glabel D_808009C0
.asciz "NOT MARIO CLUB VERSION"
.balign 4
glabel D_808009D8
.asciz "[Creator:%s]"
.balign 4
glabel D_808009E8
.asciz "[Date:%s]"
.balign 4
.text
glabel func_80800000
/* 00000 80800000 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 00004 80800004 AFBF003C */ sw $ra, 0x003C($sp)
/* 00008 80800008 AFBE0038 */ sw $s8, 0x0038($sp)
/* 0000C 8080000C AFB10034 */ sw $s1, 0x0034($sp)
/* 00010 80800010 AFB00030 */ sw $s0, 0x0030($sp)
/* 00014 80800014 AFA40040 */ sw $a0, 0x0040($sp)
/* 00018 80800018 8C910000 */ lw $s1, 0x0000($a0) ## 00000000
/* 0001C 8080001C 03A0F025 */ or $s8, $sp, $zero ## $s8 = FFFFFFC0
/* 00020 80800020 0C025047 */ jal func_8009411C
/* 00024 80800024 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00028 80800028 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFF90
/* 0002C 8080002C 27B00018 */ addiu $s0, $sp, 0x0018 ## $s0 = FFFFFFA8
/* 00030 80800030 00408825 */ or $s1, $v0, $zero ## $s1 = 00000000
/* 00034 80800034 0C03EEE3 */ jal GfxPrint_Ctor
/* 00038 80800038 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 0003C 8080003C 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 00040 80800040 0C03EF07 */ jal GfxPrint_Open
/* 00044 80800044 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00048 80800048 240F00FF */ addiu $t7, $zero, 0x00FF ## $t7 = 000000FF
/* 0004C 8080004C AFAF0010 */ sw $t7, 0x0010($sp)
/* 00050 80800050 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 00054 80800054 240500FF */ addiu $a1, $zero, 0x00FF ## $a1 = 000000FF
/* 00058 80800058 2406009B */ addiu $a2, $zero, 0x009B ## $a2 = 0000009B
/* 0005C 8080005C 0C03ECEB */ jal GfxPrint_SetColor
/* 00060 80800060 240700FF */ addiu $a3, $zero, 0x00FF ## $a3 = 000000FF
/* 00064 80800064 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 00068 80800068 24050009 */ addiu $a1, $zero, 0x0009 ## $a1 = 00000009
/* 0006C 8080006C 0C03ED07 */ jal GfxPrint_SetPos
/* 00070 80800070 24060015 */ addiu $a2, $zero, 0x0015 ## $a2 = 00000015
/* 00074 80800074 3C058080 */ lui $a1, %hi(D_808009C0) ## $a1 = 80800000
/* 00078 80800078 24A509C0 */ addiu $a1, $a1, %lo(D_808009C0) ## $a1 = 808009C0
/* 0007C 8080007C 0C03EF2D */ jal GfxPrint_Printf
/* 00080 80800080 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 00084 80800084 241800FF */ addiu $t8, $zero, 0x00FF ## $t8 = 000000FF
/* 00088 80800088 AFB80010 */ sw $t8, 0x0010($sp)
/* 0008C 8080008C 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 00090 80800090 240500FF */ addiu $a1, $zero, 0x00FF ## $a1 = 000000FF
/* 00094 80800094 240600FF */ addiu $a2, $zero, 0x00FF ## $a2 = 000000FF
/* 00098 80800098 0C03ECEB */ jal GfxPrint_SetColor
/* 0009C 8080009C 240700FF */ addiu $a3, $zero, 0x00FF ## $a3 = 000000FF
/* 000A0 808000A0 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 000A4 808000A4 24050007 */ addiu $a1, $zero, 0x0007 ## $a1 = 00000007
/* 000A8 808000A8 0C03ED07 */ jal GfxPrint_SetPos
/* 000AC 808000AC 24060017 */ addiu $a2, $zero, 0x0017 ## $a2 = 00000017
/* 000B0 808000B0 3C058080 */ lui $a1, %hi(D_808009D8) ## $a1 = 80800000
/* 000B4 808000B4 3C068001 */ lui $a2, 0x8001 ## $a2 = 80010000
/* 000B8 808000B8 24C62340 */ addiu $a2, $a2, 0x2340 ## $a2 = 80012340
/* 000BC 808000BC 24A509D8 */ addiu $a1, $a1, %lo(D_808009D8) ## $a1 = 808009D8
/* 000C0 808000C0 0C03EF2D */ jal GfxPrint_Printf
/* 000C4 808000C4 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 000C8 808000C8 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 000CC 808000CC 24050007 */ addiu $a1, $zero, 0x0007 ## $a1 = 00000007
/* 000D0 808000D0 0C03ED07 */ jal GfxPrint_SetPos
/* 000D4 808000D4 24060018 */ addiu $a2, $zero, 0x0018 ## $a2 = 00000018
/* 000D8 808000D8 3C058080 */ lui $a1, %hi(D_808009E8) ## $a1 = 80800000
/* 000DC 808000DC 3C068001 */ lui $a2, 0x8001 ## $a2 = 80010000
/* 000E0 808000E0 24C62350 */ addiu $a2, $a2, 0x2350 ## $a2 = 80012350
/* 000E4 808000E4 24A509E8 */ addiu $a1, $a1, %lo(D_808009E8) ## $a1 = 808009E8
/* 000E8 808000E8 0C03EF2D */ jal GfxPrint_Printf
/* 000EC 808000EC 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 000F0 808000F0 0C03EF19 */ jal GfxPrint_Close
/* 000F4 808000F4 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 000F8 808000F8 00408825 */ or $s1, $v0, $zero ## $s1 = 00000000
/* 000FC 808000FC 0C03EF05 */ jal GfxPrint_Dtor
/* 00100 80800100 02002025 */ or $a0, $s0, $zero ## $a0 = FFFFFFA8
/* 00104 80800104 8FD90040 */ lw $t9, 0x0040($s8) ## 00000000
/* 00108 80800108 03C0E825 */ or $sp, $s8, $zero ## $sp = FFFFFFC0
/* 0010C 8080010C AF310000 */ sw $s1, 0x0000($t9) ## 00000000
/* 00110 80800110 8FDF003C */ lw $ra, 0x003C($s8) ## FFFFFFFC
/* 00114 80800114 8FD10034 */ lw $s1, 0x0034($s8) ## FFFFFFF4
/* 00118 80800118 8FD00030 */ lw $s0, 0x0030($s8) ## FFFFFFF0
/* 0011C 8080011C 8FDE0038 */ lw $s8, 0x0038($s8) ## FFFFFFF8
/* 00120 80800120 03E00008 */ jr $ra
/* 00124 80800124 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000

View file

@ -1,38 +0,0 @@
glabel func_80800134
/* 00134 80800134 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8
/* 00138 80800138 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 0013C 8080013C AFA70054 */ sw $a3, 0x0054($sp)
/* 00140 80800140 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 00144 80800144 44856000 */ mtc1 $a1, $f12 ## $f12 = 0.00
/* 00148 80800148 44867000 */ mtc1 $a2, $f14 ## $f14 = 0.00
/* 0014C 8080014C C7A40054 */ lwc1 $f4, 0x0054($sp)
/* 00150 80800150 44813000 */ mtc1 $at, $f6 ## $f6 = 1.00
/* 00154 80800154 AFA40048 */ sw $a0, 0x0048($sp)
/* 00158 80800158 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0015C 8080015C 248400A8 */ addiu $a0, $a0, 0x00A8 ## $a0 = 000000A8
/* 00160 80800160 AFA4001C */ sw $a0, 0x001C($sp)
/* 00164 80800164 3C064120 */ lui $a2, 0x4120 ## $a2 = 41200000
/* 00168 80800168 3C0541F0 */ lui $a1, 0x41F0 ## $a1 = 41F00000
/* 0016C 8080016C 3C074648 */ lui $a3, 0x4648 ## $a3 = 46480000
/* 00170 80800170 E7A00028 */ swc1 $f0, 0x0028($sp)
/* 00174 80800174 E7A00020 */ swc1 $f0, 0x0020($sp)
/* 00178 80800178 E7A00034 */ swc1 $f0, 0x0034($sp)
/* 0017C 8080017C E7A00030 */ swc1 $f0, 0x0030($sp)
/* 00180 80800180 E7A0002C */ swc1 $f0, 0x002C($sp)
/* 00184 80800184 E7AC0038 */ swc1 $f12, 0x0038($sp)
/* 00188 80800188 E7AE003C */ swc1 $f14, 0x003C($sp)
/* 0018C 8080018C E7A40040 */ swc1 $f4, 0x0040($sp)
/* 00190 80800190 0C02A918 */ jal func_800AA460
/* 00194 80800194 E7A60024 */ swc1 $f6, 0x0024($sp)
/* 00198 80800198 8FA4001C */ lw $a0, 0x001C($sp)
/* 0019C 8080019C 27A50038 */ addiu $a1, $sp, 0x0038 ## $a1 = FFFFFFF0
/* 001A0 808001A0 27A6002C */ addiu $a2, $sp, 0x002C ## $a2 = FFFFFFE4
/* 001A4 808001A4 0C02A8D6 */ jal func_800AA358
/* 001A8 808001A8 27A70020 */ addiu $a3, $sp, 0x0020 ## $a3 = FFFFFFD8
/* 001AC 808001AC 8FA4001C */ lw $a0, 0x001C($sp)
/* 001B0 808001B0 0C02AA94 */ jal func_800AAA50
/* 001B4 808001B4 2405000F */ addiu $a1, $zero, 0x000F ## $a1 = 0000000F
/* 001B8 808001B8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 001BC 808001BC 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000
/* 001C0 808001C0 03E00008 */ jr $ra
/* 001C4 808001C4 00000000 */ nop

View file

@ -1,376 +0,0 @@
.rdata
glabel D_808009F4
.asciz "../z_title.c"
.balign 4
glabel D_80800A04
.asciz "../z_title.c"
.balign 4
glabel D_80800A14
.asciz "../z_title.c"
.balign 4
.late_rodata
glabel D_80800A9C
.word 0xC59AA92F
glabel D_80800AA0
.word 0x457A28AB
glabel D_80800AA4
.word 0x448BE2AE, 0x00000000, 0x00000000
.text
glabel func_808001C8
/* 001C8 808001C8 27BDFF10 */ addiu $sp, $sp, 0xFF10 ## $sp = FFFFFF10
/* 001CC 808001CC AFBF0024 */ sw $ra, 0x0024($sp)
/* 001D0 808001D0 AFB00020 */ sw $s0, 0x0020($sp)
/* 001D4 808001D4 8C850000 */ lw $a1, 0x0000($a0) ## 00000000
/* 001D8 808001D8 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 001DC 808001DC 3C068080 */ lui $a2, %hi(D_808009F4) ## $a2 = 80800000
/* 001E0 808001E0 24C609F4 */ addiu $a2, $a2, %lo(D_808009F4) ## $a2 = 808009F4
/* 001E4 808001E4 27A400A8 */ addiu $a0, $sp, 0x00A8 ## $a0 = FFFFFFB8
/* 001E8 808001E8 2407018B */ addiu $a3, $zero, 0x018B ## $a3 = 0000018B
/* 001EC 808001EC 0C031AB1 */ jal func_800C6AC4
/* 001F0 808001F0 AFA500B8 */ sw $a1, 0x00B8($sp)
/* 001F4 808001F4 3C01428A */ lui $at, 0x428A ## $at = 428A0000
/* 001F8 808001F8 44810000 */ mtc1 $at, $f0 ## $f0 = 69.00
/* 001FC 808001FC 3C018080 */ lui $at, %hi(D_80800A9C) ## $at = 80800000
/* 00200 80800200 C4240A9C */ lwc1 $f4, %lo(D_80800A9C)($at)
/* 00204 80800204 3C018080 */ lui $at, %hi(D_80800AA0) ## $at = 80800000
/* 00208 80800208 44801000 */ mtc1 $zero, $f2 ## $f2 = 0.00
/* 0020C 8080020C C4260AA0 */ lwc1 $f6, %lo(D_80800AA0)($at)
/* 00210 80800210 3C018080 */ lui $at, %hi(D_80800AA4) ## $at = 80800000
/* 00214 80800214 C4280AA4 */ lwc1 $f8, %lo(D_80800AA4)($at)
/* 00218 80800218 E7A000DC */ swc1 $f0, 0x00DC($sp)
/* 0021C 8080021C E7A000E0 */ swc1 $f0, 0x00E0($sp)
/* 00220 80800220 E7A000E4 */ swc1 $f0, 0x00E4($sp)
/* 00224 80800224 E7A400C4 */ swc1 $f4, 0x00C4($sp)
/* 00228 80800228 E7A600C8 */ swc1 $f6, 0x00C8($sp)
/* 0022C 8080022C E7A200D0 */ swc1 $f2, 0x00D0($sp)
/* 00230 80800230 E7A200D4 */ swc1 $f2, 0x00D4($sp)
/* 00234 80800234 E7A200D8 */ swc1 $f2, 0x00D8($sp)
/* 00238 80800238 E7A800CC */ swc1 $f8, 0x00CC($sp)
/* 0023C 8080023C 8E070000 */ lw $a3, 0x0000($s0) ## 00000000
/* 00240 80800240 27A400D0 */ addiu $a0, $sp, 0x00D0 ## $a0 = FFFFFFE0
/* 00244 80800244 27A500C4 */ addiu $a1, $sp, 0x00C4 ## $a1 = FFFFFFD4
/* 00248 80800248 0C00BAAF */ jal func_8002EABC
/* 0024C 8080024C 27A600DC */ addiu $a2, $sp, 0x00DC ## $a2 = FFFFFFEC
/* 00250 80800250 8FA800B8 */ lw $t0, 0x00B8($sp)
/* 00254 80800254 3C0FDB02 */ lui $t7, 0xDB02 ## $t7 = DB020000
/* 00258 80800258 24180018 */ addiu $t8, $zero, 0x0018 ## $t8 = 00000018
/* 0025C 8080025C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00260 80800260 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00264 80800264 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00268 80800268 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 0026C 8080026C AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 00270 80800270 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 00274 80800274 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00278 80800278 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 0027C 8080027C 3C0F8080 */ lui $t7, %hi(D_808009B0) ## $t7 = 80800000
/* 00280 80800280 3C0EDC08 */ lui $t6, 0xDC08 ## $t6 = DC080000
/* 00284 80800284 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00288 80800288 AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 0028C 8080028C 35CE060A */ ori $t6, $t6, 0x060A ## $t6 = DC08060A
/* 00290 80800290 25EF09B0 */ addiu $t7, $t7, %lo(D_808009B0) ## $t7 = 808009B0
/* 00294 80800294 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00298 80800298 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 0029C 8080029C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 002A0 808002A0 3C0E8080 */ lui $t6, %hi(D_808009A8) ## $t6 = 80800000
/* 002A4 808002A4 3C19DC08 */ lui $t9, 0xDC08 ## $t9 = DC080000
/* 002A8 808002A8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 002AC 808002AC AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 002B0 808002B0 3739090A */ ori $t9, $t9, 0x090A ## $t9 = DC08090A
/* 002B4 808002B4 25CE09A8 */ addiu $t6, $t6, %lo(D_808009A8) ## $t6 = 808009A8
/* 002B8 808002B8 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 002BC 808002BC AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 002C0 808002C0 3C064316 */ lui $a2, 0x4316 ## $a2 = 43160000
/* 002C4 808002C4 3C074396 */ lui $a3, 0x4396 ## $a3 = 43960000
/* 002C8 808002C8 0C20004D */ jal func_80800134
/* 002CC 808002CC AFA800B8 */ sw $t0, 0x00B8($sp)
/* 002D0 808002D0 0C024F46 */ jal func_80093D18
/* 002D4 808002D4 8E040000 */ lw $a0, 0x0000($s0) ## 00000000
/* 002D8 808002D8 3C01C254 */ lui $at, 0xC254 ## $at = C2540000
/* 002DC 808002DC 44816000 */ mtc1 $at, $f12 ## $f12 = -53.00
/* 002E0 808002E0 3C01C0A0 */ lui $at, 0xC0A0 ## $at = C0A00000
/* 002E4 808002E4 44817000 */ mtc1 $at, $f14 ## $f14 = -5.00
/* 002E8 808002E8 24060000 */ addiu $a2, $zero, 0x0000 ## $a2 = 00000000
/* 002EC 808002EC 0C034261 */ jal Matrix_Translate
/* 002F0 808002F0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 002F4 808002F4 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000
/* 002F8 808002F8 44816000 */ mtc1 $at, $f12 ## $f12 = 1.00
/* 002FC 808002FC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00300 80800300 44066000 */ mfc1 $a2, $f12
/* 00304 80800304 0C0342A3 */ jal Matrix_Scale
/* 00308 80800308 46006386 */ mov.s $f14, $f12
/* 0030C 8080030C 3C058080 */ lui $a1, %hi(D_808009A0) ## $a1 = 80800000
/* 00310 80800310 84A509A0 */ lh $a1, %lo(D_808009A0)($a1)
/* 00314 80800314 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 00318 80800318 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 0031C 8080031C 0C034421 */ jal Matrix_RotateXYZ
/* 00320 80800320 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00324 80800324 8FA800B8 */ lw $t0, 0x00B8($sp)
/* 00328 80800328 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000
/* 0032C 8080032C 37180003 */ ori $t8, $t8, 0x0003 ## $t8 = DA380003
/* 00330 80800330 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00334 80800334 3C058080 */ lui $a1, %hi(D_80800A04) ## $a1 = 80800000
/* 00338 80800338 24A50A04 */ addiu $a1, $a1, %lo(D_80800A04) ## $a1 = 80800A04
/* 0033C 8080033C 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00340 80800340 AD0F02C0 */ sw $t7, 0x02C0($t0) ## 000002C0
/* 00344 80800344 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00348 80800348 8E040000 */ lw $a0, 0x0000($s0) ## 00000000
/* 0034C 8080034C 240601A8 */ addiu $a2, $zero, 0x01A8 ## $a2 = 000001A8
/* 00350 80800350 AFA800B8 */ sw $t0, 0x00B8($sp)
/* 00354 80800354 0C0346A2 */ jal Matrix_NewMtx
/* 00358 80800358 AFA20098 */ sw $v0, 0x0098($sp)
/* 0035C 8080035C 8FA30098 */ lw $v1, 0x0098($sp)
/* 00360 80800360 8FA800B8 */ lw $t0, 0x00B8($sp)
/* 00364 80800364 3C0F0100 */ lui $t7, 0x0100 ## $t7 = 01000000
/* 00368 80800368 AC620004 */ sw $v0, 0x0004($v1) ## 00000004
/* 0036C 8080036C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00370 80800370 25EF2720 */ addiu $t7, $t7, 0x2720 ## $t7 = 01002720
/* 00374 80800374 3C0EDE00 */ lui $t6, 0xDE00 ## $t6 = DE000000
/* 00378 80800378 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 0037C 8080037C AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 00380 80800380 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00384 80800384 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 00388 80800388 8E040000 */ lw $a0, 0x0000($s0) ## 00000000
/* 0038C 8080038C 0C025131 */ jal func_800944C4
/* 00390 80800390 AFA800B8 */ sw $t0, 0x00B8($sp)
/* 00394 80800394 8FA800B8 */ lw $t0, 0x00B8($sp)
/* 00398 80800398 3C05E700 */ lui $a1, 0xE700 ## $a1 = E7000000
/* 0039C 8080039C 3C0EE300 */ lui $t6, 0xE300 ## $t6 = E3000000
/* 003A0 808003A0 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 003A4 808003A4 35CE0A01 */ ori $t6, $t6, 0x0A01 ## $t6 = E3000A01
/* 003A8 808003A8 3C0F0010 */ lui $t7, 0x0010 ## $t7 = 00100000
/* 003AC 808003AC 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 003B0 808003B0 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 003B4 808003B4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 003B8 808003B8 AC450000 */ sw $a1, 0x0000($v0) ## 00000000
/* 003BC 808003BC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 003C0 808003C0 3C09F200 */ lui $t1, 0xF200 ## $t1 = F2000000
/* 003C4 808003C4 3C1F070B */ lui $ra, 0x070B ## $ra = 070B0000
/* 003C8 808003C8 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 003CC 808003CC AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 003D0 808003D0 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 003D4 808003D4 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 003D8 808003D8 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 003DC 808003DC 3C0E0C18 */ lui $t6, 0x0C18 ## $t6 = 0C180000
/* 003E0 808003E0 3C19E200 */ lui $t9, 0xE200 ## $t9 = E2000000
/* 003E4 808003E4 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 003E8 808003E8 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 003EC 808003EC 3739001C */ ori $t9, $t9, 0x001C ## $t9 = E200001C
/* 003F0 808003F0 35CE4340 */ ori $t6, $t6, 0x4340 ## $t6 = 0C184340
/* 003F4 808003F4 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 003F8 808003F8 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 003FC 808003FC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00400 80800400 3C19350C */ lui $t9, 0x350C ## $t9 = 350C0000
/* 00404 80800404 3C18FC26 */ lui $t8, 0xFC26 ## $t8 = FC260000
/* 00408 80800408 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 0040C 8080040C AD0F02C0 */ sw $t7, 0x02C0($t0) ## 000002C0
/* 00410 80800410 37187E60 */ ori $t8, $t8, 0x7E60 ## $t8 = FC267E60
/* 00414 80800414 3739F37F */ ori $t9, $t9, 0xF37F ## $t9 = 350CF37F
/* 00418 80800418 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 0041C 8080041C AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00420 80800420 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00424 80800424 3C18AAFF */ lui $t8, 0xAAFF ## $t8 = AAFF0000
/* 00428 80800428 3718FFFF */ ori $t8, $t8, 0xFFFF ## $t8 = AAFFFFFF
/* 0042C 8080042C 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00430 80800430 AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 00434 80800434 3C0FFA00 */ lui $t7, 0xFA00 ## $t7 = FA000000
/* 00438 80800438 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 0043C 8080043C AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 00440 80800440 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00444 80800444 340FFF80 */ ori $t7, $zero, 0xFF80 ## $t7 = 0000FF80
/* 00448 80800448 3C0EFB00 */ lui $t6, 0xFB00 ## $t6 = FB000000
/* 0044C 8080044C 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00450 80800450 AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 00454 80800454 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00458 80800458 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 0045C 8080045C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00460 80800460 3C0E0100 */ lui $t6, 0x0100 ## $t6 = 01000000
/* 00464 80800464 25CE1800 */ addiu $t6, $t6, 0x1800 ## $t6 = 01001800
/* 00468 80800468 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 0046C 8080046C AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 00470 80800470 3C19FD90 */ lui $t9, 0xFD90 ## $t9 = FD900000
/* 00474 80800474 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00478 80800478 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 0047C 8080047C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00480 80800480 3C190701 */ lui $t9, 0x0701 ## $t9 = 07010000
/* 00484 80800484 3C18F590 */ lui $t8, 0xF590 ## $t8 = F5900000
/* 00488 80800488 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 0048C 8080048C AD0F02C0 */ sw $t7, 0x02C0($t0) ## 000002C0
/* 00490 80800490 37180100 */ ori $t8, $t8, 0x0100 ## $t8 = F5900100
/* 00494 80800494 37396C52 */ ori $t9, $t9, 0x6C52 ## $t9 = 07016C52
/* 00498 80800498 AC590004 */ sw $t9, 0x0004($v0) ## 00000004
/* 0049C 8080049C AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 004A0 808004A0 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 004A4 808004A4 3C0FE600 */ lui $t7, 0xE600 ## $t7 = E6000000
/* 004A8 808004A8 3C19F300 */ lui $t9, 0xF300 ## $t9 = F3000000
/* 004AC 808004AC 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 004B0 808004B0 AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 004B4 808004B4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 004B8 808004B8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 004BC 808004BC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 004C0 808004C0 3C0E071F */ lui $t6, 0x071F ## $t6 = 071F0000
/* 004C4 808004C4 35CEF200 */ ori $t6, $t6, 0xF200 ## $t6 = 071FF200
/* 004C8 808004C8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 004CC 808004CC AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 004D0 808004D0 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 004D4 808004D4 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 004D8 808004D8 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 004DC 808004DC 3C19F588 */ lui $t9, 0xF588 ## $t9 = F5880000
/* 004E0 808004E0 3C0E0101 */ lui $t6, 0x0101 ## $t6 = 01010000
/* 004E4 808004E4 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 004E8 808004E8 AD0F02C0 */ sw $t7, 0x02C0($t0) ## 000002C0
/* 004EC 808004EC AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 004F0 808004F0 AC450000 */ sw $a1, 0x0000($v0) ## 00000000
/* 004F4 808004F4 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 004F8 808004F8 35CE6C52 */ ori $t6, $t6, 0x6C52 ## $t6 = 01016C52
/* 004FC 808004FC 37390900 */ ori $t9, $t9, 0x0900 ## $t9 = F5880900
/* 00500 80800500 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 00504 80800504 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 00508 80800508 AC4E0004 */ sw $t6, 0x0004($v0) ## 00000004
/* 0050C 8080050C AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00510 80800510 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00514 80800514 3C180107 */ lui $t8, 0x0107 ## $t8 = 01070000
/* 00518 80800518 3718C07C */ ori $t8, $t8, 0xC07C ## $t8 = 0107C07C
/* 0051C 8080051C 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008
/* 00520 80800520 AD0F02C0 */ sw $t7, 0x02C0($t0) ## 000002C0
/* 00524 80800524 3C0A0100 */ lui $t2, 0x0100 ## $t2 = 01000000
/* 00528 80800528 254A0000 */ addiu $t2, $t2, 0x0000 ## $t2 = 01000000
/* 0052C 8080052C 37FFF056 */ ori $ra, $ra, 0xF056 ## $ra = 070BF056
/* 00530 80800530 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00534 80800534 2407005E */ addiu $a3, $zero, 0x005E ## $a3 = 0000005E
/* 00538 80800538 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 0053C 8080053C 3C0D0700 */ lui $t5, 0x0700 ## $t5 = 07000000
/* 00540 80800540 3C0CF590 */ lui $t4, 0xF590 ## $t4 = F5900000
/* 00544 80800544 240B0180 */ addiu $t3, $zero, 0x0180 ## $t3 = 00000180
/* 00548 80800548 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 0054C 8080054C AC490000 */ sw $t1, 0x0000($v0) ## 00000000
.L80800550:
/* 00550 80800550 008B0019 */ multu $a0, $t3
/* 00554 80800554 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00558 80800558 3C0EFD90 */ lui $t6, 0xFD90 ## $t6 = FD900000
/* 0055C 8080055C 24E50002 */ addiu $a1, $a3, 0x0002 ## $a1 = 00000060
/* 00560 80800560 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00564 80800564 AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 00568 80800568 AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 0056C 8080056C 3C01E448 */ lui $at, 0xE448 ## $at = E4480000
/* 00570 80800570 34214000 */ ori $at, $at, 0x4000 ## $at = E4484000
/* 00574 80800574 24C60001 */ addiu $a2, $a2, 0x0001 ## $a2 = 00000001
/* 00578 80800578 00007812 */ mflo $t7
/* 0057C 8080057C 014FC021 */ addu $t8, $t2, $t7
/* 00580 80800580 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 00584 80800584 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00588 80800588 3C0FE600 */ lui $t7, 0xE600 ## $t7 = E6000000
/* 0058C 8080058C 30C6FFFF */ andi $a2, $a2, 0xFFFF ## $a2 = 00000001
/* 00590 80800590 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 00594 80800594 AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 00598 80800598 AC4D0004 */ sw $t5, 0x0004($v0) ## 00000004
/* 0059C 8080059C AC4C0000 */ sw $t4, 0x0000($v0) ## 00000000
/* 005A0 808005A0 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 005A4 808005A4 3C19F300 */ lui $t9, 0xF300 ## $t9 = F3000000
/* 005A8 808005A8 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 005AC 808005AC AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 005B0 808005B0 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 005B4 808005B4 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 005B8 808005B8 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 005BC 808005BC 3C0FE700 */ lui $t7, 0xE700 ## $t7 = E7000000
/* 005C0 808005C0 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 005C4 808005C4 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 005C8 808005C8 AC5F0004 */ sw $ra, 0x0004($v0) ## 00000004
/* 005CC 808005CC AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 005D0 808005D0 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 005D4 808005D4 3C19F588 */ lui $t9, 0xF588 ## $t9 = F5880000
/* 005D8 808005D8 37393000 */ ori $t9, $t9, 0x3000 ## $t9 = F5883000
/* 005DC 808005DC 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 005E0 808005E0 AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 005E4 808005E4 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 005E8 808005E8 AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 005EC 808005EC 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 005F0 808005F0 3C0F002F */ lui $t7, 0x002F ## $t7 = 002F0000
/* 005F4 808005F4 35EFC004 */ ori $t7, $t7, 0xC004 ## $t7 = 002FC004
/* 005F8 808005F8 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 005FC 808005FC AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 00600 80800600 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 00604 80800604 AC590000 */ sw $t9, 0x0000($v0) ## 00000000
/* 00608 80800608 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 0060C 8080060C 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00610 80800610 AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 00614 80800614 AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00618 80800618 AC490000 */ sw $t1, 0x0000($v0) ## 00000000
/* 0061C 8080061C 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00620 80800620 00047880 */ sll $t7, $a0, 2
/* 00624 80800624 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000001
/* 00628 80800628 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 0062C 8080062C AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 00630 80800630 861901DC */ lh $t9, 0x01DC($s0) ## 000001DC
/* 00634 80800634 332E007F */ andi $t6, $t9, 0x007F ## $t6 = 00000000
/* 00638 80800638 01CFC023 */ subu $t8, $t6, $t7
/* 0063C 8080063C 860E01DE */ lh $t6, 0x01DE($s0) ## 000001DE
/* 00640 80800640 33190FFF */ andi $t9, $t8, 0x0FFF ## $t9 = 00000008
/* 00644 80800644 31CF0FFF */ andi $t7, $t6, 0x0FFF ## $t7 = 00000000
/* 00648 80800648 000FC300 */ sll $t8, $t7, 12
/* 0064C 8080064C 03097025 */ or $t6, $t8, $t1 ## $t6 = F2000008
/* 00650 80800650 01D97825 */ or $t7, $t6, $t9 ## $t7 = F2000008
/* 00654 80800654 3C180100 */ lui $t8, 0x0100 ## $t8 = 01000000
/* 00658 80800658 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 0065C 8080065C AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 00660 80800660 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00664 80800664 0005C880 */ sll $t9, $a1, 2
/* 00668 80800668 332F0FFF */ andi $t7, $t9, 0x0FFF ## $t7 = 00000008
/* 0066C 8080066C 244E0008 */ addiu $t6, $v0, 0x0008 ## $t6 = 00000008
/* 00670 80800670 AD0E02C0 */ sw $t6, 0x02C0($t0) ## 000002C0
/* 00674 80800674 01E1C025 */ or $t8, $t7, $at ## $t8 = E4484008
/* 00678 80800678 3C010018 */ lui $at, 0x0018 ## $at = 00180000
/* 0067C 8080067C 00077080 */ sll $t6, $a3, 2
/* 00680 80800680 31D90FFF */ andi $t9, $t6, 0x0FFF ## $t9 = 00000008
/* 00684 80800684 34214000 */ ori $at, $at, 0x4000 ## $at = 00184000
/* 00688 80800688 03217825 */ or $t7, $t9, $at ## $t7 = 00184008
/* 0068C 8080068C AC4F0004 */ sw $t7, 0x0004($v0) ## 00000004
/* 00690 80800690 AC580000 */ sw $t8, 0x0000($v0) ## 00000000
/* 00694 80800694 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 00698 80800698 3C0EE100 */ lui $t6, 0xE100 ## $t6 = E1000000
/* 0069C 8080069C 28C10010 */ slti $at, $a2, 0x0010
/* 006A0 808006A0 24580008 */ addiu $t8, $v0, 0x0008 ## $t8 = 00000008
/* 006A4 808006A4 AD1802C0 */ sw $t8, 0x02C0($t0) ## 000002C0
/* 006A8 808006A8 AC400004 */ sw $zero, 0x0004($v0) ## 00000004
/* 006AC 808006AC AC4E0000 */ sw $t6, 0x0000($v0) ## 00000000
/* 006B0 808006B0 8D0202C0 */ lw $v0, 0x02C0($t0) ## 000002C0
/* 006B4 808006B4 3C180400 */ lui $t8, 0x0400 ## $t8 = 04000000
/* 006B8 808006B8 37180400 */ ori $t8, $t8, 0x0400 ## $t8 = 04000400
/* 006BC 808006BC 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008
/* 006C0 808006C0 AD1902C0 */ sw $t9, 0x02C0($t0) ## 000002C0
/* 006C4 808006C4 3C0FF100 */ lui $t7, 0xF100 ## $t7 = F1000000
/* 006C8 808006C8 30A7FFFF */ andi $a3, $a1, 0xFFFF ## $a3 = 00000060
/* 006CC 808006CC AC4F0000 */ sw $t7, 0x0000($v0) ## 00000000
/* 006D0 808006D0 1420FF9F */ bne $at, $zero, .L80800550
/* 006D4 808006D4 AC580004 */ sw $t8, 0x0004($v0) ## 00000004
/* 006D8 808006D8 860E01D6 */ lh $t6, 0x01D6($s0) ## 000001D6
/* 006DC 808006DC 8E040000 */ lw $a0, 0x0000($s0) ## 00000000
/* 006E0 808006E0 24190002 */ addiu $t9, $zero, 0x0002 ## $t9 = 00000002
/* 006E4 808006E4 AFB90014 */ sw $t9, 0x0014($sp)
/* 006E8 808006E8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 006EC 808006EC 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 006F0 808006F0 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 006F4 808006F4 0C01D9CB */ jal func_8007672C
/* 006F8 808006F8 AFAE0010 */ sw $t6, 0x0010($sp)
/* 006FC 808006FC 3C0F8080 */ lui $t7, %hi(D_808009A0) ## $t7 = 80800000
/* 00700 80800700 85EF09A0 */ lh $t7, %lo(D_808009A0)($t7)
/* 00704 80800704 3C018080 */ lui $at, %hi(D_808009A0) ## $at = 80800000
/* 00708 80800708 3C068080 */ lui $a2, %hi(D_80800A14) ## $a2 = 80800000
/* 0070C 8080070C 25F8012C */ addiu $t8, $t7, 0x012C ## $t8 = 8080012C
/* 00710 80800710 A43809A0 */ sh $t8, %lo(D_808009A0)($at)
/* 00714 80800714 8E050000 */ lw $a1, 0x0000($s0) ## 00000000
/* 00718 80800718 24C60A14 */ addiu $a2, $a2, %lo(D_80800A14) ## $a2 = 80800A14
/* 0071C 8080071C 27A400A8 */ addiu $a0, $sp, 0x00A8 ## $a0 = FFFFFFB8
/* 00720 80800720 0C031AD5 */ jal func_800C6B54
/* 00724 80800724 240701E3 */ addiu $a3, $zero, 0x01E3 ## $a3 = 000001E3
/* 00728 80800728 8FBF0024 */ lw $ra, 0x0024($sp)
/* 0072C 8080072C 8FB00020 */ lw $s0, 0x0020($sp)
/* 00730 80800730 27BD00F0 */ addiu $sp, $sp, 0x00F0 ## $sp = 00000000
/* 00734 80800734 03E00008 */ jr $ra
/* 00738 80800738 00000000 */ nop

View file

@ -1,86 +0,0 @@
.rdata
glabel D_80800A24
.asciz "../z_title.c"
.balign 4
glabel D_80800A34
.asciz "../z_title.c"
.balign 4
.text
glabel func_8080073C
/* 0073C 8080073C 27BDFFB0 */ addiu $sp, $sp, 0xFFB0 ## $sp = FFFFFFB0
/* 00740 80800740 AFBF001C */ sw $ra, 0x001C($sp)
/* 00744 80800744 AFB10018 */ sw $s1, 0x0018($sp)
/* 00748 80800748 AFB00014 */ sw $s0, 0x0014($sp)
/* 0074C 8080074C 8C850000 */ lw $a1, 0x0000($a0) ## 00000000
/* 00750 80800750 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00754 80800754 3C068080 */ lui $a2, %hi(D_80800A24) ## $a2 = 80800000
/* 00758 80800758 24C60A24 */ addiu $a2, $a2, %lo(D_80800A24) ## $a2 = 80800A24
/* 0075C 8080075C 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFE8
/* 00760 80800760 240701EE */ addiu $a3, $zero, 0x01EE ## $a3 = 000001EE
/* 00764 80800764 0C031AB1 */ jal func_800C6AC4
/* 00768 80800768 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 0076C 8080076C 8E2302C0 */ lw $v1, 0x02C0($s1) ## 000002C0
/* 00770 80800770 3C0FDB06 */ lui $t7, 0xDB06 ## $t7 = DB060000
/* 00774 80800774 3C19DB06 */ lui $t9, 0xDB06 ## $t9 = DB060000
/* 00778 80800778 246E0008 */ addiu $t6, $v1, 0x0008 ## $t6 = 00000008
/* 0077C 8080077C AE2E02C0 */ sw $t6, 0x02C0($s1) ## 000002C0
/* 00780 80800780 AC600004 */ sw $zero, 0x0004($v1) ## 00000004
/* 00784 80800784 AC6F0000 */ sw $t7, 0x0000($v1) ## 00000000
/* 00788 80800788 8E2302C0 */ lw $v1, 0x02C0($s1) ## 000002C0
/* 0078C 8080078C 37390004 */ ori $t9, $t9, 0x0004 ## $t9 = DB060004
/* 00790 80800790 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000
/* 00794 80800794 24780008 */ addiu $t8, $v1, 0x0008 ## $t8 = 00000008
/* 00798 80800798 AE3802C0 */ sw $t8, 0x02C0($s1) ## 000002C0
/* 0079C 8080079C AC790000 */ sw $t9, 0x0000($v1) ## 00000000
/* 007A0 808007A0 8E0800A4 */ lw $t0, 0x00A4($s0) ## 000000A4
/* 007A4 808007A4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 007A8 808007A8 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 007AC 808007AC AC680004 */ sw $t0, 0x0004($v1) ## 00000004
/* 007B0 808007B0 0C025492 */ jal func_80095248
/* 007B4 808007B4 8E040000 */ lw $a0, 0x0000($s0) ## 00000000
/* 007B8 808007B8 0C20004A */ jal func_80800128
/* 007BC 808007BC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007C0 808007C0 0C200072 */ jal func_808001C8
/* 007C4 808007C4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 007C8 808007C8 3C098013 */ lui $t1, 0x8013 ## $t1 = 80130000
/* 007CC 808007CC 8D29DBC0 */ lw $t1, -0x2440($t1) ## 8012DBC0
/* 007D0 808007D0 51200008 */ beql $t1, $zero, .L808007F4
/* 007D4 808007D4 920C01E1 */ lbu $t4, 0x01E1($s0) ## 000001E1
/* 007D8 808007D8 8E2A02C0 */ lw $t2, 0x02C0($s1) ## 000002C0
/* 007DC 808007DC 27A4002C */ addiu $a0, $sp, 0x002C ## $a0 = FFFFFFDC
/* 007E0 808007E0 0C200000 */ jal func_80800000
/* 007E4 808007E4 AFAA002C */ sw $t2, 0x002C($sp)
/* 007E8 808007E8 8FAB002C */ lw $t3, 0x002C($sp)
/* 007EC 808007EC AE2B02C0 */ sw $t3, 0x02C0($s1) ## 000002C0
/* 007F0 808007F0 920C01E1 */ lbu $t4, 0x01E1($s0) ## 000001E1
.L808007F4:
/* 007F4 808007F4 3C068080 */ lui $a2, %hi(D_80800A34) ## $a2 = 80800000
/* 007F8 808007F8 24C60A34 */ addiu $a2, $a2, %lo(D_80800A34) ## $a2 = 80800A34
/* 007FC 808007FC 1180000E */ beq $t4, $zero, .L80800838
/* 00800 80800800 27A40038 */ addiu $a0, $sp, 0x0038 ## $a0 = FFFFFFE8
/* 00804 80800804 3C028016 */ lui $v0, 0x8016 ## $v0 = 80160000
/* 00808 80800808 2442E660 */ addiu $v0, $v0, 0xE660 ## $v0 = 8015E660
/* 0080C 8080080C 240300FF */ addiu $v1, $zero, 0x00FF ## $v1 = 000000FF
/* 00810 80800810 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001
/* 00814 80800814 A04313E0 */ sb $v1, 0x13E0($v0) ## 8015FA40
/* 00818 80800818 A04313E1 */ sb $v1, 0x13E1($v0) ## 8015FA41
/* 0081C 8080081C AC4D135C */ sw $t5, 0x135C($v0) ## 8015F9BC
/* 00820 80800820 3C0E8080 */ lui $t6, 0x8080 ## $t6 = 80800000
/* 00824 80800824 25CE3CAC */ addiu $t6, $t6, 0x3CAC ## $t6 = 80803CAC
/* 00828 80800828 240F01D0 */ addiu $t7, $zero, 0x01D0 ## $t7 = 000001D0
/* 0082C 8080082C AE000098 */ sw $zero, 0x0098($s0) ## 00000098
/* 00830 80800830 AE0F0010 */ sw $t7, 0x0010($s0) ## 00000010
/* 00834 80800834 AE0E000C */ sw $t6, 0x000C($s0) ## 0000000C
.L80800838:
/* 00838 80800838 8E050000 */ lw $a1, 0x0000($s0) ## 00000000
/* 0083C 8080083C 0C031AD5 */ jal func_800C6B54
/* 00840 80800840 2407021D */ addiu $a3, $zero, 0x021D ## $a3 = 0000021D
/* 00844 80800844 8FBF001C */ lw $ra, 0x001C($sp)
/* 00848 80800848 8FB00014 */ lw $s0, 0x0014($sp)
/* 0084C 8080084C 8FB10018 */ lw $s1, 0x0018($sp)
/* 00850 80800850 03E00008 */ jr $ra
/* 00854 80800854 27BD0050 */ addiu $sp, $sp, 0x0050 ## $sp = 00000000

View file

@ -1,100 +0,0 @@
.rdata
glabel D_80800A44
.asciz "../z_title.c"
.balign 4
glabel D_80800A54
.asciz "z_title.c\n"
.balign 4
glabel D_80800A60
.asciz "this->staticSegment != NULL"
.balign 4
glabel D_80800A7C
.asciz "../z_title.c"
.balign 4
glabel D_80800A8C
.asciz "../z_title.c"
.balign 4
.text
glabel func_80800878
/* 00878 80800878 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 0087C 8080087C 3C0201AA */ lui $v0, 0x01AA ## $v0 = 01AA0000
/* 00880 80800880 3C0E01AA */ lui $t6, 0x01AA ## $t6 = 01AA0000
/* 00884 80800884 25CE3DC0 */ addiu $t6, $t6, 0x3DC0 ## $t6 = 01AA3DC0
/* 00888 80800888 24421000 */ addiu $v0, $v0, 0x1000 ## $v0 = 01AA1000
/* 0088C 8080088C AFBF0024 */ sw $ra, 0x0024($sp)
/* 00890 80800890 AFB00020 */ sw $s0, 0x0020($sp)
/* 00894 80800894 01C22823 */ subu $a1, $t6, $v0
/* 00898 80800898 3C068080 */ lui $a2, %hi(D_80800A44) ## $a2 = 80800000
/* 0089C 8080089C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 008A0 808008A0 24C60A44 */ addiu $a2, $a2, %lo(D_80800A44) ## $a2 = 80800A44
/* 008A4 808008A4 AFA50028 */ sw $a1, 0x0028($sp)
/* 008A8 808008A8 AFA2002C */ sw $v0, 0x002C($sp)
/* 008AC 808008AC 0C031521 */ jal Game_Alloc
/* 008B0 808008B0 24070263 */ addiu $a3, $zero, 0x0263 ## $a3 = 00000263
/* 008B4 808008B4 3C048080 */ lui $a0, %hi(D_80800A54) ## $a0 = 80800000
/* 008B8 808008B8 AE0200A4 */ sw $v0, 0x00A4($s0) ## 000000A4
/* 008BC 808008BC 0C00084C */ jal osSyncPrintf
/* 008C0 808008C0 24840A54 */ addiu $a0, $a0, %lo(D_80800A54) ## $a0 = 80800A54
/* 008C4 808008C4 8E0400A4 */ lw $a0, 0x00A4($s0) ## 000000A4
/* 008C8 808008C8 3C058080 */ lui $a1, %hi(D_80800A7C) ## $a1 = 80800000
/* 008CC 808008CC 24A50A7C */ addiu $a1, $a1, %lo(D_80800A7C) ## $a1 = 80800A7C
/* 008D0 808008D0 14800005 */ bne $a0, $zero, .L808008E8
/* 008D4 808008D4 24060266 */ addiu $a2, $zero, 0x0266 ## $a2 = 00000266
/* 008D8 808008D8 3C048080 */ lui $a0, %hi(D_80800A60) ## $a0 = 80800000
/* 008DC 808008DC 0C0007FC */ jal __assert
/* 008E0 808008E0 24840A60 */ addiu $a0, $a0, %lo(D_80800A60) ## $a0 = 80800A60
/* 008E4 808008E4 8E0400A4 */ lw $a0, 0x00A4($s0) ## 000000A4
.L808008E8:
/* 008E8 808008E8 3C078080 */ lui $a3, %hi(D_80800A8C) ## $a3 = 80800000
/* 008EC 808008EC 240F0267 */ addiu $t7, $zero, 0x0267 ## $t7 = 00000267
/* 008F0 808008F0 AFAF0010 */ sw $t7, 0x0010($sp)
/* 008F4 808008F4 24E70A8C */ addiu $a3, $a3, %lo(D_80800A8C) ## $a3 = 80800A8C
/* 008F8 808008F8 8FA5002C */ lw $a1, 0x002C($sp)
/* 008FC 808008FC 0C0006A8 */ jal DmaMgr_SendRequest1
/* 00900 80800900 8FA60028 */ lw $a2, 0x0028($sp)
/* 00904 80800904 3C198016 */ lui $t9, 0x8016 ## $t9 = 80160000
/* 00908 80800908 8F39FA90 */ lw $t9, -0x0570($t9) ## 8015FA90
/* 0090C 8080090C 24180001 */ addiu $t8, $zero, 0x0001 ## $t8 = 00000001
/* 00910 80800910 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00914 80800914 0C034204 */ jal Matrix_Init
/* 00918 80800918 A7380110 */ sh $t8, 0x0110($t9) ## 80160110
/* 0091C 8080091C 260400A8 */ addiu $a0, $s0, 0x00A8 ## $a0 = 000000A8
/* 00920 80800920 0C02A89E */ jal func_800AA278
/* 00924 80800924 8E050000 */ lw $a1, 0x0000($s0) ## 00000000
/* 00928 80800928 3C088080 */ lui $t0, %hi(func_8080073C) ## $t0 = 80800000
/* 0092C 8080092C 3C098080 */ lui $t1, %hi(func_80800858) ## $t1 = 80800000
/* 00930 80800930 2508073C */ addiu $t0, $t0, %lo(func_8080073C) ## $t0 = 8080073C
/* 00934 80800934 25290858 */ addiu $t1, $t1, %lo(func_80800858) ## $t1 = 80800858
/* 00938 80800938 AE080004 */ sw $t0, 0x0004($s0) ## 00000004
/* 0093C 8080093C AE090008 */ sw $t1, 0x0008($s0) ## 00000008
/* 00940 80800940 A20001E1 */ sb $zero, 0x01E1($s0) ## 000001E1
/* 00944 80800944 240A00FF */ addiu $t2, $zero, 0x00FF ## $t2 = 000000FF
/* 00948 80800948 3C018016 */ lui $at, 0x8016 ## $at = 80160000
/* 0094C 8080094C AC2AF9B4 */ sw $t2, -0x064C($at) ## 8015F9B4
/* 00950 80800950 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00954 80800954 0C02A735 */ jal func_800A9CD4
/* 00958 80800958 260501D0 */ addiu $a1, $s0, 0x01D0 ## $a1 = 000001D0
/* 0095C 8080095C 240B0014 */ addiu $t3, $zero, 0x0014 ## $t3 = 00000014
/* 00960 80800960 240C00FF */ addiu $t4, $zero, 0x00FF ## $t4 = 000000FF
/* 00964 80800964 240DFFFD */ addiu $t5, $zero, 0xFFFD ## $t5 = FFFFFFFD
/* 00968 80800968 240E003C */ addiu $t6, $zero, 0x003C ## $t6 = 0000003C
/* 0096C 8080096C A60001DC */ sh $zero, 0x01DC($s0) ## 000001DC
/* 00970 80800970 A60B01D4 */ sh $t3, 0x01D4($s0) ## 000001D4
/* 00974 80800974 A60C01D6 */ sh $t4, 0x01D6($s0) ## 000001D6
/* 00978 80800978 A60D01D8 */ sh $t5, 0x01D8($s0) ## 000001D8
/* 0097C 8080097C A60E01DA */ sh $t6, 0x01DA($s0) ## 000001DA
/* 00980 80800980 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00984 80800984 8FB00020 */ lw $s0, 0x0020($sp)
/* 00988 80800988 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000
/* 0098C 8080098C 03E00008 */ jr $ra
/* 00990 80800990 00000000 */ nop
/* 00994 80800994 00000000 */ nop
/* 00998 80800998 00000000 */ nop
/* 0099C 8080099C 00000000 */ nop

View file

@ -1,20 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .data
glabel Door_Ana_InitVars
.word 0x009B0700, 0x02000000, 0x00020000, 0x0000019C
.word DoorAna_Init
.word DoorAna_Destroy
.word DoorAna_Update
.word DoorAna_Draw
glabel D_809944C0
.word 0x0A000900, 0x00010000, 0x02000000, 0x00000000, 0x00000000, 0x00000048, 0x00000000, 0x00010000, 0x0032000A, 0x00000000, 0x00000000
glabel D_809944EC
.word 0x036D003F, 0x0598059C, 0x05A005A4, 0x05A805AC, 0x05B005B4, 0x05B805BC, 0x05C005C4, 0x05FC0000, 0x00000000

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_80994550
.incbin "baserom/ovl_Door_Ana", 0x660, 0x00000090

View file

@ -1,28 +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_80994510
.asciz "../z_door_ana.c"
.balign 4
glabel D_80994520
.asciz "../z_door_ana.c"
.balign 4
glabel D_80994530
.asciz "../z_door_ana.c"
.balign 4
glabel D_80994540
.word 0x471C4000, 0x00000000, 0x00000000, 0x00000000

View file

@ -1,16 +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 En_Lightbox_InitVars
.word 0x007C0600, 0x00000010, 0x00810000, 0x00000164
.word EnLightbox_Init
.word EnLightbox_Destroy
.word EnLightbox_Update
.word EnLightbox_Draw

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_80A9EE10
.incbin "baserom/ovl_En_Lightbox", 0x440, 0x00000030

View file

@ -1,13 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .rodata
glabel D_80A9EE00
.word 0x3F333333, 0x00000000, 0x00000000, 0x00000000

View file

@ -1,26 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .data
glabel En_Wallmas_InitVars
.word 0x00110500, 0x00000015, 0x000B0000, 0x00000314
.word EnWallmas_Init
.word EnWallmas_Destroy
.word EnWallmas_Update
.word EnWallmas_Draw
glabel D_80B30D10
.word 0x00000939, 0x10010000, 0x00000000, 0x00000000, 0x00000000, 0xFFCFFFFF, 0x00000000, 0x00010100, 0x001E0028, 0x00000000, 0x00000000
glabel D_80B30D3C
.word 0x0400001E, 0x00289600
glabel D_80B30D44
.word 0x10020102, 0x10020210, 0x01020424, 0x02440402, 0x02240044, 0x00000104, 0x02020804, 0x00000400
glabel D_80B30D64
.word 0x89170030, 0xB04C157C, 0x386CFA24
glabel D_80B30D70
.word 0x00000000, 0x00000000, 0x00000000, 0x00000000

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_80B30E10
.incbin "baserom/ovl_En_Wallmas", 0x18F0, 0x00000210

View file

@ -1,41 +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_80B30D80
.asciz "../z_en_wallmas.c"
.balign 4
glabel D_80B30D94
.asciz "../z_en_wallmas.c"
.balign 4
glabel D_80B30DA8
.asciz "../z_en_wallmas.c"
.balign 4
glabel D_80B30DBC
.asciz "../z_en_wallmas.c"
.balign 4
glabel D_80B30DD0
.asciz "../z_en_wallmas.c"
.balign 4
glabel D_80B30DE4
.asciz "../z_en_wallmas.c"
.balign 4
glabel D_80B30DF8
.word 0x3BCCCCCD
glabel D_80B30DFC
.word 0x3F860A92
glabel D_80B30E00
.word 0x3E860A92, 0x00000000, 0x00000000, 0x00000000

View file

@ -1,15 +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 D_808009A0
.word 0x00000000, 0x00000000
glabel D_808009A8
.word 0x64646400, 0x64646400
glabel D_808009B0
.word 0xFFFFFF00, 0xFFFFFF00, 0x45454500, 0x00000000

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_80800AB0
.incbin "baserom/ovl_title", 0xAB0, 0x000000E0

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 .bss
glabel D_8016A4F0
.space 0x10

View file

@ -1,15 +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 D_8012D280
.incbin "baserom.z64", 0xBA4420, 0x4
#errcnt
glabel D_8012D284
.incbin "baserom.z64", 0xBA4424, 0xC

7
include/alloca.h Normal file
View file

@ -0,0 +1,7 @@
#ifndef _ALLOCA_H_
#define _ALLOCA_H_
void* alloca(unsigned int);
#define alloca __builtin_alloca
#endif

View file

@ -637,6 +637,7 @@ f32 func_800437F0(f32, f32);
// ? func_8005A7A8(?);
// ? func_8005A8C4(?);
s16 func_8005A970(u32 gl790);
s16 func_8005A9F4(Camera* camera);
// ? func_8005AA90(?);
// ? func_8005AC48(?);
// ? func_8005AC60(?);
@ -788,6 +789,7 @@ void Audio_PlaySoundAtPosition(GlobalContext* globalCtx, Vec3f* pos2, s32 radius
// ? func_8006C3A0(?);
// ? func_8006C3D0(?);
void func_8006C438(GlobalContext* globalCtx, s16 arg1);
s32 func_8006C4A4(GlobalContext*, s32);
// ? func_8006C510(?);
// ? func_8006C5A8(?);
// ? func_8006CBAC(?);
@ -1375,7 +1377,7 @@ void func_800C0704(GlobalContext*, s16, f32);
void func_800C0C88(GlobalContext *globalCtx);
// ? func_800C0A44(?);
// ? func_800C0A88(?);
// ? func_800C0AF4(?);
void func_800C0AF4(GlobalContext*, s8, s16);
void func_800C0B60(GlobalContext* globalCtx);
void func_800C0BB4(GlobalContext* globalCtx);
// ? func_800C0CB8(?);
@ -1678,7 +1680,7 @@ u32 Fault_ConvertAddress(FaultAddrConvClient*);
void Fault_Sleep(u32);
void Fault_PadCallback(Input*);
void Fault_UpdatePadImpl();
bool Fault_WaitForInputImpl();
u32 Fault_WaitForInputImpl();
void Fault_WaitForInput();
void Fault_DrawRec(s32, s32, s32, s32, u16);
void Fault_FillScreenBlack();
@ -2132,7 +2134,7 @@ void GfxPrint_SetPosPx(GfxPrint*, s32, s32);
void GfxPrint_SetPos(GfxPrint*, s32, s32);
void GfxPrint_SetBasePosPx(GfxPrint*, s32, s32);
void GfxPrint_PrintCharImpl(GfxPrint*, u8);
void GfxPrint_PrintChar(GfxPrint*, char);
void GfxPrint_PrintChar(GfxPrint*, u8);
void GfxPrint_PrintStringWithSize(GfxPrint*, const void*, size_t, size_t);
GfxPrint* GfxPrint_Callback(GfxPrint*, const char*, size_t);
void GfxPrint_Ctor(GfxPrint*);
@ -2382,5 +2384,7 @@ void func_801109B0(GlobalContext* globalCtx);
void func_80110F68(GlobalContext* globalCtx);
void func_80112098(GlobalContext* globalCtx);
void func_80800878(TitleContext*);
void Title_Init(TitleContext*);
void Opening_Init(OpeningContext* this);
#endif

View file

@ -921,6 +921,7 @@ DECLARE_ROM_SEGMENT(g_pn_55)
DECLARE_ROM_SEGMENT(g_pn_56)
DECLARE_ROM_SEGMENT(g_pn_57)
DECLARE_ROM_SEGMENT(nintendo_rogo_static)
DECLARE_ROM_SEGMENT(title_static)
DECLARE_ROM_SEGMENT(parameter_static)
DECLARE_ROM_SEGMENT(vr_cloud2_static)

View file

@ -692,14 +692,12 @@ extern void* D_8012D1F0;
extern u32 gScreenWidth;
extern u32 gScreenHeight;
extern u32 gSystemHeapSize;
extern s32 D_8012D280;
extern u32 D_8012D284;
extern volatile u32 D_8012D290;
//extern ? D_8012D2A0;
extern Mtx gMtxClear;
extern MtxF gMtxFClear;
//extern ? D_8012DBB0;
//extern ? D_8012DBC0;
extern u32 D_8012DBC0;
extern volatile u32 gIrqMgrResetStatus;
extern u32 D_8012DBA0;
extern u32 D_8012DBA4;
@ -2661,77 +2659,6 @@ extern char D_80141030[];
//extern ? D_8014575C;
//extern ? D_80145780;
//extern ? D_80145794;
extern char D_801457B0[];
extern char D_801457F0[];
extern char D_8014582C[];
extern char D_80145860[];
extern char D_80145894[];
extern char D_8014589C[];
extern char D_801458B0[];
extern char D_801458CC[];
extern char D_801458D0[];
extern char D_801458D8[];
extern char D_801458EC[];
extern char D_80145914[];
extern char D_80145918[];
extern char D_80145920[];
extern char D_80145934[];
extern char D_80145944[];
extern char D_80145948[];
extern char D_80145950[];
extern char D_80145964[];
extern char D_8014598C[];
extern char D_80145990[];
extern char D_80145998[];
extern char D_801459AC[];
extern char D_801459CC[];
extern char D_801459D0[];
extern char D_801459D8[];
extern char D_801459EC[];
extern char D_80145A24[];
extern char D_80145A28[];
extern char D_80145A30[];
extern char D_80145A44[];
extern char D_80145A60[];
extern char D_80145A64[];
extern char D_80145A70[];
extern char D_80145A80[];
extern char D_80145A88[];
extern char D_80145A9C[];
extern char D_80145ABC[];
extern char D_80145AC0[];
extern char D_80145AC8[];
extern char D_80145ADC[];
extern char D_80145AEC[];
//extern ? D_80145AF0;
//extern ? D_80145AF8;
//extern ? D_80145B0C;
//extern ? D_80145B1C;
//extern ? D_80145B20;
//extern ? D_80145B2C;
//extern ? D_80145B48;
//extern ? D_80145B50;
//extern ? D_80145B64;
//extern ? D_80145B80;
//extern ? D_80145B84;
//extern ? D_80145B8C;
//extern ? D_80145BA0;
//extern ? D_80145BB0;
//extern ? D_80145BB4;
//extern ? D_80145BC0;
//extern ? D_80145BD8;
//extern ? D_80145BE4;
//extern ? D_80145BF0;
//extern ? D_80145C10;
extern char D_80145C40[];
extern char D_80145C58[];
extern char D_80145C78[];
extern char D_80145CA0[];
extern char D_80145CA4[];
extern char D_80145CB0[];
extern char D_80145CD4[];
extern char D_80145CF8[];
extern char D_80145D18[];
//extern ? D_80145D40;
//extern ? D_80145D54;
//extern ? D_80145D60;
@ -3657,7 +3584,6 @@ extern u8* gAppNmiBufferPtr;
extern u8 D_80166B68;
//extern ? D_80166D28;
extern u32 gSegments[];
extern u32 D_8016A4F0;
//extern ? D_8016A500;
//extern ? D_8016A504;
//extern ? D_8016A508;

View file

@ -808,6 +808,11 @@ typedef struct
/* 0x04 */ u32 vromEnd;
} RomFile; // size = 0x8
typedef struct
{
/* 0x00 */ void* read_buff;
} Sram; // size = 0x4
typedef struct GameAllocEntry
{
/* 0x00 */ struct GameAllocEntry* next;
@ -840,10 +845,17 @@ typedef struct GameState
typedef struct
{
/* 0x0000 */ GameState state;
/* 0x00A4 */ char unk_A4[0x12C];
/* 0x01D0 */ UNK_TYPE unk_1D0;
/* 0x01D4 */ char unk_1D4[0xD];
/* 0x01E1 */ u8 unk_1E1;
/* 0x00A4 */ void* staticSegment;
/* 0x00A8 */ View view;
/* 0x01D0 */ Sram sram;
/* 0x01D4 */ u16 unk_1D4; // not used in mq dbg (some sort of timer that doesn't seem to affect anything)
/* 0x01D6 */ s16 coverAlpha;
/* 0x01D8 */ s16 addAlpha; // not used in mq dbg
/* 0x01DA */ u16 visibleDuration; // not used in mq dbg
/* 0x01DC */ s16 ult;
/* 0x01DE */ s16 uls;
/* 0x01E0 */ char unk_1E0;
/* 0x01E1 */ u8 exit;
/* 0x01E2 */ char unk_1E2[6];
} TitleContext; // size = 0x1E8
@ -1024,8 +1036,10 @@ typedef struct
/* 0x34 */ s32 unk_34;
/* 0x38 */ s32 unk_38;
/* 0x3C */ u16 unk_3C;
/* 0x3E */ u16 unk_3E; /* Probably Padding */
} SkelAnime; // size = 0x40
/* 0x3E */ u16 unk_3E;
/* 0x40 */ u16 unk_40;
/* 0x42 */ u16 unk_42;
} SkelAnime; // size = 0x44
typedef struct
{
@ -1349,21 +1363,7 @@ typedef struct OverlayRelocationSection {
/* 0x0C */ u32 bssSize;
/* 0x10 */ u32 nRelocations;
/* 0x14 */ u32 relocations[1];
} OverlayRelocationSection; /* size >= 0x18 */
#define VEC3_ADD( V3A0, V3A1 ) \
{ \
V3A0.x += V3A1.x; \
V3A0.y += V3A1.y; \
V3A0.z += V3A1.z; \
}
#define VEC3_SUB( V3DST, V3A0, V3A1 ) \
{ \
V3DST.x = V3A0.x - V3A1.x; \
V3DST.y = V3A0.y - V3A1.y; \
V3DST.z = V3A0.z - V3A1.z; \
}
} OverlayRelocationSection; // size >= 0x18
typedef struct
{

View file

@ -13,6 +13,11 @@ struct GlobalContext;
// From z64light.h
struct LightMapper;
typedef struct
{
f32 x, y;
} Vec2f;
typedef struct
{
f32 x, y, z;
@ -25,13 +30,8 @@ typedef struct
typedef struct
{
f32 x, y;
} Vec2f;
typedef struct
{
u32 x, y;
} Vec2i;
s32 x, y, z;
} Vec3i;
typedef struct
{
@ -329,6 +329,7 @@ typedef struct
/* 0x15A */ u16 unk_15A;
/* 0x15C */ u32 unk_15C;
/* 0x160 */ u8 unk_160;
/* 0x162 */ s16 unk_162;
} DynaPolyActor; // size = 0x164
typedef struct
@ -394,7 +395,9 @@ typedef struct
/* 0x0846 */ u8 unk_846;
/* 0x0847 */ char unk_847[0x004];
/* 0x084B */ s8 unk_84B[UNK_SIZE];
/* 0x084C */ char unk_84C[0x054];
/* 0x084C */ char unk_84C[0x003];
/* 0x084F */ s8 unk_84F;
/* 0x0850 */ char unk_850[0x050];
/* 0x08A0 */ u8 unk_8A0;
/* 0x08A1 */ u8 unk_8A1;
/* 0x08A2 */ u16 unk_8A2;

View file

@ -83,9 +83,9 @@ typedef struct
/* 0x02 */ u16 startFrame;
/* 0x04 */ u16 endFrame;
/* 0x06 */ Vec3s rot;
/* 0x0C */ Vec3f startPos;
/* 0x18 */ Vec3f endPos;
/* 0x24 */ Vec3f normal;
/* 0x0C */ Vec3i startPos;
/* 0x18 */ Vec3i endPos;
/* 0x24 */ Vec3i normal;
} CsCmdActorAction; // size = 0x30
typedef enum

15
spec
View file

@ -444,8 +444,6 @@ beginseg
include "build/src/code/listalloc.o"
include "build/src/code/main.o"
include "build/src/code/padmgr.o"
include "build/data/padmgr.data.o"
include "build/data/padmgr.bss.o"
include "build/src/code/sched.o"
include "build/data/sched.data.o"
include "build/data/sched.bss.o"
@ -617,8 +615,7 @@ endseg
beginseg
name "ovl_title"
include "build/src/overlays/gamestates/ovl_title/z_title.o"
include "build/data/overlays/gamestates/z_title.data.o"
include "build/data/overlays/gamestates/z_title.reloc.o"
include "build/src/overlays/gamestates/ovl_title/z_title_reloc.o"
address 0x80800000
endseg
@ -1880,9 +1877,7 @@ endseg
beginseg
name "ovl_Door_Ana"
include "build/src/overlays/actors/ovl_Door_Ana/z_door_ana.o"
include "build/data/overlays/actors/z_door_ana.data.o"
include "build/data/overlays/actors/z_door_ana.rodata.o"
include "build/data/overlays/actors/z_door_ana.reloc.o"
include "build/src/overlays/actors/ovl_Door_Ana/z_door_ana_reloc.o"
endseg
beginseg
@ -3186,9 +3181,7 @@ endseg
beginseg
name "ovl_En_Lightbox"
include "build/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.o"
include "build/data/overlays/actors/z_en_lightbox.data.o"
include "build/data/overlays/actors/z_en_lightbox.rodata.o"
include "build/data/overlays/actors/z_en_lightbox.reloc.o"
include "build/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox_reloc.o"
endseg
beginseg
@ -3803,7 +3796,7 @@ endseg
beginseg
name "ovl_En_Wallmas"
include "build/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.o"
include "build/data/overlays/actors/z_en_wallmas.reloc.o"
include "build/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas_reloc.o"
endseg
beginseg

View file

@ -228,8 +228,6 @@ void __osMalloc_FreeBlockTest(Arena *arena, ArenaNode *node)
}
}
//single instruction not matching, stack problem
#ifdef NON_MATCHING
void* __osMalloc_NoLockDebug(Arena *arena, u32 size, const char *file, s32 line)
{
ArenaNode *iter;
@ -237,19 +235,19 @@ void* __osMalloc_NoLockDebug(Arena *arena, u32 size, const char *file, s32 line)
ArenaNode *newNode;
void *ret;
ArenaNode *next;
u32 pad;
ret = NULL;
iter = arena->head;
size = ALIGN16(size);
blockSize = ALIGN16(size) + sizeof(ArenaNode);
while (iter)
{
if (iter->isFree && iter->size >= size)
{
if ((arena->flag & CHECK_FREE_BLOCK) != 0)
if (arena->flag & CHECK_FREE_BLOCK)
__osMalloc_FreeBlockTest(arena, iter);
blockSize = ALIGN16(size) + sizeof(ArenaNode);
if (blockSize < iter->size)
{
newNode = (ArenaNode *)((u32)iter + blockSize);
@ -269,7 +267,7 @@ void* __osMalloc_NoLockDebug(Arena *arena, u32 size, const char *file, s32 line)
iter->isFree = false;
ArenaImpl_SetDebugInfo(iter, file, line, arena);
ret = (void *)((u32)iter + sizeof(ArenaNode));
if ((arena->flag & FILL_ALLOCBLOCK) != 0)
if (arena->flag & FILL_ALLOCBLOCK)
func_80106860(ret, BLOCK_ALLOC_MAGIC, size);
break;
@ -280,9 +278,6 @@ void* __osMalloc_NoLockDebug(Arena *arena, u32 size, const char *file, s32 line)
return ret;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osMalloc_NoLockDebug.s")
#endif
void* __osMallocDebug(Arena* arena, u32 size, const char* file, s32 line)
{
@ -293,13 +288,11 @@ void* __osMallocDebug(Arena* arena, u32 size, const char* file, s32 line)
return ret;
}
//stack + missing a move
#ifdef NON_MATCHING
void* __osMallocRDebug(Arena *arena, u32 size, const char *file, s32 line)
{
ArenaNode *iter;
u32 blockSize;
ArenaNode *newNode;
u32 blockSize;
ArenaNode *next;
void *ret;
@ -311,7 +304,7 @@ void* __osMallocRDebug(Arena *arena, u32 size, const char *file, s32 line)
{
if (iter->isFree && iter->size >= size)
{
if ((arena->flag & CHECK_FREE_BLOCK) != 0)
if (arena->flag & CHECK_FREE_BLOCK)
__osMalloc_FreeBlockTest(arena, iter);
blockSize = ALIGN16(size) + sizeof(ArenaNode);
@ -328,12 +321,14 @@ void* __osMallocRDebug(Arena *arena, u32 size, const char *file, s32 line)
next = ArenaImpl_GetNextBlock(newNode);
if (next)
next->prev = newNode;
iter = newNode;
}
iter->isFree = false;
ArenaImpl_SetDebugInfo(iter, file, line, arena);
ret = (void *)((u32)iter + sizeof(ArenaNode));
if ((arena->flag & FILL_ALLOCBLOCK) != 0)
if (arena->flag & FILL_ALLOCBLOCK)
func_80106860(ret, BLOCK_ALLOC_MAGIC, size);
break;
@ -345,13 +340,7 @@ void* __osMallocRDebug(Arena *arena, u32 size, const char *file, s32 line)
ArenaImpl_Unlock(arena);
return ret;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osMallocRDebug.s")
#endif
//same diff as __osMalloc_NoLockDebug
#ifdef NON_MATCHING
void* __osMalloc_NoLock(Arena *arena, u32 size)
{
ArenaNode *iter;
@ -359,19 +348,20 @@ void* __osMalloc_NoLock(Arena *arena, u32 size)
ArenaNode *newNode;
void *ret;
ArenaNode *next;
u32 pad;
ret = NULL;
iter = arena->head;
size = ALIGN16(size);
blockSize = ALIGN16(size) + sizeof(ArenaNode);
while (iter)
{
if (iter->isFree && iter->size >= size)
{
if ((arena->flag & CHECK_FREE_BLOCK) != 0)
if (arena->flag & CHECK_FREE_BLOCK)
__osMalloc_FreeBlockTest(arena, iter);
blockSize = ALIGN16(size) + sizeof(ArenaNode);
if (blockSize < iter->size)
{
newNode = (ArenaNode *)((u32)iter + blockSize);
@ -391,7 +381,7 @@ void* __osMalloc_NoLock(Arena *arena, u32 size)
iter->isFree = false;
ArenaImpl_SetDebugInfo(iter, NULL, 0, arena);
ret = (void *)((u32)iter + sizeof(ArenaNode));
if ((arena->flag & FILL_ALLOCBLOCK) != 0)
if (arena->flag & FILL_ALLOCBLOCK)
func_80106860(ret, BLOCK_ALLOC_MAGIC, size);
break;
@ -402,9 +392,6 @@ void* __osMalloc_NoLock(Arena *arena, u32 size)
return ret;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osMalloc_NoLock.s")
#endif
void* __osMalloc(Arena* arena, u32 size)
{
@ -415,13 +402,11 @@ void* __osMalloc(Arena* arena, u32 size)
return ret;
}
//same diff as __osMallocRDebug
#ifdef NON_MATCHING
void* __osMallocR(Arena *arena, u32 size)
{
ArenaNode *iter;
u32 blockSize;
ArenaNode *newNode;
u32 blockSize;
ArenaNode *next;
void *ret;
@ -433,7 +418,7 @@ void* __osMallocR(Arena *arena, u32 size)
{
if (iter->isFree && iter->size >= size)
{
if ((arena->flag & CHECK_FREE_BLOCK) != 0)
if (arena->flag & CHECK_FREE_BLOCK)
__osMalloc_FreeBlockTest(arena, iter);
blockSize = ALIGN16(size) + sizeof(ArenaNode);
@ -450,12 +435,14 @@ void* __osMallocR(Arena *arena, u32 size)
next = ArenaImpl_GetNextBlock(newNode);
if (next)
next->prev = newNode;
iter = newNode;
}
iter->isFree = false;
ArenaImpl_SetDebugInfo(iter, NULL, 0, arena);
ret = (void *)((u32)iter + sizeof(ArenaNode));
if ((arena->flag & FILL_ALLOCBLOCK) != 0)
if (arena->flag & FILL_ALLOCBLOCK)
func_80106860(ret, BLOCK_ALLOC_MAGIC, size);
break;
@ -467,13 +454,7 @@ void* __osMallocR(Arena *arena, u32 size)
ArenaImpl_Unlock(arena);
return ret;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osMallocR.s")
#endif
//small reordering
#ifdef NON_MATCHING
void __osFree_NoLock(Arena* arena, void* ptr)
{
ArenaNode* node;
@ -486,12 +467,12 @@ void __osFree_NoLock(Arena* arena, void* ptr)
node = (ArenaNode*)((u32)ptr - sizeof(ArenaNode));
if (node == NULL || node->magic != NODE_MAGIC)
{
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:不正解放(%08x)\n" VT_RST, arena); //__osFree: Unauthorized release (%08x)
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:不正解放(%08x)\n" VT_RST, ptr); //__osFree: Unauthorized release (%08x)
return;
}
if (node->isFree)
{
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:二重解放(%08x)\n" VT_RST, arena); //__osFree: Double release (%08x)
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:二重解放(%08x)\n" VT_RST, ptr); //__osFree: Double release (%08x)
return;
}
if (arena != node->arena && arena != NULL)
@ -505,12 +486,12 @@ void __osFree_NoLock(Arena* arena, void* ptr)
prev = ArenaImpl_GetPrevBlock(node);
node->isFree = true;
ArenaImpl_SetDebugInfo(node, NULL, 0, arena);
if ((arena->flag & FILL_FREEBLOCK) != 0)
if (arena->flag & FILL_FREEBLOCK)
{
func_80106860((u32)node + sizeof(ArenaNode), BLOCK_FREE_MAGIC, node->size);
}
newNext = node->next;
newNext = next;
if ((u32)next == (u32)node + sizeof(ArenaNode) + node->size && next->isFree)
{
newNext = ArenaImpl_GetNextBlock(next);
@ -518,26 +499,23 @@ void __osFree_NoLock(Arena* arena, void* ptr)
newNext->prev = node;
node->size += next->size + sizeof(ArenaNode);
if ((arena->flag & FILL_FREEBLOCK) != 0)
if (arena->flag & FILL_FREEBLOCK)
func_80106860(next, BLOCK_FREE_MAGIC, sizeof(ArenaNode));
node->next = newNext;
next = newNext;
}
if (prev && prev->isFree && (u32)node == (u32)prev + sizeof(ArenaNode) + prev->size)
{
if (newNext)
newNext->prev = prev;
prev->next = newNext;
if (next)
next->prev = prev;
prev->next = next;
prev->size += node->size + sizeof(ArenaNode);
if ((arena->flag & FILL_FREEBLOCK) != 0)
if (arena->flag & FILL_FREEBLOCK)
func_80106860(node, BLOCK_FREE_MAGIC, sizeof(ArenaNode));
}
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osFree_NoLock.s")
#endif
void __osFree(Arena* arena, void* ptr)
{
@ -546,8 +524,6 @@ void __osFree(Arena* arena, void* ptr)
ArenaImpl_Unlock(arena);
}
//small reordering
#ifdef NON_MATCHING
void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, s32 line)
{
ArenaNode* node;
@ -560,12 +536,12 @@ void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, s32 line)
node = (ArenaNode*)((u32)ptr - sizeof(ArenaNode));
if (node == NULL || node->magic != NODE_MAGIC)
{
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:不正解放(%08x) [%s:%d ]\n" VT_RST, arena, file, line); //__osFree: Unauthorized release (%08x)
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:不正解放(%08x) [%s:%d ]\n" VT_RST, ptr, file, line); //__osFree: Unauthorized release (%08x)
return;
}
if (node->isFree)
{
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:二重解放(%08x)\n" VT_RST, arena); //__osFree: Double release (%08x)
osSyncPrintf(VT_COL(RED, WHITE) "__osFree:二重解放(%08x) [%s:%d ]\n" VT_RST, ptr, file, line); //__osFree: Double release (%08x)
return;
}
if (arena != node->arena && arena != NULL)
@ -579,7 +555,7 @@ void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, s32 line)
prev = ArenaImpl_GetPrevBlock(node);
node->isFree = true;
ArenaImpl_SetDebugInfo(node, file, line, arena);
if ((arena->flag & FILL_FREEBLOCK) != 0)
if (arena->flag & FILL_FREEBLOCK)
{
func_80106860((u32)node + sizeof(ArenaNode), BLOCK_FREE_MAGIC, node->size);
}
@ -592,26 +568,23 @@ void __osFree_NoLockDebug(Arena* arena, void* ptr, const char* file, s32 line)
newNext->prev = node;
node->size += next->size + sizeof(ArenaNode);
if ((arena->flag & FILL_FREEBLOCK) != 0)
if (arena->flag & FILL_FREEBLOCK)
func_80106860(next, BLOCK_FREE_MAGIC, sizeof(ArenaNode));
node->next = newNext;
next = newNext;
}
if (prev && prev->isFree && (u32)node == (u32)prev + sizeof(ArenaNode) + prev->size)
{
if (newNext)
newNext->prev = prev;
prev->next = newNext;
if (next)
next->prev = prev;
prev->next = next;
prev->size += node->size + sizeof(ArenaNode);
if ((arena->flag & FILL_FREEBLOCK) != 0)
if (arena->flag & FILL_FREEBLOCK)
func_80106860(node, BLOCK_FREE_MAGIC, sizeof(ArenaNode));
}
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osFree_NoLockDebug.s")
#endif
void __osFreeDebug(Arena* arena, void* ptr, const char* file, s32 line)
{
@ -620,33 +593,27 @@ void __osFreeDebug(Arena* arena, void* ptr, const char* file, s32 line)
ArenaImpl_Unlock(arena);
}
//small reordering, stack usage
#ifdef NON_MATCHING
void* __osRealloc(Arena* arena, void* ptr, u32 newSize)
{
void* newAlloc;
ArenaNode* node;
ArenaNode* next;
u32 sizeDiff;
ArenaNode* overNext;
ArenaNode* newNext;
void* newAlloc;
//-----------
ArenaNode* next2;
ArenaNode unk;
ArenaNode* overNext;
ArenaNode* newNext2;
ArenaNode* next2;
u32 sizeDiff;
ArenaNode* overNext2;
//----------
u32 newSize2;
ArenaNode* newNext3;
ArenaNode* overNext3;
ArenaNode localCopy;
u32 blockSize;
s32 pad;
newSize = ALIGN16(newSize);
osSyncPrintf("__osRealloc(%08x, %d)\n", ptr, newSize);
ArenaImpl_Lock(arena);
if (!ptr)
{
ptr = __osMalloc(arena, newSize);
ptr = __osMalloc_NoLock(arena, newSize);
}
else if (!newSize)
{
@ -694,13 +661,14 @@ void* __osRealloc(Arena* arena, void* ptr, u32 newSize)
else if (newSize < node->size)
{
next2 = ArenaImpl_GetNextBlock(node);
if (next && next->isFree)
if (next2 && next2->isFree)
{
blockSize = ALIGN16(newSize) + sizeof(ArenaNode);
//Increased free block behind current memory block
osSyncPrintf("現メモリブロックの後ろのフリーブロックを大きくしました\n");
unk = *next2;
newNext2 = (u32)node + ALIGN16(newSize) + sizeof(ArenaNode);
*newNext2 = unk;
newNext2 = (ArenaNode*)((u32)node + blockSize);
localCopy = *next2;
*newNext2 = localCopy;
newNext2->size += node->size - newSize;
node->next = newNext2;
node->size = newSize;
@ -710,20 +678,20 @@ void* __osRealloc(Arena* arena, void* ptr, u32 newSize)
}
else if (newSize + sizeof(ArenaNode) < node->size)
{
blockSize = ALIGN16(newSize) + sizeof(ArenaNode);
//Generated because there is no free block after the current memory block
osSyncPrintf("現メモリブロックの後ろにフリーブロックがないので生成します\n");
newSize2 = ALIGN16(newSize) + sizeof(ArenaNode);
newNext3 = (ArenaNode*)((u32)node + newSize2);
newNext3->next = ArenaImpl_GetNextBlock(node);
newNext3->prev = node;
newNext3->size = node->size - newSize2;
newNext3->isFree = true;
newNext3->magic = NODE_MAGIC;
node->next = newNext3;
newNext2 = (ArenaNode*)((u32)node + blockSize);
newNext2->next = ArenaImpl_GetNextBlock(node);
newNext2->prev = node;
newNext2->size = node->size - blockSize;
newNext2->isFree = true;
newNext2->magic = NODE_MAGIC;
node->next = newNext2;
node->size = newSize;
overNext3 = ArenaImpl_GetNextBlock(newNext3);
if (overNext3)
overNext3->prev = newNext3;
overNext2 = ArenaImpl_GetNextBlock(newNext2);
if (overNext2)
overNext2->prev = newNext2;
}
else
{
@ -732,14 +700,11 @@ void* __osRealloc(Arena* arena, void* ptr, u32 newSize)
ptr = NULL;
}
}
}
ArenaImpl_Unlock(arena);
return ptr;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osRealloc.s")
#endif
void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, s32 line)
{
@ -757,7 +722,7 @@ void ArenaImpl_GetSizes(Arena* arena, u32* outMaxFree, u32* outFree, u32* outAll
*outAlloc = 0;
iter = arena->head;
while(iter)
while (iter)
{
if (iter->isFree)
{
@ -774,8 +739,6 @@ void ArenaImpl_GetSizes(Arena* arena, u32* outMaxFree, u32* outFree, u32* outAll
ArenaImpl_Unlock(arena);
}
//small reordering at the end
#ifdef NON_MATCHING
void __osDisplayArena(Arena* arena)
{
u32 freeSize;
@ -803,7 +766,7 @@ void __osDisplayArena(Arena* arena)
osSyncPrintf("メモリブロック範囲 status サイズ [時刻 s ms us ns: TID:src:行]\n");
iter = arena->head;
while(iter)
while (iter)
{
if (iter && iter->magic == NODE_MAGIC)
{
@ -828,14 +791,14 @@ void __osDisplayArena(Arena* arena)
{
allocatedSize += iter->size;
}
iter = next;
}
else
{
osSyncPrintf("%08x Block Invalid\n", iter);
iter = NULL;
next = NULL;
}
iter = next;
}
osSyncPrintf("確保ブロックサイズの合計 0x%08x バイト\n", allocatedSize); //Total reserved node size 0x%08x bytes
@ -844,12 +807,7 @@ void __osDisplayArena(Arena* arena)
ArenaImpl_Unlock(arena);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/__osDisplayArena.s")
#endif
//small reordering
#ifdef NON_MATCHING
void ArenaImpl_FaultClient(Arena* arena)
{
u32 freeSize;
@ -872,7 +830,7 @@ void ArenaImpl_FaultClient(Arena* arena)
FaultDrawer_Printf("Memory Block Region status size\n");
iter = arena->head;
while(iter)
while (iter)
{
if (iter && iter->magic == NODE_MAGIC)
{
@ -894,15 +852,15 @@ void ArenaImpl_FaultClient(Arena* arena)
{
allocatedSize += iter->size;
}
iter = next;
}
else
{
FaultDrawer_SetFontColor(0xF801);
FaultDrawer_Printf("%08x Block Invalid\n", iter);
iter = NULL;
next = NULL;
}
iter = next;
}
FaultDrawer_SetFontColor(0x7F1);
@ -910,9 +868,6 @@ void ArenaImpl_FaultClient(Arena* arena)
FaultDrawer_Printf("Total Free Block Size %08x\n", freeSize);
FaultDrawer_Printf("Largest Free Block Size %08x\n", maxFree);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/__osMalloc/ArenaImpl_FaultClient.s")
#endif
u32 __osCheckArena(Arena* arena)
{
@ -924,7 +879,7 @@ u32 __osCheckArena(Arena* arena)
//Checking the contents of the arena. . (%08x)
osSyncPrintf("アリーナの内容をチェックしています... (%08x)\n", arena);
iter = arena->head;
while(iter)
while (iter)
{
if (iter && iter->magic == NODE_MAGIC)
{

View file

@ -1,7 +1,7 @@
#include <ultra64.h>
#include <global.h>
void func_8007C1AC(Vec3f* dest, struct_80045714* arg1);
Vec3f* func_8007C1AC(Vec3f* dest, struct_80045714* arg1);
f32 func_8007BF90(Vec3f* a, Vec3f* b)
{
@ -33,49 +33,48 @@ f32 func_8007C058(f32 arg0, f32 arg1)
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BF90/func_8007C0A8.s")
#ifdef NON_MATCHING
void func_8007C0F8(Vec3f* dest, Vec3f* a, Vec3f* b)
Vec3f* func_8007C0F8(Vec3f* dest, Vec3f* a, Vec3f* b)
{
Vec3f v1;
Vec3f v2;
f32 temp;
v1.x = b->x - a->x;
v1.y = b->y - a->y;
v1.z = b->z - a->z;
temp = func_8007C058(sqrtf(SQ(v1.x) + SQ(v1.y) + SQ(v1.z)), 0.01f);
v2.x = v1.x / temp;
v2.y = v1.y / temp;
v2.z = v1.z / temp;
*dest = v2;
return dest;
}
Vec3f* func_8007C1AC(Vec3f* dest, struct_80045714* arg1)
{
f32 fVar1;
Vec3f v;
f32 sin4;
f32 cos4;
f32 sin6;
f32 cos6;
v.x = b->x - a->x;
v.y = b->y - a->y;
v.z = b->z - a->z;
cos4 = Math_Coss(arg1->unk_04);
cos6 = Math_Coss(arg1->unk_06);
sin4 = Math_Sins(arg1->unk_04);
sin6 = Math_Sins(arg1->unk_06);
fVar1 = func_8007C058(sqrtf(v.x * v.x + v.y * v.y + v.z * v.z), D_8013CB80);
v.x = arg1->unk_00 * sin4 * sin6;
v.y = arg1->unk_00 * cos4;
v.z = arg1->unk_00 * sin4 * cos6;
dest->x = v.x / fVar1;
dest->y = v.y / fVar1;
dest->z = v.z / fVar1;
*dest = v;
return dest;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BF90/func_8007C0F8.s")
#endif
#ifdef NON_MATCHING
void func_8007C1AC(Vec3f* dest, struct_80045714* arg1)
{
f32 fVar1;
f32 fVar2;
f32 fVar3;
f32 fVar4;
f32 fVar5;
f32 fVar6;
fVar1 = Math_Coss(arg1->unk_04);
fVar2 = Math_Coss(arg1->unk_06);
fVar3 = Math_Coss(arg1->unk_04);
fVar4 = Math_Coss(arg1->unk_06);
fVar6 = arg1->unk_00;
fVar5 = arg1->unk_00;
dest->x = arg1->unk_00 * fVar3 * fVar4;
dest->y = fVar6 * fVar1;
dest->z = fVar5 * fVar3 * fVar2;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BF90/func_8007C1AC.s")
#endif
void func_8007C3F4(struct_80045714* arg0, Vec3f* arg1);

View file

@ -45,22 +45,18 @@ void func_800AA0B4(void)
if (0) ; // Necessary to match
}
#ifdef NON_MATCHING
void func_800AA0F0(void)
{
if ((gPadMgr.unk_460 == func_800A9F30) && (gPadMgr.unk_464 == 0))
PadMgr* padmgr = &gPadMgr;
if ((padmgr->unk_460 == func_800A9F30) && (padmgr->unk_464 == 0))
{
// asm loads/writes directly to 0x80166D20 and 0x80166D24
// but the compiler wants to reuse offsets from 0x801668C0
gPadMgr.unk_460 = NULL;
gPadMgr.unk_464 = 0;
padmgr->unk_460 = NULL;
padmgr->unk_464 = 0;
}
func_800D3178(&D_80160FD0);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/code_800A9F30/func_800AA0F0.s")
#endif
u32 func_800AA148(void)
{

View file

@ -1,5 +1,6 @@
#include <ultra64.h>
#include <global.h>
#include <alloca.h>
#include <vt.h>
//data
@ -55,40 +56,42 @@ void Fault_ClientProcessThread(FaultClientContext* ctx)
osSendMesg(ctx->queue, ctx->msg, 1);
}
#ifdef NON_MATCHING
void Fault_ProcessClientContext(FaultClientContext* ctx)
{
OSMesgQueue queue;
OSMesg msg;
OSThread* t;
OSTimer timer;
OSMesg recMsg;
OSThread* thread;
OSTimer timer;
u32 timerMsgVal;
timerMsgVal = 666;
thread = NULL;
osCreateMesgQueue(&queue, &msg, 1);
ctx->queue = &queue;
ctx->msg = NULL;
if (sFaultStructPtr->currClientThreadSp)
if (sFaultStructPtr->currClientThreadSp != 0)
{
Fault_ClientProcessThread(ctx);
t = NULL;
thread = alloca(sizeof(OSThread));
osCreateThread(thread, 2, Fault_ClientProcessThread, ctx, sFaultStructPtr->currClientThreadSp, 0x7E);
osStartThread(thread);
}
else
{
OSThread thread;
osCreateThread(&thread, 2, &Fault_ClientProcessThread, ctx, sFaultStructPtr->currClientThreadSp, 0x7E);
osStartThread(&thread);
t = &thread;
Fault_ClientProcessThread(ctx);
}
while(true)
while (true)
{
osSetTimer(&timer, OS_USEC_TO_CYCLES(1000000), 0, &queue, (OSMesg)0x29A);
osSetTimer(&timer, OS_USEC_TO_CYCLES(1000000), 0, &queue, (OSMesg)timerMsgVal);
osRecvMesg(&queue, &recMsg, 1);
if (recMsg == (OSMesg)0x29A)
if (recMsg != (OSMesg)666)
break;
if (sFaultIsWaitingForInput)
if (!sFaultIsWaitingForInput)
{
ctx->ret = -1;
break;
@ -96,17 +99,13 @@ void Fault_ProcessClientContext(FaultClientContext* ctx)
}
osStopTimer(&timer);
if (t)
if (thread != NULL)
{
osStopThread(t);
//osDestroyThread(t);
osDestroyThread(t);
osStopThread(thread);
osDestroyThread(thread);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/fault/Fault_ProcessClientContext.s")
#endif
u32 Fault_ProcessClient(u32 callback, u32 param0, u32 param1)
{
@ -120,16 +119,22 @@ u32 Fault_ProcessClient(u32 callback, u32 param0, u32 param1)
}
#ifdef NON_MATCHING
void Fault_AddClient(FaultClient *client, void* callback, void* param0, void* param1)
// minor ordering differences
void Fault_AddClient(FaultClient* client, void* callback, void* param0, void* param1)
{
bool alreadyExist = false;
OSIntMask mask = osSetIntMask(1);
FaultClient* iter = sFaultStructPtr->clients;
OSIntMask mask;
u32 alreadyExists;
FaultClient* iter;
alreadyExists = false;
mask = osSetIntMask(1);
iter = sFaultStructPtr->clients;
while (iter)
{
if (iter == client)
{
alreadyExist = true;
alreadyExists = true;
goto end;
}
iter = iter->next;
@ -143,7 +148,7 @@ void Fault_AddClient(FaultClient *client, void* callback, void* param0, void* pa
end:
osSetIntMask(mask);
if (alreadyExist)
if (alreadyExists)
osSyncPrintf(VT_COL(RED, WHITE) "fault_AddClient: %08x は既にリスト中にある\n" VT_RST, client);
}
#else
@ -187,7 +192,6 @@ void Fault_RemoveClient(FaultClient* client) {
osSyncPrintf(VT_COL(RED, WHITE) "fault_RemoveClient: %08x リスト不整合です\n" VT_RST, client);
}
#pragma GLOBAL_ASM("asm/non_matchings/code/fault/Fault_AddAddrConvClient.s")
void Fault_RemoveAddrConvClient(FaultAddrConvClient* client) {
@ -266,20 +270,23 @@ void Fault_UpdatePadImpl()
}
#ifdef NON_MATCHING
bool Fault_WaitForInputImpl()
// ordering differences and possibly regalloc
u32 Fault_WaitForInputImpl()
{
u16 kDown;
bool exitDebugger;
u32 exitDebugger;
s32 count = 600;
Input* curInput = &sFaultStructPtr->padInput;
while (true)
{
while (true)
{
Fault_Sleep(0x10);
Fault_UpdatePadImpl();
kDown = curInput->padPressed;
if (kDown == 0x20)
sFaultStructPtr->faultActive = !sFaultStructPtr->faultActive;
@ -291,14 +298,18 @@ bool Fault_WaitForInputImpl()
}
if (kDown == 0x8000 || kDown == 0x100)
break;
return false;
if (kDown == 0x200)
return true;
if (kDown == 0x800)
FaultDrawer_SetOsSyncPrintfEnabled(true);
if (kDown == 0x400)
FaultDrawer_SetOsSyncPrintfEnabled(false);
}
return false;
}
#else
@ -338,10 +349,10 @@ void Fault_DrawCornerRec(u16 color)
Fault_DrawRec(0x16, 0x10, 8, 1, color);
}
void Fault_PrintFReg(s32 idx, f32 *value)
void Fault_PrintFReg(s32 idx, f32* value)
{
u32 raw = *(u32*)value;
int v0 = ((raw & 0x7f800000) >> 0x17) - 0x7f;
s32 v0 = ((raw & 0x7f800000) >> 0x17) - 0x7f;
if ((v0 >= -0x7e && v0 < 0x80) || raw == 0)
FaultDrawer_Printf("F%02d:%14.7e ", idx, *value);
@ -349,8 +360,7 @@ void Fault_PrintFReg(s32 idx, f32 *value)
FaultDrawer_Printf("F%02d: %08x(16) ", idx, raw);
}
#ifdef NON_MATCHING
void Fault_LogFReg(s32 idx, f32 *value)
void Fault_LogFReg(s32 idx, f32* value)
{
u32 raw = *(u32*)value;
s32 v0 = ((raw & 0x7f800000) >> 0x17) - 0x7f;
@ -358,11 +368,8 @@ void Fault_LogFReg(s32 idx, f32 *value)
if ((v0 >= -0x7e && v0 < 0x80) || raw == 0)
osSyncPrintf("F%02d:%14.7e ", idx, *value);
else
osSyncPrintf("F%02d: %08x(16) ", idx, raw);
osSyncPrintf("F%02d: %08x(16) ", idx, *(u32*)value);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/fault/Fault_LogFReg.s")
#endif
void Fault_PrintFPCR(u32 value)
{
@ -567,14 +574,16 @@ void Fault_DrawMemDumpPage(const char* title, u32* addr, u32 param_3) {
FaultDrawer_SetCharPad(0, 0);
}
#ifdef NON_MATCHING
// saved register and stack usage differences
// possibly some minor ordering and regalloc differences
void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1)
{
s32 count;
u16 held;
s32 off;
Input* curInput = &sFaultStructPtr->padInput;
u32 addr = pc;
s32 count;
s32 off;
while (true)
{
if (addr < 0x80000000)
@ -583,49 +592,54 @@ void Fault_DrawMemDump(u32 pc, u32 sp, u32 unk0, u32 unk1)
addr = 0x807fff00;
addr &= ~0xF;
Fault_DrawMemDumpPage("Dump", (u32*)addr);
Fault_DrawMemDumpPage("Dump", (u32*)addr, 0);
count = 600;
while (sFaultStructPtr->faultActive)
{
if (count-- == 0)
if (count == 0)
return;
count--;
Fault_Sleep(0x10);
Fault_UpdatePadImpl();
if ((sFaultStructPtr->padInput.padPressed | ~0x20) == ~0x20)
if (!~(curInput->padPressed | ~0x20))
sFaultStructPtr->faultActive = false;
}
do
{
Fault_Sleep(0x10);
Fault_UpdatePadImpl();
} while (sFaultStructPtr->padInput.padPressed == 0);
} while (curInput->padPressed == 0);
if ((sFaultStructPtr->padInput.padPressed | ~0x1000) == ~0)
if (!~(curInput->padPressed | ~0x1000))
return;
held = sFaultStructPtr->padInput.status;
if ((held | ~0x8000) == ~0)
if (!~(curInput->raw.pad | ~0x8000))
return;
off = 0x10;
if ((held | ~0x2000) == ~0)
if (!~(curInput->raw.pad | ~0x2000))
off = 0x100;
if ((held | ~0x4000) == ~0)
if (!~(curInput->raw.pad | ~0x4000))
off <<= 8;
if ((held | ~0x800) == ~0)
if (!~(curInput->raw.pad | ~0x800))
addr -= off;
if ((held | ~0x400) == ~0)
addr -= off;
if ((held | ~0x8) == ~0)
if (!~(curInput->raw.pad | ~0x400))
addr += off;
if (!~(curInput->raw.pad | ~0x8))
addr = pc;
if ((held | ~0x4) == ~0)
if (!~(curInput->raw.pad | ~0x4))
addr = sp;
if ((held | ~0x2) == ~0)
if (!~(curInput->raw.pad | ~0x2))
addr = unk0;
if ((held | ~0x1) == ~0)
if (!~(curInput->raw.pad | ~0x1))
addr = unk1;
if ((held | ~0x20) == ~0)
if (!~(curInput->raw.pad | ~0x20))
break;
}
sFaultStructPtr->faultActive = true;
}
#else
@ -674,6 +688,7 @@ void Fault_ProcessClients(void)
{
FaultClient* iter = sFaultStructPtr->clients;
s32 idx = 0;
while(iter)
{
if (iter->callback)
@ -696,58 +711,59 @@ void Fault_UpdatePad()
}
#ifdef NON_MATCHING
void Fault_ThreadEntry(u32 unused)
// saved register and stack usage differences
void Fault_ThreadEntry(void* arg)
{
OSThread *faultedThread;
OSThread* faultedThread;
OSMesg msg;
//osSetEventMesg
osSetEventMesg(OS_EVENT_CPU_BREAK, &sFaultStructPtr->queue, 1);
osSetEventMesg(OS_EVENT_FAULT, &sFaultStructPtr->queue, 2);
while (true)
{
osRecvMesg(&sFaultStructPtr->queue, &msg, 1);
do
{
osRecvMesg(&sFaultStructPtr->queue, &msg, 1);
if (msg == (OSMesg)1)
{
sFaultStructPtr->msgId = 1;
osSyncPrintf("フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました\n");
}
else if (msg == (OSMesg)2)
{
sFaultStructPtr->msgId = 2;
osSyncPrintf("フォルトマネージャ:OS_EVENT_FAULTを受信しました\n");
}
else if (msg != (OSMesg)3)
{
sFaultStructPtr->msgId = (u8)3;
osSyncPrintf("フォルトマネージャ:不明なメッセージを受信しました\n");
}
if (msg == (OSMesg)1)
{
sFaultStructPtr->msgId = 1;
osSyncPrintf("フォルトマネージャ:OS_EVENT_CPU_BREAKを受信しました\n");
}
else if (1 && msg == (OSMesg)2)
{
sFaultStructPtr->msgId = 2;
osSyncPrintf("フォルトマネージャ:OS_EVENT_FAULTを受信しました\n");
}
else if (msg == (OSMesg)3)
{
Fault_UpdatePad();
faultedThread = NULL;
continue;
}
else
{
sFaultStructPtr->msgId = 3;
osSyncPrintf("フォルトマネージャ:不明なメッセージを受信しました\n");
}
if (msg == (OSMesg)3)
{
Fault_UpdatePad();
faultedThread = NULL;
}
else
{
faultedThread = __osGetCurrFaultedThread();
osSyncPrintf("__osGetCurrFaultedThread()=%08x\n", faultedThread);
if (!faultedThread)
if (faultedThread == NULL)
{
faultedThread = Fault_FindFaultedThread();
osSyncPrintf("FindFaultedThread()=%08x\n", faultedThread);
}
}
if (!faultedThread)
continue;
} while (faultedThread == NULL);
__osSetFpcCsr(__osGetFpcCsr() & -0xf81);
sFaultStructPtr->faultedThread = faultedThread;
while (!sFaultStructPtr->faultHandlerEnabled)
Fault_Sleep(1000);
Fault_Sleep(500);
Fault_CommitFB();
@ -781,10 +797,12 @@ void Fault_ThreadEntry(u32 unused)
FaultDrawer_DrawText(0x40, 0x64, " THANK YOU! ");
FaultDrawer_DrawText(0x40, 0x6E, " You are great debugger!");
Fault_WaitForInput();
} while (!sFaultStructPtr->exitDebugger);
while(!sFaultStructPtr->exitDebugger){}
while (!sFaultStructPtr->exitDebugger)
{
}
Fault_ResumeThread(faultedThread);
}

View file

@ -47,7 +47,7 @@ FaultDrawer sFaultDrawerDefault =
22, 297,//xStart, xEnd
0xFFFF, 0x0000, //foreColor, backColor
22, 16, //cursorX, cursorY
&sFaultDrawerFont, //font
sFaultDrawerFont, //font
8, 8, 0, 0,
{ //printColors
0x0001, 0xF801, 0x07C1, 0xFFC1,
@ -63,7 +63,6 @@ FaultDrawer sFaultDrawerDefault =
FaultDrawer sFaultDrawerStruct;
char D_8016B6C0[0x20]; //? unused
void FaultDrawer_SetOsSyncPrintfEnabled(u32 enabled)
{
sFaultDrawerStruct.osSyncPrintfEnabled = enabled;
@ -75,9 +74,10 @@ void FaultDrawer_DrawRecImpl(s32 xstart, s32 ystart, s32 xend, s32 yend, u16 col
if (sFaultDrawerStruct.w - xstart > 0 && sFaultDrawerStruct.h - ystart > 0)
{
s32 x, y;
for (y = 0; y < yend-ystart+1; y++)
for (x = 0; x < xend-xstart+1; x++)
sFaultDrawerStruct.fb[sFaultDrawerStruct.w*y+x] = color;
for (y = 0; y <= yend - ystart; y++)
for (x = 0; x <= xend - xstart; x++)
sFaultDrawerStruct.fb[sFaultDrawerStruct.w * y + x] = color;
osWritebackDCacheAll();
}
@ -86,35 +86,38 @@ void FaultDrawer_DrawRecImpl(s32 xstart, s32 ystart, s32 xend, s32 yend, u16 col
#pragma GLOBAL_ASM("asm/non_matchings/code/fault_drawer/FaultDrawer_DrawRecImpl.s")
#endif
#ifdef NON_MATCHING
// regalloc and minor ordering differences
void FaultDrawer_DrawChar(char c)
{
s32 x, y;
u32* dataStart = &sFaultDrawerStruct.fontData[(c >> 3) * 0x10 + (c & 4) >> 2];
u16* fb = &sFaultDrawerStruct.fb[sFaultDrawerStruct.w * sFaultDrawerStruct.cursorY + sFaultDrawerStruct.cursorX];
u32* dataPtr;
u16* fb;
if (sFaultDrawerStruct.xStart <= sFaultDrawerStruct.cursorX &&
sFaultDrawerStruct.charW + sFaultDrawerStruct.cursorX -1 <= sFaultDrawerStruct.xEnd &&
sFaultDrawerStruct.yStart <= sFaultDrawerStruct.cursorY &&
sFaultDrawerStruct.charH + sFaultDrawerStruct.cursorY -1 <= sFaultDrawerStruct.yEnd &&
sFaultDrawerStruct.charH != 0
)
dataPtr = &sFaultDrawerStruct.fontData[((c & 4) >> 2) + ((c / 8) * 16)];
fb = &sFaultDrawerStruct.fb[sFaultDrawerStruct.cursorY * sFaultDrawerStruct.w];
fb = &fb[sFaultDrawerStruct.cursorX];
if ((sFaultDrawerStruct.xStart <= sFaultDrawerStruct.cursorX) &&
((sFaultDrawerStruct.charW + sFaultDrawerStruct.cursorX - 1) <= sFaultDrawerStruct.xEnd) &&
(sFaultDrawerStruct.yStart <= sFaultDrawerStruct.cursorY) &&
((sFaultDrawerStruct.charH + sFaultDrawerStruct.cursorY - 1) <= sFaultDrawerStruct.yEnd))
{
for (y = 0; y < sFaultDrawerStruct.charH; y++)
{
u32 mask = 0x10000000 << (c & 3);
u32 mask = 0x10000000 << (c % 4);
u32 data = *dataPtr;
for (x = 0; x < sFaultDrawerStruct.charW; x++)
{
if ((mask & *dataStart))
if (mask & data)
fb[x] = sFaultDrawerStruct.foreColor;
else
if (sFaultDrawerStruct.backColor & 1)
fb[x] = sFaultDrawerStruct.backColor;
else if (sFaultDrawerStruct.backColor & 1)
fb[x] = sFaultDrawerStruct.backColor;
mask >>= 4;
}
fb += sFaultDrawerStruct.w;
dataStart += 2;
dataPtr += 2;
}
}
}
@ -186,58 +189,56 @@ void FaultDrawer_FillScreen()
FaultDrawer_SetCursor(sFaultDrawerStruct.xStart, sFaultDrawerStruct.yStart);
}
#ifdef NON_MATCHING
u32 FaultDrawer_FormatStringFunc(u32 arg0, const char* str, s32 count)
{
while (count)
for (count; count != 0; count--, str++)
{
s32 curXStart; //s32?
s32 curXStart;
s32 curXEnd;
if (sFaultDrawerStruct.escCode)
{
sFaultDrawerStruct.escCode = false;
if (*str > 0x30 && *str < 0x3A)
FaultDrawer_SetForeColor(gFaultStruct.colors[*str + 12]);
FaultDrawer_SetForeColor(sFaultDrawerStruct.printColors[*str - 0x30]);
curXStart = sFaultDrawerStruct.cursorX;
curXEnd = sFaultDrawerStruct.xEnd - sFaultDrawerStruct.charW;
}
else
{
if (*str == '\n')
switch (*str)
{
if (sFaultDrawerStruct.osSyncPrintfEnabled)
osSyncPrintf("\n");
case '\n':
if (sFaultDrawerStruct.osSyncPrintfEnabled)
osSyncPrintf("\n");
sFaultDrawerStruct.cursorX = sFaultDrawerStruct.w;
curXStart = sFaultDrawerStruct.w;
curXEnd = sFaultDrawerStruct.xEnd - sFaultDrawerStruct.charW;
}
else if (*str == '\x1a')
{
sFaultDrawerStruct.escCode = true;
curXStart = sFaultDrawerStruct.cursorX;
curXEnd = sFaultDrawerStruct.xEnd - sFaultDrawerStruct.charW;
}
else
{
if (sFaultDrawerStruct.osSyncPrintfEnabled)
osSyncPrintf("%c", *str);
sFaultDrawerStruct.cursorX = sFaultDrawerStruct.w;
curXStart = sFaultDrawerStruct.cursorX;
curXEnd = sFaultDrawerStruct.xEnd - sFaultDrawerStruct.charW;
break;
case '\x1A':
sFaultDrawerStruct.escCode = true;
curXStart = sFaultDrawerStruct.cursorX;
curXEnd = sFaultDrawerStruct.xEnd - sFaultDrawerStruct.charW;
break;
default:
if (sFaultDrawerStruct.osSyncPrintfEnabled)
osSyncPrintf("%c", *str);
FaultDrawer_DrawChar(*str);
sFaultDrawerStruct.cursorX += sFaultDrawerStruct.charW + sFaultDrawerStruct.charWPad;
FaultDrawer_DrawChar(*str);
sFaultDrawerStruct.cursorX += sFaultDrawerStruct.charW + sFaultDrawerStruct.charWPad;
curXStart = sFaultDrawerStruct.cursorX;
curXEnd = sFaultDrawerStruct.xEnd - sFaultDrawerStruct.charW;
curXStart = sFaultDrawerStruct.cursorX;
curXEnd = sFaultDrawerStruct.xEnd - sFaultDrawerStruct.charW;
}
}
if (curXEnd <= curXStart)
{
sFaultDrawerStruct.cursorY += sFaultDrawerStruct.charH + sFaultDrawerStruct.charHPad;
sFaultDrawerStruct.cursorX = sFaultDrawerStruct.xStart;
if (sFaultDrawerStruct.yEnd - sFaultDrawerStruct.charH <= (u16)sFaultDrawerStruct.cursorY) //cast?
sFaultDrawerStruct.cursorY += sFaultDrawerStruct.charH + sFaultDrawerStruct.charHPad;
if (sFaultDrawerStruct.yEnd - sFaultDrawerStruct.charH <= sFaultDrawerStruct.cursorY)
{
if (sFaultDrawerStruct.inputCallback)
{
@ -247,16 +248,12 @@ u32 FaultDrawer_FormatStringFunc(u32 arg0, const char* str, s32 count)
sFaultDrawerStruct.cursorY = sFaultDrawerStruct.yStart;
}
}
count--;
str++;
}
osWritebackDCacheAll();
return arg0;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/fault_drawer/FaultDrawer_FormatStringFunc.s")
#endif
void FaultDrawer_VPrintf(const char* str, char* args) //va_list
{

View file

@ -104,54 +104,92 @@ u8 sGfxPrintFontData[(16*256)/2] =
};
#define gDPSetPrimColorMod(pkt, m, l, rgba) \
_DW({ \
Gfx *_g = (Gfx *)(pkt); \
\
_g->words.w0 = (_SHIFTL(G_SETPRIMCOLOR, 24, 8) | \
_SHIFTL(m, 8, 8) | _SHIFTL(l, 0, 8)); \
_g->words.w1 = (rgba); \
#define gDPSetPrimColorMod(pkt, m, l, rgba) \
_DW({ \
Gfx *_g = (Gfx *)(pkt); \
\
_g->words.w0 = (_SHIFTL(G_SETPRIMCOLOR, 24, 8) | \
_SHIFTL(m, 8, 8) | _SHIFTL(l, 0, 8)); \
_g->words.w1 = (rgba); \
})
#ifdef NON_MATCHING
// regalloc and minor ordering differences
void GfxPrint_InitDlist(GfxPrint* this)
{
u32 palette;
u32 tile;
s32 width = 16;
s32 height = 256;
s32 i;
gDPPipeSync(this->dlist++);
gDPSetOtherMode(this->dlist++, 0xECF0, 0x504244);
gDPSetCombineLERP(this->dlist++, K5, K5, 0, TEXEL0, 0, 0, 0, TEXEL0, K5, K5, 0, TEXEL0, 0, 0, 0, TEXEL0);
gDPLoadTextureBlock(this->dlist++, sGfxPrintFontData, G_IM_FMT_CI, G_IM_SIZ_4b, 16, 256, 0, 0, 0, 0, 0, 0, 0); //? missmatch here
gDPLoadTLUT(this->dlist++, 64, 0x100, sGfxPrintFontTLUT);
gDPSetOtherMode(this->dlist++,
G_AD_DISABLE | G_CD_DISABLE | G_CK_NONE | G_TC_FILT | G_TF_BILERP |
G_TT_IA16 | G_TL_TILE | G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
G_AC_NONE | G_ZS_PRIM | G_RM_XLU_SURF | G_RM_XLU_SURF2);
gDPSetCombineLERP(this->dlist++,
0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0,
0, 0, 0, TEXEL0, 0, 0, 0, TEXEL0);
tile = 2;
palette = 1;
do
gDPSetTextureImage(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b_LOAD_BLOCK, 1, sGfxPrintFontData);
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b_LOAD_BLOCK,
0, 0, G_TX_LOADTILE, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
gDPLoadSync(this->dlist++);
gDPLoadBlock(this->dlist++, G_TX_LOADTILE, 0, 0,
(((width)*(height) + G_IM_SIZ_4b_INCR) >> G_IM_SIZ_4b_SHIFT) - 1,
CALC_DXT(width, G_IM_SIZ_4b_BYTES));
gDPPipeSync(this->dlist++);
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b,
1, 0, G_TX_RENDERTILE, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
gDPSetTileSize(this->dlist++, G_TX_RENDERTILE, 0, 0,
((width)-1) << G_TEXTURE_IMAGE_FRAC,
((height)-1) << G_TEXTURE_IMAGE_FRAC);
gDPLoadTLUT(this->dlist++, 64, 256, sGfxPrintFontTLUT);
for (i = 1; i < 4; i++)
{
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0x0, tile, palette++, G_TX_NOMIRROR | G_TX_CLAMP, 0, 0, G_TX_NOMIRROR | G_TX_CLAMP, 0, 0);
gDPSetTileSize(this->dlist++, tile, 0, 0, 15, 255);
tile+=2;
} while (palette < 4);
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b,
1, 0, i * 2, i,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
gDPSetTileSize(this->dlist++, i * 2, 0, 0, 60, 1020);
}
gDPSetPrimColorMod(this->dlist++, 0, 0, *(u32*)&this->color);
gDPLoadTextureTile(this->dlist++, sGfxPrintUnkData, G_IM_FMT_CI, G_IM_SIZ_8b, 1, 0, 0, 0, 0, 7, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 1, 3, 0, 0);
gDPLoadTLUT(this->dlist++, 16, 0x140, sGfxPrintUnkTLUT);
tile = 3;
do
gDPSetTextureImage(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_8b, 1, sGfxPrintUnkData);
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_8b,
1, 0, G_TX_LOADTILE, 0 ,
G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_WRAP, 1, G_TX_NOLOD);
gDPLoadSync(this->dlist++);
gDPLoadTile(this->dlist++, G_TX_LOADTILE, 0, 0, 2, 28);
gDPPipeSync(this->dlist++);
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_8b,
1, 0, 1, 4,
G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_WRAP, 1, G_TX_NOLOD);
gDPSetTileSize(this->dlist++, 1, 0, 0, 4, 28);
gDPLoadTLUT(this->dlist++, 16, 320, sGfxPrintUnkTLUT);
for (i = 1; i < 4; i++)
{
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b, tile, 0x0, G_TX_RENDERTILE, 4, G_TX_NOMIRROR | G_TX_WRAP, 3, 0, G_TX_NOMIRROR | G_TX_WRAP, 1, 0);
gDPSetTileSize(this->dlist++, tile, 0, 0, 1, 7);
tile += 2;
} while (tile != 9);
gDPSetTile(this->dlist++, G_IM_FMT_CI, G_IM_SIZ_4b,
1, 0, i * 2 + 1, 4,
G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOLOD,
G_TX_NOMIRROR | G_TX_WRAP, 1, G_TX_NOLOD);
gDPSetTileSize(this->dlist++, i * 2 + 1, 0, 0, 4, 28);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/gfxprint/GfxPrint_InitDlist.s")
#endif
void GfxPrint_SetColor(GfxPrint* this, u32 r, u32 g, u32 b, u32 a)
{
this->color.r = r;
@ -180,71 +218,95 @@ void GfxPrint_SetBasePosPx(GfxPrint* this, s32 x, s32 y)
this->baseY = y << 2;
}
//close from matching
#ifdef NON_MATCHING
void GfxPrint_PrintCharImpl(GfxPrint* this, u8 c)
// regalloc and ordering differences
void GfxPrint_PrintCharImpl(GfxPrint* this, char c)
{
u32 test;
u32 test2;
if (this->flag & GFXPRINT_UPDATE_MODE)
{
this->flag &= ~GFXPRINT_UPDATE_MODE;
gDPPipeSync(this->dlist++);
if (this->flag & GFXPRINT_USE_RGBA16)
{
gDPSetTextureLUT(this->dlist++, G_TT_RGBA16);
gDPSetCycleType(this->dlist++, G_CYC_2CYCLE);
gDPSetRenderMode(this->dlist++, G_RM_OPA_CI, G_RM_XLU_SURF2);
gDPSetCombineLERP(this->dlist++, TEXEL0, K5, TEXEL1, COMBINED_ALPHA, TEXEL0, 0, TEXEL1, 0, K5, K5, 0, COMBINED, 0, 0, 0, COMBINED);
gDPSetCombineLERP(this->dlist++,
TEXEL0, 0, TEXEL1, 0, TEXEL0, 0, TEXEL1, 0,
0, 0, 0, COMBINED, 0, 0, 0, COMBINED);
}
else
{
gDPSetTextureLUT(this->dlist++, G_TT_IA16);
gDPSetCycleType(this->dlist++, G_CYC_1CYCLE);
gDPSetRenderMode(this->dlist++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetCombineLERP(this->dlist++, TEXEL0, K5, PRIMITIVE, COMBINED_ALPHA, 0, 0, 0, TEXEL0, TEXEL0, K5, PRIMITIVE, COMBINED_ALPHA, 0, 0, 0, TEXEL0);
gDPSetCombineLERP(this->dlist++,
TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0,
TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0);
}
}
test = (c & 4) << 6;
test2 = (c >> 3) << 8;
if (this->flag & GFXPRINT_FLAG4)
{
gDPSetPrimColorMod(this->dlist++, 0, 0, 0);
if (this->flag & GFXPRINT_FLAG64)
gSPTextureRectangle(this->dlist++, (this->posX+4)<<1, (this->posY+4)<<1, (this->posX+0x24)<<1, (this->posY+0x24)<<1, c<<1, test, test2, 512, 512); //c*2 ?
gSPTextureRectangle(this->dlist++,
(this->posX + 4) << 1, (this->posY + 4) << 1,
(this->posX + 4 + 32) << 1, (this->posY + 4 + 32) << 1,
c * 2,
(u16)(c & 4) * 64, (u16)(c >> 3) * 256,
512, 512);
else
gSPTextureRectangle(this->dlist++, this->posX+4, this->posY+4, this->posX+0x24, this->posY+0x24, c<<1, test, test2, 1024, 1024);
gSPTextureRectangle(this->dlist++,
this->posX + 4, this->posY + 4,
this->posX + 4 + 32, this->posY + 4 + 32,
c * 2,
(u16)(c & 4) * 64, (u16)(c >> 3) * 256,
1024, 1024);
gDPSetPrimColorMod(this->dlist++, 0, 0, *(u32*)&this->color);
}
if (this->flag & GFXPRINT_FLAG64)
gSPTextureRectangle(this->dlist++, (this->posX)<<1, (this->posY)<<1, (this->posX + 0x20)<<1, (this->posY + 0x20)<<1, c << 1, test, test2, 512, 512);
else
gSPTextureRectangle(this->dlist++, this->posX, this->posY, this->posX + 0x20, this->posY + 0x20, c << 1, test, test2, 1024, 1024);
this->posX += 0x20;
if (this->flag & GFXPRINT_FLAG64)
gSPTextureRectangle(this->dlist++,
(this->posX) << 1, (this->posY) << 1,
(this->posX + 32) << 1, (this->posY + 32) << 1,
c * 2,
(u16)(c & 4) * 64, (u16)(c >> 3) * 256,
512, 512);
else
gSPTextureRectangle(this->dlist++,
this->posX, this->posY,
this->posX + 32, this->posY + 32,
c * 2,
(u16)(c & 4) * 64, (u16)(c >> 3) * 256,
1024, 1024);
this->posX += 32;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/gfxprint/GfxPrint_PrintCharImpl.s")
#endif
#ifdef NON_MATCHING
void GfxPrint_PrintChar(GfxPrint *this, char c)
void GfxPrint_PrintChar(GfxPrint* this, u8 c)
{
u8 charParam = c;
if (c == ' ')
this->posX += 0x20;
else if (c > 0x20 && c < 0x7f)
GfxPrint_PrintCharImpl(this, c);
else if (c >= 0xa0 && c < 0xe0)
{
u8 charParam = c;
if ((this->flag & GFXPRINT_FLAG1) != 0)
this->posX += 0x20;
}
else if (c > 0x20 && c < 0x7F)
{
GfxPrint_PrintCharImpl(this, charParam);
}
else if (c >= 0xA0 && c < 0xE0)
{
if (this->flag & GFXPRINT_FLAG1)
{
if (c < 0xc0)
if (c < 0xC0)
charParam = c - 0x20;
else
charParam = c + 0x20;
@ -253,75 +315,41 @@ void GfxPrint_PrintChar(GfxPrint *this, char c)
}
else
{
switch(c)
switch (c)
{
case 0:
return;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
return;
//tab
case 9:
{
u32 uVar1;
do {
GfxPrint_PrintCharImpl(this, 0x20);
uVar1 = this->posX - this->baseX;
if (uVar1 < 0 && uVar1 != 0)
uVar1 -= 0x100;
} while (uVar1 != 0);
return;
}
//line feed
case 0xa:
{
break;
case '\n':
this->posY += 0x20;
case '\r':
this->posX = this->baseX;
return;
}
/*
case 0xb:
case 0xc:
return;
*/
//carriage return
case 0xd:
{
this->posX = this->baseX;
return;
}
case 0x8a:
this->flag &= ~GFXPRINT_USE_RGBA16;
this->flag |= GFXPRINT_UPDATE_MODE;
return;
case 0x8b:
break;
case '\t':
do
{
GfxPrint_PrintCharImpl(this, 0x20);
} while ((this->posX - this->baseX) % 256);
break;
case 0x8D:
this->flag |= GFXPRINT_FLAG1;
break;
case 0x8C:
this->flag &= ~GFXPRINT_FLAG1;
break;
case 0x8B:
this->flag |= GFXPRINT_USE_RGBA16;
this->flag |= GFXPRINT_UPDATE_MODE;
return;
case 0x8c:
this->flag &= ~GFXPRINT_FLAG1;
return;
case 0x8d:
this->flag |= GFXPRINT_FLAG1;
return;
case 0x8e:
break;
case 0x8A:
this->flag &= ~GFXPRINT_USE_RGBA16;
this->flag |= GFXPRINT_UPDATE_MODE;
break;
case 0x8E:
default:
return;
break;
}
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/gfxprint/GfxPrint_PrintChar.s")
#endif
void GfxPrint_PrintStringWithSize(GfxPrint* this, const void* buffer, size_t charSize, size_t charCount)
{
@ -409,4 +437,4 @@ void GfxPrint_Printf(GfxPrint* this, const char* fmt, ...)
va_start(args, fmt);
GfxPrint_VPrintf(this, fmt, args);
}
}

View file

@ -1,10 +1,13 @@
#include <ultra64.h>
#include <global.h>
#include <vt.h>
#include <PR/os_cont.h>
#include <ultra64/controller.h>
#include <padmgr.h>
s32 D_8012D280 = 1;
OSMesgQueue* PadMgr_LockGetControllerQueue(PadMgr* padmgr)
{
OSMesgQueue* ctrlrqueue = NULL;
@ -37,23 +40,28 @@ void PadMgr_UnlockReleaseControllerQueue(PadMgr* padmgr, OSMesgQueue* ctrlrqueue
void PadMgr_Lock2(PadMgr* padmgr)
{
osRecvMesg(&padmgr->queue2, 0, OS_MESG_BLOCK);
osRecvMesg(&padmgr->queue2, NULL, OS_MESG_BLOCK);
}
void PadMgr_Unlock2(PadMgr* padmgr)
{
osSendMesg(&padmgr->queue2, 0, OS_MESG_BLOCK);
osSendMesg(&padmgr->queue2, NULL, OS_MESG_BLOCK);
}
#ifdef NON_MATCHING
// regalloc and minor ordering differences
void func_800C740C(PadMgr* padmgr)
{
static u32 D_8012D284 = 0;
static u32 D_8016A4F0;
s32 temp;
s32 var1;
OSMesgQueue* ctrlrqueue;
s32 var3;
s32 var4;
s32 i;
temp = 1;
ctrlrqueue = PadMgr_LockGetControllerQueue(padmgr);
var1 = 0;
@ -63,26 +71,28 @@ void func_800C740C(PadMgr* padmgr)
{
if (padmgr->pad_status[i].status & 1)
{
if (padmgr->unk_2AE[i] == 1)
if (padmgr->unk_2AE[i] == temp)
{
if (padmgr->unk_2B2[i] != 0)
{
if (padmgr->unk_2B6[i] < 3)
{
osSyncPrintf(D_80145894); //"\x1b[33m" (probably formatting/debugger interface)
osSyncPrintf(D_8014589C, i + 1, D_801458B0); //"padmgr: %d[JPN]Con: ", "[JPN]Vibration pack jumble jumble"
osSyncPrintf(D_801458CC); //"\x1b[m" (probably formatting/debugger interface)
if (osSetVibration(&padmgr->unk_controller[i], 1) != 0)
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", i + 1, "振動パック ぶるぶるぶるぶる");
osSyncPrintf(VT_RST);
if (osSetVibration(&padmgr->unk_controller[i], temp) != 0)
{
padmgr->unk_2AE[i] = 0;
osSyncPrintf(D_801458D0);
osSyncPrintf(D_801458D8, i + 1, D_801458EC); //"A communication error has occurred with the vibraton pack"
osSyncPrintf(D_80145914);
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", i + 1, "振動パックで通信エラーが発生しました");
osSyncPrintf(VT_RST);
}
else
{
padmgr->unk_2B6[i] = 3;
}
var1 = 1;
}
}
@ -90,20 +100,22 @@ void func_800C740C(PadMgr* padmgr)
{
if (padmgr->unk_2B6[i] != 0)
{
osSyncPrintf(D_80145918);
osSyncPrintf(D_80145920, i + 1, D_80145934); //"Stop vibration pack"
osSyncPrintf(D_80145944);
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", i + 1, "振動パック 停止");
osSyncPrintf(VT_RST);
if (osSetVibration(&padmgr->unk_controller[i], 0) != 0)
{
padmgr->unk_2AE[i] = 0;
osSyncPrintf(D_80145948);
osSyncPrintf(D_80145950, i + 1, D_80145964); //"A communication error has occurred with the vibration pack"
osSyncPrintf(D_8014598C);
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", i + 1, "振動パックで通信エラーが発生しました");
osSyncPrintf(VT_RST);
}
else
{
padmgr->unk_2B6[i]--;
}
var1 = 1;
}
}
@ -115,16 +127,16 @@ void func_800C740C(PadMgr* padmgr)
{
if (padmgr->unk_2AE[i] == 1)
{
osSyncPrintf(D_80145990);
osSyncPrintf(D_80145998, i + 1, D_801459AC); //"Vibration pack seems to be pulled out"
osSyncPrintf(D_801459CC);
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", i + 1, "振動パックが抜かれたようです");
osSyncPrintf(VT_RST);
padmgr->unk_2AE[i] = 0;
}
else
{
osSyncPrintf(D_801459D0);
osSyncPrintf(D_80145A24);
osSyncPrintf(D_801459D8, i + 1, D_801459EC); //"It seems that a controller pack that is not a vibration pack was pulled out"
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", i + 1, "振動パックではないコントローラパックが抜かれたようです");
osSyncPrintf(VT_RST);
padmgr->unk_2AE[i] = 0;
}
}
@ -145,9 +157,9 @@ void func_800C740C(PadMgr* padmgr)
padmgr->unk_2AE[var3] = 1;
osSetVibration(&padmgr->unk_controller[var3], 1);
osSetVibration(&padmgr->unk_controller[var3], 0);
osSyncPrintf(D_80145A28);
osSyncPrintf(D_80145A30, var3 + 1, D_80145A44); //"Recognized vibration pack"
osSyncPrintf(D_80145A60);
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", var3 + 1, "振動パックを認識しました");
osSyncPrintf(VT_RST);
}
else if (var4 == 11)
{
@ -155,12 +167,11 @@ void func_800C740C(PadMgr* padmgr)
}
else if (var4 == 4)
{
LogUtils_LogThreadId(D_80145A64, 282);
++D_8012D284;
osSyncPrintf(D_80145A70, D_8012D284); //"++errcnt = %d"
osSyncPrintf(D_80145A80);
osSyncPrintf(D_80145A88, var3 + 1, D_80145A9C); //"Controller pack communication error"
osSyncPrintf(D_80145ABC);
LogUtils_LogThreadId("../padmgr.c", 282);
osSyncPrintf("++errcnt = %d\n", ++D_8012D284);
osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("padmgr: %dコン: %s\n", var3 + 1, "コントローラパックの通信エラー");
osSyncPrintf(VT_RST);
}
}
}
@ -169,6 +180,8 @@ void func_800C740C(PadMgr* padmgr)
PadMgr_UnlockReleaseControllerQueue(padmgr, ctrlrqueue);
}
#else
u32 D_8012D284 = 0;
u32 D_8016A4F0;
#pragma GLOBAL_ASM("asm/non_matchings/code/padmgr/func_800C740C.s")
#endif
@ -186,10 +199,10 @@ void func_800C7818(PadMgr* padmgr)
{
if ((gFaultStruct.msgId == 0) && (padmgr->unk_45D != 0))
{
osSyncPrintf("\x1b[33m");
osSyncPrintf(VT_FGCOL(YELLOW));
//EUC-JP: コン | 'Con'? , EUC-JP: 振動パック 停止 | Stop vibration pack
osSyncPrintf("padmgr: %dコン: %s\n", i + 1, "振動パック 停止");
osSyncPrintf("\x1b[m");
osSyncPrintf(VT_RST);
}
osSetVibration(&padmgr->unk_controller[i], 0);
@ -211,7 +224,8 @@ void func_800C7934(PadMgr* padmgr, u32 a1, u32 a2)
}
#ifdef NON_MATCHING
//func_800A23CC in 1.0
// minor ordering difference
// 800A23CC in 1.0
void func_800C7948(PadMgr* padmgr, u8* a1)
{
padmgr->unk_2B2[0] = a1[0];

View file

@ -6,7 +6,7 @@ void TitleSetup_InitImpl(GameState* gameState)
osSyncPrintf("ゼルダ共通データ初期化\n");
SaveContext_Init();
gameState->running = false;
gameState->init = func_80800878; gameState->size = sizeof(TitleContext);
gameState->init = Title_Init; gameState->size = sizeof(TitleContext);
}
void TitleSetup_Destroy(GameState* gameState)

View file

@ -4332,7 +4332,7 @@ s16 func_80034DD4(Actor* actor, GlobalContext* globalCtx, s16 arg2, f32 arg3)
if (arg3 < var)
{
actor->flags &= ~0x1;
actor->flags &= ~1;
Math_SmoothScaleMaxMinS(&arg2, 0, 6, 0x14, 1);
}
else
@ -4426,35 +4426,7 @@ s32 func_80035124(Actor* actor, GlobalContext* globalCtx)
return ret;
}
/* z_cheap_proc.c */
void Draw_DListOpa(GlobalContext* globalCtx, u32 dlist)
{
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* gfxArr[4];
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 214);
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_cheap_proc.c", 216), G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyOpa.p++, dlist);
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 219);
}
void Draw_DListXlu(GlobalContext* globalCtx, u32 dlist)
{
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* gfxArr[4];
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 228);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_cheap_proc.c", 230), G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyXlu.p++, dlist);
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 233);
}
#include "z_cheap_proc.c"
u8 func_800353E8(GlobalContext* globalCtx)
{

View file

@ -232,8 +232,9 @@ void func_80044340(Camera *camera, Vec3f *b, Vec3f *c)
*c = sp20.unk_00;
}
#ifdef NON_MATCHING
f32 func_80038B7C();
#ifdef NON_MATCHING
// ordering
s32 func_800443A0(Camera *camera, Vec3f *b, Vec3f *c)
{
@ -449,17 +450,16 @@ f32 func_80045714(Vec3f *a, s16 b, s16 c, f32 arg3);
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80045714.s")
#endif
#ifdef NON_MATCHING
f32 func_8007C0A8(f32, f32);
// CLOSE: stack is slightly off, probably a temp var
s32 func_800457A8(Camera *camera, struct_80045714 *b, f32 c, s16 d)
{
f32 unused;
Vec3f sp50;
Vec3f sp44;
s32 unused2;
f32 temp_ret;
PosRot *sp2C;
f32 temp_ret;
temp_ret = func_8002DC84(camera->player);
@ -481,13 +481,11 @@ s32 func_800457A8(Camera *camera, struct_80045714 *b, f32 c, s16 d)
return 1;
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_800457A8.s")
#endif
f32 func_8007C028(Vec3f *, Vec3f *);
#ifdef NON_MATCHING
f32 func_8007C028(Vec3f *, Vec3f *);
// CLOSE: regalloc, plus stack is slightly off, probably a temp var
// CLOSE: regalloc
s32 func_800458D4(Camera *camera, struct_80045714 *b, f32 c, f32 *d, s16 e)
{
f32 phi_f2;
@ -496,7 +494,7 @@ s32 func_800458D4(Camera *camera, struct_80045714 *b, f32 c, f32 *d, s16 e)
f32 temp_ret;
PosRot *temp_s1;
f32 sp48;
Vec3f sp3C; // unused
s32 pad[2];
sp60.y = func_8002DC84(camera->player) + c;
sp60.x = 0.0f;
@ -631,7 +629,6 @@ s32 func_80045C74(Camera *camera, struct_80045714 *b, f32 c, f32 *d, s16 arg4)
phi_f16 = 1.0f - sinf(OREG(33) * (M_PI / 180) - temp_ret_3);
else
phi_f16 = 1.0f;
}
sp70.y -= temp * phi_f16;
}
@ -881,51 +878,43 @@ void Camera_Vec3fCopy(Vec3f *src, Vec3f *dst)
// 225 lines
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80057C6C.s")
#ifdef NON_MATCHING
// still needs a bit of work, but should be functionally equivalent
s32 func_8005AD40(Camera *camera, s32 a, s16 b, f32 c, s16 d, s16 e, s16 f);
void func_80057FC4(Camera *camera)
{
if (camera != &camera->globalCtx->cameraCtx.activeCameras[0])
{
camera->unk_142 = 33;
camera->unk_154 = camera->unk_142 = 33;
camera->unk_14C &= ~0x4;
camera->unk_154 = camera->unk_142; // compiler uses the same temp reg, but it should load from 142 right after being saved to
// maybe try camera->unk_154 = camera->unk_142 = 33 and make them have differing signs?
return;
}
// try putting these in a bunch of if else statements
if (*camera->globalCtx->roomCtx.curRoom.unk_08 != 1)
else if (camera->globalCtx->roomCtx.curRoom.mesh->polygon.type != 1)
{
if (camera->globalCtx->roomCtx.curRoom.unk_03 != 0)
switch (camera->globalCtx->roomCtx.curRoom.unk_03)
{
if (camera->globalCtx->roomCtx.curRoom.unk_03 == 1)
{
case 1:
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
camera->unk_142 = 3;
camera->unk_154 = camera->unk_142;
return;
}
osSyncPrintf("camera: room type: default set etc (%d)\n", camera->globalCtx->roomCtx.curRoom.unk_03);
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
camera->unk_142 = 1;
camera->unk_154 = camera->unk_142;
return;
camera->unk_154 = camera->unk_142 = 3;
break;
case 0:
osSyncPrintf("camera: room type: default set field\n");
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
camera->unk_154 = camera->unk_142 = 1;
break;
default:
osSyncPrintf("camera: room type: default set etc (%d)\n", camera->globalCtx->roomCtx.curRoom.unk_03);
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
camera->unk_154 = camera->unk_142 = 1;
camera->unk_14C |= 4;
break;
}
osSyncPrintf("camera: room type: default set field\n");
func_8005AD40(camera, 0, -99, 0, 0, 18, 10);
camera->unk_142 = 1;
camera->unk_14C |= 4;
camera->unk_154 = camera->unk_142;
return;
}
osSyncPrintf("camera: room type: prerender\n");
camera->unk_142 = 0x21;
camera->unk_14C &= 0xfffb;
camera->unk_154 = camera->unk_142;
else
{
osSyncPrintf("camera: room type: prerender\n");
camera->unk_154 = camera->unk_142 = 33;
camera->unk_14C &= ~0x4;
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_camera/func_80057FC4.s")
#endif
void Camera_Stub80058140(Camera *camera)
{
@ -1093,7 +1082,7 @@ s16 func_8005AD1C(Camera *camera, s16 b)
return camera->unk_14C;
}
s32 func_8005AD40(Camera *camera, s32 a, s16 b, s16 c, s16 d, s16 e, s16 f)
s32 func_8005AD40(Camera *camera, s32 a, s16 b, f32 c, s16 d, s16 e, s16 f)
{
if ((camera->unk_142 == 43) || (camera->unk_142 == 29))
return 0;

30
src/code/z_cheap_proc.c Normal file
View file

@ -0,0 +1,30 @@
#include <ultra64.h>
#include <global.h>
void Draw_DListOpa(GlobalContext* globalCtx, u32 dlist)
{
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* gfxArr[4];
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 214);
func_80093D18(globalCtx->state.gfxCtx);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_cheap_proc.c", 216), G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyOpa.p++, dlist);
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 219);
}
void Draw_DListXlu(GlobalContext* globalCtx, u32 dlist)
{
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* gfxArr[4];
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 228);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_cheap_proc.c", 230), G_MTX_MODELVIEW | G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyXlu.p++, dlist);
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_cheap_proc.c", 233);
}

View file

@ -6,6 +6,8 @@
#include "z_demo_go.h"
#include <vt.h>
#define ROOM 0x00
#define FLAGS 0x00000010
@ -25,7 +27,7 @@ void func_8097D130(DemoGo* this, GlobalContext* globalCtx);
void func_8097D290(DemoGo* this, GlobalContext* globalCtx);
void func_8097D29C(DemoGo* this, GlobalContext* globalCtx);
u32 D_8097D440[] = {0x0600CE80, 0x0600D280, 0x0600D680};
UNK_PTR D_8097D440[] = {0x0600CE80, 0x0600D280, 0x0600D680};
ActorFunc D_8097D44C[] =
{
@ -58,9 +60,10 @@ const ActorInit Demo_Go_InitVars =
(ActorFunc)DemoGo_Draw,
};
extern u32 D_060029A8;
extern u32 D_0600FEF0;
extern u32 D_06004930;
extern UNK_TYPE D_060029A8;
extern UNK_TYPE D_06004930;
extern UNK_TYPE D_0600E680;
extern UNK_TYPE D_0600FEF0;
UNK_TYPE func_8097C870(DemoGo *this)
{
@ -149,33 +152,36 @@ void func_8097CA78(DemoGo* this, GlobalContext* globalCtx)
func_8097C9B8(this);
}
// Not equivalent, I believe in part due to actorAction->endPos being the wrong type, holding floats instead of ints
#ifdef NON_MATCHING
void func_8097CB0C(DemoGo* this, GlobalContext* globalCtx) {
void func_8097CB0C(DemoGo* this, GlobalContext* globalCtx)
{
Actor* thisx = &this->actor;
PosRot* posRot = &thisx->posRot;
CutsceneContext* csCtx = &globalCtx->csCtx;
Vec3f startPos;
f32 temp_ret;
CsCmdActorAction* actorAction;
f32 temp_ret;
s32 pad;
Vec3f startPos;
Vec3f endPos;
if (globalCtx->csCtx.state != 0)
{
actorAction = csCtx->actorActions[func_8097C870(this)];
if (actorAction != 0)
if (actorAction != NULL)
{
temp_ret = func_8006F93C(actorAction->endFrame, actorAction->startFrame, csCtx->frames);
startPos = actorAction->startPos;
thisx->posRot.pos.x = (((actorAction->endPos.x - startPos.x) * temp_ret) + startPos.x);
thisx->posRot.pos.y = (((actorAction->endPos.y - startPos.y) * temp_ret) + startPos.y);
thisx->posRot.pos.z = (((actorAction->endPos.z - startPos.z) * temp_ret) + startPos.z);
thisx->shape.rot.y = actorAction->rot.y;
thisx->posRot.rot.y = actorAction->rot.y;
startPos.x = actorAction->startPos.x;
startPos.y = actorAction->startPos.y;
startPos.z = actorAction->startPos.z;
endPos.x = actorAction->endPos.x;
endPos.y = actorAction->endPos.y;
endPos.z = actorAction->endPos.z;
posRot->pos.x = (((endPos.x - startPos.x) * temp_ret) + startPos.x);
posRot->pos.y = (((endPos.y - startPos.y) * temp_ret) + startPos.y);
posRot->pos.z = (((endPos.z - startPos.z) * temp_ret) + startPos.z);
posRot->rot.y = thisx->shape.rot.y = actorAction->rot.y;
}
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Go/func_8097CB0C.s")
#endif
void func_8097CC08(DemoGo* this)
{
@ -207,7 +213,7 @@ void func_8097CCE0(DemoGo* this, GlobalContext* globalCtx)
if (globalCtx->csCtx.state != 0)
{
actorAction = globalCtx->csCtx.actorActions[func_8097C870(this)];
if (actorAction != 0)
if (actorAction != NULL)
{
thisRotY = thisx->posRot.rot.y;
rotYDelta = actorAction->rot.y - thisRotY;
@ -234,15 +240,15 @@ UNK_TYPE DemoGo_FrameUpdateMatrix(DemoGo* this)
return SkelAnime_FrameUpdateMatrix(&this->skelAnime);
}
// This is probably at least close to equivalent but not necessarily so
#ifdef NON_MATCHING
UNK_TYPE func_8097CDB0(DemoGo* this, GlobalContext* globalCtx, u16 csCmdActorAction)
// return value isn't produced in the same way
s32 func_8097CDB0(DemoGo* this, GlobalContext* globalCtx, u16 csCmdActorAction)
{
CutsceneContext* csCtx = &globalCtx->csCtx;
CsCmdActorAction* actorAction = csCtx->actorActions[func_8097C870(this)];
if (csCtx->state != 0)
{
if (actorAction != 0 && actorAction->action == csCmdActorAction)
if (actorAction != NULL && actorAction->action == csCmdActorAction)
{
return 1;
}
@ -277,7 +283,7 @@ void func_8097CE78(DemoGo* this, GlobalContext* globalCtx)
if (globalCtx->csCtx.state != 0)
{
actorAction = csCtx->actorActions[func_8097C870(this)];
if (actorAction != 0 && csCtx->frames >= actorAction->endFrame)
if (actorAction != NULL && csCtx->frames >= actorAction->endFrame)
{
func_8097CA78(this, globalCtx);
this->action = 3;
@ -369,7 +375,7 @@ void DemoGo_Update(DemoGo* this, GlobalContext* globalCtx)
{
if (this->action < 0 || this->action >= 7 || D_8097D44C[this->action] == 0)
{
osSyncPrintf("メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n");
osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
return;
}
D_8097D44C[this->action](this, globalCtx);
@ -391,32 +397,31 @@ void func_8097D290(DemoGo* this, GlobalContext* globalCtx)
}
// Not equivalent yet - the gSPSegment calls are probably the main issue
#ifdef NON_MATCHING
extern u32 D_0600E680;
void func_8097D29C(DemoGo* this, GlobalContext* globalCtx)
{
u32 addr = D_8097D440[this->unk_190];
GraphicsContext* gfxCtx = &globalCtx->state.gfxCtx;
s32 pad;
s16 temp = this->unk_190;
SkelAnime* skelAnime = &this->skelAnime;
void* srcSegment8 = D_8097D440[temp];
void* srcSegment9 = &D_0600E680;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* gfxArr[4];
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_demo_go.c", 732);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(srcSegment8));
gSPSegment(gfxCtx->polyOpa.p++, 0x09, SEGMENTED_TO_VIRTUAL(srcSegment9));
gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(addr));
gSPSegment(gfxCtx->polyOpa.p++, 0x09, SEGMENTED_TO_VIRTUAL(D_0600E680));
func_800A1AC8(globalCtx, skelAnime->limbIndex, skelAnime->actorDrawTbl, skelAnime->dListCount, NULL, NULL, &this->actor);
func_800A1AC8(globalCtx, this->skelAnime.limbIndex, this->skelAnime.actorDrawTbl, this->skelAnime.dListCount, 0, 0, &this->actor);
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_demo_go.c", 746);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Go/func_8097D29C.s")
#endif
void DemoGo_Draw(DemoGo* this, GlobalContext* globalCtx) {
if (this->drawConfig < 0 || this->drawConfig >= 2 || D_8097D468[this->drawConfig] == 0)
{
osSyncPrintf("描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n");
osSyncPrintf(VT_FGCOL(RED) "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST);
return;
}
D_8097D468[this->drawConfig](this, globalCtx);

View file

@ -8,7 +8,6 @@ typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x018C */ char unk_18C[0x4];
/* 0x0190 */ s16 unk_190;
/* 0x0192 */ s16 unk_192;
/* 0x0194 */ s32 action;

View file

@ -1,14 +1,25 @@
/*
* File: z_door_ana.c
* Overlay: ovl_Door_Ana
* Description: Grottos Entrances/Exits
*/
#include "z_door_ana.h"
#define ROOM 0x00
#define FLAGS 0x02000000
void DoorAna_Init(DoorAna* this, GlobalContext* globalCtx);
void DoorAna_Destroy(DoorAna* this, GlobalContext* globalCtx);
void DoorAna_Update(DoorAna* this, GlobalContext* globalCtx);
void DoorAna_Draw(DoorAna* this, GlobalContext* globalCtx);
static void DoorAna_Init(DoorAna* this, GlobalContext* globalCtx);
static void DoorAna_Destroy(DoorAna* this, GlobalContext* globalCtx);
static void DoorAna_Update(DoorAna* this, GlobalContext* globalCtx);
static void DoorAna_Draw(DoorAna* this, GlobalContext* globalCtx);
static void DoorAna_SetupAction(DoorAna* this, ActorFunc func);
static void DoorAna_Update_Hidden(DoorAna* this, GlobalContext* globalCtx);
static void DoorAna_Update_Open(DoorAna* this, GlobalContext* globalCtx);
static void DoorAna_Update_Entering(DoorAna* this, GlobalContext* globalCtx);
/*
const ActorInit Door_Ana_InitVars =
{
ACTOR_DOOR_ANA,
@ -22,19 +33,186 @@ const ActorInit Door_Ana_InitVars =
(ActorFunc)DoorAna_Update,
(ActorFunc)DoorAna_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/func_80993EF0.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/DoorAna_Init.s")
// initial collision data
static ColliderCylinderInit colliderInit =
{
0x0A, 0x00, 0x09, 0x00,
0x00, 0x01, 0x00, 0x00,
0x02, 0x00, 0x00, 0x00,
0x00000000, 0x00, 0x00,
0x00, 0x00, 0x00000048,
0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
0x0032, 0x000A, 0x0000,
0x0000, 0x0000, 0x0000
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/DoorAna_Destroy.s")
// array of entrance table entries to grotto destinations
static s16 entrances[] = {
0x036D, 0x003F, 0x0598, 0x059C,
0x05A0, 0x05A4, 0x05A8, 0x05AC,
0x05B0, 0x05B4, 0x05B8, 0x05BC,
0x05C0, 0x05C4, 0x05FC
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/func_80993FEC.s")
// display list
extern Gfx* D_05001390;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/func_80994124.s")
// sets current actionFunc to be ran on next update call
static void DoorAna_SetupAction(DoorAna* this, ActorFunc func)
{
this->actionFunc = func;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/func_809942D8.s")
static void DoorAna_Init(DoorAna* this, GlobalContext* globalCtx)
{
ColliderCylinderMain* collider;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/DoorAna_Update.s")
this->actor.shape.rot.z = 0;
this->actor.shape.rot.y = this->actor.shape.rot.z;
// init block for grottos that are initially "hidden" (require explosives/hammer/song of storms to open)
if ((this->actor.params & 0x300) != 0)
{
// only allocate collider for grottos that need bombing/hammering open
if ((this->actor.params & 0x200) != 0)
{
collider = &this->collider;
ActorCollider_AllocCylinder(globalCtx, collider);
ActorCollider_InitCylinder(globalCtx, collider, &this->actor, &colliderInit);
}
else
{
this->actor.flags |= 0x10;
}
Actor_SetScale(&this->actor, 0);
DoorAna_SetupAction(this, (ActorFunc)&DoorAna_Update_Hidden);
}
else
{
DoorAna_SetupAction(this, (ActorFunc)&DoorAna_Update_Open);
}
this->actor.unk_1F = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Door_Ana/DoorAna_Draw.s")
static void DoorAna_Destroy(DoorAna* this, GlobalContext* globalCtx)
{
// free collider if it has one
if ((this->actor.params & 0x200) != 0)
{
ActorCollider_FreeCylinder(globalCtx, &this->collider);
}
}
// update routine for grottos that are currently "hidden"/unopened
static void DoorAna_Update_Hidden(DoorAna* this, GlobalContext* globalCtx)
{
bool openGrotto = false;
if ((this->actor.params & 0x200) == 0)
{
// opening with song of storms
if (this->actor.waterSurfaceDist < 40000.0f && func_8006C4A4(globalCtx, 5) != 0)
{
openGrotto = true;
this->actor.flags &= ~0x10;
}
}
else
{
// bombing/hammering open a grotto
if ((this->collider.base.collideFlags & 2) != 0)
{
openGrotto = true;
ActorCollider_FreeCylinder(globalCtx, &this->collider);
}
else
{
ActorCollider_Cylinder_Update(&this->actor, &this->collider);
Actor_CollisionCheck_SetAC(globalCtx, &globalCtx->sub_11E60, &this->collider);
}
}
// open the grotto
if (openGrotto)
{
this->actor.params &= ~0x0300;
DoorAna_SetupAction(this, (ActorFunc)&DoorAna_Update_Open);
Audio_PlaySoundGeneral(NA_SE_SY_CORRECT_CHIME, &D_801333D4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
}
func_8002F5F0(&this->actor, globalCtx);
}
// update routine for grottos that are open
static void DoorAna_Update_Open(DoorAna* this, GlobalContext* globalCtx)
{
Player* player;
s32 destinationIdx;
player = PLAYER;
if (Math_ApproxF(&this->actor.scale.x, 0.01f, 0.001f) != 0)
{
if ((this->actor.unk_1F != 0) && (globalCtx->sceneLoadFlag == 0) &&
(player->stateFlags1 & 0x80000000) && (player->unk_84F == 0))
{
destinationIdx = ((this->actor.params >> 0xC) & 7) - 1;
func_800C0AF4(globalCtx, 1, 0x4FF);
gSaveContext.respawn[RESPAWN_MODE_RETURN].pos.y = this->actor.posRot.pos.y;
gSaveContext.respawn[RESPAWN_MODE_RETURN].yaw = this->actor.initPosRot.rot.y;
gSaveContext.respawn[RESPAWN_MODE_RETURN].data = this->actor.params & 0xFFFF;
if (destinationIdx < 0)
{
destinationIdx = this->actor.initPosRot.rot.z + 1;
}
globalCtx->nextEntranceIndex = entrances[destinationIdx];
DoorAna_SetupAction(this, (ActorFunc)&DoorAna_Update_Entering);
}
else
{
if (func_8008E988(globalCtx) == 0 && !(player->stateFlags1 & 0x8800000) &&
this->actor.xzDistanceFromLink <= 15.0f && -50.0f <= this->actor.yDistanceFromLink &&
this->actor.yDistanceFromLink <= 15.0f)
{
player->stateFlags1 |= 0x80000000;
this->actor.unk_1F = 1;
}
else
{
this->actor.unk_1F = 0;
}
}
}
Actor_SetScale(&this->actor, this->actor.scale.x);
}
// update function for after the player has triggered the grotto
static void DoorAna_Update_Entering(DoorAna* this, GlobalContext* globalCtx)
{
Player* player;
if (this->actor.yDistanceFromLink <= 0.0f && 15.0f < this->actor.xzDistanceFromLink)
{
player = PLAYER;
player->actor.posRot.pos.x = Math_Sins(this->actor.rotTowardsLinkY) * 15.0f + this->actor.posRot.pos.x;
player->actor.posRot.pos.z = Math_Coss(this->actor.rotTowardsLinkY) * 15.0f + this->actor.posRot.pos.z;
}
}
static void DoorAna_Update(DoorAna* this, GlobalContext* globalCtx)
{
this->actionFunc(this, globalCtx);
// changes the grottos facing angle based on camera angle
this->actor.shape.rot.y = func_8005A9F4(globalCtx->cameraCtx.activeCameraPtrs[globalCtx->cameraCtx.unk_5C0]) + 0x8000;
}
static void DoorAna_Draw(DoorAna* this, GlobalContext* globalCtx)
{
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx** dList = &D_05001390; // required for stack placement?
Gfx* gfxArr[3];
func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_door_ana.c", 440);
func_80093D84(globalCtx->state.gfxCtx);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_door_ana.c", 446), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, dList);
func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_door_ana.c", 449);
}

View file

@ -7,7 +7,8 @@
typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x50];
/* 0x014C */ ColliderCylinderMain collider;
/* 0x0198 */ ActorFunc actionFunc;
} DoorAna; // size = 0x019C
extern const ActorInit Door_Ana_InitVars;

View file

@ -7,6 +7,8 @@
#include <ultra64.h>
#include <global.h>
#include <vt.h>
//temp struct until we can reference other actors outside of their file
typedef struct
{
@ -56,7 +58,7 @@ static void EnAnubiceTag_Init(EnAnubiceTag* this, GlobalContext* globalCtx)
{
osSyncPrintf("\n\n");
//"Anubis control tag generated"
osSyncPrintf("☆☆☆☆☆ アヌビス制御タグ発生 ☆☆☆☆☆ %d\n", this->actor.params);
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ アヌビス制御タグ発生 ☆☆☆☆☆ %d\n" VT_RST, this->actor.params);
if (this->actor.params < (s16)0xFFFF)
{

View file

@ -11,7 +11,6 @@ typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x018C */ char unk_18C[0x4];
/* 0x0190 */ ActorFunc updateFunc;
/* 0x0194 */ u32 unk_194;
/* 0x0198 */ s32 unk_198;

View file

@ -1,14 +1,19 @@
/*
* File: z_en_lightbox.c
* Overlay: ovl_En_Lightbox
* Description:
*/
#include "z_en_lightbox.h"
#define ROOM 0x00
#define FLAGS 0x00000010
void EnLightbox_Init(EnLightbox* this, GlobalContext* globalCtx);
void EnLightbox_Destroy(EnLightbox* this, GlobalContext* globalCtx);
void EnLightbox_Update(EnLightbox* this, GlobalContext* globalCtx);
void EnLightbox_Draw(EnLightbox* this, GlobalContext* globalCtx);
static void EnLightbox_Init(EnLightbox* this, GlobalContext* globalCtx);
static void EnLightbox_Destroy(EnLightbox* this, GlobalContext* globalCtx);
static void EnLightbox_Update(EnLightbox* this, GlobalContext* globalCtx);
static void EnLightbox_Draw(EnLightbox* this, GlobalContext* globalCtx);
/*
const ActorInit En_Lightbox_InitVars =
{
ACTOR_EN_LIGHTBOX,
@ -22,11 +27,105 @@ const ActorInit En_Lightbox_InitVars =
(ActorFunc)EnLightbox_Update,
(ActorFunc)EnLightbox_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Lightbox/EnLightbox_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Lightbox/EnLightbox_Destroy.s")
extern u32 D_06000B70;
extern u32 D_06001F10;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Lightbox/EnLightbox_Update.s")
static void EnLightbox_Init(EnLightbox* this, GlobalContext* globalCtx)
{
u32 local_c = 0;
Actor* thisx = &this->dyna.actor;
s32 pad[4];
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Lightbox/EnLightbox_Draw.s")
switch(thisx->params){
case 0:
Actor_SetScale(thisx, 0.025f);
break;
case 1:
Actor_SetScale(thisx, 0.05f);
break;
case 2:
Actor_SetScale(thisx, 0.075f);
break;
case 3:
Actor_SetScale(thisx, 0.1f);
default:
break;
}
thisx->posRot2.pos = thisx->posRot.pos;
thisx->sub_98.unk_10 = 0x1E;
thisx->sub_98.unk_12 = 0x32;
ActorShape_Init(&thisx->shape, 0.0f, ActorShadow_DrawFunc_Circle, 6.0f);
this->dyna.unk_160 = 0;
this->dyna.unk_15C = 0;
thisx->unk_1F = 0;
thisx->gravity = -2.0f;
DynaPolyInfo_Alloc(&D_06001F10, &local_c);
this->dyna.dynaPolyId = DynaPolyInfo_RegisterActor(globalCtx, &globalCtx->colCtx.dyna, thisx, local_c);
}
static void EnLightbox_Destroy(EnLightbox* this, GlobalContext* globalCtx)
{
DynaPolyInfo_Free(globalCtx, &globalCtx->colCtx.dyna, this->dyna.dynaPolyId);
}
static void EnLightbox_Update(EnLightbox* this, GlobalContext* globalCtx)
{
Actor* thisx = &this->dyna.actor;
if (this->dyna.unk_162 != 0)
{
if (func_8002F5A0(thisx, globalCtx))
{
this->dyna.unk_162 = 0;
}
}
else
{
if (func_8002F410(thisx, globalCtx))
{
this->dyna.unk_162++;
}
else
{
if (thisx->speedXZ)
{
if (thisx->bgCheckFlags & 8)
{
thisx->posRot.rot.y = (thisx->posRot.rot.y + thisx->unk_7E) - thisx->posRot.rot.y;
Audio_PlaySoundGeneral(NA_SE_EV_BOMB_BOUND, &thisx->unk_E4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
thisx->speedXZ *= 0.7f;
thisx->bgCheckFlags &= ~0x8;
}
}
if ((thisx->bgCheckFlags & 1) == 0)
{
Math_ApproxF(&thisx->speedXZ, 0, IREG(57) / 100.0f);
}
else
{
Math_ApproxF(&thisx->speedXZ, 0, IREG(58) / 100.0f);
if ((thisx->bgCheckFlags & 2) && (thisx->velocity.y < IREG(59) / 100.0f))
{
Audio_PlaySoundGeneral(NA_SE_EV_BOMB_BOUND, &thisx->unk_E4, 4, &D_801333E0, &D_801333E0, &D_801333E8);
thisx->velocity.y *= IREG(60) / 100.0f;
thisx->bgCheckFlags &= ~0x1;
}
else
{
func_8002F580(thisx, globalCtx);
}
}
}
}
Actor_MoveForward(thisx);
func_8002E4B4(globalCtx, thisx, thisx->sub_98.unk_12, thisx->sub_98.unk_10, thisx->sub_98.unk_10, 0x1D);
thisx->posRot2.pos = thisx->posRot.pos;
}
static void EnLightbox_Draw(EnLightbox* this, GlobalContext* globalCtx)
{
Draw_DListOpa(globalCtx, &D_06000B70);
}

View file

@ -6,8 +6,7 @@
typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x18];
/* 0x0000 */ DynaPolyActor dyna;
} EnLightbox; // size = 0x0164
extern const ActorInit En_Lightbox_InitVars;

View file

@ -11,7 +11,6 @@ typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x018C */ char unk_18C[0x4];
/* 0x0190 */ UNK_PTR unkSkelAnimeStruct;
/* 0x0194 */ char unk_194[0x32];
/* 0x01C6 */ s16 unk_1C6;

View file

@ -7,6 +7,8 @@
#include <ultra64.h>
#include <global.h>
#include <vt.h>
typedef struct
{
/* 0x0000 */ Actor actor;
@ -58,7 +60,7 @@ static void EnOkarinaEffect_Init(EnOkarinaEffect* this, GlobalContext* globalCtx
{
osSyncPrintf("\n\n");
//"Ocarina Storm Effect"
osSyncPrintf("☆☆☆☆☆ オカリナあらし効果ビカビカビカ〜 ☆☆☆☆☆ \n");
osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ オカリナあらし効果ビカビカビカ〜 ☆☆☆☆☆ \n" VT_RST);
osSyncPrintf("\n\n");
if (globalCtx->unk_10B12[1] != 0)
{

View file

@ -4,24 +4,16 @@
* Description: Flying pot enemy
*/
#include <ultra64.h>
#include <global.h>
#include "z_en_tubo_trap.h"
typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ ActorFunc playfunc;
/* 0x0150 */ f32 pos_y_seek;
/* 0x0154 */ Vec3f pos_init;
/* 0x0160 */ ColliderCylinderMain capsule;
} EnTuboTrap; // size = 0x01AC
#include <vt.h>
void EnTuboTrap_Init(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_Destroy(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_Update(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_Draw(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_TestLevitate(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_InitializeAttack(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_WaitForProximity(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_Levitate(EnTuboTrap* this, GlobalContext* globalCtx);
void EnTuboTrap_Fly(EnTuboTrap* this, GlobalContext* globalCtx);
#define ROOM 0x00
@ -44,7 +36,7 @@ static ColliderCylinderInit cylinderInitData =
0x0000, 0x0000, 0x0000
};
ActorInit En_Tubo_Trap_InitVars =
const ActorInit En_Tubo_Trap_InitVars =
{
ACTOR_EN_TUBO_TRAP,
ACTORTYPE_PROP,
@ -58,321 +50,277 @@ ActorInit En_Tubo_Trap_InitVars =
(ActorFunc)EnTuboTrap_Draw,
};
extern u32 DL_SHARD;
extern u32 DL_TUBO;
extern UNK_TYPE D_05017A60;
extern Gfx D_05017870[];
void EnTuboTrap_Init(EnTuboTrap* this, GlobalContext* globalCtx)
{
s32 pad;
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 2.0f);
osSyncPrintf("\n\n");
osSyncPrintf("\x1b[32m☆☆☆☆☆ 壷トラップ ☆☆☆☆☆ %x\n\x1b[m", this->actor.params);
ActorCollider_AllocCylinder(globalCtx, &this->capsule);
ActorCollider_InitCylinder(globalCtx, &this->capsule, &this->actor, &cylinderInitData);
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ 壷トラップ ☆☆☆☆☆ %x\n" VT_RST, this->actor.params); // "Urn Trap"
ActorCollider_AllocCylinder(globalCtx, &this->collider);
ActorCollider_InitCylinder(globalCtx, &this->collider, &this->actor, &cylinderInitData);
Actor_SetScale(&this->actor, 0.1f);
this->playfunc = (ActorFunc*)EnTuboTrap_TestLevitate;
this->actionFunc = (ActorFunc)EnTuboTrap_WaitForProximity;
}
void EnTuboTrap_Destroy(EnTuboTrap* this, GlobalContext* globalCtx)
{
ColliderCylinderMain* capsule = &this->capsule;
ActorCollider_FreeCylinder(globalCtx, capsule);
ColliderCylinderMain* collider = &this->collider;
ActorCollider_FreeCylinder(globalCtx, collider);
}
void EnTuboTrap_DropCollectible(EnTuboTrap* this, GlobalContext* globalCtx)
{
s16 params = this->actor.params;
s16 param1 = (params >> 6) & 0x03FF;
if (param1 >= 0 && param1 < 0x1A)
s16 param3FF = (params >> 6) & 0x3FF;
if (param3FF >= 0 && param3FF < 0x1A)
{
Item_DropCollectible(globalCtx, &this->actor.posRot, param1 | ((params & 0x03F) << 8));
Item_DropCollectible(globalCtx, &this->actor.posRot, param3FF | ((params & 0x3F) << 8));
}
}
#ifdef NON_MATCHING
void EnTuboTrap_Fragments(EnTuboTrap* this, GlobalContext* globalCtx)
// regalloc and stack usage differences, most likely the same differences as EnTuboTrap_SpawnWaterFragments
void EnTuboTrap_SpawnFragments(EnTuboTrap* this, GlobalContext* globalCtx)
{
u32 uVar1;
s32 rando_seed = 0;
s32 shard_count = 0;
Vec3f* actorPos;
f32 rand;
f32 cos;
f32 sin;
u32 addr;
Vec3f spC8;
Vec3f spBC;
s16 var;
s32 temp;
s32 i;
/* spawn fragments */
do
addr = &D_05017A60;
actorPos = &this->actor.posRot.pos;
for (i = 0, var = 0; i < 15; i++, var += 20000)
{
Vec3f burst_depth[2];
f32 rng;
sin = Math_Sins(var);
cos = Math_Coss(var);
spC8.x = sin * 8.0f;
spC8.y = (Math_Rand_ZeroOne() * 5.0f) + 2.0f;
spC8.z = cos * 8.0f;
/* burst_depth_x */
burst_depth[0].x = Math_Sins(rando_seed) * 8.0f;
burst_depth[0].y = (Math_Rand_ZeroOne() * 5.0f) + 2.0f;
burst_depth[0].z = Math_Coss(rando_seed) * 8.0f;
spBC.x = spC8.x * 0.23f;
spBC.y = (Math_Rand_ZeroOne() * 5.0f) + 2.0f;
spBC.z = spC8.z * 0.23f;
/* burst_depth_y */
burst_depth[1].x = (f32)(burst_depth[0].x * 0.23f);
burst_depth[1].y = (f32)(Math_Rand_ZeroOne() * 5.0f) + 2.0f;
burst_depth[1].z = (f32)(burst_depth[0].z * 0.23f);
spC8.x += actorPos->x;
spC8.y += actorPos->y;
spC8.z += actorPos->z;
VEC3_ADD(burst_depth[0], this->actor.posRot.pos)
rng = Math_Rand_ZeroOne();
if (rng < 0.2f)
{
uVar1 = 0x60;
}
rand = Math_Rand_ZeroOne();
if (rand < 0.2f)
temp = 96;
else if (rand < 0.6f)
temp = 64;
else
{
uVar1 = 0x20;
temp = 32;
if (rng < 0.6f)
{
uVar1 = 0x40;
}
}
/* The Heavy Lifting */
Effect_SpawnFragment(globalCtx, &burst_depth[0], &burst_depth[1], &this->actor.posRot.pos, -239, uVar1, 10, 10, 0,
(Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 0x20, 0x3C, -1, 3, DL_SHARD);
shard_count++;
rando_seed = (s32)((rando_seed + 0x4E20) * 0x10000) >> 0x10;
Effect_SpawnFragment(globalCtx, &spC8, &spBC, actorPos, -240, temp, 10, 10, 0,
(Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 32, 60, -1, 3, addr);
}
while(shard_count != 15);
func_80033480(globalCtx, &this->actor.posRot.pos, 30.0f, 4, 20, 50, 0);
func_80033480(globalCtx, actorPos, 30.0f, 4, 20, 50, 0);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_Fragments.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_SpawnFragments.s")
#endif
#ifdef NON_MATCHING
void EnTuboTrap_FragmentsWater(EnTuboTrap* this, GlobalContext* globalCtx)
// regalloc and stack usage differences, most likely the same differences as EnTuboTrap_SpawnFragments
void EnTuboTrap_SpawnWaterFragments(EnTuboTrap* this, GlobalContext* globalCtx)
{
u32 uVar1;
s32 rando_seed = 0;
s32 shard_count = 0;
Vec3f burst_depth[2];
f32 rng;
Vec3f* actorPos;
f32 rand;
f32 cos;
f32 sin;
u32 addr;
Vec3f spC8;
Vec3f spBC;
s16 var;
s32 temp;
s32 i;
Math_Vec3f_Copy(&burst_depth[0], &this->actor.posRot.pos);
burst_depth[0].y += this->actor.waterSurfaceDist;
addr = &D_05017A60;
actorPos = &this->actor.posRot.pos;
/* spawn a small splash */
func_8002949C(globalCtx, &burst_depth[0], 0, 0, 0, 0x190);
spC8 = *actorPos;
spC8.y += this->actor.unk_84;
/* spawn fragments */
do
func_8002949C(globalCtx, &spC8, 0, 0, 0, 400);
for (i = 0, var = 0; i < 15; i++, var += 20000)
{
/* burst_depth_x */
burst_depth[0].x = Math_Sins(rando_seed) * 8.0f;
burst_depth[0].y = (Math_Rand_ZeroOne() * 5.0f) + 2.0f;
burst_depth[0].z = Math_Coss(rando_seed) * 8.0f;
sin = Math_Sins(var);
cos = Math_Coss(var);
spC8.x = sin * 8.0f;
spC8.y = (Math_Rand_ZeroOne() * 5.0f) + 2.0f;
spC8.z = cos * 8.0f;
/* burst_depth_y */
burst_depth[1].x = (f32)(burst_depth[0].x * 0.23f);
burst_depth[1].y = (f32)(Math_Rand_ZeroOne() * 5.0f) + 2.0f;
burst_depth[1].z = (f32)(burst_depth[0].z * 0.23f);
spBC.x = spC8.x * 0.23f;
spBC.y = (Math_Rand_ZeroOne() * 4.0f) + 2.0f;
spBC.z = spC8.z * 0.23f;
VEC3_ADD(burst_depth[0], this->actor.posRot.pos)
spC8.x += actorPos->x;
spC8.y += actorPos->y;
spC8.z += actorPos->z;
rng = Math_Rand_ZeroOne();
if (rng < 0.2f)
{
uVar1 = 0x60;
}
rand = Math_Rand_ZeroOne();
if (rand < 0.2f)
temp = 64;
else
{
uVar1 = 0x20;
temp = 32;
if (rng < 0.6f)
{
uVar1 = 0x40;
}
}
/* The Heavy Lifting */
Effect_SpawnFragment(globalCtx, &burst_depth[0], &burst_depth[1], &this->actor.posRot.pos, -239, uVar1,
10, 10, 0, (Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 0x20, 0x3C, -1, 3, DL_SHARD);
shard_count++;
rando_seed = (s32)((rando_seed + 0x4E20) * 0x10000) >> 0x10;
Effect_SpawnFragment(globalCtx, &spC8, &spBC, actorPos, -180, temp, 30, 30, 0,
(Math_Rand_ZeroOne() * 65.0f) + 15.0f, 0, 32, 70, -1, 3, addr);
}
while(shard_count != 15);
func_80033480(globalCtx, &this->actor.posRot.pos, 30.0f, 4, 20, 50, 0);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_FragmentsWater.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_SpawnWaterFragments.s")
#endif
#ifdef NON_MATCHING
void EnTuboTrap_TestCollider(EnTuboTrap* this, GlobalContext* globalCtx)
void EnTuboTrap_HandleImpact(EnTuboTrap* this, GlobalContext* globalCtx)
{
u8 bVar1, bVar2;
u16 uVar3;
Actor* collided_this;
s32 pad;
Player* player = PLAYER;
if (!(this->actor.bgCheckFlags & 20))
if ((this->actor.bgCheckFlags & 0x20) && (this->actor.unk_84 > 15.0f))
{
bVar1 = this->capsule.base.colliderFlags;
EnTuboTrap_SpawnWaterFragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_BOMB_DROP_WATER);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
return;
}
else
if (this->collider.base.colliderFlags & 4)
{
if (this->actor.waterSurfaceDist > 15.0f)
this->collider.base.colliderFlags &= ~4;
EnTuboTrap_SpawnFragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_IT_SHIELD_REFLECT_SW);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
return;
}
if (this->collider.base.collideFlags & 2)
{
this->collider.base.collideFlags &= ~2;
EnTuboTrap_SpawnFragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_EXPLOSION);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
return;
}
if (this->collider.base.colliderFlags & 2)
{
this->collider.base.colliderFlags &= ~2;
if (this->collider.base.at == &player->actor)
{
EnTuboTrap_FragmentsWater(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_BOMB_DROP_WATER);
EnTuboTrap_SpawnFragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_POT_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &player->actor.posRot.pos, 40, 0x83E);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
return;
}
bVar1 = this->capsule.base.collideFlags;
}
if (!(bVar1 & 4))
if ((this->actor.bgCheckFlags & 8) || (this->actor.bgCheckFlags & 1))
{
bVar2 = this->capsule.base.collideFlags;
if (!(bVar2 & 2))
{
if (!(bVar1 & 2))
{
uVar3 = this->actor.bgCheckFlags;
}
else
{
collided_this = this->capsule.base.actor;
this->capsule.base.colliderFlags = bVar1 & 0xFD;
if (collided_this == &player->actor)
{
EnTuboTrap_Fragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 0x28, NA_SE_EV_POT_BROKEN);
Audio_PlaySoundAtPosition(globalCtx, &player->actor.posRot.pos, 0x28, NA_SE_PL_BODY_HIT);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
return;
}
uVar3 = this->actor.bgCheckFlags;
}
if ((uVar3 & 8) || (uVar3 & 1))
{
EnTuboTrap_Fragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 0x28, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
}
}
else
{
this->capsule.base.collideFlags = bVar2 & 0xFD;
EnTuboTrap_Fragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 0x28, NA_SE_EV_EXPLOSION);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 0x28, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
}
}
else
{
this->capsule.base.colliderFlags = bVar1 & 0xFB;
EnTuboTrap_Fragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 0x28, NA_SE_IT_SHIELD_REFLECT_SW);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 0x28, NA_SE_EV_POT_BROKEN);
EnTuboTrap_SpawnFragments(this, globalCtx);
Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 40, NA_SE_EV_POT_BROKEN);
EnTuboTrap_DropCollectible(this, globalCtx);
Actor_Kill(&this->actor);
return;
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_TestCollider.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_HandleImpact.s")
#endif
#ifdef NON_MATCHING
void EnTuboTrap_TestLevitate(EnTuboTrap* this, GlobalContext* globalCtx)
void EnTuboTrap_WaitForProximity(EnTuboTrap* this, GlobalContext* globalCtx)
{
Player* player = PLAYER;
f32 seekY;
f32 targetHeight;
if (BREG(2) != 0)
{
osSyncPrintf("[32m☆☆☆☆☆ わて ☆☆☆☆☆ %f\n", globalCtx, this->actor.posRot.pos.y);
osSyncPrintf("[32m☆☆☆☆☆ おいどん ☆☆☆☆☆ %f\n");
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ わて ☆☆☆☆☆ %f\n" VT_RST, this->actor.posRot.pos.y); // "You"
osSyncPrintf(VT_FGCOL(GREEN) "☆☆☆☆☆ おいどん ☆☆☆☆☆ %f\n" VT_RST, player->actor.posRot.pos.y); // "Me"
osSyncPrintf("\n\n");
}
if (this->actor.xzDistanceFromLink < 200.00000000 && this->actor.posRot.pos.y <= player->actor.posRot.pos.y)
if (this->actor.xzDistanceFromLink < 200.0f && this->actor.posRot.pos.y <= player->actor.posRot.pos.y)
{
Actor_ChangeType(globalCtx, &globalCtx->actorCtx, this, ACTORTYPE_ENEMY);
this->actor.flags |= 1;
seekY = (f32)gSaveContext.link_age * -10.00000000 + 40.00000000;
this->pos_y_seek = player->actor.posRot.pos.y;
targetHeight = 40.0f + -10.0f * gSaveContext.link_age;
if (this->pos_y_seek < this->actor.posRot.pos.y)
this->pos_y_seek = this->actor.posRot.pos.y + seekY;
this->actor.initPosRot.pos = this->actor.posRot.pos;
this->targetY = player->actor.posRot.pos.y + targetHeight;
if (this->targetY < this->actor.posRot.pos.y)
this->targetY = this->actor.posRot.pos.y + targetHeight;
this->originPos = this->actor.posRot.pos;
Audio_PlayActorSound2(this, NA_SE_EV_POT_MOVE_START);
this->playfunc = (ActorFunc)EnTuboTrap_InitializeAttack;
this->actionFunc = (ActorFunc)EnTuboTrap_Levitate;
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_TestLevitate.s")
#endif
#ifdef NON_MATCHING
void EnTuboTrap_InitializeAttack(EnTuboTrap* this, GlobalContext* globalCtx)
void EnTuboTrap_Levitate(EnTuboTrap* this, GlobalContext* globalCtx)
{
this->actor.posRot.rot.y += 5000;
Math_SmoothScaleMaxF(&this->actor.posRot.pos.y, this->pos_y_seek, 0.8f, 3.0f); /* Tween levitation */
this->actor.shape.rot.y += 5000;
Math_SmoothScaleMaxF(&this->actor.posRot.pos.y, this->targetY, 0.8f, 3.0f);
if (ABS(this->actor.posRot.pos.y - this->pos_y_seek) < 10.0f)
if (fabsf(this->actor.posRot.pos.y - this->targetY) < 10.0f)
{
this->actor.speedXZ = 10.0f;
this->actor.posRot.rot.y = this->actor.rotTowardsLinkY;
this->playfunc = (ActorFunc)EnTuboTrap_Fly;
this->actionFunc = (ActorFunc)EnTuboTrap_Fly;
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_InitializeAttack.s")
#endif
#ifdef NON_MATCHING
void EnTuboTrap_Fly(EnTuboTrap* this, GlobalContext* globalCtx)
{
Vec3f pos_delta;
f32 dx = this->originPos.x - this->actor.posRot.pos.x;
f32 dy = this->originPos.y - this->actor.posRot.pos.y;
f32 dz = this->originPos.z - this->actor.posRot.pos.z;
VEC3_SUB(pos_delta, this->pos_init, this->actor.posRot.pos);
Audio_PlayActorSound2(&this->actor, NA_SE_EN_TUBOOCK_FLY);
Audio_PlayActorSound2(&this->actor, 0x3037);
if (240.0f < sqrtf(SQ(pos_delta.x) + SQ(pos_delta.y) + SQ(pos_delta.z)))
Math_SmoothScaleMaxF(&this->actor.gravity, -3.0f, 0.2f, 0.5f); /* Tween to ground */
if (240.0f < sqrtf(SQ(dx) + SQ(dy) + SQ(dz)))
Math_SmoothScaleMaxF(&this->actor.gravity, -3.0f, 0.2f, 0.5f);
this->actor.posRot.rot.y += 5000;
EnTuboTrap_TestCollider(this, globalCtx);
this->actor.shape.rot.y += 5000;
EnTuboTrap_HandleImpact(this, globalCtx);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_Fly.s")
#endif
#ifdef NON_MATCHING
void EnTuboTrap_Update(EnTuboTrap* this, GlobalContext* globalCtx)
{
this->playfunc(this, globalCtx);
Actor_MoveForward(&this->actor); /* Probably to haul ass towards Link */
func_8002E4B4(globalCtx, &this->actor, 10.0f, 10.0f, 20.0f, 0x1D); /* Necessary for drawing a shadow */
Actor_SetHeight(&this->actor, 0.0f);
ActorCollider_Cylinder_Update(&this->actor, &this->capsule);
Actor_CollisionCheck_SetAC(globalCtx, &globalCtx->sub_11E60, &this->capsule);
Actor_CollisionCheck_SetAT(globalCtx, &globalCtx->sub_11E60, &this->capsule);
EnTuboTrap* tuboTrap = this;
SubGlobalContext11E60* sub_11E60 = &globalCtx->sub_11E60;
tuboTrap->actionFunc(tuboTrap, globalCtx);
Actor_MoveForward(&tuboTrap->actor);
func_8002E4B4(globalCtx, &tuboTrap->actor, 10.0f, 10.0f, 20.0f, 0x1D);
Actor_SetHeight(&tuboTrap->actor, 0.0f);
ActorCollider_Cylinder_Update(&tuboTrap->actor, &tuboTrap->collider);
Actor_CollisionCheck_SetAC(globalCtx, sub_11E60, &tuboTrap->collider);
Actor_CollisionCheck_SetAT(globalCtx, sub_11E60, &tuboTrap->collider);
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Tubo_Trap/EnTuboTrap_Update.s")
#endif
void EnTuboTrap_Draw(EnTuboTrap* this, GlobalContext* globalCtx)
{
Draw_DListOpa(globalCtx, &DL_TUBO);
Draw_DListOpa(globalCtx, D_05017870);
}

View file

@ -0,0 +1,18 @@
#ifndef _Z_EN_TUBO_TRAP_H_
#define _Z_EN_TUBO_TRAP_H_
#include <ultra64.h>
#include <global.h>
typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ ActorFunc actionFunc;
/* 0x0150 */ f32 targetY;
/* 0x0154 */ Vec3f originPos;
/* 0x0160 */ ColliderCylinderMain collider;
} EnTuboTrap; // size = 0x01AC
extern const ActorInit En_Tubo_Trap_InitVars;
#endif

View file

@ -14,7 +14,6 @@ typedef struct
{
/* 0x0000 */ Actor actor;
/* 0x014C */ SkelAnime skelAnime;
/* 0x018C */ char unk_18C[0x4];
/* 0x0190 */ ActorFunc actionFunc;
/* 0x0194 */ s16 timer;
/* 0x0196 */ s16 switchFlag;

View file

@ -6,23 +6,209 @@
#include <ultra64.h>
#include <global.h>
#include <alloca.h>
#pragma GLOBAL_ASM("asm/non_matchings/overlays/gamestates/ovl_title/func_80800000.s")
extern Gfx D_01002720[];
extern u8 D_01001800[];
extern u8 D_01000000[];
void func_80800128(TitleContext* this)
void Title_PrintBuildInfo(Gfx** gfxp)
{
this->unk_1E1 = 1;
Gfx* g;
GfxPrint* printer;
g = *gfxp;
g = func_8009411C(g);
printer = alloca(0x30);
GfxPrint_Ctor(printer);
GfxPrint_Open(printer, g);
GfxPrint_SetColor(printer, 0xFF, 0x9B, 0xFF, 0xFF);
GfxPrint_SetPos(printer, 9, 21);
GfxPrint_Printf(printer, "NOT MARIO CLUB VERSION");
GfxPrint_SetColor(printer, 0xFF, 0xFF, 0xFF, 0xFF);
GfxPrint_SetPos(printer, 7, 23);
GfxPrint_Printf(printer, "[Creator:%s]", gBuildTeam);
GfxPrint_SetPos(printer, 7, 24);
GfxPrint_Printf(printer, "[Date:%s]", gBuildDate);
g = GfxPrint_Close(printer);
GfxPrint_Dtor(printer);
*gfxp = g;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/gamestates/ovl_title/func_80800134.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/gamestates/ovl_title/func_808001C8.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/gamestates/ovl_title/func_8080073C.s")
void func_80800858(TitleContext* this)
// Note: In other rom versions this function also updates unk_1D4, coverAlpha, addAlpha, visibleDuration to calculate the fade-in/fade-out + the duration of the n64 logo animation
void Title_Calc(TitleContext* this)
{
func_800A9AD0(this, &this->unk_1D0);
this->exit = 1;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/gamestates/ovl_title/func_80800878.s")
void Title_InitView(TitleContext* this, f32 x, f32 y, f32 z)
{
View* view;
Vec3f v1;
Vec3f v2;
Vec3f v3;
view = &this->view;
v3.z = 0;
v3.x = 0;
v2.z = 0;
v2.y = 0;
v2.x = 0;
v1.x = x;
v1.y = y;
v1.z = z;
v3.y = 1.0;
func_800AA460(view, 30.0f, 10.0f, 12800.0f);
func_800AA358(view, &v1, &v2, &v3);
func_800AAA50(view, 0xF);
}
void Title_Draw(TitleContext* this)
{
static s16 sTitleRotY = 0;
static u32 D_808009A4 = 0;
static Lights1 sTitleLights = gdSPDefLights1(0x64, 0x64, 0x64, 0xFF, 0xFF, 0xFF, 0x45, 0x45, 0x45);
u16 y;
u16 idx;
char pad1[0x4];
Vec3f v3;
Vec3f v1;
Vec3f v2;
char pad2[0x8];
GraphicsContext* gfxCtx = this->state.gfxCtx;
Gfx* gfxArr[4];
func_800C6AC4(&gfxArr, this->state.gfxCtx, "../z_title.c", 395);
v3.x = 69;
v3.y = 69;
v3.z = 69;
v2.x = -4949.148;
v2.y = 4002.5417;
v1.x = 0;
v1.y = 0;
v1.z = 0;
v2.z = 1119.0837;
func_8002EABC(&v1, &v2, &v3, this->state.gfxCtx);
gSPSetLights1(gfxCtx->polyOpa.p++, sTitleLights);
Title_InitView(this, 0, 150.0, 300.0);
func_80093D18(this->state.gfxCtx);
Matrix_Translate(-53.0, -5.0, 0, MTXMODE_NEW);
Matrix_Scale(1.0, 1.0, 1.0, MTXMODE_APPLY);
Matrix_RotateXYZ(0, sTitleRotY, 0, MTXMODE_APPLY);
gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(this->state.gfxCtx, "../z_title.c", 424), G_MTX_LOAD);
gSPDisplayList(gfxCtx->polyOpa.p++, &D_01002720);
func_800944C4(this->state.gfxCtx);
gDPPipeSync(gfxCtx->polyOpa.p++);
gDPSetCycleType(gfxCtx->polyOpa.p++, G_CYC_2CYCLE);
gDPSetRenderMode(gfxCtx->polyOpa.p++, G_RM_XLU_SURF2, G_RM_OPA_CI | CVG_DST_WRAP);
gDPSetCombineLERP(gfxCtx->polyOpa.p++, TEXEL1, PRIMITIVE, ENV_ALPHA, TEXEL0, 0, 0, 0, TEXEL0, PRIMITIVE, ENVIRONMENT, COMBINED, ENVIRONMENT, COMBINED, 0, PRIMITIVE, 0);
gDPSetPrimColor(gfxCtx->polyOpa.p++, 0, 0, 170, 255, 255, 255);
gDPSetEnvColor(gfxCtx->polyOpa.p++, 0, 0, 255, 128);
gDPLoadMultiBlock(gfxCtx->polyOpa.p++,
&D_01001800,
0x100,
1,
G_IM_FMT_I,
G_IM_SIZ_8b,
32, 32,
0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
5, 5,
2, 11);
for (idx = 0, y = 94; idx < 16; idx++, y += 2)
{
gDPLoadTextureBlock(gfxCtx->polyOpa.p++,
&D_01000000[0x180 * idx],
G_IM_FMT_I,
G_IM_SIZ_8b,
192, 2,
0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
gDPSetTileSize(gfxCtx->polyOpa.p++, 1, this->uls, (this->ult & 0x7F) - idx*4, 0, 0);
gSPTextureRectangle(gfxCtx->polyOpa.p++, 388, y << 2, 1156, (y+2)<<2, G_TX_RENDERTILE, 0, 0, 1024, 1024);
}
func_8007672C(this->state.gfxCtx, 0, 0, 0, (s16)this->coverAlpha, 2);
sTitleRotY += 300;
func_800C6B54(&gfxArr, this->state.gfxCtx, "../z_title.c", 483);
}
void Title_Update(TitleContext* this)
{
GraphicsContext* gfxCtx = this->state.gfxCtx;
u32 pad;
Gfx* gfxArr[4];
u32 pad2;
Gfx* gfx[2];
func_800C6AC4(&gfxArr, this->state.gfxCtx, "../z_title.c", 494);
gSPSegment(gfxCtx->polyOpa.p++, 0, NULL);
gSPSegment(gfxCtx->polyOpa.p++, 1, this->staticSegment);
func_80095248(this->state.gfxCtx, 0, 0, 0);
Title_Calc(this);
Title_Draw(this);
if (D_8012DBC0)
{
gfx[0] = gfxCtx->polyOpa.p;
Title_PrintBuildInfo(&gfx);
gfxCtx->polyOpa.p = gfx[0];
}
if (this->exit)
{
gSaveContext.seq_index = -1;
gSaveContext.night_sfx = -1;
gSaveContext.game_mode = 1;
this->state.running = false;
this->state.init = Opening_Init; this->state.size = sizeof(OpeningContext);
}
func_800C6B54(&gfxArr, this->state.gfxCtx, "../z_title.c", 541);
}
void Title_Destroy(TitleContext* this)
{
func_800A9AD0(this, &this->sram);
}
void Title_Init(TitleContext* this)
{
u32 size = (u32)_nintendo_rogo_staticSegmentRomEnd - (u32)_nintendo_rogo_staticSegmentRomStart;
u32 pad;
this->staticSegment = Game_Alloc(&this->state, size, "../z_title.c", 611);
osSyncPrintf("z_title.c\n");
if (this->staticSegment == NULL)
{
__assert("this->staticSegment != NULL", "../z_title.c", 614);
}
DmaMgr_SendRequest1(this->staticSegment, (u32)_nintendo_rogo_staticSegmentRomStart, size, "../z_title.c", 615);
R_UPDATE_RATE = 1;
Matrix_Init(&this->state);
func_800AA278(&this->view, this->state.gfxCtx);
this->state.main = Title_Update;
this->state.destroy = Title_Destroy;
this->exit = false;
gSaveContext.file_num = 0xFF;
func_800A9CD4(&this->state, &this->sram);
this->ult = 0;
this->unk_1D4 = 0x14;
this->coverAlpha = 0xFF;
this->addAlpha = -3;
this->visibleDuration = 0x3C;
}

@ -1 +1 @@
Subproject commit 4f9639445655f9754214dcb50821b046a316d70e
Subproject commit 72e492e908c1231b4b6269492a513bbdcc75498e

View file

@ -140,8 +140,8 @@ D_0703811C = 0x0703811C;
D_080895C0 = 0x080895C0;
// z_en_tubo_trap
DL_TUBO = 0x05017870;
DL_SHARD = 0x05017A60;
D_05017870 = 0x05017870;
D_05017A60 = 0x05017A60;
// z_en_vase
DL_VASE = 0x06000000;
@ -275,6 +275,7 @@ D_01AA3DC0 = 0x01AA3DC0;
D_01AA1000 = 0x01AA1000;
D_01002720 = 0x01002720;
D_01001800 = 0x01001800;
D_01000000 = 0x01000000;
// z_shot_sun
D_02007020 = 0x02007020;
@ -393,4 +394,8 @@ D_06009244 = 0x06009244;
D_060041F4 = 0x060041F4;
D_0600A054 = 0x0600A054;
D_06008688 = 0x06008688;
D_04049210 = 0x04049210;
D_04049210 = 0x04049210;
// z_en_lightbox
D_06000B70 = 0x06000B70;
D_06001F10 = 0x06001F10;