d_file_select, JASResArcLoader, d_a_obj_stone, d_a_obj_stone_mark (#309)

* setup TU

* JASResArcLoader OK

* d_a_obj_stoneMark work

* some funcs in d_a_obj_stoneMark

* many changes

* quat, d_a_obj_stone, d_a_alink, fix python script, tidy makefile

* d_file_select functions + pr cleanup
This commit is contained in:
Pheenoh
2023-03-17 21:05:06 -06:00
committed by GitHub
parent a01d65b0b9
commit 3cdef97cb8
79 changed files with 2315 additions and 2996 deletions
+51 -81
View File
@@ -1,100 +1,70 @@
//
// Generated By: dol2asm
// Translation Unit: JASResArcLoader
//
/**
* JASResArcLoader.cpp
* JAS - Resource Archive Loader
*/
#include "JSystem/JAudio2/JASResArcLoader.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "JSystem/JAudio2/JASDvdThread.h"
//
// Types:
//
struct JKRArchive {
/* 802D5F40 */ void readResource(void*, u32, u16);
/* 802D6684 */ void findIdxResource(u32) const;
/* 802D6770 */ void findIdResource(u16) const;
};
struct JASTaskThread {
/* 8028FB5C */ void sendCmdMsg(void (*)(void*), void const*, u32);
};
struct JASResArcLoader {
/* 80290BD0 */ void getResSize(JKRArchive const*, u16);
/* 80290C04 */ void getResMaxSize(JKRArchive const*);
/* 80290C7C */ void loadResourceCallback(void*);
/* 80290D18 */ void loadResourceAsync(JKRArchive*, u16, u8*, u32, void (*)(u32, u32), u32);
};
//
// Forward References:
//
extern "C" void getResSize__15JASResArcLoaderFPC10JKRArchiveUs();
extern "C" void getResMaxSize__15JASResArcLoaderFPC10JKRArchive();
extern "C" void loadResourceCallback__15JASResArcLoaderFPv();
extern "C" void loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl();
//
// External References:
//
extern "C" void sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl();
extern "C" void getThreadPointer__6JASDvdFv();
extern "C" void readResource__10JKRArchiveFPvUlUs();
extern "C" void findIdxResource__10JKRArchiveCFUl();
extern "C" void findIdResource__10JKRArchiveCFUs();
extern "C" void OSSendMessage();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
//
// Declarations:
//
/* 80290BD0-80290C04 28B510 0034+00 0/0 2/2 0/0 .text
* getResSize__15JASResArcLoaderFPC10JKRArchiveUs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASResArcLoader::getResSize(JKRArchive const* param_0, u16 param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASResArcLoader/getResSize__15JASResArcLoaderFPC10JKRArchiveUs.s"
size_t JASResArcLoader::getResSize(JKRArchive const* i_archiveP, u16 i_resourceID) {
JKRArchive::SDIFileEntry* file = i_archiveP->findIdResource(i_resourceID);
if (file == 0) {
return 0;
}
return file->data_size;
}
#pragma pop
/* 80290C04-80290C7C 28B544 0078+00 0/0 1/1 0/0 .text
* getResMaxSize__15JASResArcLoaderFPC10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASResArcLoader::getResMaxSize(JKRArchive const* param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JASResArcLoader/getResMaxSize__15JASResArcLoaderFPC10JKRArchive.s"
size_t JASResArcLoader::getResMaxSize(JKRArchive const* i_archiveP) {
u32 maxSize, index;
u32 fileEntries = i_archiveP->countFile();
for (maxSize = 0, index = 0; index < fileEntries; index++) {
JKRArchive::SDIFileEntry* file = i_archiveP->findIdxResource(index);
if (file) {
if (maxSize < file->data_size) {
maxSize = file->data_size;
}
}
}
return maxSize;
}
#pragma pop
/* 80290C7C-80290D18 28B5BC 009C+00 1/1 0/0 0/0 .text loadResourceCallback__15JASResArcLoaderFPv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASResArcLoader::loadResourceCallback(void* param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JASResArcLoader/loadResourceCallback__15JASResArcLoaderFPv.s"
static void JASResArcLoader::loadResourceCallback(void* args) {
CallbackArgs* castedArgs = static_cast<CallbackArgs*>(args);
u32 readResult = castedArgs->mArchive->readResource(castedArgs->mBuffer, castedArgs->mBufferSize, castedArgs->mID);
if (castedArgs->mCallback) {
castedArgs->mCallback(readResult, castedArgs->mCallbackArg);
}
if (readResult == 0) {
if (castedArgs->mQueue) {
OSSendMessage(castedArgs->mQueue, (void*)RESARCMSG_Error, OS_MESSAGE_BLOCK);
}
} else {
if (castedArgs->mQueue) {
OSSendMessage(castedArgs->mQueue, (void*)RESARCMSG_Success, OS_MESSAGE_BLOCK);
}
}
}
#pragma pop
/* 80290D18-80290D74 28B658 005C+00 0/0 1/1 0/0 .text
* loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASResArcLoader::loadResourceAsync(JKRArchive* param_0, u16 param_1, u8* param_2,
u32 param_3, void (*param_4)(u32, u32), u32 param_5) {
nofralloc
#include "asm/JSystem/JAudio2/JASResArcLoader/loadResourceAsync__15JASResArcLoaderFP10JKRArchiveUsPUcUlPFUlUl_vUl.s"
int JASResArcLoader::loadResourceAsync(JKRArchive* archive, u16 id, u8* buffer, u32 size, LoadCallback callback, u32 cbArg)
{
CallbackArgs args(id, buffer, size, archive);
args.mCallback = callback;
args.mCallbackArg = cbArg;
return JASDvd::getThreadPointer()->sendCmdMsg(&loadResourceCallback, (void*)&args, sizeof(CallbackArgs));
}
#pragma pop