From 76eb52ab5277ad69cd0908f8492483ef5881ee75 Mon Sep 17 00:00:00 2001 From: Roman971 Date: Wed, 18 Mar 2020 01:09:21 +0100 Subject: [PATCH] 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 --- .../code/__osMalloc/ArenaImpl_FaultClient.s | 175 ------------ .../code/__osMalloc/__osDisplayArena.s | 208 -------------- .../code/__osMalloc/__osFree_NoLock.s | 155 ----------- .../code/__osMalloc/__osFree_NoLockDebug.s | 159 ----------- .../code/__osMalloc/__osMallocR.s | 95 ------- .../code/__osMalloc/__osMallocRDebug.s | 97 ------- .../code/__osMalloc/__osMalloc_NoLock.s | 89 ------ .../code/__osMalloc/__osMalloc_NoLockDebug.s | 91 ------ .../code/__osMalloc/__osRealloc.s | 247 ----------------- .../code/code_8007BF90/func_8007C0F8.s | 52 ---- .../code/code_8007BF90/func_8007C1AC.s | 46 ---- .../code/code_800A9F30/func_800AA0F0.s | 24 -- asm/non_matchings/code/fault/Fault_LogFReg.s | 61 ---- .../code/fault/Fault_ProcessClientContext.s | 105 ------- .../FaultDrawer_FormatStringFunc.s | 157 ----------- .../code/gfxprint/GfxPrint_PrintChar.s | 142 ---------- .../code/z_camera/func_800457A8.s | 86 ------ .../code/z_camera/func_80057FC4.s | 116 -------- data/overlays/actors/z_en_wallmas.data.s | 26 -- data/overlays/actors/z_en_wallmas.reloc.s | 11 - data/overlays/actors/z_en_wallmas.rodata.s | 41 --- data/padmgr.bss.s | 11 - data/padmgr.data.s | 15 - include/alloca.h | 7 + include/functions.h | 4 +- include/variables.h | 74 ----- spec | 4 +- src/code/__osMalloc.c | 195 +++++-------- src/code/code_8007BF90.c | 75 +++-- src/code/code_800A9F30.c | 14 +- src/code/fault.c | 210 +++++++------- src/code/fault_drawer.c | 103 ++++--- src/code/gfxprint.c | 260 ++++++++++-------- src/code/padmgr.c | 82 +++--- src/code/z_actor.c | 32 +-- src/code/z_camera.c | 79 +++--- src/code/z_cheap_proc.c | 30 ++ 37 files changed, 549 insertions(+), 2829 deletions(-) delete mode 100644 asm/non_matchings/code/__osMalloc/ArenaImpl_FaultClient.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osDisplayArena.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osFree_NoLock.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osFree_NoLockDebug.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osMallocR.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osMallocRDebug.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osMalloc_NoLock.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osMalloc_NoLockDebug.s delete mode 100644 asm/non_matchings/code/__osMalloc/__osRealloc.s delete mode 100644 asm/non_matchings/code/code_8007BF90/func_8007C0F8.s delete mode 100644 asm/non_matchings/code/code_8007BF90/func_8007C1AC.s delete mode 100644 asm/non_matchings/code/code_800A9F30/func_800AA0F0.s delete mode 100644 asm/non_matchings/code/fault/Fault_LogFReg.s delete mode 100644 asm/non_matchings/code/fault/Fault_ProcessClientContext.s delete mode 100644 asm/non_matchings/code/fault_drawer/FaultDrawer_FormatStringFunc.s delete mode 100644 asm/non_matchings/code/gfxprint/GfxPrint_PrintChar.s delete mode 100644 asm/non_matchings/code/z_camera/func_800457A8.s delete mode 100644 asm/non_matchings/code/z_camera/func_80057FC4.s delete mode 100644 data/overlays/actors/z_en_wallmas.data.s delete mode 100644 data/overlays/actors/z_en_wallmas.reloc.s delete mode 100644 data/overlays/actors/z_en_wallmas.rodata.s delete mode 100644 data/padmgr.bss.s delete mode 100644 data/padmgr.data.s create mode 100644 include/alloca.h create mode 100644 src/code/z_cheap_proc.c diff --git a/asm/non_matchings/code/__osMalloc/ArenaImpl_FaultClient.s b/asm/non_matchings/code/__osMalloc/ArenaImpl_FaultClient.s deleted file mode 100644 index f84268fe9..000000000 --- a/asm/non_matchings/code/__osMalloc/ArenaImpl_FaultClient.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/__osMalloc/__osDisplayArena.s b/asm/non_matchings/code/__osMalloc/__osDisplayArena.s deleted file mode 100644 index 6ca7ee11d..000000000 --- a/asm/non_matchings/code/__osMalloc/__osDisplayArena.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/__osMalloc/__osFree_NoLock.s b/asm/non_matchings/code/__osMalloc/__osFree_NoLock.s deleted file mode 100644 index df7dbaa5f..000000000 --- a/asm/non_matchings/code/__osMalloc/__osFree_NoLock.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/__osMalloc/__osFree_NoLockDebug.s b/asm/non_matchings/code/__osMalloc/__osFree_NoLockDebug.s deleted file mode 100644 index 8e10de1af..000000000 --- a/asm/non_matchings/code/__osMalloc/__osFree_NoLockDebug.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/__osMalloc/__osMallocR.s b/asm/non_matchings/code/__osMalloc/__osMallocR.s deleted file mode 100644 index 9ddc2aa25..000000000 --- a/asm/non_matchings/code/__osMalloc/__osMallocR.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/__osMalloc/__osMallocRDebug.s b/asm/non_matchings/code/__osMalloc/__osMallocRDebug.s deleted file mode 100644 index 46e750650..000000000 --- a/asm/non_matchings/code/__osMalloc/__osMallocRDebug.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/__osMalloc/__osMalloc_NoLock.s b/asm/non_matchings/code/__osMalloc/__osMalloc_NoLock.s deleted file mode 100644 index ae560752c..000000000 --- a/asm/non_matchings/code/__osMalloc/__osMalloc_NoLock.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/__osMalloc/__osMalloc_NoLockDebug.s b/asm/non_matchings/code/__osMalloc/__osMalloc_NoLockDebug.s deleted file mode 100644 index 6b38370f4..000000000 --- a/asm/non_matchings/code/__osMalloc/__osMalloc_NoLockDebug.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code/__osMalloc/__osRealloc.s b/asm/non_matchings/code/__osMalloc/__osRealloc.s deleted file mode 100644 index 5ed23c5ba..000000000 --- a/asm/non_matchings/code/__osMalloc/__osRealloc.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/code_8007BF90/func_8007C0F8.s b/asm/non_matchings/code/code_8007BF90/func_8007C0F8.s deleted file mode 100644 index cf1b78c99..000000000 --- a/asm/non_matchings/code/code_8007BF90/func_8007C0F8.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/code_8007BF90/func_8007C1AC.s b/asm/non_matchings/code/code_8007BF90/func_8007C1AC.s deleted file mode 100644 index 7d9dbc661..000000000 --- a/asm/non_matchings/code/code_8007BF90/func_8007C1AC.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/code_800A9F30/func_800AA0F0.s b/asm/non_matchings/code/code_800A9F30/func_800AA0F0.s deleted file mode 100644 index 8f65b1511..000000000 --- a/asm/non_matchings/code/code_800A9F30/func_800AA0F0.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/fault/Fault_LogFReg.s b/asm/non_matchings/code/fault/Fault_LogFReg.s deleted file mode 100644 index eab46082a..000000000 --- a/asm/non_matchings/code/fault/Fault_LogFReg.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/fault/Fault_ProcessClientContext.s b/asm/non_matchings/code/fault/Fault_ProcessClientContext.s deleted file mode 100644 index c0d0df462..000000000 --- a/asm/non_matchings/code/fault/Fault_ProcessClientContext.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/fault_drawer/FaultDrawer_FormatStringFunc.s b/asm/non_matchings/code/fault_drawer/FaultDrawer_FormatStringFunc.s deleted file mode 100644 index 35f0091e7..000000000 --- a/asm/non_matchings/code/fault_drawer/FaultDrawer_FormatStringFunc.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/gfxprint/GfxPrint_PrintChar.s b/asm/non_matchings/code/gfxprint/GfxPrint_PrintChar.s deleted file mode 100644 index a82d3e066..000000000 --- a/asm/non_matchings/code/gfxprint/GfxPrint_PrintChar.s +++ /dev/null @@ -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 \ No newline at end of file diff --git a/asm/non_matchings/code/z_camera/func_800457A8.s b/asm/non_matchings/code/z_camera/func_800457A8.s deleted file mode 100644 index a33dd631c..000000000 --- a/asm/non_matchings/code/z_camera/func_800457A8.s +++ /dev/null @@ -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 - diff --git a/asm/non_matchings/code/z_camera/func_80057FC4.s b/asm/non_matchings/code/z_camera/func_80057FC4.s deleted file mode 100644 index f52414a75..000000000 --- a/asm/non_matchings/code/z_camera/func_80057FC4.s +++ /dev/null @@ -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 - diff --git a/data/overlays/actors/z_en_wallmas.data.s b/data/overlays/actors/z_en_wallmas.data.s deleted file mode 100644 index fca4a005d..000000000 --- a/data/overlays/actors/z_en_wallmas.data.s +++ /dev/null @@ -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 - diff --git a/data/overlays/actors/z_en_wallmas.reloc.s b/data/overlays/actors/z_en_wallmas.reloc.s deleted file mode 100644 index 05b0026c1..000000000 --- a/data/overlays/actors/z_en_wallmas.reloc.s +++ /dev/null @@ -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 diff --git a/data/overlays/actors/z_en_wallmas.rodata.s b/data/overlays/actors/z_en_wallmas.rodata.s deleted file mode 100644 index 937adf2ad..000000000 --- a/data/overlays/actors/z_en_wallmas.rodata.s +++ /dev/null @@ -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 - - diff --git a/data/padmgr.bss.s b/data/padmgr.bss.s deleted file mode 100644 index ad5c89b72..000000000 --- a/data/padmgr.bss.s +++ /dev/null @@ -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 diff --git a/data/padmgr.data.s b/data/padmgr.data.s deleted file mode 100644 index f57e85702..000000000 --- a/data/padmgr.data.s +++ /dev/null @@ -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 diff --git a/include/alloca.h b/include/alloca.h new file mode 100644 index 000000000..bb44ef0d2 --- /dev/null +++ b/include/alloca.h @@ -0,0 +1,7 @@ +#ifndef _ALLOCA_H_ +#define _ALLOCA_H_ + +void* alloca(unsigned int); +#define alloca __builtin_alloca + +#endif diff --git a/include/functions.h b/include/functions.h index a30733cd3..7f58b5b7b 100644 --- a/include/functions.h +++ b/include/functions.h @@ -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*); diff --git a/include/variables.h b/include/variables.h index a6d67c869..510803400 100644 --- a/include/variables.h +++ b/include/variables.h @@ -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; diff --git a/spec b/spec index 00c5891b0..bcb527f47 100644 --- a/spec +++ b/spec @@ -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 diff --git a/src/code/__osMalloc.c b/src/code/__osMalloc.c index 0d8fec179..34d602f0a 100644 --- a/src/code/__osMalloc.c +++ b/src/code/__osMalloc.c @@ -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) { diff --git a/src/code/code_8007BF90.c b/src/code/code_8007BF90.c index 8c5347971..a7e1cca5b 100644 --- a/src/code/code_8007BF90.c +++ b/src/code/code_8007BF90.c @@ -1,7 +1,7 @@ #include #include -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); diff --git a/src/code/code_800A9F30.c b/src/code/code_800A9F30.c index c5248faca..ad603fabe 100644 --- a/src/code/code_800A9F30.c +++ b/src/code/code_800A9F30.c @@ -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) { diff --git a/src/code/fault.c b/src/code/fault.c index 528d8beaf..4af2d6c60 100644 --- a/src/code/fault.c +++ b/src/code/fault.c @@ -1,5 +1,6 @@ #include #include +#include #include //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); } diff --git a/src/code/fault_drawer.c b/src/code/fault_drawer.c index 522f0b2ff..392290d8a 100644 --- a/src/code/fault_drawer.c +++ b/src/code/fault_drawer.c @@ -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 { diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c index a1aaaced8..340d4702a 100644 --- a/src/code/gfxprint.c +++ b/src/code/gfxprint.c @@ -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); -} \ No newline at end of file +} diff --git a/src/code/padmgr.c b/src/code/padmgr.c index 0c0201c63..163e546b1 100644 --- a/src/code/padmgr.c +++ b/src/code/padmgr.c @@ -1,10 +1,13 @@ #include #include +#include #include #include #include +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]; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 3b6698c30..71bba11f2 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -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) { diff --git a/src/code/z_camera.c b/src/code/z_camera.c index e1bece0fa..89a5e0334 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -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; diff --git a/src/code/z_cheap_proc.c b/src/code/z_cheap_proc.c new file mode 100644 index 000000000..48fd9b32a --- /dev/null +++ b/src/code/z_cheap_proc.c @@ -0,0 +1,30 @@ +#include +#include + +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); +}