mirror of https://github.com/zeldaret/tp.git
decompile s_basic, cleanup mangled names in f_pc (#101)
Co-authored-by: Pheenoh <pheenoh@gmail.com>
This commit is contained in:
parent
3ee8a929a9
commit
ce0d0c3521
|
|
@ -1,29 +0,0 @@
|
|||
.include "macros.inc"
|
||||
|
||||
.section .text, "ax" # 80271c8c
|
||||
|
||||
|
||||
.global sBs_FillArea_s
|
||||
sBs_FillArea_s:
|
||||
/* 80271C8C 0026EBCC 54 80 F8 7E */ srwi r0, r4, 1
|
||||
/* 80271C90 0026EBD0 7C 09 03 A6 */ mtctr r0
|
||||
/* 80271C94 0026EBD4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80271C98 0026EBD8 4C 81 00 20 */ blelr
|
||||
lbl_80271C9C:
|
||||
/* 80271C9C 0026EBDC B0 A3 00 00 */ sth r5, 0(r3)
|
||||
/* 80271CA0 0026EBE0 38 63 00 02 */ addi r3, r3, 2
|
||||
/* 80271CA4 0026EBE4 42 00 FF F8 */ bdnz lbl_80271C9C
|
||||
/* 80271CA8 0026EBE8 4E 80 00 20 */ blr
|
||||
|
||||
.global sBs_ClearArea
|
||||
sBs_ClearArea:
|
||||
/* 80271CAC 0026EBEC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80271CB0 0026EBF0 7C 08 02 A6 */ mflr r0
|
||||
/* 80271CB4 0026EBF4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80271CB8 0026EBF8 38 A0 00 00 */ li r5, 0
|
||||
/* 80271CBC 0026EBFC 4B FF FF D1 */ bl sBs_FillArea_s
|
||||
/* 80271CC0 0026EC00 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80271CC4 0026EC04 7C 08 03 A6 */ mtlr r0
|
||||
/* 80271CC8 0026EC08 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80271CCC 0026EC0C 4E 80 00 20 */ blr
|
||||
|
||||
|
|
@ -5,6 +5,7 @@
|
|||
#include "global.h"
|
||||
|
||||
class cMl {
|
||||
public:
|
||||
static void init(JKRHeap*);
|
||||
static void* memalignB(int, unsigned long);
|
||||
static void free(void*);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef S_BASIC_H_
|
||||
#define S_BASIC_H_
|
||||
|
||||
#include "global.h"
|
||||
|
||||
void sBs_FillArea_s(void* pPtr, u32 pNumBytes, s16 pValue);
|
||||
void sBs_ClearArea(void* pPtr, u32 pNumBytes);
|
||||
|
||||
#endif
|
||||
|
|
@ -57,7 +57,7 @@ s32 fpcNdRq_Cancel(node_create_request* pNodeCreateReq);
|
|||
s32 fpcNdRq_Handler(void);
|
||||
s32 fpcNdRq_IsPossibleTarget(struct process_node_class* pProcNode);
|
||||
s32 fpcNdRq_IsIng(struct process_node_class* pProcNode);
|
||||
node_create_request* fpcNdRq_Create(s32 pRequestSize);
|
||||
node_create_request* fpcNdRq_Create(u32 pRequestSize);
|
||||
node_create_request* fpcNdRq_ChangeNode(u32 pRequestSize, struct process_node_class* pProcNode,
|
||||
s16 param_3, void* param_4);
|
||||
node_create_request* fpcNdRq_DeleteNode(u32 pRequestSize, struct process_node_class* pProcNode);
|
||||
|
|
|
|||
|
|
@ -1 +1,17 @@
|
|||
// ok
|
||||
/* s_basic.cpp autogenerated by split.py v0.4 at 2021-01-26 08:03:35.809652 */
|
||||
|
||||
#include "SStandard/s_basic.h"
|
||||
|
||||
// sBs_FillArea_s__FPvUls
|
||||
void sBs_FillArea_s(void* pPtr, u32 pNumBytes, s16 pValue) {
|
||||
s16* castPtr = (s16*)pPtr;
|
||||
for (int i = 0; i < pNumBytes / 2; i++) {
|
||||
*castPtr = pValue;
|
||||
castPtr++;
|
||||
}
|
||||
}
|
||||
|
||||
// sBs_ClearArea__FPvUl
|
||||
void sBs_ClearArea(void* pPtr, u32 pNumBytes) {
|
||||
sBs_FillArea_s(pPtr, pNumBytes, 0);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -275,7 +275,7 @@ TEXT_O_FILES := \
|
|||
$(BUILD_DIR)/libs/SSystem/SComponent/c_m3d_g_tri.o \
|
||||
$(BUILD_DIR)/libs/SSystem/SComponent/c_lib.o \
|
||||
$(BUILD_DIR)/libs/SSystem/SComponent/c_angle.o \
|
||||
$(BUILD_DIR)/asm/SStandard/s/s_basic.o \
|
||||
$(BUILD_DIR)/libs/SSystem/SStandard/s_basic.o \
|
||||
$(BUILD_DIR)/asm/JFramework/JFWSystem.o \
|
||||
$(BUILD_DIR)/asm/JFramework/JFWDisplay.o \
|
||||
$(BUILD_DIR)/asm/J3DU/J3DUClipper.o \
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
#include "f/f_pc/f_pc_base.h"
|
||||
#include "SComponent/c_malloc.h"
|
||||
#include "SComponent/c_phase.h"
|
||||
#include "SStandard/s_basic.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f/f_pc/f_pc_delete_tag.h"
|
||||
#include "f/f_pc/f_pc_layer.h"
|
||||
|
|
@ -18,8 +20,6 @@ extern s32 lbl_80450D00; // f_pc_base::g_fpcBs_type
|
|||
|
||||
extern "C" {
|
||||
|
||||
extern void sBs_ClearArea(void* pPtr, s32 pSize);
|
||||
|
||||
BOOL fpcBs_Is_JustOfType(s32 pType1, s32 pType2) {
|
||||
return checkEqual(pType1, pType2);
|
||||
}
|
||||
|
|
@ -54,7 +54,7 @@ s32 fpcBs_Execute(base_process_class* pProc) {
|
|||
|
||||
void fpcBs_DeleteAppend(base_process_class* pProc) {
|
||||
if (pProc->mpUserData != NULL) {
|
||||
free__3cMlFPv(pProc->mpUserData);
|
||||
cMl::free(pProc->mpUserData);
|
||||
pProc->mpUserData = NULL;
|
||||
}
|
||||
}
|
||||
|
|
@ -73,7 +73,7 @@ s32 fpcBs_Delete(base_process_class* pProc) {
|
|||
if (deleteResult == 1) {
|
||||
fpcBs_DeleteAppend(pProc);
|
||||
pProc->mBsType = 0;
|
||||
free__3cMlFPv(pProc);
|
||||
cMl::free(pProc);
|
||||
}
|
||||
return deleteResult;
|
||||
}
|
||||
|
|
@ -81,11 +81,11 @@ s32 fpcBs_Delete(base_process_class* pProc) {
|
|||
base_process_class* fpcBs_Create(s16 pProcTypeID, u32 pProcID, void* pData) {
|
||||
process_profile_definition* procProfDef;
|
||||
base_process_class* procClass;
|
||||
s32 size;
|
||||
u32 size;
|
||||
|
||||
procProfDef = fpcPf_Get(pProcTypeID);
|
||||
size = procProfDef->mSize + procProfDef->mSizeOther;
|
||||
procClass = (base_process_class*)memalignB__3cMlFiUl(-4, size);
|
||||
procClass = (base_process_class*)cMl::memalignB(-4, size);
|
||||
if (procClass == NULL) {
|
||||
return NULL;
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "dolphin/types.h"
|
||||
|
||||
#include "SComponent/c_malloc.h"
|
||||
#include "SComponent/c_phase.h"
|
||||
#include "f/f_pc/f_pc_base.h"
|
||||
#include "f/f_pc/f_pc_create_iter.h"
|
||||
|
|
@ -32,8 +33,6 @@ void fpcCtRq_ToCreateQ(create_request* pReq) {
|
|||
fpcCtTg_ToCreateQ(&pReq->mBase.mBase);
|
||||
}
|
||||
|
||||
extern void free__3cMlFPv(void* pPtr);
|
||||
|
||||
BOOL fpcCtRq_Delete(create_request* pReq) {
|
||||
fpcCtRq_CreateQTo(pReq);
|
||||
if (pReq->mpCtRqMtd != NULL && fpcMtd_Method(pReq->mpCtRqMtd->mpDelete, pReq) == 0) {
|
||||
|
|
@ -42,7 +41,7 @@ BOOL fpcCtRq_Delete(create_request* pReq) {
|
|||
if (pReq->mpRes) {
|
||||
pReq->mpRes->mpCtRq = NULL;
|
||||
}
|
||||
free__3cMlFPv(pReq);
|
||||
cMl::free(pReq);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
@ -105,7 +104,7 @@ void fpcCtRq_Handler(void) {
|
|||
}
|
||||
|
||||
create_request* fpcCtRq_Create(layer_class* pLayer, u32 size, create_request_method_class* pMthd) {
|
||||
create_request* pReq = (create_request*)memalignB__3cMlFiUl(-4, size);
|
||||
create_request* pReq = (create_request*)cMl::memalignB(-4, size);
|
||||
|
||||
if (pReq != NULL) {
|
||||
fpcCtTg_Init(&pReq->mBase, pReq);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
#include "f/f_pc/f_pc_node_req.h"
|
||||
#include "SComponent/c_malloc.h"
|
||||
#include "SStandard/s_basic.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "f/f_pc/f_pc_base.h"
|
||||
#include "f/f_pc/f_pc_create_req.h"
|
||||
|
|
@ -6,6 +8,7 @@
|
|||
#include "f/f_pc/f_pc_deletor.h"
|
||||
#include "f/f_pc/f_pc_executor.h"
|
||||
#include "f/f_pc/f_pc_layer.h"
|
||||
#include "f/f_pc/f_pc_stdcreate_req.h"
|
||||
|
||||
// f_pc_node_req::l_fpcNdRq_Queue
|
||||
extern node_list_class lbl_803A3A38;
|
||||
|
|
@ -23,9 +26,6 @@ extern s8 lbl_80450D4C;
|
|||
|
||||
extern "C" {
|
||||
|
||||
extern s32 fpcSCtRq_Request(layer_class*, s16, process_method_func, void*, void*);
|
||||
extern void sBs_ClearArea(void* pPtr, s32 pSize);
|
||||
|
||||
void fpcNdRq_RequestQTo(node_create_request* pNodeCreateReq) {
|
||||
fpcLy_CreatedMesg(pNodeCreateReq->mpLayerClass);
|
||||
fpcLy_CancelQTo(&pNodeCreateReq->mProcMthCls);
|
||||
|
|
@ -49,8 +49,8 @@ s32 fpcNdRq_phase_IsCreated(node_create_request* pNodeCreateReq) {
|
|||
s32 fpcNdRq_phase_Create(node_create_request* pNodeCreateReq) {
|
||||
pNodeCreateReq->mCreatingID =
|
||||
fpcSCtRq_Request(pNodeCreateReq->mpLayerClass, pNodeCreateReq->mProcName,
|
||||
pNodeCreateReq->mpNodeCrReqMthCls->mpPostMethodFunc, pNodeCreateReq,
|
||||
pNodeCreateReq->mpUserData);
|
||||
(stdCreateFunc)pNodeCreateReq->mpNodeCrReqMthCls->mpPostMethodFunc,
|
||||
pNodeCreateReq, pNodeCreateReq->mpUserData);
|
||||
return pNodeCreateReq->mCreatingID == -1 ? 3 : 2;
|
||||
}
|
||||
|
||||
|
|
@ -104,7 +104,7 @@ s32 fpcNdRq_Delete(node_create_request* pNodeCreateReq) {
|
|||
fpcMtd_Method(pNodeCreateReq->mpNodeCrReqMthCls->mpUnkFunc, pNodeCreateReq) == 0) {
|
||||
return 0;
|
||||
}
|
||||
free__3cMlFPv(pNodeCreateReq);
|
||||
cMl::free(pNodeCreateReq);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -175,8 +175,8 @@ s32 fpcNdRq_IsIng(process_node_class* pProcNode) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
node_create_request* fpcNdRq_Create(s32 pRequestSize) {
|
||||
node_create_request* req = (node_create_request*)memalignB__3cMlFiUl(-4, pRequestSize);
|
||||
node_create_request* fpcNdRq_Create(u32 pRequestSize) {
|
||||
node_create_request* req = (node_create_request*)cMl::memalignB(-4, pRequestSize);
|
||||
if (req != NULL) {
|
||||
if (lbl_80450D4C == 0) {
|
||||
lbl_80450D48 = 0;
|
||||
|
|
@ -184,19 +184,6 @@ node_create_request* fpcNdRq_Create(s32 pRequestSize) {
|
|||
}
|
||||
sBs_ClearArea(req, pRequestSize);
|
||||
*req = lbl_803A3A44;
|
||||
// req->mCreateTag = lbl_803A3A44.mCreateTag;
|
||||
// req->mProcMthCls = lbl_803A3A44.mProcMthCls;
|
||||
// req->mReqPhsProc = lbl_803A3A44.mReqPhsProc;
|
||||
// req->mpPhsHandler = lbl_803A3A44.mpPhsHandler;
|
||||
// req->mpNodeCrReqMthCls = lbl_803A3A44.mpNodeCrReqMthCls;
|
||||
// req->mParameter = lbl_803A3A44.mParameter;
|
||||
// req->mRequestId = lbl_803A3A44.mRequestId;
|
||||
// req->mNodeProc = lbl_803A3A44.mNodeProc;
|
||||
// req->mpLayerClass = lbl_803A3A44.mpLayerClass;
|
||||
// req->mCreatingID = lbl_803A3A44.mCreatingID;
|
||||
// req->mProcName = lbl_803A3A44.mProcName;
|
||||
// req->mpUserData = lbl_803A3A44.mpUserData;
|
||||
// req->unk_0x60 = lbl_803A3A44.unk_0x60;
|
||||
cTg_Create(&req->mCreateTag, req);
|
||||
fpcMtdTg_Init(&req->mProcMthCls, (process_method_tag_func)fpcNdRq_Cancel, req);
|
||||
req->mRequestId = lbl_80450D48++;
|
||||
|
|
|
|||
Loading…
Reference in New Issue