mirror of
https://github.com/zeldaret/oot-vc.git
synced 2026-10-02 15:50:29 -04:00
wip
This commit is contained in:
@@ -3045,7 +3045,7 @@ lbl_8003854C:
|
||||
/* 80038670 00033C30 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 80038674 00033C34 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 80038678 00033C38 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 8003867C 00033C3C 48 11 AC C5 */ bl func_80153340
|
||||
/* 8003867C 00033C3C 48 11 AC C5 */ bl __cvt_sll_dbl
|
||||
/* 80038680 00033C40 48 12 C9 11 */ bl sqrt
|
||||
/* 80038684 00033C44 48 11 AE 21 */ bl __cvt_dbl_usll
|
||||
/* 80038688 00033C48 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
@@ -3057,7 +3057,7 @@ lbl_8003854C:
|
||||
/* 800386A0 00033C60 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 800386A4 00033C64 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 800386A8 00033C68 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 800386AC 00033C6C 48 11 AC 95 */ bl func_80153340
|
||||
/* 800386AC 00033C6C 48 11 AC 95 */ bl __cvt_sll_dbl
|
||||
/* 800386B0 00033C70 FC 20 0A 10 */ fabs f1, f1
|
||||
/* 800386B4 00033C74 48 11 AD F1 */ bl __cvt_dbl_usll
|
||||
/* 800386B8 00033C78 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
@@ -3107,7 +3107,7 @@ lbl_8003854C:
|
||||
/* 80038768 00033D28 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 8003876C 00033D2C 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 80038770 00033D30 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 80038774 00033D34 48 11 AB CD */ bl func_80153340
|
||||
/* 80038774 00033D34 48 11 AB CD */ bl __cvt_sll_dbl
|
||||
/* 80038778 00033D38 48 12 BE E5 */ bl ceil
|
||||
/* 8003877C 00033D3C 48 11 AD 29 */ bl __cvt_dbl_usll
|
||||
/* 80038780 00033D40 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
@@ -3119,7 +3119,7 @@ lbl_8003854C:
|
||||
/* 80038798 00033D58 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 8003879C 00033D5C 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 800387A0 00033D60 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 800387A4 00033D64 48 11 AB 9D */ bl func_80153340
|
||||
/* 800387A4 00033D64 48 11 AB 9D */ bl __cvt_sll_dbl
|
||||
/* 800387A8 00033D68 48 12 C0 F5 */ bl floor
|
||||
/* 800387AC 00033D6C 48 11 AC F9 */ bl __cvt_dbl_usll
|
||||
/* 800387B0 00033D70 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
@@ -3145,7 +3145,7 @@ lbl_8003854C:
|
||||
/* 80038800 00033DC0 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 80038804 00033DC4 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 80038808 00033DC8 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 8003880C 00033DCC 48 11 AB 35 */ bl func_80153340
|
||||
/* 8003880C 00033DCC 48 11 AB 35 */ bl __cvt_sll_dbl
|
||||
/* 80038810 00033DD0 48 12 BE 4D */ bl ceil
|
||||
/* 80038814 00033DD4 FC 00 08 1E */ fctiwz f0, f1
|
||||
/* 80038818 00033DD8 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
@@ -3158,7 +3158,7 @@ lbl_8003854C:
|
||||
/* 80038834 00033DF4 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 80038838 00033DF8 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 8003883C 00033DFC 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 80038840 00033E00 48 11 AB 01 */ bl func_80153340
|
||||
/* 80038840 00033E00 48 11 AB 01 */ bl __cvt_sll_dbl
|
||||
/* 80038844 00033E04 48 12 C0 59 */ bl floor
|
||||
/* 80038848 00033E08 FC 00 08 1E */ fctiwz f0, f1
|
||||
/* 8003884C 00033E0C 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
@@ -3171,7 +3171,7 @@ lbl_8003854C:
|
||||
/* 80038868 00033E28 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 8003886C 00033E2C 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 80038870 00033E30 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 80038874 00033E34 48 11 AB 7D */ bl func_801533F0
|
||||
/* 80038874 00033E34 48 11 AB 7D */ bl __cvt_sll_flt
|
||||
/* 80038878 00033E38 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
/* 8003887C 00033E3C 7C 7A 02 14 */ add r3, r26, r0
|
||||
/* 80038880 00033E40 D0 23 01 4C */ stfs f1, 0x14c(r3)
|
||||
@@ -3180,7 +3180,7 @@ lbl_8003854C:
|
||||
/* 8003888C 00033E4C 7C 9A 02 14 */ add r4, r26, r0
|
||||
/* 80038890 00033E50 80 64 01 48 */ lwz r3, 0x148(r4)
|
||||
/* 80038894 00033E54 80 84 01 4C */ lwz r4, 0x14c(r4)
|
||||
/* 80038898 00033E58 48 11 AA A9 */ bl func_80153340
|
||||
/* 80038898 00033E58 48 11 AA A9 */ bl __cvt_sll_dbl
|
||||
/* 8003889C 00033E5C 56 C0 EE 38 */ rlwinm r0, r22, 0x1d, 0x18, 0x1c
|
||||
/* 800388A0 00033E60 7C 7A 02 14 */ add r3, r26, r0
|
||||
/* 800388A4 00033E64 D8 23 01 48 */ stfd f1, 0x148(r3)
|
||||
|
||||
@@ -237381,7 +237381,7 @@ lbl_80153338:
|
||||
/* 80153338 0014E8F8 7C 63 2E 30 */ sraw r3, r3, r5
|
||||
/* 8015333C 0014E8FC 4E 80 00 20 */ blr
|
||||
|
||||
glabel func_80153340
|
||||
glabel __cvt_sll_dbl
|
||||
/* 80153340 0014E900 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80153344 0014E904 54 65 00 01 */ rlwinm. r5, r3, 0, 0, 0
|
||||
/* 80153348 0014E908 41 82 00 0C */ beq lbl_80153354
|
||||
@@ -237431,7 +237431,7 @@ lbl_801533DC:
|
||||
/* 801533E8 0014E9A8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 801533EC 0014E9AC 4E 80 00 20 */ blr
|
||||
|
||||
glabel func_801533F0
|
||||
glabel __cvt_sll_flt
|
||||
/* 801533F0 0014E9B0 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 801533F4 0014E9B4 54 65 00 01 */ rlwinm. r5, r3, 0, 0, 0
|
||||
/* 801533F8 0014E9B8 41 82 00 0C */ beq lbl_80153404
|
||||
|
||||
+9
-9
@@ -3,19 +3,19 @@
|
||||
|
||||
#include "tree.h"
|
||||
|
||||
typedef s32 (*lb_func_t)(void* obj, u32 addr, s8* dst);
|
||||
typedef s32 (*lh_func_t)(void* obj, u32 addr, s16* dst);
|
||||
typedef s32 (*lw_func_t)(void* obj, u32 addr, s32* dst);
|
||||
typedef s32 (*ld_func_t)(void* obj, u32 addr, s64* dst);
|
||||
typedef s32 (*sb_func_t)(void* obj, u32 addr, s8* src);
|
||||
typedef s32 (*sh_func_t)(void* obj, u32 addr, s16* src);
|
||||
typedef s32 (*sw_func_t)(void* obj, u32 addr, s32* src);
|
||||
typedef s32 (*sd_func_t)(void* obj, u32 addr, s64* src);
|
||||
typedef s32 (*lb_func_t)(void* obj, s32 addr, s8* dst);
|
||||
typedef s32 (*lh_func_t)(void* obj, s32 addr, s16* dst);
|
||||
typedef s32 (*lw_func_t)(void* obj, s32 addr, s32* dst);
|
||||
typedef s32 (*ld_func_t)(void* obj, s32 addr, s64* dst);
|
||||
typedef s32 (*sb_func_t)(void* obj, s32 addr, s8* src);
|
||||
typedef s32 (*sh_func_t)(void* obj, s32 addr, s16* src);
|
||||
typedef s32 (*sw_func_t)(void* obj, s32 addr, s32* src);
|
||||
typedef s32 (*sd_func_t)(void* obj, s32 addr, s64* src);
|
||||
|
||||
typedef struct {
|
||||
/* 0x0000 */ u32 unk_0;
|
||||
/* 0x0004 */ void *unk_4;
|
||||
/* 0x0008 */ u32 unk_8;
|
||||
/* 0x0008 */ s32 unk_8;
|
||||
/* 0x000C */ lb_func_t lb;
|
||||
/* 0x0010 */ lh_func_t lh;
|
||||
/* 0x0014 */ lw_func_t lw;
|
||||
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
#ifndef _MIPS_H
|
||||
#define _MIPS_H
|
||||
|
||||
#define MIPS_OP(inst) ((inst >> 0x1A) & 0x3F)
|
||||
|
||||
#define OPC_SPECIAL 0
|
||||
#define OPC_REGIMM 1
|
||||
#define OPC_J 2
|
||||
#define OPC_JAL 3
|
||||
#define OPC_BEQ 4
|
||||
#define OPC_BNE 5
|
||||
#define OPC_BLEZ 6
|
||||
#define OPC_BGTZ 7
|
||||
#define OPC_ADDI 8
|
||||
#define OPC_ADDIU 9
|
||||
#define OPC_SLTI 10
|
||||
#define OPC_SLTIU 11
|
||||
#define OPC_ANDI 12
|
||||
#define OPC_ORI 13
|
||||
#define OPC_XORI 14
|
||||
#define OPC_LUI 15
|
||||
#define OPC_CP0 16
|
||||
#define OPC_CP1 17
|
||||
|
||||
#define SPEC_FUNCT(inst) ((inst >> 0) & 0x3F)
|
||||
#define SPEC_SLL 0
|
||||
#define SPEC_SRL 2
|
||||
#define SPEC_SRA 3
|
||||
#define SPEC_SLLV 4
|
||||
#define SPEC_SRLV 6
|
||||
#define SPEC_SRAV 7
|
||||
#define SPEC_JR 8
|
||||
#define SPEC_JALR 9
|
||||
#define SPEC_SYSCALL 12
|
||||
#define SPEC_BREAK 13
|
||||
#define SPEC_MFHI 16
|
||||
#define SPEC_MTHI 17
|
||||
#define SPEC_MFLO 18
|
||||
#define SPEC_MTLO 19
|
||||
#define SPEC_DSLLV 20
|
||||
#define SPEC_DSRLV 22
|
||||
#define SPEC_DSRAV 23
|
||||
#define SPEC_MULT 24
|
||||
#define SPEC_MULTU 25
|
||||
#define SPEC_DIV 26
|
||||
#define SPEC_DIVU 27
|
||||
#define SPEC_DMULT 28
|
||||
#define SPEC_DMULTU 29
|
||||
#define SPEC_DDIV 30
|
||||
#define SPEC_DDIVU 31
|
||||
#define SPEC_ADD 32
|
||||
#define SPEC_ADDU 33
|
||||
#define SPEC_SUB 34
|
||||
#define SPEC_SUBU 35
|
||||
#define SPEC_AND 36
|
||||
#define SPEC_OR 37
|
||||
#define SPEC_XOR 38
|
||||
#define SPEC_NOR 39
|
||||
#define SPEC_SLT 42
|
||||
#define SPEC_SLTU 43
|
||||
#define SPEC_DADD 44
|
||||
#define SPEC_DADDU 45
|
||||
#define SPEC_DSUB 46
|
||||
#define SPEC_DSUBU 47
|
||||
#define SPEC_TGE 48
|
||||
#define SPEC_TGEU 49
|
||||
#define SPEC_TLT 50
|
||||
#define SPEC_TLTU 51
|
||||
#define SPEC_TEQ 52
|
||||
#define SPEC_TNE 54
|
||||
#define SPEC_DSLL 56
|
||||
#define SPEC_DSRL 58
|
||||
#define SPEC_DSRA 59
|
||||
#define SPEC_DSLL32 60
|
||||
#define SPEC_DSRL32 62
|
||||
#define SPEC_DSRA32 63
|
||||
|
||||
#define REGIMM_SUB(inst) ((inst >> 16) & 0x1F)
|
||||
#define REGIMM_BLTZ 0
|
||||
#define REGIMM_BGEZ 1
|
||||
#define REGIMM_BLTZL 2
|
||||
#define REGIMM_BGEZL 3
|
||||
#define REGIMM_TGEI 8
|
||||
#define REGIMM_TGEIU 9
|
||||
#define REGIMM_TLTI 10
|
||||
#define REGIMM_TLTIU 11
|
||||
#define REGIMM_TEQI 12
|
||||
#define REGIMM_TNEI 14
|
||||
#define REGIMM_BLTZAL 16
|
||||
#define REGIMM_BGEZAL 17
|
||||
#define REGIMM_BLTZALL 18
|
||||
#define REGIMM_BGEZALL 19
|
||||
|
||||
#define MIPS_RD(inst) ((inst >> 0xB) & 0x1F)
|
||||
#define MIPS_RT(inst) ((inst >> 0x10) & 0x1F)
|
||||
#define MIPS_RS(inst) ((inst >> 0x15) & 0x1F)
|
||||
|
||||
#define MIPS_FDT(inst) ((inst >> 0) & 0x7FF)
|
||||
#define MIPS_FR(inst) ((inst >> 0x15) & 0x1F)
|
||||
#define MIPS_FT(inst) ((inst >> 0x10) & 0x1F)
|
||||
#define MIPS_FS(inst) ((inst >> 0xB) & 0x1F)
|
||||
#define MIPS_FD(inst) ((inst >> 6) & 0x1F)
|
||||
#define MIPS_FSUB(inst) ((inst >> 0x15) & 0x1F)
|
||||
#define MIPS_FFMT(inst) ((inst >> 0x15) & 0x1F)
|
||||
#define MIPS_FFUNC(inst) ((inst >> 0x0) & 0x3F)
|
||||
#define MIPS_FCC(inst) ((inst >> 8) & 7)
|
||||
#define MIPS_FFMT3(inst) ((inst >> 0) & 7)
|
||||
#define MIPS_FOP4(inst) ((inst >> 3) & 7)
|
||||
|
||||
#define MIPS_FMT_SINGLE 16
|
||||
#define MIPS_FMT_DOUBLE 17
|
||||
#define MIPS_FMT_WORD 20
|
||||
#define MIPS_FMT_DBLWORD 21
|
||||
|
||||
#define MIPS_FSUB_MFC 0
|
||||
#define MIPS_FSUB_DMFC 1
|
||||
#define MIPS_FSUB_CFC 2
|
||||
#define MIPS_FSUB_MTC 4
|
||||
#define MIPS_FSUB_DMTC 5
|
||||
#define MIPS_FSUB_CTC 6
|
||||
|
||||
#define MIPS_IMM(inst) ((s16)(inst & 0xFFFF))
|
||||
#define MIPS_SA(inst ) ((inst >> 6) & 0x1F)
|
||||
#endif
|
||||
+1393
-352
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user