started copying code over to new disasm

This commit is contained in:
lepelog
2021-03-30 02:45:32 +02:00
parent a868b6ae56
commit e756e1760e
35 changed files with 687 additions and 793 deletions
+2 -1
View File
@@ -75,7 +75,8 @@ INCLUDES := -i include -i include/dolphin/ -i src
ASFLAGS := -mgekko -I include ASFLAGS := -mgekko -I include
# Linker flags # Linker flags
LDFLAGS := -unused -map $(MAP) -fp hard -nodefaults -w on # LDFLAGS := -unused -map $(MAP) -fp hard -nodefaults -w on
LDFLAGS := -map $(MAP) -fp hard -nodefaults -w on
# Compiler flags # Compiler flags
CFLAGS += -Cpp_exceptions off -proc gekko -fp hard -O3 -nodefaults -msgstyle gcc -str pool,readonly,reuse -RTTI off -maxerrors 5 -enum int $(INCLUDES) CFLAGS += -Cpp_exceptions off -proc gekko -fp hard -O3 -nodefaults -msgstyle gcc -str pool,readonly,reuse -RTTI off -maxerrors 5 -enum int $(INCLUDES)
@@ -10,7 +10,7 @@ lbl_8026758C:
/* 802675AC 80 01 00 08 */ lwz r0, 8(r1) /* 802675AC 80 01 00 08 */ lwz r0, 8(r1)
/* 802675B0 90 0D 8B E0 */ stw r0, Zero__5csXyz(r13) /* 802675B0 90 0D 8B E0 */ stw r0, Zero__5csXyz(r13)
/* 802675B4 A0 01 00 0C */ lhz r0, 0xc(r1) /* 802675B4 A0 01 00 0C */ lhz r0, 0xc(r1)
/* 802675B8 B0 0D 8B E4 */ sth r0, data_80451164(r13) /* 802675B8 B0 0D 8B E4 */ sth r0, Zero__5csXyz+4(r13)
/* 802675BC 38 6D 8B E0 */ la r3, Zero__5csXyz(r13) /* 80451160-_SDA_BASE_ */ /* 802675BC 38 6D 8B E0 */ la r3, Zero__5csXyz(r13) /* 80451160-_SDA_BASE_ */
/* 802675C0 3C 80 80 02 */ lis r4, __dt__5csXyzFv@ha /* 802675C0 3C 80 80 02 */ lis r4, __dt__5csXyzFv@ha
/* 802675C4 38 84 8B D0 */ addi r4, r4, __dt__5csXyzFv@l /* 802675C4 38 84 8B D0 */ addi r4, r4, __dt__5csXyzFv@l
@@ -12,7 +12,7 @@ lbl_80151A54:
/* 80151A7C 7C DC 33 78 */ mr r28, r6 /* 80151A7C 7C DC 33 78 */ mr r28, r6
/* 80151A80 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13) /* 80151A80 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13)
/* 80151A84 90 01 00 08 */ stw r0, 8(r1) /* 80151A84 90 01 00 08 */ stw r0, 8(r1)
/* 80151A88 A0 0D 8B E4 */ lhz r0, data_80451164(r13) /* 80151A88 A0 0D 8B E4 */ lhz r0, Zero__5csXyz+4(r13)
/* 80151A8C B0 01 00 0C */ sth r0, 0xc(r1) /* 80151A8C B0 01 00 0C */ sth r0, 0xc(r1)
/* 80151A90 3B A0 00 00 */ li r29, 0 /* 80151A90 3B A0 00 00 */ li r29, 0
/* 80151A94 3B 00 00 00 */ li r24, 0 /* 80151A94 3B 00 00 00 */ li r24, 0
@@ -392,7 +392,7 @@ lbl_80251AD8:
lbl_80251AE8: lbl_80251AE8:
/* 80251AE8 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13) /* 80251AE8 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13)
/* 80251AEC 90 01 00 10 */ stw r0, 0x10(r1) /* 80251AEC 90 01 00 10 */ stw r0, 0x10(r1)
/* 80251AF0 A0 0D 8B E4 */ lhz r0, data_80451164(r13) /* 80251AF0 A0 0D 8B E4 */ lhz r0, Zero__5csXyz+4(r13)
/* 80251AF4 B0 01 00 14 */ sth r0, 0x14(r1) /* 80251AF4 B0 01 00 14 */ sth r0, 0x14(r1)
/* 80251AF8 3A C0 00 00 */ li r22, 0 /* 80251AF8 3A C0 00 00 */ li r22, 0
/* 80251AFC 3B 20 00 00 */ li r25, 0 /* 80251AFC 3B 20 00 00 */ li r25, 0
@@ -9,7 +9,7 @@ lbl_80251EF8:
/* 80251F14 7C 7D 1B 78 */ mr r29, r3 /* 80251F14 7C 7D 1B 78 */ mr r29, r3
/* 80251F18 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13) /* 80251F18 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13)
/* 80251F1C 90 01 00 08 */ stw r0, 8(r1) /* 80251F1C 90 01 00 08 */ stw r0, 8(r1)
/* 80251F20 A0 0D 8B E4 */ lhz r0, data_80451164(r13) /* 80251F20 A0 0D 8B E4 */ lhz r0, Zero__5csXyz+4(r13)
/* 80251F24 B0 01 00 0C */ sth r0, 0xc(r1) /* 80251F24 B0 01 00 0C */ sth r0, 0xc(r1)
/* 80251F28 3B C0 00 00 */ li r30, 0 /* 80251F28 3B C0 00 00 */ li r30, 0
/* 80251F2C 3B 80 00 00 */ li r28, 0 /* 80251F2C 3B 80 00 00 */ li r28, 0
@@ -6,7 +6,7 @@ lbl_8001C174:
/* 8001C184 7C E8 3B 78 */ mr r8, r7 /* 8001C184 7C E8 3B 78 */ mr r8, r7
/* 8001C188 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13) /* 8001C188 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13)
/* 8001C18C 90 01 00 08 */ stw r0, 8(r1) /* 8001C18C 90 01 00 08 */ stw r0, 8(r1)
/* 8001C190 A0 0D 8B E4 */ lhz r0, data_80451164(r13) /* 8001C190 A0 0D 8B E4 */ lhz r0, Zero__5csXyz+4(r13)
/* 8001C194 B0 01 00 0C */ sth r0, 0xc(r1) /* 8001C194 B0 01 00 0C */ sth r0, 0xc(r1)
/* 8001C198 7D 25 4B 78 */ mr r5, r9 /* 8001C198 7D 25 4B 78 */ mr r5, r9
/* 8001C19C 38 E1 00 08 */ addi r7, r1, 8 /* 8001C19C 38 E1 00 08 */ addi r7, r1, 8
@@ -18,7 +18,7 @@ lbl_8001C240:
lbl_8001C280: lbl_8001C280:
/* 8001C280 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13) /* 8001C280 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13)
/* 8001C284 90 01 00 08 */ stw r0, 8(r1) /* 8001C284 90 01 00 08 */ stw r0, 8(r1)
/* 8001C288 A0 0D 8B E4 */ lhz r0, data_80451164(r13) /* 8001C288 A0 0D 8B E4 */ lhz r0, Zero__5csXyz+4(r13)
/* 8001C28C B0 01 00 0C */ sth r0, 0xc(r1) /* 8001C28C B0 01 00 0C */ sth r0, 0xc(r1)
/* 8001C290 28 1E 00 00 */ cmplwi r30, 0 /* 8001C290 28 1E 00 00 */ cmplwi r30, 0
/* 8001C294 41 82 00 20 */ beq lbl_8001C2B4 /* 8001C294 41 82 00 20 */ beq lbl_8001C2B4
@@ -13,7 +13,7 @@ lbl_8001C3E0:
/* 8001C40C 7D 3F 4B 78 */ mr r31, r9 /* 8001C40C 7D 3F 4B 78 */ mr r31, r9
/* 8001C410 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13) /* 8001C410 80 0D 8B E0 */ lwz r0, Zero__5csXyz(r13)
/* 8001C414 90 01 00 10 */ stw r0, 0x10(r1) /* 8001C414 90 01 00 10 */ stw r0, 0x10(r1)
/* 8001C418 A0 0D 8B E4 */ lhz r0, data_80451164(r13) /* 8001C418 A0 0D 8B E4 */ lhz r0, Zero__5csXyz+4(r13)
/* 8001C41C B0 01 00 14 */ sth r0, 0x14(r1) /* 8001C41C B0 01 00 14 */ sth r0, 0x14(r1)
/* 8001C420 2C 1C 00 FF */ cmpwi r28, 0xff /* 8001C420 2C 1C 00 FF */ cmpwi r28, 0xff
/* 8001C424 40 82 00 0C */ bne lbl_8001C430 /* 8001C424 40 82 00 0C */ bne lbl_8001C430
+14
View File
@@ -2,5 +2,19 @@
#define C_LIST_H #define C_LIST_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "SSystem/SComponent/c_node.h"
typedef struct node_list_class {
node_class* mpHead;
node_class* mpTail;
int mSize;
} node_list_class;
void cLs_Init(node_list_class* pList);
int cLs_SingleCut(node_class* pNode);
int cLs_Addition(node_list_class* pList, node_class* pNode);
int cLs_Insert(node_list_class* pList, int idx, node_class* pNode);
node_class* cLs_GetFirst(node_list_class* pList);
void cLs_Create(node_list_class* pList);
#endif /* C_LIST_H */ #endif /* C_LIST_H */
+5
View File
@@ -2,5 +2,10 @@
#define C_LIST_ITER_H #define C_LIST_ITER_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "SSystem/SComponent/c_list.h"
#include "SSystem/SComponent/c_node_iter.h"
int cLsIt_Method(node_list_class* pList, cNdIt_MethodFunc pMethod, void* pUserData);
void* cLsIt_Judge(node_list_class* pList, cNdIt_JudgeFunc pJudge, void* pUserData);
#endif /* C_LIST_ITER_H */ #endif /* C_LIST_ITER_H */
+13
View File
@@ -3,4 +3,17 @@
#include "dolphin/types.h" #include "dolphin/types.h"
// TODO: move to correct include
struct JKRHeap {
/* 802CE4D4 */ void *alloc(u32, int);
/* 802CE548 */ void free(void*);
};
struct cMl {
static JKRHeap *Heap;
/* 80263220 */ static void init(JKRHeap*);
/* 80263228 */ static void *memalignB(int, u32);
/* 80263260 */ static void free(void*);
};
#endif /* C_MALLOC_H */ #endif /* C_MALLOC_H */
+13
View File
@@ -3,4 +3,17 @@
#include "dolphin/types.h" #include "dolphin/types.h"
s16 cM_rad2s(float);
u16 U_GetAtanTable(float, float);
s16 cM_atan2s(float, float);
float cM_atan2f(float, float);
void cM_initRnd(int, int, int);
float cM_rnd(void);
float cM_rndF(float);
float cM_rndFX(float);
void cM_initRnd2(int, int, int);
float cM_rnd2(void);
float cM_rndF2(float);
float cM_rndFX2(float);
#endif /* C_MATH_H */ #endif /* C_MATH_H */
+23
View File
@@ -3,4 +3,27 @@
#include "dolphin/types.h" #include "dolphin/types.h"
typedef struct node_class {
struct node_class* mpPrevNode;
void* mpData;
struct node_class* mpNextNode;
} node_class;
void cNd_Join(node_class* pA, node_class* pB);
int cNd_LengthOf(node_class* pNode);
node_class* cNd_First(node_class* pNode);
node_class* cNd_Last(node_class* pNode);
node_class* cNd_Order(node_class* pNode, int idx);
void cNd_SingleCut(node_class* pNode);
void cNd_Cut(node_class* pNode);
void cNd_Addition(node_class* pA, node_class* pB);
void cNd_Insert(node_class* pA, node_class* pB);
void cNd_SetObject(node_class* pNode, void* pData);
void cNd_ClearObject(node_class* pNode);
void cNd_ForcedClear(node_class* pNode);
void cNd_Create(node_class* pNode, void* pData);
#define NODE_GET_PREV(pNode) (pNode ? pNode->mpPrevNode : NULL)
#define NODE_GET_NEXT(pNode) (pNode ? pNode->mpNextNode : NULL)
#endif /* C_NODE_H */ #endif /* C_NODE_H */
+7
View File
@@ -2,5 +2,12 @@
#define C_NODE_ITER_H #define C_NODE_ITER_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "SSystem/SComponent/c_node.h"
typedef int (*cNdIt_MethodFunc)(node_class* pNode, void* pUserData);
int cNdIt_Method(node_class* pNode, cNdIt_MethodFunc pMethod, void* pUserData);
typedef void* (*cNdIt_JudgeFunc)(node_class* pNode, void* pUserData);
void* cNdIt_Judge(node_class* pNode, cNdIt_JudgeFunc pJudge, void* pUserData);
#endif /* C_NODE_ITER_H */ #endif /* C_NODE_ITER_H */
+24
View File
@@ -3,4 +3,28 @@
#include "dolphin/types.h" #include "dolphin/types.h"
typedef int (*cPhs__Handler)(void*);
enum cPhs__Step {
cPhs_ZERO_e = 0x00,
// names from Wind Waker debug strings
cPhs_COMPLEATE_e = 0x04,
cPhs_ERROR_e = 0x05,
cPhs_NEXT_e = 0x06,
};
typedef struct request_of_phase_process_class {
cPhs__Handler* mpHandlerTable;
int mPhaseStep;
} request_of_phase_process_class;
void cPhs_Reset(request_of_phase_process_class* pPhase);
void cPhs_Set(request_of_phase_process_class* pPhase, cPhs__Handler* pHandlerTable);
void cPhs_UnCompleate(request_of_phase_process_class* pPhase);
int cPhs_Compleate(request_of_phase_process_class* pPhase);
int cPhs_Next(request_of_phase_process_class* pPhase);
int cPhs_Do(request_of_phase_process_class* pPhase, void* pUserData);
int cPhs_Handler(request_of_phase_process_class* pPhase, cPhs__Handler* pHandlerTable,
void* pUserData);
#endif /* C_PHASE_H */ #endif /* C_PHASE_H */
+18
View File
@@ -2,5 +2,23 @@
#define C_TAG_H #define C_TAG_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "SSystem/SComponent/c_list.h"
#include "SSystem/SComponent/c_node.h"
#include "SSystem/SComponent/c_tree.h"
typedef struct create_tag_class {
node_class mpNode;
void* mpTagData;
s8 mbIsUse;
} create_tag_class;
int cTg_IsUse(create_tag_class* pTag);
int cTg_SingleCutFromTree(create_tag_class* pTag);
int cTg_AdditionToTree(node_lists_tree_class* pTree, int listIdx, create_tag_class* pTag);
int cTg_InsertToTree(node_lists_tree_class* pTree, int listIdx, create_tag_class* pTag, int idx);
node_class* cTg_GetFirst(node_list_class* pTag);
int cTg_SingleCut(create_tag_class* pTag);
int cTg_Addition(node_list_class* pList, create_tag_class* pTag);
void cTg_Create(create_tag_class* pTag, void* pData);
#endif /* C_TAG_H */ #endif /* C_TAG_H */
+16
View File
@@ -2,5 +2,21 @@
#define C_TAG_ITER_H #define C_TAG_ITER_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "SSystem/SComponent/c_node_iter.h"
#include "SSystem/SComponent/c_tag.h"
typedef struct method_filter {
cNdIt_MethodFunc mpMethodFunc;
void* mpUserData;
} method_filter;
typedef struct judge_filter {
cNdIt_JudgeFunc mpJudgeFunc;
void* mpUserData;
} judge_filter;
int cTgIt_MethodCall(create_tag_class* pTag, method_filter* pMethodFilter);
void* cTgIt_JudgeFilter(create_tag_class* pTag, judge_filter* pJudgeFilter);
#endif /* C_TAG_ITER_H */ #endif /* C_TAG_ITER_H */
+12
View File
@@ -2,5 +2,17 @@
#define C_TREE_H #define C_TREE_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "SSystem/SComponent/c_list.h"
#include "SSystem/SComponent/c_node.h"
typedef struct node_lists_tree_class {
node_list_class* mpLists;
int mNumLists;
} node_lists_tree_class;
int cTr_SingleCut(node_class* pNode);
int cTr_Addition(node_lists_tree_class* pTree, int listIdx, node_class* pNode);
int cTr_Insert(node_lists_tree_class* pTree, int listIdx, node_class* pNode, int idx);
void cTr_Create(node_lists_tree_class* pTree, node_list_class* pLists, int numLists);
#endif /* C_TREE_H */ #endif /* C_TREE_H */
+6
View File
@@ -2,5 +2,11 @@
#define C_TREE_ITER_H #define C_TREE_ITER_H
#include "dolphin/types.h" #include "dolphin/types.h"
#include "SSystem/SComponent/c_node_iter.h"
#include "SSystem/SComponent/c_tree.h"
int cTrIt_Method(node_lists_tree_class* pTree, cNdIt_MethodFunc pJudgeFunc, void* pUserData);
void* cTrIt_Judge(node_lists_tree_class* pTree, cNdIt_JudgeFunc pJudgeFunc, void* pUserData);
#endif /* C_TREE_ITER_H */ #endif /* C_TREE_ITER_H */
+64
View File
@@ -0,0 +1,64 @@
#ifndef MSL_MATH_H_
#define MSL_MATH_H_
#include "dolphin/types.h"
extern "C" {
f64 acos(f64);
f32 acosf(f32);
f64 asin(f64);
f64 atan(f64);
f64 atan2(f64);
f64 ceil(f64);
f64 copysign(f64, f64);
f64 cos(f64);
f32 cosf(f32);
f64 exp(f64);
extern f32 __fabsf(f32);
inline f64 fabs(f64 f) {
return __fabsf(f);
}
inline f64 fabsf2(f32 f) {
return __fabsf(f);
}
inline f32 fabsf(f32 f) {
return fabsf2(f);
}
f64 floor(f64);
f64 fmod(f64, f64);
inline f32 fmodf(f32 f1, f32 f2) {
return fmod(f1, f2);
}
inline s32 fpclassify(f32 f) {
u32 var = *(u32*)&f;
switch (var & 0x7F800000) {
case 0x7F800000:
if ((var & 0x7FFFFF) != 0) {
return 1;
} else {
return 2;
}
case 0:
if ((var & 0x7FFFFF) != 0) {
return 5;
} else {
return 3;
}
default:
return 4;
}
}
f64 frexp(f64, s32*);
f64 ldexp(f64, s32);
f64 modf(f64, f64*);
f64 pow(f64, f64);
f64 sin(f64);
f32 sinf(f32);
f64 sqrt(f64);
f64 tan(f64);
f32 tanf(f32);
}
#endif

Some files were not shown because too many files have changed in this diff Show More