1
0
mirror of https://github.com/blawar/ooot.git synced 2024-06-30 16:29:55 +00:00

Various fixes/matches

- Matched all remaining functions in `__osMalloc.c`, 2 functions in `code_8007BF90.c`, 1 in `code_800A9F30.c`, 2 in `fault.c`, 1 in `fault_drawer.c`, 1 in `gfxprint.c`, 2 in `z_camera.c`
-  Improved most other remaining non matchings to ensure they are actually equivalent and to get them closer to matching
- Added a `alloc.h` header file in the process of working on `fault.c` non matchings
- Decompiled `padmgr.c` data/bss in order to improve padmgr non matchings
- Removed unused `z_en_wallmas.c` data files
- Moved functions confirmed to be in `z_cheap_proc.c` to their own file with that name
This commit is contained in:
Roman971 2020-03-18 01:09:21 +01:00
parent 2c7a339a81
commit 76eb52ab52
37 changed files with 549 additions and 2829 deletions

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,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,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

@ -1678,7 +1678,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 +2132,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*);

View File

@ -692,8 +692,6 @@ 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;
@ -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;

4
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"
@ -3805,7 +3803,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

@ -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);
}