mirror of
https://github.com/zeldaret/tp
synced 2026-06-04 18:59:25 -04:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user