diff options
| author | lepelog <lepelog@users.noreply.github.com> | 2021-05-03 02:03:24 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-02 20:03:24 -0400 |
| commit | 8fd9f2ab5d5ba4d3fe983c77795d69e22c9fa610 (patch) | |
| tree | 01e9323e07688462a8bec633ed50006ddeaa478f /libs/JSystem/JKernel/JKRFile.cpp | |
| parent | 3b7364d481f9951ae227017eca997377efd0d820 (diff) | |
Copy JKernel (#126)
* start JSystem
* JKRAram and JUTGamePad
* started heap and thread
* more JKernel
* mostly finished JKernel
* delete unused asm
* JKRFileFinder
* delete unused asm and match findNextFile
* format
* fix mtx_vec
Diffstat (limited to 'libs/JSystem/JKernel/JKRFile.cpp')
| -rw-r--r-- | libs/JSystem/JKernel/JKRFile.cpp | 38 |
1 files changed, 9 insertions, 29 deletions
diff --git a/libs/JSystem/JKernel/JKRFile.cpp b/libs/JSystem/JKernel/JKRFile.cpp index 9b7dfec632..5b492c7fef 100644 --- a/libs/JSystem/JKernel/JKRFile.cpp +++ b/libs/JSystem/JKernel/JKRFile.cpp @@ -6,39 +6,19 @@ #include "JSystem/JKernel/JKRFile.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct JKRFile { - /* 802D9518 */ void read(void*, s32, s32); -}; - -// -// Forward References: -// - -extern "C" void read__7JKRFileFPvll(); - -// -// External References: -// - -extern "C" void VIWaitForRetrace(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_28(); +#include "dolphin/vi/vi.h" // // Declarations: // /* 802D9518-802D9584 2D3E58 006C+00 0/0 2/2 0/0 .text read__7JKRFileFPvll */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JKRFile::read(void* param_0, s32 param_1, s32 param_2) { - nofralloc -#include "asm/JSystem/JKernel/JKRFile/read__7JKRFileFPvll.s" +s32 JKRFile::read(void* data, s32 size, long offset) { + while (true) { + s32 result = readData(data, size, offset); + if (size != result) + VIWaitForRetrace(); + else + return result; + } } -#pragma pop |
