Jsystem work (#399)

* Almost match JASBasicInst

* JASDrumSet OK

* Some JAudio2 struct adjustment

* Match JKRHeap::callAllDisposer

* JAISe OK

* Fix setAutoDelete

* JAISound OK

* Match a few functions in linklist

* Few matches in d_a_e_ym

* JUTTexture OK

* Work on JUTGamePad

* Import JUTResource

* Work on JUTResFont::getFontCode
This commit is contained in:
hatal175
2023-08-06 06:12:26 +03:00
committed by GitHub
parent 8b34c0210f
commit dc985026fa
79 changed files with 519 additions and 2705 deletions
+45 -36
View File
@@ -5,7 +5,9 @@
#include "JSystem/JUtility/JUTResource.h"
#include "JSystem/JKernel/JKRFileLoader.h"
#include "dol2asm.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JSupport/JSUInputStream.h"
#include "MSL_C/MSL_Common/Src/string.h"
#include "dolphin/types.h"
//
@@ -16,57 +18,64 @@
// Forward References:
//
extern "C" void getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive();
extern "C" void getResource__15JUTResReferenceFPCvUlP10JKRArchive();
extern "C" void getResource__15JUTResReferenceFUlP10JKRArchive();
//
// External References:
//
SECTION_INIT void memcpy();
extern "C" void getGlbResource__13JKRFileLoaderFPCc();
extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader();
extern "C" void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive();
extern "C" void read__14JSUInputStreamFPvl();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* 802DE078-802DE120 2D89B8 00A8+00 0/0 1/1 0/0 .text
* getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void* JUTResReference::getResource(JSUInputStream* param_0, u32 param_1, JKRArchive* param_2) {
nofralloc
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive.s"
void *JUTResReference::getResource(JSUInputStream *stream, u32 resType, JKRArchive *archive) {
stream->read(&mType, 1);
stream->read(&mNameLength, 1);
stream->read(&mName, mNameLength);
if (mType == RESTYPE_Unk2 || mType == RESTYPE_Unk3 || mType == RESTYPE_Unk4)
{
mName[mNameLength] = 0;
}
return getResource(resType, archive);
}
#pragma pop
/* 802DE120-802DE1BC 2D8A60 009C+00 0/0 2/2 0/0 .text
* getResource__15JUTResReferenceFPCvUlP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void* JUTResReference::getResource(void const* param_0, u32 param_1, JKRArchive* param_2) {
nofralloc
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFPCvUlP10JKRArchive.s"
void *JUTResReference::getResource(const void *data, u32 resType, JKRArchive *archive) {
mType = *(u8*)data;
mNameLength = *((u8*)data + 1);
if (mNameLength != 0) {
memcpy(&mName, &((u8 *)data)[2], mNameLength);
}
if (mType == RESTYPE_Unk2 || mType == RESTYPE_Unk3 || mType == RESTYPE_Unk4) {
mName[mNameLength] = 0;
}
return getResource(resType, archive);
}
#pragma pop
/* 802DE1BC-802DE234 2D8AFC 0078+00 2/2 0/0 0/0 .text
* getResource__15JUTResReferenceFUlP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void* JUTResReference::getResource(u32 param_0, JKRArchive* param_1) {
nofralloc
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFUlP10JKRArchive.s"
void *JUTResReference::getResource(u32 resType, JKRArchive *archive) {
void *res = NULL;
switch (mType) {
case RESTYPE_Unk1:
break;
case RESTYPE_Unk2:
res = JKRArchive::getGlbResource(resType, mName, archive);
break;
case RESTYPE_Unk3:
res = JKRFileLoader::getGlbResource(mName, archive);
break;
case RESTYPE_Unk4:
res = JKRFileLoader::getGlbResource(mName);
break;
}
return res;
}
#pragma pop