Merge branch 'functions'

This commit is contained in:
Pheenoh
2021-01-31 15:39:31 -05:00
117 changed files with 3995 additions and 6091 deletions
+21 -3
View File
@@ -3,10 +3,28 @@
#include "JSystem/JKernel/JKRAramHeap/JKRAramHeap.h"
#include "JSystem/JKernel/JKRAramPiece/JKRAramPiece.h"
#include "JSystem/JKernel/JKRAramStream/JKRAramStream.h"
#include "JSystem/JKernel/JKRDecomp/JKRDecomp.h"
#include "JSystem/JKernel/JKRExpHeap/JKRExpHeap.h"
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
#include "global.h"
extern "C" {
void __dl__FPv(void);
void __RAS_OSDisableInterrupts_begin(void);
void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode(void);
void alloc__7JKRHeapFUli(void);
void alloc__7JKRHeapFUliP7JKRHeap(void);
void changeGroupIdIfNeed__7JKRAramFPUci(void);
void checkCompressed__9JKRDecompFPUc(void);
void checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl(void);
void DCStoreRangeNoSync(void);
void decompSZS_subroutine__FPUcPUc(void);
void firstSrcData__Fv(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void memcpy(void*, const void*, int);
void nextSrcData__FPUc(void);
void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock(void);
void orderSync__9JKRDecompFPUcPUcUlUl(void);
void startDMA__12JKRAramPieceFP12JKRAMCommand(void);
}
// Uncomment when static initialization is working
// JKRAram* JKRAram::sAramObject = NULL;
+28 -1
View File
@@ -1,7 +1,34 @@
#include "JSystem/JKernel/JKRAramArchive/JKRAramArchive.h"
#include "global.h"
#include "JSystem/JKernel/JKRFile/JKRFile.h"
extern "C" {
int abs(int);
void __ct__10JKRArchiveFlQ210JKRArchive10EMountMode(void);
void __ct__10JKRDvdFileFl(void);
void __dl__FPv(void);
void __dt__10JKRArchiveFv(void);
void __nw__FUlP7JKRHeapi(void);
void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode(void);
void alloc__7JKRHeapFUli(void);
void alloc__7JKRHeapFUliP7JKRHeap(void);
void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl(void);
void copyMemory__7JKRHeapFPvPvUl(void);
void DCInvalidateRange(void*, u32);
void fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc(void);
void fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli(void);
void findFsResource__10JKRArchiveCFPCcUl(void);
void findPtrResource__10JKRArchiveCFPCv(void);
void free__7JKRHeapFPv(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void getAramAddress_Entry__14JKRAramArchiveFP12SDIFileEntry(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl(void);
void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void);
void open__14JKRAramArchiveFl(void);
void prepend__10JSUPtrListFP10JSUPtrLink(void);
void remove__10JSUPtrListFP10JSUPtrLink(void);
void* memset(void* dest, int ch, u32 count);
}
asm JKRAramArchive::JKRAramArchive(long, JKRArchive::EMountDirection) {
nofralloc
+4 -1
View File
@@ -1,7 +1,10 @@
#include "JSystem/JKernel/JKRAramHeap/JKRAramHeap.h"
#include "global.h"
#include "JSystem/JKernel/JKRAramBlock/JKRAramBlock.h"
extern "C" {
void __dl__FPv(void);
void __dt__11JKRDisposerFv(void);
}
JKRAramHeap::JKRAramHeap(u32 startAddress, u32 size) {
OSInitMutex(&mMutex);
+6
View File
@@ -3,6 +3,12 @@
#include "JSystem/JKernel/JKRDecomp/JKRDecomp.h"
#include "global.h"
extern "C" {
void DCInvalidateRange(void*, u32);
void DCStoreRange(void*, u32);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
}
JKRAMCommand* JKRAramPiece::prepareCommand(int direction, u32 src, u32 dst, u32 length,
JKRAramBlock* block,
JKRAMCommand::AsyncCallback callback) {
+9
View File
@@ -1,6 +1,15 @@
#include "JSystem/JKernel/JKRAramStream/JKRAramStream.h"
#include "JSystem/JKernel/JKRAramPiece/JKRAramPiece.h"
#include "global.h"
extern "C" {
s32 JSUInputStream_NS_read(JSUInputStream*, u8*, u32);
void alloc__7JKRHeapFUli(void);
void alloc__7JKRHeapFUliP7JKRHeap(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void JSURandomInputStream_NS_seek(JSURandomInputStream*, u32, u32);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock(void);
}
extern char lbl_8039D120[32];
+5
View File
@@ -1,6 +1,11 @@
#include "JSystem/JKernel/JKRArchive/JKRArchive.h"
#include "global.h"
extern "C" {
int strcmp(const char*, const char*);
int tolower(int);
}
JKRArchive::JKRArchive(long entryNumber, JKRArchive::EMountMode mountMode) {
mIsMounted = false;
mMountMode = mountMode;
+32
View File
@@ -1,6 +1,38 @@
#include "JSystem/JKernel/JKRCompArchive/JKRCompArchive.h"
#include "global.h"
extern "C" {
int abs(int);
void __ct__10JKRArchiveFlQ210JKRArchive10EMountMode(void);
void __ct__10JKRDvdFileFl(void);
void __dl__FPv(void);
void __dt__10JKRArchiveFv(void);
void __nw__FUlP7JKRHeapi(void);
void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode(void);
void alloc__7JKRHeapFUli(void);
void alloc__7JKRHeapFUliP7JKRHeap(void);
void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl(void);
void copyMemory__7JKRHeapFPvPvUl(void);
void DCInvalidateRange(void*, u32);
void fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc(void);
void fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii(void);
void fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli(void);
void fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc(void);
void fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli(void);
void findPtrResource__10JKRArchiveCFPCv(void);
void free__7JKRHeapFPv(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl(void);
void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void);
void mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl(void);
void open__14JKRCompArchiveFl(void);
void orderSync__9JKRDecompFPUcPUcUlUl(void);
void prepend__10JSUPtrListFP10JSUPtrLink(void);
void remove__10JSUPtrListFP10JSUPtrLink(void);
void* memset(void* dest, int ch, u32 count);
}
asm JKRCompArchive::JKRCompArchive(long, JKRArchive::EMountDirection) {
nofralloc
#include "JSystem/JKernel/JKRCompArchive/asm/func_802D87D4.s"
+35
View File
@@ -1,6 +1,41 @@
#include "JSystem/JKernel/JKRDvdAramRipper/JKRDvdAramRipper.h"
#include "dvd/dvd.h"
#include "global.h"
extern "C" {
void __ct__10JKRDvdFileFv(void);
void __ct__10JSUPtrLinkFPv(void);
void __ct__12JKRADCommandFv(void);
void __dl__FPv(void);
void __dt__10JKRDvdFileFv(void);
void __dt__10JSUPtrLinkFv(void);
void __dt__12JKRADCommandFv(void);
void __nw__FUlP7JKRHeapi(void);
void __RAS_OSDisableInterrupts_begin(void);
void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode(void);
void alloc__7JKRHeapFUli(void);
void append__10JSUPtrListFP10JSUPtrLink(void);
void callCommand_Async__16JKRDvdAramRipperFP12JKRADCommand(void);
void checkCompressed__9JKRDecompFPUc(void);
void DCInvalidateRange(void*, u32);
void decompSZS_subroutine__FPUcUl(void);
void dmaBufferFlush__FUl(void);
void firstSrcData__Fv(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void JKRDecompressFromDVDToAram__FP10JKRDvdFileUlUlUlUlUlPUl(void);
void JSUFileInputStream_ct(void);
void JSUInputStream_NS_dtor(void);
void loadToAram__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchUlUlPUl(void);
void loadToAram_Async__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchPFUl_vUlUlPUl(void);
void memcpy(void*, const void*, int);
void nextSrcData__FPUc(void);
void open__10JKRDvdFileFl(void);
void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock(void);
void remove__10JSUPtrListFP10JSUPtrLink(void);
void sync__13JKRAramStreamFP20JKRAramStreamCommandi(void);
void syncAram__16JKRDvdAramRipperFP12JKRADCommandi(void);
void VIWaitForRetrace(void);
void write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl(void);
}
static void decompSZS_subroutine(u8*, u32);
static u8* firstSrcData(void);
+15
View File
@@ -3,6 +3,21 @@
#include "JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h"
#include "global.h"
extern "C" {
int abs(int);
void __ct__10JKRDvdFileFl(void);
void __nw__FUlP7JKRHeapi(void);
void alloc__7JKRHeapFUli(void);
void alloc__7JKRHeapFUliP7JKRHeap(void);
void copyMemory__7JKRHeapFPvPvUl(void);
void DCInvalidateRange(void*, u32);
void fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii(void);
void free__7JKRHeapFPv(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void);
void* memset(void* dest, int ch, u32 count);
}
JKRDvdArchive::JKRDvdArchive(s32 entryNum, JKRArchive::EMountDirection mountDirection)
: JKRArchive(entryNum, MOUNT_DVD), mMountDirection(mountDirection) {
if (!open(entryNum))
+4
View File
@@ -1,6 +1,10 @@
#include "JSystem/JKernel/JKRDvdFile/JKRDvdFile.h"
#include "global.h"
extern "C" {
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
}
JKRDvdFile::JKRDvdFile() : JKRFile(), mDvdLink(this) {
initiate();
}
+23
View File
@@ -2,6 +2,29 @@
#include "dvd/dvd.h"
#include "global.h"
extern "C" {
void __ct__10JKRDvdFileFv(void);
void __dt__10JKRDvdFileFv(void);
void __RAS_OSDisableInterrupts_begin(void);
void alloc__7JKRHeapFUli(void);
void alloc__7JKRHeapFUliP7JKRHeap(void);
void checkCompressed__9JKRDecompFPUc(void);
void DCInvalidateRange(void*, u32);
void DCStoreRangeNoSync(void);
void decompSZS_subroutine__FPUcPUc(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void isErrorRetry__12JKRDvdRipperFv(void);
void JKRDecompressFromDVD__FP10JKRDvdFilePvUlUlUlUlPUl(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void loadToMainRAM__12JKRDvdRipperFP10JKRDvdFilePUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void);
void memcpy(void*, const void*, int);
void nextSrcData__FPUc(void);
void open__10JKRDvdFileFl(void);
void open__10JKRDvdFileFPCc(void);
void orderSync__9JKRDecompFPUcPUcUlUl(void);
void VIWaitForRetrace(void);
}
static void decompSZS_subroutine(u8*, u8*);
static u8* firstSrcData(void);
static u8* nextSrcData(u8*);
+37
View File
@@ -1,6 +1,43 @@
#include "JSystem/JKernel/JKRExpHeap/JKRExpHeap.h"
#include "global.h"
extern "C" {
void __ct__10JKRExpHeapFPvUlP7JKRHeapb(void);
void __ct__7JKRHeapFPvUlP7JKRHeapb(void);
void __dl__FPv(void);
void __dt__7JKRHeapFv(void);
void alloc__7JKRHeapFUliP7JKRHeap(void);
void allocBack__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc(void);
void allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc(void);
void allocFromHead__10JKRExpHeapFUl(void);
void allocFromHead__10JKRExpHeapFUli(void);
void allocFromTail__10JKRExpHeapFUl(void);
void allocFromTail__10JKRExpHeapFUli(void);
void appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(void);
void callAllDisposer__7JKRHeapFv(void);
void dispose__7JKRHeapFPvUl(void);
void dispose__7JKRHeapFv(void);
void find__7JKRHeapCFPv(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void free__Q210JKRExpHeap9CMemBlockFP10JKRExpHeap(void);
void getHeapBlock__Q210JKRExpHeap9CMemBlockFPv(void);
void getMaxAllocatableSize__7JKRHeapCFi(void);
void getTotalFreeSize__7JKRHeapCFv(void);
void getUsedSize__10JKRExpHeapCFUc(void);
void initArena__7JKRHeapFPPcPUli(void);
void initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc(void);
void joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void JUTReportConsole_f(const char*, ...);
void JUTReportConsole(const char*);
void JUTWarningConsole_f(const char*, ...);
void JUTWarningConsole(void);
void recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(void);
void removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(void);
void removeUsedBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock(void);
void setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock(void);
}
asm void JKRExpHeap::createRoot(int, bool) {
nofralloc
#include "JSystem/JKernel/JKRExpHeap/asm/func_802CEDB4.s"
+4
View File
@@ -1,6 +1,10 @@
#include "JSystem/JKernel/JKRFile/JKRFile.h"
#include "global.h"
extern "C" {
void VIWaitForRetrace(void);
}
s32 JKRFile::read(void* data, s32 size, long offset) {
while (true) {
s32 result = readData(data, size, offset);
+16
View File
@@ -5,6 +5,22 @@
#include "dvd/dvd.h"
#include "global.h"
extern "C" {
char* strcat(char*, const char*);
char* strcpy(char*, const char*);
char* strrchr(char*, int);
int strcmp(const char*, const char*);
int tolower(int);
u32 strlen(const char*);
void __dl__FPv(void);
void __dt__10JSUPtrLinkFv(void);
void free__7JKRHeapFPv(void);
void free__7JKRHeapFPvP7JKRHeap(void);
void getDvdPathName__12JKRFileCacheCFPCc(void);
void memcpy(void*, const void*, int);
void remove__10JSUPtrListFP10JSUPtrLink(void);
}
JKRFileCache* JKRFileCache::mount(const char* path, JKRHeap* heap, const char* param_3) {
if (!path || *path != '/') {
return NULL;
+5 -1
View File
@@ -3,6 +3,10 @@
#include "dvd/dvd.h"
#include "global.h"
extern "C" {
void __dl__FPv(void);
}
JKRArcFinder::JKRArcFinder(JKRArchive* archive, s32 startIndex, u32 numEntries) : JKRFileFinder() {
mArchive = archive;
mIsAvailable = (s32)numEntries > 0;
@@ -92,4 +96,4 @@ asm JKRArcFinder::~JKRArcFinder() {
nofralloc
#include "JSystem/JKernel/JKRFileFinder/asm/func_802D4958.s"
}
#endif
#endif
+5
View File
@@ -1,6 +1,11 @@
#include "JSystem/JKernel/JKRFileLoader/JKRFileLoader.h"
#include "global.h"
extern "C" {
char* strcpy(char*, const char*);
int strcmp(const char*, const char*);
}
// todo: static initialization is working uncomment this
// JSUList<JKRFileLoader> JKRFileLoader::sVolumeList;
+11
View File
@@ -1,6 +1,17 @@
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
#include "global.h"
extern "C" {
void __dl__FPv(void);
void __dt__10JSUPtrLinkFv(void);
void __dt__10JSUPtrListFv(void);
void __dt__11JKRDisposerFv(void);
void getFreeSize__7JKRHeapCFv(void);
void getMaxFreeBlock__7JKRHeapCFv(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void remove__10JSUPtrListFP10JSUPtrLink(void);
}
JKRHeap::JKRHeap(void* data, u32 size, JKRHeap* parent, bool errorFlag)
: JKRDisposer(), mChildTree(this), mDisposerList() {
OSInitMutex(&mMutex);
+8
View File
@@ -2,6 +2,14 @@
#include "JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h"
#include "global.h"
extern "C" {
void DCInvalidateRange(void*, u32);
void findFromRoot__7JKRHeapFPv(void);
void JUTException_NS_panic_f(const char* filename, int line, const char* format, ...);
void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void);
void memcpy(void*, const void*, int);
}
JKRMemArchive::JKRMemArchive(long entryNum, JKRArchive::EMountDirection mountDirection)
: JKRArchive(entryNum, MOUNT_MEM) {
mIsMounted = false;
+7
View File
@@ -1,6 +1,13 @@
#include "JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h"
#include "global.h"
extern "C" {
void getTotalFreeSize__7JKRHeapCFv(void);
void JUTReportConsole_f(const char*, ...);
void JUTWarningConsole_f(const char*, ...);
void resize__7JKRHeapFPvUl(void);
}
JKRSolidHeap* JKRSolidHeap::create(u32 size, JKRHeap* heap, bool useErrorHandler) {
if (!heap) {
heap = getRootHeap();
+17
View File
@@ -2,6 +2,23 @@
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
#include "global.h"
extern "C" {
void __ct__15JKRThreadSwitchFP7JKRHeap(void);
void __dl__FPv(void);
void __nw__FUlP7JKRHeapi(void);
void becomeCurrentHeap__7JKRHeapFv(void);
void callback__15JKRThreadSwitchFP8OSThreadP8OSThread(void);
void func_803620AC(void);
void func_803626BC(void);
void func_803664DC(void);
void isSubHeap__7JKRHeapCFP7JKRHeap(void);
void JUTConsole_NS_clear(void);
void JUTConsole_NS_print_f(void);
void JUTConsole_NS_print(void);
void JUTWarningConsole(void);
void searchThread__9JKRThreadFP8OSThread(void);
}
// lbl_80455FC0 JKRThread.o @934
static const u8 lbl_80455FC0[4] = {0x42, 0xc8, 0x0, 0x0};
// lbl_80455FC4 JKRThread.o @935