From ff2faa9804bf41574408679fbc919b2fb5022de9 Mon Sep 17 00:00:00 2001 From: Jonathan Wase Date: Sun, 6 Dec 2020 21:02:25 +0100 Subject: [PATCH] JKernel (#20) * JKRDvdArchive.s split * JKRMemArchive.s split * JKRAramArchive.s split * JKRCompArchive.s split * JKRDecomp.s split * JKRDvdRipper.s split * JKRAramBlock.s split * JKRAramHeap.s split * JKRAramPiece.s split * JKRAramStream.s split * removed unused .s files * JKRDvdAramRipper.s split * JKRAram.s split * cleanup and making vtables easier to debug * fixed merge errors * fixed JKRFileLoader::fetchVolumeName Co-authored-by: Pheenoh --- asm/DynamicLink.s | 2 +- asm/JAudio2/JASAramStream.s | 2 +- asm/JAudio2/JASWaveArcLoader.s | 2 +- asm/JFramework/JFWSystem.s | 2 +- asm/JKernel/JKRAram.s | 1025 +---------------- asm/JKernel/JKRAramArchive.s | 778 +------------ asm/JKernel/JKRAramBlock.s | 176 --- asm/JKernel/JKRAramHeap.s | 317 +---- asm/JKernel/JKRAramPiece.s | 405 +------ asm/JKernel/JKRAramStream.s | 421 ------- asm/JKernel/JKRCompArchive.s | 932 --------------- asm/JKernel/JKRDecomp.s | 562 --------- asm/JKernel/JKRDvdAramRipper.s | 982 +--------------- asm/JKernel/JKRDvdArchive.s | 844 -------------- asm/JKernel/JKRDvdRipper.s | 910 +-------------- asm/JKernel/JKRFileLoader.s | 69 -- asm/JKernel/JKRMemArchive.s | 504 -------- asm/JSupport/JSUFileStream.s | 4 +- asm/JUtility/JUTCacheFont.s | 6 +- asm/d/d_lib.s | 4 +- asm/d/d_resorce.s | 2 +- asm/d/s/d_s_logo.s | 4 +- asm/m/Do/dvd/m_Do_dvd_thread.s | 6 +- asm/m/Do/m_Do_machine.s | 2 +- asm/m/Do/machine/m_Do_machine_exception.s | 2 +- include/JSystem/JKernel/JKRAram/JKRAram.h | 81 ++ .../JKernel/JKRAram/asm/func_802D1FA4.s | 43 + .../JKernel/JKRAram/asm/func_802D2040.s | 74 ++ .../JKernel/JKRAram/asm/func_802D214C.s | 40 + .../JKernel/JKRAram/asm/func_802D21DC.s | 31 + .../JKernel/JKRAram/asm/func_802D2248.s | 41 + .../JKernel/JKRAram/asm/func_802D22DC.s | 27 + .../JKernel/JKRAram/asm/func_802D233C.s | 184 +++ .../JKernel/JKRAram/asm/func_802D25B4.s | 179 +++ .../JKernel/JKRAram/asm/func_802D2830.s | 101 ++ .../JKernel/JKRAram/asm/func_802D29A0.s | 193 ++++ .../JKernel/JKRAram/asm/func_802D2C40.s | 45 + .../JKernel/JKRAram/asm/func_802D2CE4.s | 56 + .../JKernel/JKRAram/asm/func_802D2DAC.s | 19 + .../JKernel/JKRAram/asm/func_802D2DF0.s | 24 + .../JKernel/JKRAramArchive/JKRAramArchive.h | 25 + .../JKRAramArchive/asm/func_802D70C0.s | 46 + .../JKRAramArchive/asm/func_802D7168.s | 91 ++ .../JKRAramArchive/asm/func_802D72A8.s | 227 ++++ .../JKRAramArchive/asm/func_802D75E0.s | 80 ++ .../JKRAramArchive/asm/func_802D76F4.s | 76 ++ .../JKRAramArchive/asm/func_802D77F8.s | 12 + .../JKRAramArchive/asm/func_802D781C.s | 17 + .../JKRAramArchive/asm/func_802D7858.s | 54 + .../JKRAramArchive/asm/func_802D7914.s | 90 ++ .../JKRAramArchive/asm/func_802D7A64.s | 82 ++ .../JKRAramArchive/asm/func_802D7B90.s | 27 + .../JKernel/JKRAramBlock/JKRAramBlock.h | 42 + .../JKernel/JKRAramBlock/asm/func_802D3304.s | 31 + .../JKernel/JKRAramBlock/asm/func_802D3378.s | 53 + .../JKernel/JKRAramBlock/asm/func_802D3434.s | 42 + .../JKernel/JKRAramBlock/asm/func_802D34D0.s | 44 + .../JSystem/JKernel/JKRAramHeap/JKRAramHeap.h | 52 + .../JKernel/JKRAramHeap/asm/func_802D2E44.s | 55 + .../JKernel/JKRAramHeap/asm/func_802D2F14.s | 47 + .../JKernel/JKRAramHeap/asm/func_802D2FBC.s | 34 + .../JKernel/JKRAramHeap/asm/func_802D3034.s | 42 + .../JKernel/JKRAramHeap/asm/func_802D30BC.s | 38 + .../JKernel/JKRAramHeap/asm/func_802D3134.s | 35 + .../JKernel/JKRAramHeap/asm/func_802D31AC.s | 31 + .../JKernel/JKRAramHeap/asm/func_802D3218.s | 25 + .../JKernel/JKRAramHeap/asm/func_802D326C.s | 19 + .../JKernel/JKRAramHeap/asm/func_802D32B0.s | 24 + .../JKernel/JKRAramPiece/JKRAramPiece.h | 25 + .../JKernel/JKRAramPiece/asm/func_802D3574.s | 35 + .../JKernel/JKRAramPiece/asm/func_802D35F4.s | 10 + .../JKernel/JKRAramPiece/asm/func_802D3614.s | 92 ++ .../JKernel/JKRAramPiece/asm/func_802D3770.s | 55 + .../JKernel/JKRAramPiece/asm/func_802D3838.s | 39 + .../JKernel/JKRAramPiece/asm/func_802D38CC.s | 34 + .../JKernel/JKRAramPiece/asm/func_802D3944.s | 49 + .../JKernel/JKRAramPiece/asm/func_802D39EC.s | 30 + .../JKernel/JKRAramPiece/asm/func_802D3A5C.s | 50 + .../JKernel/JKRAramPiece/asm/func_802D3B04.s | 19 + .../JKernel/JKRAramStream/JKRAramStream.h | 50 + .../JKernel/JKRAramStream/asm/func_802D3B48.s | 32 + .../JKernel/JKRAramStream/asm/func_802D3BB8.s | 22 + .../JKernel/JKRAramStream/asm/func_802D3C08.s | 27 + .../JKernel/JKRAramStream/asm/func_802D3C68.s | 33 + .../JKernel/JKRAramStream/asm/func_802D3CD8.s | 4 + .../JKernel/JKRAramStream/asm/func_802D3CE0.s | 141 +++ .../JKernel/JKRAramStream/asm/func_802D3ED0.s | 56 + .../JKernel/JKRAramStream/asm/func_802D3FA0.s | 44 + .../JKernel/JKRAramStream/asm/func_802D4034.s | 25 + .../JKernel/JKRAramStream/asm/func_802D4088.s | 5 + .../JKernel/JKRAramStream/asm/func_802D4094.s | 25 + .../JSystem/JKernel/JKRArchive/JKRArchive.h | 62 +- .../JKernel/JKRArchive/asm/func_802D5840.s | 2 +- .../JKernel/JKRArchive/asm/func_802D58C8.s | 8 +- .../JKernel/JKRAssertHeap/JKRAssertHeap.h | 40 +- .../JKernel/JKRCompArchive/JKRCompArchive.h | 24 + .../JKRCompArchive/asm/func_802D87D4.s | 46 + .../JKRCompArchive/asm/func_802D887C.s | 90 ++ .../JKRCompArchive/asm/func_802D89BC.s | 381 ++++++ .../JKRCompArchive/asm/func_802D8F40.s | 107 ++ .../JKRCompArchive/asm/func_802D90C0.s | 117 ++ .../JKRCompArchive/asm/func_802D9260.s | 44 + .../JKRCompArchive/asm/func_802D92F4.s | 32 + .../JKRCompArchive/asm/func_802D9360.s | 120 ++ include/JSystem/JKernel/JKRDecomp/JKRDecomp.h | 33 + .../JKernel/JKRDecomp/asm/func_802DB680.s | 28 + .../JKernel/JKRDecomp/asm/func_802DB6E0.s | 22 + .../JKernel/JKRDecomp/asm/func_802DB730.s | 27 + .../JKernel/JKRDecomp/asm/func_802DB790.s | 56 + .../JKernel/JKRDecomp/asm/func_802DB858.s | 33 + .../JKernel/JKRDecomp/asm/func_802DB8D0.s | 14 + .../JKernel/JKRDecomp/asm/func_802DB900.s | 15 + .../JKernel/JKRDecomp/asm/func_802DB934.s | 25 + .../JKernel/JKRDecomp/asm/func_802DB988.s | 23 + .../JKernel/JKRDecomp/asm/func_802DB9DC.s | 35 + .../JKernel/JKRDecomp/asm/func_802DBA58.s | 126 ++ .../JKernel/JKRDecomp/asm/func_802DBC14.s | 69 ++ .../JKernel/JKRDecomp/asm/func_802DBCF8.s | 35 + .../JKernel/JKRDecomp/asm/func_802DBD70.s | 22 + .../JKernel/JKRDecomp/asm/func_802DBDC0.s | 18 + .../JKRDvdAramRipper/JKRDvdAramRipper.h | 30 + .../JKRDvdAramRipper/asm/func_802DA874.s | 45 + .../JKRDvdAramRipper/asm/func_802DA918.s | 47 + .../JKRDvdAramRipper/asm/func_802DA9C0.s | 50 + .../JKRDvdAramRipper/asm/func_802DAA74.s | 244 ++++ .../JKRDvdAramRipper/asm/func_802DADD8.s | 32 + .../JKRDvdAramRipper/asm/func_802DAE48.s | 59 + .../JKRDvdAramRipper/asm/func_802DAF1C.s | 18 + .../JKRDvdAramRipper/asm/func_802DAF5C.s | 40 + .../JKRDvdAramRipper/asm/func_802DAFE8.s | 101 ++ .../JKRDvdAramRipper/asm/func_802DB160.s | 184 +++ .../JKRDvdAramRipper/asm/func_802DB3E8.s | 51 + .../JKRDvdAramRipper/asm/func_802DB49C.s | 66 ++ .../JKRDvdAramRipper/asm/func_802DB580.s | 30 + .../JKRDvdAramRipper/asm/func_802DB5E8.s | 19 + .../JKRDvdAramRipper/asm/func_802DB62C.s | 24 + .../JKernel/JKRDvdArchive/JKRDvdArchive.h | 23 + .../JKernel/JKRDvdArchive/asm/func_802D7BF0.s | 46 + .../JKernel/JKRDvdArchive/asm/func_802D7C98.s | 81 ++ .../JKernel/JKRDvdArchive/asm/func_802D7DB4.s | 184 +++ .../JKernel/JKRDvdArchive/asm/func_802D8050.s | 81 ++ .../JKernel/JKRDvdArchive/asm/func_802D8168.s | 75 ++ .../JKernel/JKRDvdArchive/asm/func_802D826C.s | 143 +++ .../JKernel/JKRDvdArchive/asm/func_802D8474.s | 147 +++ .../JKernel/JKRDvdArchive/asm/func_802D8698.s | 86 ++ .../JSystem/JKernel/JKRDvdFile/JKRDvdFile.h | 24 +- .../JKernel/JKRDvdRipper/JKRDvdRipper.h | 30 + .../JKernel/JKRDvdRipper/asm/func_802D9B98.s | 51 + .../JKernel/JKRDvdRipper/asm/func_802D9C54.s | 51 + .../JKernel/JKRDvdRipper/asm/func_802D9D10.s | 357 ++++++ .../JKernel/JKRDvdRipper/asm/func_802DA1E4.s | 104 ++ .../JKernel/JKRDvdRipper/asm/func_802DA35C.s | 197 ++++ .../JKernel/JKRDvdRipper/asm/func_802DA60C.s | 59 + .../JKernel/JKRDvdRipper/asm/func_802DA6D8.s | 74 ++ .../JKernel/JKRDvdRipper/asm/func_802DA7D4.s | 4 + .../JKernel/JKRDvdRipper/asm/func_802DA7DC.s | 19 + .../JKernel/JKRDvdRipper/asm/func_802DA820.s | 24 + .../JSystem/JKernel/JKRExpHeap/JKRExpHeap.h | 56 +- include/JSystem/JKernel/JKRFile/JKRFile.h | 22 +- .../JKernel/JKRFileCache/JKRFileCache.h | 50 +- .../JKernel/JKRFileFinder/JKRFileFinder.h | 13 +- .../JKernel/JKRFileLoader/JKRFileLoader.h | 40 +- .../JKernel/JKRFileLoader/asm/func_802D44C4.s | 6 +- include/JSystem/JKernel/JKRHeap/JKRHeap.h | 230 ++-- .../JKernel/JKRMemArchive/JKRMemArchive.h | 31 + .../JKernel/JKRMemArchive/asm/func_802D69B8.s | 49 + .../JKernel/JKRMemArchive/asm/func_802D6A6C.s | 50 + .../JKernel/JKRMemArchive/asm/func_802D6B24.s | 47 + .../JKernel/JKRMemArchive/asm/func_802D6BCC.s | 95 ++ .../JKernel/JKRMemArchive/asm/func_802D6D30.s | 45 + .../JKernel/JKRMemArchive/asm/func_802D6DDC.s | 17 + .../JKernel/JKRMemArchive/asm/func_802D6E10.s | 57 + .../JKernel/JKRMemArchive/asm/func_802D6ED0.s | 25 + .../JKernel/JKRMemArchive/asm/func_802D6F20.s | 19 + .../JKernel/JKRMemArchive/asm/func_802D6F5C.s | 61 + .../JKernel/JKRMemArchive/asm/func_802D7030.s | 41 + .../JKernel/JKRSolidHeap/JKRSolidHeap.h | 40 +- include/JSystem/JKernel/JKRThread/JKRThread.h | 21 +- .../JSUFileInputStream/JSUFileInputStream.h | 12 + .../JSURandomInputStream.h | 12 + include/functions.h | 223 +++- include/m_Do/m_Do_main/asm/func_80005AD8.s | 4 +- include/m_Do/m_Do_main/asm/func_80005D4C.s | 2 +- include/os/OS.h | 3 +- include/variables.h | 116 +- ldscript.lcf | 37 + libs/JSystem/JKernel/JKRAram.cpp | 75 +- libs/JSystem/JKernel/JKRAramArchive.cpp | 62 +- libs/JSystem/JKernel/JKRAramBlock.cpp | 24 +- libs/JSystem/JKernel/JKRAramHeap.cpp | 55 +- libs/JSystem/JKernel/JKRAramPiece.cpp | 55 +- libs/JSystem/JKernel/JKRAramStream.cpp | 58 +- libs/JSystem/JKernel/JKRCompArchive.cpp | 44 +- libs/JSystem/JKernel/JKRDecomp.cpp | 79 +- libs/JSystem/JKernel/JKRDvdAramRipper.cpp | 81 +- libs/JSystem/JKernel/JKRDvdArchive.cpp | 44 +- libs/JSystem/JKernel/JKRDvdFile.cpp | 33 +- libs/JSystem/JKernel/JKRDvdRipper.cpp | 55 +- libs/JSystem/JKernel/JKRFileLoader.cpp | 10 +- libs/JSystem/JKernel/JKRMemArchive.cpp | 59 +- obj_files.mk | 18 +- 201 files changed, 9912 insertions(+), 8262 deletions(-) delete mode 100644 asm/JKernel/JKRAramBlock.s delete mode 100644 asm/JKernel/JKRAramStream.s delete mode 100644 asm/JKernel/JKRCompArchive.s delete mode 100644 asm/JKernel/JKRDecomp.s delete mode 100644 asm/JKernel/JKRDvdArchive.s delete mode 100644 asm/JKernel/JKRMemArchive.s create mode 100644 include/JSystem/JKernel/JKRAram/JKRAram.h create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D1FA4.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D2040.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D214C.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D21DC.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D2248.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D22DC.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D233C.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D25B4.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D2830.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D29A0.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D2C40.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D2CE4.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D2DAC.s create mode 100644 include/JSystem/JKernel/JKRAram/asm/func_802D2DF0.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D70C0.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D7168.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D72A8.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D7858.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D7914.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D7A64.s create mode 100644 include/JSystem/JKernel/JKRAramArchive/asm/func_802D7B90.s create mode 100644 include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h create mode 100644 include/JSystem/JKernel/JKRAramBlock/asm/func_802D3304.s create mode 100644 include/JSystem/JKernel/JKRAramBlock/asm/func_802D3378.s create mode 100644 include/JSystem/JKernel/JKRAramBlock/asm/func_802D3434.s create mode 100644 include/JSystem/JKernel/JKRAramBlock/asm/func_802D34D0.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D2E44.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D2F14.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D2FBC.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D3034.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D30BC.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D3134.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D31AC.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D3218.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D326C.s create mode 100644 include/JSystem/JKernel/JKRAramHeap/asm/func_802D32B0.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/JKRAramPiece.h create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D3574.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D35F4.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D3770.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D3838.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D38CC.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D3944.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D39EC.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D3A5C.s create mode 100644 include/JSystem/JKernel/JKRAramPiece/asm/func_802D3B04.s create mode 100644 include/JSystem/JKernel/JKRAramStream/JKRAramStream.h create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3B48.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3BB8.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3C08.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3C68.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3CD8.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3ED0.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D3FA0.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D4034.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D4088.s create mode 100644 include/JSystem/JKernel/JKRAramStream/asm/func_802D4094.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D87D4.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D887C.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D9260.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D92F4.s create mode 100644 include/JSystem/JKernel/JKRCompArchive/asm/func_802D9360.s create mode 100644 include/JSystem/JKernel/JKRDecomp/JKRDecomp.h create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB680.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB6E0.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB730.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB790.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB858.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB8D0.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB900.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB934.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB988.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DB9DC.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DBA58.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DBC14.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DBCF8.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DBD70.s create mode 100644 include/JSystem/JKernel/JKRDecomp/asm/func_802DBDC0.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/JKRDvdAramRipper.h create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA874.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA918.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DADD8.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAE48.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF1C.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF5C.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB160.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB3E8.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB49C.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB580.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB5E8.s create mode 100644 include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB62C.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7BF0.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7C98.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7DB4.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D826C.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s create mode 100644 include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8698.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9B98.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9C54.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9D10.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA35C.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA60C.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA6D8.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7D4.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7DC.s create mode 100644 include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA820.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D69B8.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6A6C.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6B24.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6BCC.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6D30.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6ED0.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F20.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F5C.s create mode 100644 include/JSystem/JKernel/JKRMemArchive/asm/func_802D7030.s create mode 100644 include/JSystem/JSupport/JSUFileInputStream/JSUFileInputStream.h create mode 100644 include/JSystem/JSupport/JSURandomInputStream/JSURandomInputStream.h diff --git a/asm/DynamicLink.s b/asm/DynamicLink.s index be8cc85fb4..3df3524f97 100644 --- a/asm/DynamicLink.s +++ b/asm/DynamicLink.s @@ -571,7 +571,7 @@ lbl_80262948: /* 80262988 0025F8C8 39 00 00 01 */ li r8, 1 /* 8026298C 0025F8CC 39 20 00 00 */ li r9, 0 /* 80262990 0025F8D0 39 40 00 00 */ li r10, 0 -/* 80262994 0025F8D4 48 07 72 05 */ bl JKRDvdRipper_NS_loadToMainRAM +/* 80262994 0025F8D4 48 07 72 05 */ bl loadToMainRAM__12JKRDvdRipperFPCcPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl /* 80262998 0025F8D8 90 7C 00 10 */ stw r3, 0x10(r28) /* 8026299C 0025F8DC 80 1C 00 10 */ lwz r0, 0x10(r28) /* 802629A0 0025F8E0 28 00 00 00 */ cmplwi r0, 0 diff --git a/asm/JAudio2/JASAramStream.s b/asm/JAudio2/JASAramStream.s index 7743b7a77e..ea685f0c33 100644 --- a/asm/JAudio2/JASAramStream.s +++ b/asm/JAudio2/JASAramStream.s @@ -679,7 +679,7 @@ lbl_80296BFC: /* 80296C2C 00293B6C 39 00 00 00 */ li r8, 0 /* 80296C30 00293B70 39 20 FF FF */ li r9, -1 /* 80296C34 00293B74 39 40 00 00 */ li r10, 0 -/* 80296C38 00293B78 48 03 B7 05 */ bl JKRAram_NS_mainRamToAram +/* 80296C38 00293B78 48 03 B7 05 */ bl mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl /* 80296C3C 00293B7C 28 03 00 00 */ cmplwi r3, 0 /* 80296C40 00293B80 40 82 00 14 */ bne lbl_80296C54 /* 80296C44 00293B84 38 00 00 01 */ li r0, 1 diff --git a/asm/JAudio2/JASWaveArcLoader.s b/asm/JAudio2/JASWaveArcLoader.s index dd9ed5a09a..2ea0c73309 100644 --- a/asm/JAudio2/JASWaveArcLoader.s +++ b/asm/JAudio2/JASWaveArcLoader.s @@ -233,7 +233,7 @@ JASWaveArc_NS_loadToAramCallback: /* 8029A3A0 002972E0 38 C0 00 00 */ li r6, 0 /* 8029A3A4 002972E4 38 E0 00 00 */ li r7, 0 /* 8029A3A8 002972E8 39 00 00 00 */ li r8, 0 -/* 8029A3AC 002972EC 48 04 04 C9 */ bl JKRDvdAramRipper_NS_loadToAram +/* 8029A3AC 002972EC 48 04 04 C9 */ bl loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl /* 8029A3B0 002972F0 28 03 00 00 */ cmplwi r3, 0 /* 8029A3B4 002972F4 41 82 00 38 */ beq lbl_8029A3EC /* 8029A3B8 002972F8 A0 7F 00 5A */ lhz r3, 0x5a(r31) diff --git a/asm/JFramework/JFWSystem.s b/asm/JFramework/JFWSystem.s index f995e1dfd3..ace4d617dc 100644 --- a/asm/JFramework/JFWSystem.s +++ b/asm/JFramework/JFWSystem.s @@ -45,7 +45,7 @@ lbl_80271D44: /* 80271D54 0026EC94 80 AD 82 04 */ lwz r5, lbl_80450784-_SDA_BASE_(r13) /* 80271D58 0026EC98 80 CD 82 08 */ lwz r6, lbl_80450788-_SDA_BASE_(r13) /* 80271D5C 0026EC9C 80 ED 82 0C */ lwz r7, lbl_8045078C-_SDA_BASE_(r13) -/* 80271D60 0026ECA0 48 06 02 45 */ bl JKRAram_NS_create +/* 80271D60 0026ECA0 48 06 02 45 */ bl create__7JKRAramFUlUllll /* 80271D64 0026ECA4 38 60 00 7C */ li r3, 0x7c /* 80271D68 0026ECA8 48 05 CE E5 */ bl __nw__FUl /* 80271D6C 0026ECAC 7C 7F 1B 79 */ or. r31, r3, r3 diff --git a/asm/JKernel/JKRAram.s b/asm/JKernel/JKRAram.s index d5ff50a252..b06deffdcd 100644 --- a/asm/JKernel/JKRAram.s +++ b/asm/JKernel/JKRAram.s @@ -1,1027 +1,9 @@ .include "macros.inc" -.section .text, "ax" # 802d1fa4 +.section .text, "ax" # 802D2DAC - -.global JKRAram_NS_create -JKRAram_NS_create: -/* 802D1FA4 002CEEE4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D1FA8 002CEEE8 7C 08 02 A6 */ mflr r0 -/* 802D1FAC 002CEEEC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D1FB0 002CEEF0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D1FB4 002CEEF4 48 09 02 21 */ bl _savegpr_27 -/* 802D1FB8 002CEEF8 7C 7B 1B 78 */ mr r27, r3 -/* 802D1FBC 002CEEFC 7C 9C 23 78 */ mr r28, r4 -/* 802D1FC0 002CEF00 7C BD 2B 78 */ mr r29, r5 -/* 802D1FC4 002CEF04 7C DE 33 78 */ mr r30, r6 -/* 802D1FC8 002CEF08 7C FF 3B 78 */ mr r31, r7 -/* 802D1FCC 002CEF0C 80 0D 8E 48 */ lwz r0, lbl_804513C8-_SDA_BASE_(r13) -/* 802D1FD0 002CEF10 28 00 00 00 */ cmplwi r0, 0 -/* 802D1FD4 002CEF14 40 82 00 34 */ bne lbl_802D2008 -/* 802D1FD8 002CEF18 38 60 00 A4 */ li r3, 0xa4 -/* 802D1FDC 002CEF1C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D1FE0 002CEF20 38 A0 00 00 */ li r5, 0 -/* 802D1FE4 002CEF24 4B FF CC B5 */ bl __nw__FUlP7JKRHeapi -/* 802D1FE8 002CEF28 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D1FEC 002CEF2C 41 82 00 18 */ beq lbl_802D2004 -/* 802D1FF0 002CEF30 7F 64 DB 78 */ mr r4, r27 -/* 802D1FF4 002CEF34 7F 85 E3 78 */ mr r5, r28 -/* 802D1FF8 002CEF38 7F E6 FB 78 */ mr r6, r31 -/* 802D1FFC 002CEF3C 48 00 00 45 */ bl JKRAram -/* 802D2000 002CEF40 7C 60 1B 78 */ mr r0, r3 -lbl_802D2004: -/* 802D2004 002CEF44 90 0D 8E 48 */ stw r0, lbl_804513C8-_SDA_BASE_(r13) -lbl_802D2008: -/* 802D2008 002CEF48 7F A3 EB 78 */ mr r3, r29 -/* 802D200C 002CEF4C 48 00 1B 3D */ bl JKRAramStream_NS_create -/* 802D2010 002CEF50 7F C3 F3 78 */ mr r3, r30 -/* 802D2014 002CEF54 48 00 96 6D */ bl JKRDecomp_NS_create -/* 802D2018 002CEF58 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802D201C 002CEF5C 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 802D2020 002CEF60 48 06 F7 95 */ bl OSResumeThread -/* 802D2024 002CEF64 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802D2028 002CEF68 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D202C 002CEF6C 48 09 01 F5 */ bl _restgpr_27 -/* 802D2030 002CEF70 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2034 002CEF74 7C 08 03 A6 */ mtlr r0 -/* 802D2038 002CEF78 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D203C 002CEF7C 4E 80 00 20 */ blr - -.global JKRAram -JKRAram: -/* 802D2040 002CEF80 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2044 002CEF84 7C 08 02 A6 */ mflr r0 -/* 802D2048 002CEF88 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D204C 002CEF8C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2050 002CEF90 48 09 01 89 */ bl _savegpr_28 -/* 802D2054 002CEF94 7C 7C 1B 78 */ mr r28, r3 -/* 802D2058 002CEF98 7C 9D 23 78 */ mr r29, r4 -/* 802D205C 002CEF9C 7C BE 2B 78 */ mr r30, r5 -/* 802D2060 002CEFA0 38 80 0C 00 */ li r4, 0xc00 -/* 802D2064 002CEFA4 38 A0 00 10 */ li r5, 0x10 -/* 802D2068 002CEFA8 4B FF F5 01 */ bl __ct__9JKRThreadFUlii -/* 802D206C 002CEFAC 3C 60 80 3D */ lis r3, lbl_803CC158@ha -/* 802D2070 002CEFB0 38 03 C1 58 */ addi r0, r3, lbl_803CC158@l -/* 802D2074 002CEFB4 90 1C 00 00 */ stw r0, 0(r28) -/* 802D2078 002CEFB8 38 7C 00 98 */ addi r3, r28, 0x98 -/* 802D207C 002CEFBC 38 80 00 03 */ li r4, 3 -/* 802D2080 002CEFC0 48 07 E6 AD */ bl ARInit -/* 802D2084 002CEFC4 7C 7F 1B 78 */ mr r31, r3 -/* 802D2088 002CEFC8 48 08 01 DD */ bl ARQInit -/* 802D208C 002CEFCC 48 07 E7 65 */ bl ARGetSize -/* 802D2090 002CEFD0 93 BC 00 80 */ stw r29, 0x80(r28) -/* 802D2094 002CEFD4 3C 1E 00 01 */ addis r0, r30, 1 -/* 802D2098 002CEFD8 28 00 FF FF */ cmplwi r0, 0xffff -/* 802D209C 002CEFDC 40 82 00 1C */ bne lbl_802D20B8 -/* 802D20A0 002CEFE0 7C 1D 18 50 */ subf r0, r29, r3 -/* 802D20A4 002CEFE4 7C 1F 00 50 */ subf r0, r31, r0 -/* 802D20A8 002CEFE8 90 1C 00 88 */ stw r0, 0x88(r28) -/* 802D20AC 002CEFEC 38 00 00 00 */ li r0, 0 -/* 802D20B0 002CEFF0 90 1C 00 90 */ stw r0, 0x90(r28) -/* 802D20B4 002CEFF4 48 00 00 18 */ b lbl_802D20CC -lbl_802D20B8: -/* 802D20B8 002CEFF8 93 DC 00 88 */ stw r30, 0x88(r28) -/* 802D20BC 002CEFFC 7C 1D F2 14 */ add r0, r29, r30 -/* 802D20C0 002CF000 7C 00 18 50 */ subf r0, r0, r3 -/* 802D20C4 002CF004 7C 1F 00 50 */ subf r0, r31, r0 -/* 802D20C8 002CF008 90 1C 00 90 */ stw r0, 0x90(r28) -lbl_802D20CC: -/* 802D20CC 002CF00C 80 7C 00 80 */ lwz r3, 0x80(r28) -/* 802D20D0 002CF010 48 07 E5 F5 */ bl ARAlloc -/* 802D20D4 002CF014 90 7C 00 7C */ stw r3, 0x7c(r28) -/* 802D20D8 002CF018 80 7C 00 88 */ lwz r3, 0x88(r28) -/* 802D20DC 002CF01C 48 07 E5 E9 */ bl ARAlloc -/* 802D20E0 002CF020 90 7C 00 84 */ stw r3, 0x84(r28) -/* 802D20E4 002CF024 80 7C 00 90 */ lwz r3, 0x90(r28) -/* 802D20E8 002CF028 28 03 00 00 */ cmplwi r3, 0 -/* 802D20EC 002CF02C 41 82 00 10 */ beq lbl_802D20FC -/* 802D20F0 002CF030 48 07 E5 D5 */ bl ARAlloc -/* 802D20F4 002CF034 90 7C 00 8C */ stw r3, 0x8c(r28) -/* 802D20F8 002CF038 48 00 00 0C */ b lbl_802D2104 -lbl_802D20FC: -/* 802D20FC 002CF03C 38 00 00 00 */ li r0, 0 -/* 802D2100 002CF040 90 1C 00 8C */ stw r0, 0x8c(r28) -lbl_802D2104: -/* 802D2104 002CF044 38 60 00 44 */ li r3, 0x44 -/* 802D2108 002CF048 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D210C 002CF04C 38 A0 00 00 */ li r5, 0 -/* 802D2110 002CF050 4B FF CB 89 */ bl __nw__FUlP7JKRHeapi -/* 802D2114 002CF054 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D2118 002CF058 41 82 00 14 */ beq lbl_802D212C -/* 802D211C 002CF05C 80 9C 00 84 */ lwz r4, 0x84(r28) -/* 802D2120 002CF060 80 BC 00 88 */ lwz r5, 0x88(r28) -/* 802D2124 002CF064 48 00 0D 21 */ bl JKRAramHeap -/* 802D2128 002CF068 7C 60 1B 78 */ mr r0, r3 -lbl_802D212C: -/* 802D212C 002CF06C 90 1C 00 94 */ stw r0, 0x94(r28) -/* 802D2130 002CF070 7F 83 E3 78 */ mr r3, r28 -/* 802D2134 002CF074 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2138 002CF078 48 09 00 ED */ bl _restgpr_28 -/* 802D213C 002CF07C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2140 002CF080 7C 08 03 A6 */ mtlr r0 -/* 802D2144 002CF084 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D2148 002CF088 4E 80 00 20 */ blr -/* 802D214C 002CF08C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D2150 002CF090 7C 08 02 A6 */ mflr r0 -/* 802D2154 002CF094 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2158 002CF098 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D215C 002CF09C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D2160 002CF0A0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D2164 002CF0A4 7C 9F 23 78 */ mr r31, r4 -/* 802D2168 002CF0A8 41 82 00 58 */ beq lbl_802D21C0 -/* 802D216C 002CF0AC 3C 60 80 3D */ lis r3, lbl_803CC158@ha -/* 802D2170 002CF0B0 38 03 C1 58 */ addi r0, r3, lbl_803CC158@l -/* 802D2174 002CF0B4 90 1E 00 00 */ stw r0, 0(r30) -/* 802D2178 002CF0B8 38 00 00 00 */ li r0, 0 -/* 802D217C 002CF0BC 90 0D 8E 48 */ stw r0, lbl_804513C8-_SDA_BASE_(r13) -/* 802D2180 002CF0C0 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 802D2184 002CF0C4 28 03 00 00 */ cmplwi r3, 0 -/* 802D2188 002CF0C8 41 82 00 1C */ beq lbl_802D21A4 -/* 802D218C 002CF0CC 41 82 00 18 */ beq lbl_802D21A4 -/* 802D2190 002CF0D0 38 80 00 01 */ li r4, 1 -/* 802D2194 002CF0D4 81 83 00 00 */ lwz r12, 0(r3) -/* 802D2198 002CF0D8 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D219C 002CF0DC 7D 89 03 A6 */ mtctr r12 -/* 802D21A0 002CF0E0 4E 80 04 21 */ bctrl -lbl_802D21A4: -/* 802D21A4 002CF0E4 7F C3 F3 78 */ mr r3, r30 -/* 802D21A8 002CF0E8 38 80 00 00 */ li r4, 0 -/* 802D21AC 002CF0EC 4B FF F5 AD */ bl __dt__9JKRThreadFv -/* 802D21B0 002CF0F0 7F E0 07 35 */ extsh. r0, r31 -/* 802D21B4 002CF0F4 40 81 00 0C */ ble lbl_802D21C0 -/* 802D21B8 002CF0F8 7F C3 F3 78 */ mr r3, r30 -/* 802D21BC 002CF0FC 4B FF CB 81 */ bl __dl__FPv -lbl_802D21C0: -/* 802D21C0 002CF100 7F C3 F3 78 */ mr r3, r30 -/* 802D21C4 002CF104 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D21C8 002CF108 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D21CC 002CF10C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D21D0 002CF110 7C 08 03 A6 */ mtlr r0 -/* 802D21D4 002CF114 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D21D8 002CF118 4E 80 00 20 */ blr -/* 802D21DC 002CF11C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D21E0 002CF120 7C 08 02 A6 */ mflr r0 -/* 802D21E4 002CF124 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D21E8 002CF128 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D21EC 002CF12C 48 08 FF F1 */ bl _savegpr_29 -/* 802D21F0 002CF130 3C 60 80 3D */ lis r3, lbl_803CC138@ha -/* 802D21F4 002CF134 38 63 C1 38 */ addi r3, r3, lbl_803CC138@l -/* 802D21F8 002CF138 3C 80 80 3D */ lis r4, lbl_803CC128@ha -/* 802D21FC 002CF13C 38 84 C1 28 */ addi r4, r4, lbl_803CC128@l -/* 802D2200 002CF140 38 A0 00 04 */ li r5, 4 -/* 802D2204 002CF144 48 06 C7 91 */ bl OSInitMessageQueue -/* 802D2208 002CF148 3C 60 80 3D */ lis r3, lbl_803CC138@ha -/* 802D220C 002CF14C 3B E3 C1 38 */ addi r31, r3, lbl_803CC138@l -lbl_802D2210: -/* 802D2210 002CF150 7F E3 FB 78 */ mr r3, r31 -/* 802D2214 002CF154 38 81 00 08 */ addi r4, r1, 8 -/* 802D2218 002CF158 38 A0 00 01 */ li r5, 1 -/* 802D221C 002CF15C 48 06 C8 A1 */ bl OSReceiveMessage -/* 802D2220 002CF160 80 61 00 08 */ lwz r3, 8(r1) -/* 802D2224 002CF164 83 C3 00 00 */ lwz r30, 0(r3) -/* 802D2228 002CF168 83 A3 00 04 */ lwz r29, 4(r3) -/* 802D222C 002CF16C 4B FF CB 11 */ bl __dl__FPv -/* 802D2230 002CF170 2C 1E 00 01 */ cmpwi r30, 1 -/* 802D2234 002CF174 41 82 00 08 */ beq lbl_802D223C -/* 802D2238 002CF178 4B FF FF D8 */ b lbl_802D2210 -lbl_802D223C: -/* 802D223C 002CF17C 7F A3 EB 78 */ mr r3, r29 -/* 802D2240 002CF180 48 00 16 8D */ bl JKRAramPiece_NS_startDMA -/* 802D2244 002CF184 4B FF FF CC */ b lbl_802D2210 - -.global JKRAram_NS_checkOkAddress -JKRAram_NS_checkOkAddress: -/* 802D2248 002CF188 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D224C 002CF18C 7C 08 02 A6 */ mflr r0 -/* 802D2250 002CF190 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2254 002CF194 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D2258 002CF198 93 C1 00 08 */ stw r30, 8(r1) -/* 802D225C 002CF19C 7C BE 2B 78 */ mr r30, r5 -/* 802D2260 002CF1A0 7C DF 33 78 */ mr r31, r6 -/* 802D2264 002CF1A4 54 60 06 FF */ clrlwi. r0, r3, 0x1b -/* 802D2268 002CF1A8 41 82 00 28 */ beq lbl_802D2290 -/* 802D226C 002CF1AC 54 80 06 FF */ clrlwi. r0, r4, 0x1b -/* 802D2270 002CF1B0 41 82 00 20 */ beq lbl_802D2290 -/* 802D2274 002CF1B4 3C 60 80 3A */ lis r3, lbl_8039D078@ha -/* 802D2278 002CF1B8 38 63 D0 78 */ addi r3, r3, lbl_8039D078@l -/* 802D227C 002CF1BC 38 80 00 DB */ li r4, 0xdb -/* 802D2280 002CF1C0 38 A3 00 0C */ addi r5, r3, 0xc -/* 802D2284 002CF1C4 38 C3 00 0F */ addi r6, r3, 0xf -/* 802D2288 002CF1C8 4C C6 31 82 */ crclr 6 -/* 802D228C 002CF1CC 48 00 FF 71 */ bl JUTException_NS_panic_f -lbl_802D2290: -/* 802D2290 002CF1D0 28 1E 00 00 */ cmplwi r30, 0 -/* 802D2294 002CF1D4 41 82 00 30 */ beq lbl_802D22C4 -/* 802D2298 002CF1D8 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D229C 002CF1DC 7C 1F 02 14 */ add r0, r31, r0 -/* 802D22A0 002CF1E0 54 00 06 FF */ clrlwi. r0, r0, 0x1b -/* 802D22A4 002CF1E4 41 82 00 20 */ beq lbl_802D22C4 -/* 802D22A8 002CF1E8 3C 60 80 3A */ lis r3, lbl_8039D078@ha -/* 802D22AC 002CF1EC 38 63 D0 78 */ addi r3, r3, lbl_8039D078@l -/* 802D22B0 002CF1F0 38 80 00 E3 */ li r4, 0xe3 -/* 802D22B4 002CF1F4 38 A3 00 0C */ addi r5, r3, 0xc -/* 802D22B8 002CF1F8 38 C3 00 0F */ addi r6, r3, 0xf -/* 802D22BC 002CF1FC 4C C6 31 82 */ crclr 6 -/* 802D22C0 002CF200 48 00 FF 3D */ bl JUTException_NS_panic_f -lbl_802D22C4: -/* 802D22C4 002CF204 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D22C8 002CF208 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D22CC 002CF20C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D22D0 002CF210 7C 08 03 A6 */ mtlr r0 -/* 802D22D4 002CF214 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D22D8 002CF218 4E 80 00 20 */ blr - -.global JKRAram_NS_changeGroupIdIfNeed -JKRAram_NS_changeGroupIdIfNeed: -/* 802D22DC 002CF21C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D22E0 002CF220 7C 08 02 A6 */ mflr r0 -/* 802D22E4 002CF224 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D22E8 002CF228 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D22EC 002CF22C 93 C1 00 08 */ stw r30, 8(r1) -/* 802D22F0 002CF230 7C 7E 1B 78 */ mr r30, r3 -/* 802D22F4 002CF234 7C 9F 23 78 */ mr r31, r4 -/* 802D22F8 002CF238 80 6D 8D F4 */ lwz r3, lbl_80451374-_SDA_BASE_(r13) -/* 802D22FC 002CF23C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D2300 002CF240 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802D2304 002CF244 7D 89 03 A6 */ mtctr r12 -/* 802D2308 002CF248 4E 80 04 21 */ bctrl -/* 802D230C 002CF24C 3C 03 BA A8 */ addis r0, r3, 0xbaa8 -/* 802D2310 002CF250 28 00 50 48 */ cmplwi r0, 0x5048 -/* 802D2314 002CF254 40 82 00 10 */ bne lbl_802D2324 -/* 802D2318 002CF258 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D231C 002CF25C 41 80 00 08 */ blt lbl_802D2324 -/* 802D2320 002CF260 9B FE FF F3 */ stb r31, -0xd(r30) -lbl_802D2324: -/* 802D2324 002CF264 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D2328 002CF268 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D232C 002CF26C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D2330 002CF270 7C 08 03 A6 */ mtlr r0 -/* 802D2334 002CF274 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D2338 002CF278 4E 80 00 20 */ blr - -.global JKRAram_NS_mainRamToAram -JKRAram_NS_mainRamToAram: -/* 802D233C 002CF27C 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D2340 002CF280 7C 08 02 A6 */ mflr r0 -/* 802D2344 002CF284 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D2348 002CF288 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D234C 002CF28C 48 08 FE 79 */ bl func_803621C4 -/* 802D2350 002CF290 7C 7E 1B 78 */ mr r30, r3 -/* 802D2354 002CF294 7C 98 23 78 */ mr r24, r4 -/* 802D2358 002CF298 7C BF 2B 78 */ mr r31, r5 -/* 802D235C 002CF29C 7C D7 33 78 */ mr r23, r6 -/* 802D2360 002CF2A0 7C F9 3B 78 */ mr r25, r7 -/* 802D2364 002CF2A4 7D 1A 43 78 */ mr r26, r8 -/* 802D2368 002CF2A8 7D 3B 4B 78 */ mr r27, r9 -/* 802D236C 002CF2AC 7D 5C 53 78 */ mr r28, r10 -/* 802D2370 002CF2B0 3B A0 00 00 */ li r29, 0 -/* 802D2374 002CF2B4 38 A0 00 00 */ li r5, 0 -/* 802D2378 002CF2B8 38 C0 00 00 */ li r6, 0 -/* 802D237C 002CF2BC 4B FF FE CD */ bl JKRAram_NS_checkOkAddress -/* 802D2380 002CF2C0 2C 17 00 01 */ cmpwi r23, 1 -/* 802D2384 002CF2C4 40 82 00 20 */ bne lbl_802D23A4 -/* 802D2388 002CF2C8 7F C3 F3 78 */ mr r3, r30 -/* 802D238C 002CF2CC 48 00 99 6D */ bl JKRDecomp_NS_checkCompressed -/* 802D2390 002CF2D0 2C 03 00 03 */ cmpwi r3, 3 -/* 802D2394 002CF2D4 40 82 00 08 */ bne lbl_802D239C -/* 802D2398 002CF2D8 38 60 00 00 */ li r3, 0 -lbl_802D239C: -/* 802D239C 002CF2DC 30 03 FF FF */ addic r0, r3, -1 -/* 802D23A0 002CF2E0 7E E0 19 10 */ subfe r23, r0, r3 -lbl_802D23A4: -/* 802D23A4 002CF2E4 2C 17 00 01 */ cmpwi r23, 1 -/* 802D23A8 002CF2E8 40 82 01 54 */ bne lbl_802D24FC -/* 802D23AC 002CF2EC 88 BE 00 07 */ lbz r5, 7(r30) -/* 802D23B0 002CF2F0 88 9E 00 06 */ lbz r4, 6(r30) -/* 802D23B4 002CF2F4 88 7E 00 04 */ lbz r3, 4(r30) -/* 802D23B8 002CF2F8 88 1E 00 05 */ lbz r0, 5(r30) -/* 802D23BC 002CF2FC 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D23C0 002CF300 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D23C4 002CF304 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D23C8 002CF308 7C B7 03 78 */ or r23, r5, r0 -/* 802D23CC 002CF30C 28 19 00 00 */ cmplwi r25, 0 -/* 802D23D0 002CF310 41 82 00 0C */ beq lbl_802D23DC -/* 802D23D4 002CF314 7C 19 B8 40 */ cmplw r25, r23 -/* 802D23D8 002CF318 40 81 00 0C */ ble lbl_802D23E4 -lbl_802D23DC: -/* 802D23DC 002CF31C 38 17 00 1F */ addi r0, r23, 0x1f -/* 802D23E0 002CF320 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a -lbl_802D23E4: -/* 802D23E4 002CF324 28 18 00 00 */ cmplwi r24, 0 -/* 802D23E8 002CF328 40 82 00 50 */ bne lbl_802D2438 -/* 802D23EC 002CF32C 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802D23F0 002CF330 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802D23F4 002CF334 7F 24 CB 78 */ mr r4, r25 -/* 802D23F8 002CF338 38 A0 00 00 */ li r5, 0 -/* 802D23FC 002CF33C 48 00 0B C1 */ bl JKRAramHeap_NS_alloc -/* 802D2400 002CF340 7C 7D 1B 78 */ mr r29, r3 -/* 802D2404 002CF344 28 03 00 00 */ cmplwi r3, 0 -/* 802D2408 002CF348 40 82 00 0C */ bne lbl_802D2414 -/* 802D240C 002CF34C 38 60 00 00 */ li r3, 0 -/* 802D2410 002CF350 48 00 01 8C */ b lbl_802D259C -lbl_802D2414: -/* 802D2414 002CF354 2C 1B 00 00 */ cmpwi r27, 0 -/* 802D2418 002CF358 40 80 00 14 */ bge lbl_802D242C -/* 802D241C 002CF35C 80 8D 8E 48 */ lwz r4, lbl_804513C8-_SDA_BASE_(r13) -/* 802D2420 002CF360 80 84 00 94 */ lwz r4, 0x94(r4) -/* 802D2424 002CF364 88 04 00 40 */ lbz r0, 0x40(r4) -/* 802D2428 002CF368 48 00 00 08 */ b lbl_802D2430 -lbl_802D242C: -/* 802D242C 002CF36C 57 60 06 3E */ clrlwi r0, r27, 0x18 -lbl_802D2430: -/* 802D2430 002CF370 98 03 00 20 */ stb r0, 0x20(r3) -/* 802D2434 002CF374 83 03 00 14 */ lwz r24, 0x14(r3) -lbl_802D2438: -/* 802D2438 002CF378 28 1F 00 00 */ cmplwi r31, 0 -/* 802D243C 002CF37C 41 82 00 0C */ beq lbl_802D2448 -/* 802D2440 002CF380 7C 1F B8 40 */ cmplw r31, r23 -/* 802D2444 002CF384 40 81 00 0C */ ble lbl_802D2450 -lbl_802D2448: -/* 802D2448 002CF388 38 17 00 1F */ addi r0, r23, 0x1f -/* 802D244C 002CF38C 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a -lbl_802D2450: -/* 802D2450 002CF390 7C 1F C8 40 */ cmplw r31, r25 -/* 802D2454 002CF394 40 81 00 08 */ ble lbl_802D245C -/* 802D2458 002CF398 7F 3F CB 78 */ mr r31, r25 -lbl_802D245C: -/* 802D245C 002CF39C 7F 23 CB 78 */ mr r3, r25 -/* 802D2460 002CF3A0 38 80 FF E0 */ li r4, -32 -/* 802D2464 002CF3A4 7F 45 D3 78 */ mr r5, r26 -/* 802D2468 002CF3A8 4B FF C0 0D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D246C 002CF3AC 7C 77 1B 79 */ or. r23, r3, r3 -/* 802D2470 002CF3B0 40 82 00 30 */ bne lbl_802D24A0 -/* 802D2474 002CF3B4 28 1D 00 00 */ cmplwi r29, 0 -/* 802D2478 002CF3B8 41 82 00 20 */ beq lbl_802D2498 -/* 802D247C 002CF3BC 41 82 00 1C */ beq lbl_802D2498 -/* 802D2480 002CF3C0 7F A3 EB 78 */ mr r3, r29 -/* 802D2484 002CF3C4 38 80 00 01 */ li r4, 1 -/* 802D2488 002CF3C8 81 9D 00 00 */ lwz r12, 0(r29) -/* 802D248C 002CF3CC 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D2490 002CF3D0 7D 89 03 A6 */ mtctr r12 -/* 802D2494 002CF3D4 4E 80 04 21 */ bctrl -lbl_802D2498: -/* 802D2498 002CF3D8 38 60 00 00 */ li r3, 0 -/* 802D249C 002CF3DC 48 00 01 00 */ b lbl_802D259C -lbl_802D24A0: -/* 802D24A0 002CF3E0 7F C3 F3 78 */ mr r3, r30 -/* 802D24A4 002CF3E4 7E E4 BB 78 */ mr r4, r23 -/* 802D24A8 002CF3E8 7F 25 CB 78 */ mr r5, r25 -/* 802D24AC 002CF3EC 38 C0 00 00 */ li r6, 0 -/* 802D24B0 002CF3F0 48 00 94 D9 */ bl JKRDecomp_NS_orderSync -/* 802D24B4 002CF3F4 38 60 00 00 */ li r3, 0 -/* 802D24B8 002CF3F8 7E E4 BB 78 */ mr r4, r23 -/* 802D24BC 002CF3FC 7F 05 C3 78 */ mr r5, r24 -/* 802D24C0 002CF400 7F E6 FB 78 */ mr r6, r31 -/* 802D24C4 002CF404 7F A7 EB 78 */ mr r7, r29 -/* 802D24C8 002CF408 48 00 13 71 */ bl JKRAramPiece_NS_orderSync -/* 802D24CC 002CF40C 7E E3 BB 78 */ mr r3, r23 -/* 802D24D0 002CF410 7F 44 D3 78 */ mr r4, r26 -/* 802D24D4 002CF414 4B FF C0 2D */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D24D8 002CF418 28 1D 00 00 */ cmplwi r29, 0 -/* 802D24DC 002CF41C 40 82 00 0C */ bne lbl_802D24E8 -/* 802D24E0 002CF420 38 60 FF FF */ li r3, -1 -/* 802D24E4 002CF424 48 00 00 08 */ b lbl_802D24EC -lbl_802D24E8: -/* 802D24E8 002CF428 7F A3 EB 78 */ mr r3, r29 -lbl_802D24EC: -/* 802D24EC 002CF42C 28 1C 00 00 */ cmplwi r28, 0 -/* 802D24F0 002CF430 41 82 00 AC */ beq lbl_802D259C -/* 802D24F4 002CF434 93 FC 00 00 */ stw r31, 0(r28) -/* 802D24F8 002CF438 48 00 00 A4 */ b lbl_802D259C -lbl_802D24FC: -/* 802D24FC 002CF43C 28 19 00 00 */ cmplwi r25, 0 -/* 802D2500 002CF440 41 82 00 10 */ beq lbl_802D2510 -/* 802D2504 002CF444 7C 1F C8 40 */ cmplw r31, r25 -/* 802D2508 002CF448 40 81 00 08 */ ble lbl_802D2510 -/* 802D250C 002CF44C 7F 3F CB 78 */ mr r31, r25 -lbl_802D2510: -/* 802D2510 002CF450 28 18 00 00 */ cmplwi r24, 0 -/* 802D2514 002CF454 40 82 00 50 */ bne lbl_802D2564 -/* 802D2518 002CF458 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802D251C 002CF45C 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802D2520 002CF460 7F E4 FB 78 */ mr r4, r31 -/* 802D2524 002CF464 38 A0 00 00 */ li r5, 0 -/* 802D2528 002CF468 48 00 0A 95 */ bl JKRAramHeap_NS_alloc -/* 802D252C 002CF46C 7C 7D 1B 78 */ mr r29, r3 -/* 802D2530 002CF470 2C 1B 00 00 */ cmpwi r27, 0 -/* 802D2534 002CF474 40 80 00 14 */ bge lbl_802D2548 -/* 802D2538 002CF478 80 8D 8E 48 */ lwz r4, lbl_804513C8-_SDA_BASE_(r13) -/* 802D253C 002CF47C 80 84 00 94 */ lwz r4, 0x94(r4) -/* 802D2540 002CF480 88 04 00 40 */ lbz r0, 0x40(r4) -/* 802D2544 002CF484 48 00 00 08 */ b lbl_802D254C -lbl_802D2548: -/* 802D2548 002CF488 57 60 06 3E */ clrlwi r0, r27, 0x18 -lbl_802D254C: -/* 802D254C 002CF48C 98 03 00 20 */ stb r0, 0x20(r3) -/* 802D2550 002CF490 28 03 00 00 */ cmplwi r3, 0 -/* 802D2554 002CF494 40 82 00 0C */ bne lbl_802D2560 -/* 802D2558 002CF498 38 60 00 00 */ li r3, 0 -/* 802D255C 002CF49C 48 00 00 40 */ b lbl_802D259C -lbl_802D2560: -/* 802D2560 002CF4A0 83 03 00 14 */ lwz r24, 0x14(r3) -lbl_802D2564: -/* 802D2564 002CF4A4 38 60 00 00 */ li r3, 0 -/* 802D2568 002CF4A8 7F C4 F3 78 */ mr r4, r30 -/* 802D256C 002CF4AC 7F 05 C3 78 */ mr r5, r24 -/* 802D2570 002CF4B0 7F E6 FB 78 */ mr r6, r31 -/* 802D2574 002CF4B4 7F A7 EB 78 */ mr r7, r29 -/* 802D2578 002CF4B8 48 00 12 C1 */ bl JKRAramPiece_NS_orderSync -/* 802D257C 002CF4BC 28 1D 00 00 */ cmplwi r29, 0 -/* 802D2580 002CF4C0 40 82 00 0C */ bne lbl_802D258C -/* 802D2584 002CF4C4 38 60 FF FF */ li r3, -1 -/* 802D2588 002CF4C8 48 00 00 08 */ b lbl_802D2590 -lbl_802D258C: -/* 802D258C 002CF4CC 7F A3 EB 78 */ mr r3, r29 -lbl_802D2590: -/* 802D2590 002CF4D0 28 1C 00 00 */ cmplwi r28, 0 -/* 802D2594 002CF4D4 41 82 00 08 */ beq lbl_802D259C -/* 802D2598 002CF4D8 93 FC 00 00 */ stw r31, 0(r28) -lbl_802D259C: -/* 802D259C 002CF4DC 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D25A0 002CF4E0 48 08 FC 71 */ bl func_80362210 -/* 802D25A4 002CF4E4 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D25A8 002CF4E8 7C 08 03 A6 */ mtlr r0 -/* 802D25AC 002CF4EC 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D25B0 002CF4F0 4E 80 00 20 */ blr - -.global JKRAram_NS_aramToMainRam -JKRAram_NS_aramToMainRam: -/* 802D25B4 002CF4F4 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802D25B8 002CF4F8 7C 08 02 A6 */ mflr r0 -/* 802D25BC 002CF4FC 90 01 00 74 */ stw r0, 0x74(r1) -/* 802D25C0 002CF500 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D25C4 002CF504 48 08 FB FD */ bl func_803621C0 -/* 802D25C8 002CF508 7C 79 1B 78 */ mr r25, r3 -/* 802D25CC 002CF50C 7C 9A 23 78 */ mr r26, r4 -/* 802D25D0 002CF510 7C BB 2B 78 */ mr r27, r5 -/* 802D25D4 002CF514 7C D6 33 78 */ mr r22, r6 -/* 802D25D8 002CF518 7C FC 3B 78 */ mr r28, r7 -/* 802D25DC 002CF51C 7D 1D 43 78 */ mr r29, r8 -/* 802D25E0 002CF520 7D 3E 4B 78 */ mr r30, r9 -/* 802D25E4 002CF524 7D 5F 53 79 */ or. r31, r10, r10 -/* 802D25E8 002CF528 3B 00 00 00 */ li r24, 0 -/* 802D25EC 002CF52C 41 82 00 0C */ beq lbl_802D25F8 -/* 802D25F0 002CF530 38 00 00 00 */ li r0, 0 -/* 802D25F4 002CF534 90 1F 00 00 */ stw r0, 0(r31) -lbl_802D25F8: -/* 802D25F8 002CF538 7F 43 D3 78 */ mr r3, r26 -/* 802D25FC 002CF53C 7F 24 CB 78 */ mr r4, r25 -/* 802D2600 002CF540 38 A0 00 00 */ li r5, 0 -/* 802D2604 002CF544 38 C0 00 00 */ li r6, 0 -/* 802D2608 002CF548 4B FF FC 41 */ bl JKRAram_NS_checkOkAddress -/* 802D260C 002CF54C 2C 16 00 01 */ cmpwi r22, 1 -/* 802D2610 002CF550 40 82 00 5C */ bne lbl_802D266C -/* 802D2614 002CF554 38 01 00 27 */ addi r0, r1, 0x27 -/* 802D2618 002CF558 54 17 00 34 */ rlwinm r23, r0, 0, 0, 0x1a -/* 802D261C 002CF55C 38 60 00 01 */ li r3, 1 -/* 802D2620 002CF560 7F 24 CB 78 */ mr r4, r25 -/* 802D2624 002CF564 7E E5 BB 78 */ mr r5, r23 -/* 802D2628 002CF568 38 C0 00 20 */ li r6, 0x20 -/* 802D262C 002CF56C 38 E0 00 00 */ li r7, 0 -/* 802D2630 002CF570 48 00 12 09 */ bl JKRAramPiece_NS_orderSync -/* 802D2634 002CF574 7E E3 BB 78 */ mr r3, r23 -/* 802D2638 002CF578 48 00 96 C1 */ bl JKRDecomp_NS_checkCompressed -/* 802D263C 002CF57C 2C 03 00 03 */ cmpwi r3, 3 -/* 802D2640 002CF580 40 82 00 08 */ bne lbl_802D2648 -/* 802D2644 002CF584 38 60 00 00 */ li r3, 0 -lbl_802D2648: -/* 802D2648 002CF588 7C 78 1B 78 */ mr r24, r3 -/* 802D264C 002CF58C 88 B7 00 07 */ lbz r5, 7(r23) -/* 802D2650 002CF590 88 97 00 06 */ lbz r4, 6(r23) -/* 802D2654 002CF594 88 77 00 04 */ lbz r3, 4(r23) -/* 802D2658 002CF598 88 17 00 05 */ lbz r0, 5(r23) -/* 802D265C 002CF59C 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D2660 002CF5A0 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D2664 002CF5A4 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D2668 002CF5A8 7C B7 03 78 */ or r23, r5, r0 -lbl_802D266C: -/* 802D266C 002CF5AC 2C 18 00 02 */ cmpwi r24, 2 -/* 802D2670 002CF5B0 40 82 00 74 */ bne lbl_802D26E4 -/* 802D2674 002CF5B4 28 1C 00 00 */ cmplwi r28, 0 -/* 802D2678 002CF5B8 41 82 00 10 */ beq lbl_802D2688 -/* 802D267C 002CF5BC 7C 1C B8 40 */ cmplw r28, r23 -/* 802D2680 002CF5C0 40 80 00 08 */ bge lbl_802D2688 -/* 802D2684 002CF5C4 7F 97 E3 78 */ mr r23, r28 -lbl_802D2688: -/* 802D2688 002CF5C8 28 1A 00 00 */ cmplwi r26, 0 -/* 802D268C 002CF5CC 40 82 00 18 */ bne lbl_802D26A4 -/* 802D2690 002CF5D0 7E E3 BB 78 */ mr r3, r23 -/* 802D2694 002CF5D4 38 80 00 20 */ li r4, 0x20 -/* 802D2698 002CF5D8 7F A5 EB 78 */ mr r5, r29 -/* 802D269C 002CF5DC 4B FF BD D9 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D26A0 002CF5E0 7C 7A 1B 78 */ mr r26, r3 -lbl_802D26A4: -/* 802D26A4 002CF5E4 28 1A 00 00 */ cmplwi r26, 0 -/* 802D26A8 002CF5E8 40 82 00 0C */ bne lbl_802D26B4 -/* 802D26AC 002CF5EC 38 60 00 00 */ li r3, 0 -/* 802D26B0 002CF5F0 48 00 01 68 */ b lbl_802D2818 -lbl_802D26B4: -/* 802D26B4 002CF5F4 7F 43 D3 78 */ mr r3, r26 -/* 802D26B8 002CF5F8 7F C4 F3 78 */ mr r4, r30 -/* 802D26BC 002CF5FC 4B FF FC 21 */ bl JKRAram_NS_changeGroupIdIfNeed -/* 802D26C0 002CF600 7F 23 CB 78 */ mr r3, r25 -/* 802D26C4 002CF604 7F 44 D3 78 */ mr r4, r26 -/* 802D26C8 002CF608 7F 65 DB 78 */ mr r5, r27 -/* 802D26CC 002CF60C 7E E6 BB 78 */ mr r6, r23 -/* 802D26D0 002CF610 38 E0 00 00 */ li r7, 0 -/* 802D26D4 002CF614 7F E8 FB 78 */ mr r8, r31 -/* 802D26D8 002CF618 48 00 01 59 */ bl JKRDecompressFromAramToMainRam -/* 802D26DC 002CF61C 7F 43 D3 78 */ mr r3, r26 -/* 802D26E0 002CF620 48 00 01 38 */ b lbl_802D2818 -lbl_802D26E4: -/* 802D26E4 002CF624 2C 18 00 01 */ cmpwi r24, 1 -/* 802D26E8 002CF628 40 82 00 D0 */ bne lbl_802D27B8 -/* 802D26EC 002CF62C 7F 63 DB 78 */ mr r3, r27 -/* 802D26F0 002CF630 38 80 FF E0 */ li r4, -32 -/* 802D26F4 002CF634 7F A5 EB 78 */ mr r5, r29 -/* 802D26F8 002CF638 4B FF BD 7D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D26FC 002CF63C 7C 78 1B 79 */ or. r24, r3, r3 -/* 802D2700 002CF640 40 82 00 0C */ bne lbl_802D270C -/* 802D2704 002CF644 38 60 00 00 */ li r3, 0 -/* 802D2708 002CF648 48 00 01 10 */ b lbl_802D2818 -lbl_802D270C: -/* 802D270C 002CF64C 38 60 00 01 */ li r3, 1 -/* 802D2710 002CF650 7F 24 CB 78 */ mr r4, r25 -/* 802D2714 002CF654 7F 05 C3 78 */ mr r5, r24 -/* 802D2718 002CF658 7F 66 DB 78 */ mr r6, r27 -/* 802D271C 002CF65C 38 E0 00 00 */ li r7, 0 -/* 802D2720 002CF660 48 00 11 19 */ bl JKRAramPiece_NS_orderSync -/* 802D2724 002CF664 28 1C 00 00 */ cmplwi r28, 0 -/* 802D2728 002CF668 41 82 00 10 */ beq lbl_802D2738 -/* 802D272C 002CF66C 7C 1C B8 40 */ cmplw r28, r23 -/* 802D2730 002CF670 40 80 00 08 */ bge lbl_802D2738 -/* 802D2734 002CF674 7F 97 E3 78 */ mr r23, r28 -lbl_802D2738: -/* 802D2738 002CF678 28 1A 00 00 */ cmplwi r26, 0 -/* 802D273C 002CF67C 40 82 00 1C */ bne lbl_802D2758 -/* 802D2740 002CF680 7E E3 BB 78 */ mr r3, r23 -/* 802D2744 002CF684 38 80 00 20 */ li r4, 0x20 -/* 802D2748 002CF688 7F A5 EB 78 */ mr r5, r29 -/* 802D274C 002CF68C 4B FF BD 29 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D2750 002CF690 7C 79 1B 78 */ mr r25, r3 -/* 802D2754 002CF694 48 00 00 08 */ b lbl_802D275C -lbl_802D2758: -/* 802D2758 002CF698 7F 59 D3 78 */ mr r25, r26 -lbl_802D275C: -/* 802D275C 002CF69C 28 19 00 00 */ cmplwi r25, 0 -/* 802D2760 002CF6A0 40 82 00 18 */ bne lbl_802D2778 -/* 802D2764 002CF6A4 7F 03 C3 78 */ mr r3, r24 -/* 802D2768 002CF6A8 38 80 00 00 */ li r4, 0 -/* 802D276C 002CF6AC 4B FF BD 95 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D2770 002CF6B0 38 60 00 00 */ li r3, 0 -/* 802D2774 002CF6B4 48 00 00 A4 */ b lbl_802D2818 -lbl_802D2778: -/* 802D2778 002CF6B8 7F 23 CB 78 */ mr r3, r25 -/* 802D277C 002CF6BC 7F C4 F3 78 */ mr r4, r30 -/* 802D2780 002CF6C0 4B FF FB 5D */ bl JKRAram_NS_changeGroupIdIfNeed -/* 802D2784 002CF6C4 7F 03 C3 78 */ mr r3, r24 -/* 802D2788 002CF6C8 7F 24 CB 78 */ mr r4, r25 -/* 802D278C 002CF6CC 7E E5 BB 78 */ mr r5, r23 -/* 802D2790 002CF6D0 38 C0 00 00 */ li r6, 0 -/* 802D2794 002CF6D4 48 00 91 F5 */ bl JKRDecomp_NS_orderSync -/* 802D2798 002CF6D8 7F 03 C3 78 */ mr r3, r24 -/* 802D279C 002CF6DC 7F A4 EB 78 */ mr r4, r29 -/* 802D27A0 002CF6E0 4B FF BD 61 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D27A4 002CF6E4 28 1F 00 00 */ cmplwi r31, 0 -/* 802D27A8 002CF6E8 41 82 00 08 */ beq lbl_802D27B0 -/* 802D27AC 002CF6EC 92 FF 00 00 */ stw r23, 0(r31) -lbl_802D27B0: -/* 802D27B0 002CF6F0 7F 23 CB 78 */ mr r3, r25 -/* 802D27B4 002CF6F4 48 00 00 64 */ b lbl_802D2818 -lbl_802D27B8: -/* 802D27B8 002CF6F8 28 1A 00 00 */ cmplwi r26, 0 -/* 802D27BC 002CF6FC 40 82 00 18 */ bne lbl_802D27D4 -/* 802D27C0 002CF700 7F 63 DB 78 */ mr r3, r27 -/* 802D27C4 002CF704 38 80 00 20 */ li r4, 0x20 -/* 802D27C8 002CF708 7F A5 EB 78 */ mr r5, r29 -/* 802D27CC 002CF70C 4B FF BC A9 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D27D0 002CF710 7C 7A 1B 78 */ mr r26, r3 -lbl_802D27D4: -/* 802D27D4 002CF714 28 1A 00 00 */ cmplwi r26, 0 -/* 802D27D8 002CF718 40 82 00 0C */ bne lbl_802D27E4 -/* 802D27DC 002CF71C 38 60 00 00 */ li r3, 0 -/* 802D27E0 002CF720 48 00 00 38 */ b lbl_802D2818 -lbl_802D27E4: -/* 802D27E4 002CF724 7F 43 D3 78 */ mr r3, r26 -/* 802D27E8 002CF728 7F C4 F3 78 */ mr r4, r30 -/* 802D27EC 002CF72C 4B FF FA F1 */ bl JKRAram_NS_changeGroupIdIfNeed -/* 802D27F0 002CF730 38 60 00 01 */ li r3, 1 -/* 802D27F4 002CF734 7F 24 CB 78 */ mr r4, r25 -/* 802D27F8 002CF738 7F 45 D3 78 */ mr r5, r26 -/* 802D27FC 002CF73C 7F 66 DB 78 */ mr r6, r27 -/* 802D2800 002CF740 38 E0 00 00 */ li r7, 0 -/* 802D2804 002CF744 48 00 10 35 */ bl JKRAramPiece_NS_orderSync -/* 802D2808 002CF748 28 1F 00 00 */ cmplwi r31, 0 -/* 802D280C 002CF74C 41 82 00 08 */ beq lbl_802D2814 -/* 802D2810 002CF750 93 7F 00 00 */ stw r27, 0(r31) -lbl_802D2814: -/* 802D2814 002CF754 7F 43 D3 78 */ mr r3, r26 -lbl_802D2818: -/* 802D2818 002CF758 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D281C 002CF75C 48 08 F9 F1 */ bl func_8036220C -/* 802D2820 002CF760 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802D2824 002CF764 7C 08 03 A6 */ mtlr r0 -/* 802D2828 002CF768 38 21 00 70 */ addi r1, r1, 0x70 -/* 802D282C 002CF76C 4E 80 00 20 */ blr - -.global JKRDecompressFromAramToMainRam -JKRDecompressFromAramToMainRam: -/* 802D2830 002CF770 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D2834 002CF774 7C 08 02 A6 */ mflr r0 -/* 802D2838 002CF778 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D283C 002CF77C 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D2840 002CF780 48 08 F9 8D */ bl func_803621CC -/* 802D2844 002CF784 7C 7A 1B 78 */ mr r26, r3 -/* 802D2848 002CF788 7C 9B 23 78 */ mr r27, r4 -/* 802D284C 002CF78C 7C BC 2B 78 */ mr r28, r5 -/* 802D2850 002CF790 7C DD 33 78 */ mr r29, r6 -/* 802D2854 002CF794 7C FE 3B 78 */ mr r30, r7 -/* 802D2858 002CF798 7D 1F 43 78 */ mr r31, r8 -/* 802D285C 002CF79C 48 06 AE 99 */ bl __RAS_OSDisableInterrupts_begin -/* 802D2860 002CF7A0 7C 79 1B 78 */ mr r25, r3 -/* 802D2864 002CF7A4 88 0D 8E 7C */ lbz r0, lbl_804513FC-_SDA_BASE_(r13) -/* 802D2868 002CF7A8 28 00 00 00 */ cmplwi r0, 0 -/* 802D286C 002CF7AC 40 82 00 18 */ bne lbl_802D2884 -/* 802D2870 002CF7B0 3C 60 80 43 */ lis r3, lbl_804342E8@ha -/* 802D2874 002CF7B4 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l -/* 802D2878 002CF7B8 48 06 C7 91 */ bl OSInitMutex -/* 802D287C 002CF7BC 38 00 00 01 */ li r0, 1 -/* 802D2880 002CF7C0 98 0D 8E 7C */ stb r0, lbl_804513FC-_SDA_BASE_(r13) -lbl_802D2884: -/* 802D2884 002CF7C4 7F 23 CB 78 */ mr r3, r25 -/* 802D2888 002CF7C8 48 06 AE 95 */ bl OSRestoreInterrupts -/* 802D288C 002CF7CC 3C 60 80 43 */ lis r3, lbl_804342E8@ha -/* 802D2890 002CF7D0 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l -/* 802D2894 002CF7D4 48 06 C7 AD */ bl OSLockMutex -/* 802D2898 002CF7D8 83 2D 83 38 */ lwz r25, lbl_804508B8-_SDA_BASE_(r13) -/* 802D289C 002CF7DC 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D28A0 002CF7E0 7F 24 CB 78 */ mr r4, r25 -/* 802D28A4 002CF7E4 38 A0 00 20 */ li r5, 0x20 -/* 802D28A8 002CF7E8 4B FF BC 2D */ bl alloc__7JKRHeapFUli -/* 802D28AC 002CF7EC 90 6D 8E 4C */ stw r3, lbl_804513CC-_SDA_BASE_(r13) -/* 802D28B0 002CF7F0 7C 03 CA 14 */ add r0, r3, r25 -/* 802D28B4 002CF7F4 90 0D 8E 50 */ stw r0, lbl_804513D0-_SDA_BASE_(r13) -/* 802D28B8 002CF7F8 28 1E 00 00 */ cmplwi r30, 0 -/* 802D28BC 002CF7FC 41 82 00 28 */ beq lbl_802D28E4 -/* 802D28C0 002CF800 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D28C4 002CF804 38 80 11 20 */ li r4, 0x1120 -/* 802D28C8 002CF808 38 A0 00 00 */ li r5, 0 -/* 802D28CC 002CF80C 4B FF BC 09 */ bl alloc__7JKRHeapFUli -/* 802D28D0 002CF810 90 6D 8E 54 */ stw r3, lbl_804513D4-_SDA_BASE_(r13) -/* 802D28D4 002CF814 38 03 11 20 */ addi r0, r3, 0x1120 -/* 802D28D8 002CF818 90 0D 8E 58 */ stw r0, lbl_804513D8-_SDA_BASE_(r13) -/* 802D28DC 002CF81C 90 6D 8E 5C */ stw r3, lbl_804513DC-_SDA_BASE_(r13) -/* 802D28E0 002CF820 48 00 00 0C */ b lbl_802D28EC -lbl_802D28E4: -/* 802D28E4 002CF824 38 00 00 00 */ li r0, 0 -/* 802D28E8 002CF828 90 0D 8E 54 */ stw r0, lbl_804513D4-_SDA_BASE_(r13) -lbl_802D28EC: -/* 802D28EC 002CF82C 93 4D 8E 6C */ stw r26, lbl_804513EC-_SDA_BASE_(r13) -/* 802D28F0 002CF830 38 00 00 00 */ li r0, 0 -/* 802D28F4 002CF834 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13) -/* 802D28F8 002CF838 28 1C 00 00 */ cmplwi r28, 0 -/* 802D28FC 002CF83C 38 00 FF FF */ li r0, -1 -/* 802D2900 002CF840 41 82 00 08 */ beq lbl_802D2908 -/* 802D2904 002CF844 7F 80 E3 78 */ mr r0, r28 -lbl_802D2908: -/* 802D2908 002CF848 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D290C 002CF84C 93 CD 8E 70 */ stw r30, lbl_804513F0-_SDA_BASE_(r13) -/* 802D2910 002CF850 38 00 00 00 */ li r0, 0 -/* 802D2914 002CF854 90 0D 8E 74 */ stw r0, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2918 002CF858 93 AD 8E 78 */ stw r29, lbl_804513F8-_SDA_BASE_(r13) -/* 802D291C 002CF85C 28 1F 00 00 */ cmplwi r31, 0 -/* 802D2920 002CF860 41 82 00 0C */ beq lbl_802D292C -/* 802D2924 002CF864 7F E3 FB 78 */ mr r3, r31 -/* 802D2928 002CF868 48 00 00 08 */ b lbl_802D2930 -lbl_802D292C: -/* 802D292C 002CF86C 38 6D 8E 84 */ addi r3, r13, lbl_80451404-_SDA_BASE_ -lbl_802D2930: -/* 802D2930 002CF870 90 6D 8E 80 */ stw r3, lbl_80451400-_SDA_BASE_(r13) -/* 802D2934 002CF874 38 00 00 00 */ li r0, 0 -/* 802D2938 002CF878 90 03 00 00 */ stw r0, 0(r3) -/* 802D293C 002CF87C 48 00 03 05 */ bl firstSrcData -/* 802D2940 002CF880 7F 64 DB 78 */ mr r4, r27 -/* 802D2944 002CF884 48 00 00 5D */ bl decompSZS_subroutine -/* 802D2948 002CF888 80 6D 8E 4C */ lwz r3, lbl_804513CC-_SDA_BASE_(r13) -/* 802D294C 002CF88C 38 80 00 00 */ li r4, 0 -/* 802D2950 002CF890 4B FF BB B1 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D2954 002CF894 80 6D 8E 54 */ lwz r3, lbl_804513D4-_SDA_BASE_(r13) -/* 802D2958 002CF898 28 03 00 00 */ cmplwi r3, 0 -/* 802D295C 002CF89C 41 82 00 0C */ beq lbl_802D2968 -/* 802D2960 002CF8A0 38 80 00 00 */ li r4, 0 -/* 802D2964 002CF8A4 4B FF BB 9D */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D2968: -/* 802D2968 002CF8A8 7F 63 DB 78 */ mr r3, r27 -/* 802D296C 002CF8AC 80 8D 8E 80 */ lwz r4, lbl_80451400-_SDA_BASE_(r13) -/* 802D2970 002CF8B0 80 84 00 00 */ lwz r4, 0(r4) -/* 802D2974 002CF8B4 48 06 8C C5 */ bl DCStoreRangeNoSync -/* 802D2978 002CF8B8 3C 60 80 43 */ lis r3, lbl_804342E8@ha -/* 802D297C 002CF8BC 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l -/* 802D2980 002CF8C0 48 06 C7 9D */ bl OSUnlockMutex -/* 802D2984 002CF8C4 38 60 00 00 */ li r3, 0 -/* 802D2988 002CF8C8 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D298C 002CF8CC 48 08 F8 8D */ bl func_80362218 -/* 802D2990 002CF8D0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D2994 002CF8D4 7C 08 03 A6 */ mtlr r0 -/* 802D2998 002CF8D8 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D299C 002CF8DC 4E 80 00 20 */ blr - -.global decompSZS_subroutine -decompSZS_subroutine: -/* 802D29A0 002CF8E0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D29A4 002CF8E4 7C 08 02 A6 */ mflr r0 -/* 802D29A8 002CF8E8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D29AC 002CF8EC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D29B0 002CF8F0 48 08 F8 2D */ bl _savegpr_29 -/* 802D29B4 002CF8F4 7C 9D 23 78 */ mr r29, r4 -/* 802D29B8 002CF8F8 38 80 00 00 */ li r4, 0 -/* 802D29BC 002CF8FC 38 00 00 00 */ li r0, 0 -/* 802D29C0 002CF900 3B C0 00 00 */ li r30, 0 -/* 802D29C4 002CF904 88 A3 00 00 */ lbz r5, 0(r3) -/* 802D29C8 002CF908 2C 05 00 59 */ cmpwi r5, 0x59 -/* 802D29CC 002CF90C 40 82 00 28 */ bne lbl_802D29F4 -/* 802D29D0 002CF910 88 A3 00 01 */ lbz r5, 1(r3) -/* 802D29D4 002CF914 2C 05 00 61 */ cmpwi r5, 0x61 -/* 802D29D8 002CF918 40 82 00 1C */ bne lbl_802D29F4 -/* 802D29DC 002CF91C 88 A3 00 02 */ lbz r5, 2(r3) -/* 802D29E0 002CF920 2C 05 00 7A */ cmpwi r5, 0x7a -/* 802D29E4 002CF924 40 82 00 10 */ bne lbl_802D29F4 -/* 802D29E8 002CF928 88 A3 00 03 */ lbz r5, 3(r3) -/* 802D29EC 002CF92C 2C 05 00 30 */ cmpwi r5, 0x30 -/* 802D29F0 002CF930 41 82 00 0C */ beq lbl_802D29FC -lbl_802D29F4: -/* 802D29F4 002CF934 38 60 FF FF */ li r3, -1 -/* 802D29F8 002CF938 48 00 02 30 */ b lbl_802D2C28 -lbl_802D29FC: -/* 802D29FC 002CF93C 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13) -/* 802D2A00 002CF940 80 A3 00 04 */ lwz r5, 4(r3) -/* 802D2A04 002CF944 7C A6 28 50 */ subf r5, r6, r5 -/* 802D2A08 002CF948 7F FD 2A 14 */ add r31, r29, r5 -/* 802D2A0C 002CF94C 80 AD 8E 78 */ lwz r5, lbl_804513F8-_SDA_BASE_(r13) -/* 802D2A10 002CF950 7C BD 2A 14 */ add r5, r29, r5 -/* 802D2A14 002CF954 7C 1F 28 40 */ cmplw r31, r5 -/* 802D2A18 002CF958 40 81 00 08 */ ble lbl_802D2A20 -/* 802D2A1C 002CF95C 7C BF 2B 78 */ mr r31, r5 -lbl_802D2A20: -/* 802D2A20 002CF960 38 63 00 10 */ addi r3, r3, 0x10 -lbl_802D2A24: -/* 802D2A24 002CF964 2C 04 00 00 */ cmpwi r4, 0 -/* 802D2A28 002CF968 40 82 00 2C */ bne lbl_802D2A54 -/* 802D2A2C 002CF96C 80 0D 8E 68 */ lwz r0, lbl_804513E8-_SDA_BASE_(r13) -/* 802D2A30 002CF970 7C 03 00 40 */ cmplw r3, r0 -/* 802D2A34 002CF974 40 81 00 14 */ ble lbl_802D2A48 -/* 802D2A38 002CF978 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D2A3C 002CF97C 28 00 00 00 */ cmplwi r0, 0 -/* 802D2A40 002CF980 41 82 00 08 */ beq lbl_802D2A48 -/* 802D2A44 002CF984 48 00 02 A1 */ bl nextSrcData -lbl_802D2A48: -/* 802D2A48 002CF988 88 03 00 00 */ lbz r0, 0(r3) -/* 802D2A4C 002CF98C 38 80 00 08 */ li r4, 8 -/* 802D2A50 002CF990 38 63 00 01 */ addi r3, r3, 1 -lbl_802D2A54: -/* 802D2A54 002CF994 54 05 06 31 */ rlwinm. r5, r0, 0, 0x18, 0x18 -/* 802D2A58 002CF998 41 82 00 94 */ beq lbl_802D2AEC -/* 802D2A5C 002CF99C 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13) -/* 802D2A60 002CF9A0 28 06 00 00 */ cmplwi r6, 0 -/* 802D2A64 002CF9A4 41 82 00 5C */ beq lbl_802D2AC0 -/* 802D2A68 002CF9A8 80 AD 8E 74 */ lwz r5, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2A6C 002CF9AC 7C 05 30 40 */ cmplw r5, r6 -/* 802D2A70 002CF9B0 41 80 00 1C */ blt lbl_802D2A8C -/* 802D2A74 002CF9B4 88 A3 00 00 */ lbz r5, 0(r3) -/* 802D2A78 002CF9B8 98 BD 00 00 */ stb r5, 0(r29) -/* 802D2A7C 002CF9BC 3B BD 00 01 */ addi r29, r29, 1 -/* 802D2A80 002CF9C0 7C 1D F8 40 */ cmplw r29, r31 -/* 802D2A84 002CF9C4 3B DE 00 01 */ addi r30, r30, 1 -/* 802D2A88 002CF9C8 41 82 01 94 */ beq lbl_802D2C1C -lbl_802D2A8C: -/* 802D2A8C 002CF9CC 88 E3 00 00 */ lbz r7, 0(r3) -/* 802D2A90 002CF9D0 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) -/* 802D2A94 002CF9D4 38 A6 00 01 */ addi r5, r6, 1 -/* 802D2A98 002CF9D8 90 AD 8E 5C */ stw r5, lbl_804513DC-_SDA_BASE_(r13) -/* 802D2A9C 002CF9DC 98 E6 00 00 */ stb r7, 0(r6) -/* 802D2AA0 002CF9E0 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) -/* 802D2AA4 002CF9E4 80 AD 8E 58 */ lwz r5, lbl_804513D8-_SDA_BASE_(r13) -/* 802D2AA8 002CF9E8 7C 06 28 40 */ cmplw r6, r5 -/* 802D2AAC 002CF9EC 40 82 00 0C */ bne lbl_802D2AB8 -/* 802D2AB0 002CF9F0 80 AD 8E 54 */ lwz r5, lbl_804513D4-_SDA_BASE_(r13) -/* 802D2AB4 002CF9F4 90 AD 8E 5C */ stw r5, lbl_804513DC-_SDA_BASE_(r13) -lbl_802D2AB8: -/* 802D2AB8 002CF9F8 38 63 00 01 */ addi r3, r3, 1 -/* 802D2ABC 002CF9FC 48 00 00 20 */ b lbl_802D2ADC -lbl_802D2AC0: -/* 802D2AC0 002CFA00 88 A3 00 00 */ lbz r5, 0(r3) -/* 802D2AC4 002CFA04 98 BD 00 00 */ stb r5, 0(r29) -/* 802D2AC8 002CFA08 3B BD 00 01 */ addi r29, r29, 1 -/* 802D2ACC 002CFA0C 7C 1D F8 40 */ cmplw r29, r31 -/* 802D2AD0 002CFA10 38 63 00 01 */ addi r3, r3, 1 -/* 802D2AD4 002CFA14 3B DE 00 01 */ addi r30, r30, 1 -/* 802D2AD8 002CFA18 41 82 01 44 */ beq lbl_802D2C1C -lbl_802D2ADC: -/* 802D2ADC 002CFA1C 80 AD 8E 74 */ lwz r5, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2AE0 002CFA20 38 A5 00 01 */ addi r5, r5, 1 -/* 802D2AE4 002CFA24 90 AD 8E 74 */ stw r5, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2AE8 002CFA28 48 00 01 24 */ b lbl_802D2C0C -lbl_802D2AEC: -/* 802D2AEC 002CFA2C 88 C3 00 00 */ lbz r6, 0(r3) -/* 802D2AF0 002CFA30 88 E3 00 01 */ lbz r7, 1(r3) -/* 802D2AF4 002CFA34 50 C7 45 2E */ rlwimi r7, r6, 8, 0x14, 0x17 -/* 802D2AF8 002CFA38 7C C5 26 70 */ srawi r5, r6, 4 -/* 802D2AFC 002CFA3C 81 0D 8E 70 */ lwz r8, lbl_804513F0-_SDA_BASE_(r13) -/* 802D2B00 002CFA40 28 08 00 00 */ cmplwi r8, 0 -/* 802D2B04 002CFA44 38 63 00 02 */ addi r3, r3, 2 -/* 802D2B08 002CFA48 41 82 00 2C */ beq lbl_802D2B34 -/* 802D2B0C 002CFA4C 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) -/* 802D2B10 002CFA50 7C C7 30 50 */ subf r6, r7, r6 -/* 802D2B14 002CFA54 39 26 FF FF */ addi r9, r6, -1 -/* 802D2B18 002CFA58 80 ED 8E 54 */ lwz r7, lbl_804513D4-_SDA_BASE_(r13) -/* 802D2B1C 002CFA5C 7C 09 38 40 */ cmplw r9, r7 -/* 802D2B20 002CFA60 40 80 00 1C */ bge lbl_802D2B3C -/* 802D2B24 002CFA64 80 CD 8E 58 */ lwz r6, lbl_804513D8-_SDA_BASE_(r13) -/* 802D2B28 002CFA68 7C C7 30 50 */ subf r6, r7, r6 -/* 802D2B2C 002CFA6C 7D 29 32 14 */ add r9, r9, r6 -/* 802D2B30 002CFA70 48 00 00 0C */ b lbl_802D2B3C -lbl_802D2B34: -/* 802D2B34 002CFA74 7C C7 E8 50 */ subf r6, r7, r29 -/* 802D2B38 002CFA78 39 26 FF FF */ addi r9, r6, -1 -lbl_802D2B3C: -/* 802D2B3C 002CFA7C 2C 05 00 00 */ cmpwi r5, 0 -/* 802D2B40 002CFA80 40 82 00 14 */ bne lbl_802D2B54 -/* 802D2B44 002CFA84 88 A3 00 00 */ lbz r5, 0(r3) -/* 802D2B48 002CFA88 38 A5 00 12 */ addi r5, r5, 0x12 -/* 802D2B4C 002CFA8C 38 63 00 01 */ addi r3, r3, 1 -/* 802D2B50 002CFA90 48 00 00 08 */ b lbl_802D2B58 -lbl_802D2B54: -/* 802D2B54 002CFA94 38 A5 00 02 */ addi r5, r5, 2 -lbl_802D2B58: -/* 802D2B58 002CFA98 28 08 00 00 */ cmplwi r8, 0 -/* 802D2B5C 002CFA9C 41 82 00 80 */ beq lbl_802D2BDC -lbl_802D2B60: -/* 802D2B60 002CFAA0 80 ED 8E 74 */ lwz r7, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2B64 002CFAA4 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13) -/* 802D2B68 002CFAA8 7C 07 30 40 */ cmplw r7, r6 -/* 802D2B6C 002CFAAC 41 80 00 1C */ blt lbl_802D2B88 -/* 802D2B70 002CFAB0 88 C9 00 00 */ lbz r6, 0(r9) -/* 802D2B74 002CFAB4 98 DD 00 00 */ stb r6, 0(r29) -/* 802D2B78 002CFAB8 3B BD 00 01 */ addi r29, r29, 1 -/* 802D2B7C 002CFABC 7C 1D F8 40 */ cmplw r29, r31 -/* 802D2B80 002CFAC0 3B DE 00 01 */ addi r30, r30, 1 -/* 802D2B84 002CFAC4 41 82 00 88 */ beq lbl_802D2C0C -lbl_802D2B88: -/* 802D2B88 002CFAC8 89 09 00 00 */ lbz r8, 0(r9) -/* 802D2B8C 002CFACC 80 ED 8E 5C */ lwz r7, lbl_804513DC-_SDA_BASE_(r13) -/* 802D2B90 002CFAD0 38 C7 00 01 */ addi r6, r7, 1 -/* 802D2B94 002CFAD4 90 CD 8E 5C */ stw r6, lbl_804513DC-_SDA_BASE_(r13) -/* 802D2B98 002CFAD8 99 07 00 00 */ stb r8, 0(r7) -/* 802D2B9C 002CFADC 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) -/* 802D2BA0 002CFAE0 80 ED 8E 58 */ lwz r7, lbl_804513D8-_SDA_BASE_(r13) -/* 802D2BA4 002CFAE4 7C 06 38 40 */ cmplw r6, r7 -/* 802D2BA8 002CFAE8 40 82 00 0C */ bne lbl_802D2BB4 -/* 802D2BAC 002CFAEC 80 CD 8E 54 */ lwz r6, lbl_804513D4-_SDA_BASE_(r13) -/* 802D2BB0 002CFAF0 90 CD 8E 5C */ stw r6, lbl_804513DC-_SDA_BASE_(r13) -lbl_802D2BB4: -/* 802D2BB4 002CFAF4 39 29 00 01 */ addi r9, r9, 1 -/* 802D2BB8 002CFAF8 7C 09 38 40 */ cmplw r9, r7 -/* 802D2BBC 002CFAFC 40 82 00 08 */ bne lbl_802D2BC4 -/* 802D2BC0 002CFB00 81 2D 8E 54 */ lwz r9, lbl_804513D4-_SDA_BASE_(r13) -lbl_802D2BC4: -/* 802D2BC4 002CFB04 80 CD 8E 74 */ lwz r6, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2BC8 002CFB08 38 C6 00 01 */ addi r6, r6, 1 -/* 802D2BCC 002CFB0C 90 CD 8E 74 */ stw r6, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2BD0 002CFB10 34 A5 FF FF */ addic. r5, r5, -1 -/* 802D2BD4 002CFB14 40 82 FF 8C */ bne lbl_802D2B60 -/* 802D2BD8 002CFB18 48 00 00 34 */ b lbl_802D2C0C -lbl_802D2BDC: -/* 802D2BDC 002CFB1C 88 C9 00 00 */ lbz r6, 0(r9) -/* 802D2BE0 002CFB20 98 DD 00 00 */ stb r6, 0(r29) -/* 802D2BE4 002CFB24 3B BD 00 01 */ addi r29, r29, 1 -/* 802D2BE8 002CFB28 7C 1D F8 40 */ cmplw r29, r31 -/* 802D2BEC 002CFB2C 3B DE 00 01 */ addi r30, r30, 1 -/* 802D2BF0 002CFB30 41 82 00 1C */ beq lbl_802D2C0C -/* 802D2BF4 002CFB34 80 CD 8E 74 */ lwz r6, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2BF8 002CFB38 38 C6 00 01 */ addi r6, r6, 1 -/* 802D2BFC 002CFB3C 90 CD 8E 74 */ stw r6, lbl_804513F4-_SDA_BASE_(r13) -/* 802D2C00 002CFB40 34 A5 FF FF */ addic. r5, r5, -1 -/* 802D2C04 002CFB44 39 29 00 01 */ addi r9, r9, 1 -/* 802D2C08 002CFB48 40 82 FF D4 */ bne lbl_802D2BDC -lbl_802D2C0C: -/* 802D2C0C 002CFB4C 54 00 08 3C */ slwi r0, r0, 1 -/* 802D2C10 002CFB50 7C 1D F8 40 */ cmplw r29, r31 -/* 802D2C14 002CFB54 38 84 FF FF */ addi r4, r4, -1 -/* 802D2C18 002CFB58 41 80 FE 0C */ blt lbl_802D2A24 -lbl_802D2C1C: -/* 802D2C1C 002CFB5C 80 6D 8E 80 */ lwz r3, lbl_80451400-_SDA_BASE_(r13) -/* 802D2C20 002CFB60 93 C3 00 00 */ stw r30, 0(r3) -/* 802D2C24 002CFB64 38 60 00 00 */ li r3, 0 -lbl_802D2C28: -/* 802D2C28 002CFB68 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2C2C 002CFB6C 48 08 F5 FD */ bl _restgpr_29 -/* 802D2C30 002CFB70 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2C34 002CFB74 7C 08 03 A6 */ mtlr r0 -/* 802D2C38 002CFB78 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D2C3C 002CFB7C 4E 80 00 20 */ blr - -.global firstSrcData -firstSrcData: -/* 802D2C40 002CFB80 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D2C44 002CFB84 7C 08 02 A6 */ mflr r0 -/* 802D2C48 002CFB88 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D2C4C 002CFB8C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D2C50 002CFB90 93 C1 00 08 */ stw r30, 8(r1) -/* 802D2C54 002CFB94 80 6D 8E 50 */ lwz r3, lbl_804513D0-_SDA_BASE_(r13) -/* 802D2C58 002CFB98 38 03 FF E7 */ addi r0, r3, -25 -/* 802D2C5C 002CFB9C 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13) -/* 802D2C60 002CFBA0 80 0D 8E 4C */ lwz r0, lbl_804513CC-_SDA_BASE_(r13) -/* 802D2C64 002CFBA4 7C 1E 03 78 */ mr r30, r0 -/* 802D2C68 002CFBA8 7C 60 18 50 */ subf r3, r0, r3 -/* 802D2C6C 002CFBAC 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D2C70 002CFBB0 7C 00 18 40 */ cmplw r0, r3 -/* 802D2C74 002CFBB4 7C 7F 1B 78 */ mr r31, r3 -/* 802D2C78 002CFBB8 40 80 00 08 */ bge lbl_802D2C80 -/* 802D2C7C 002CFBBC 7C 1F 03 78 */ mr r31, r0 -lbl_802D2C80: -/* 802D2C80 002CFBC0 38 60 00 01 */ li r3, 1 -/* 802D2C84 002CFBC4 80 8D 8E 6C */ lwz r4, lbl_804513EC-_SDA_BASE_(r13) -/* 802D2C88 002CFBC8 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) -/* 802D2C8C 002CFBCC 7C 84 02 14 */ add r4, r4, r0 -/* 802D2C90 002CFBD0 7F C5 F3 78 */ mr r5, r30 -/* 802D2C94 002CFBD4 38 1F 00 1F */ addi r0, r31, 0x1f -/* 802D2C98 002CFBD8 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a -/* 802D2C9C 002CFBDC 38 E0 00 00 */ li r7, 0 -/* 802D2CA0 002CFBE0 48 00 0B 99 */ bl JKRAramPiece_NS_orderSync -/* 802D2CA4 002CFBE4 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) -/* 802D2CA8 002CFBE8 7C 00 FA 14 */ add r0, r0, r31 -/* 802D2CAC 002CFBEC 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13) -/* 802D2CB0 002CFBF0 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D2CB4 002CFBF4 7C 1F 00 51 */ subf. r0, r31, r0 -/* 802D2CB8 002CFBF8 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D2CBC 002CFBFC 40 82 00 0C */ bne lbl_802D2CC8 -/* 802D2CC0 002CFC00 7C 1E FA 14 */ add r0, r30, r31 -/* 802D2CC4 002CFC04 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13) -lbl_802D2CC8: -/* 802D2CC8 002CFC08 7F C3 F3 78 */ mr r3, r30 -/* 802D2CCC 002CFC0C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D2CD0 002CFC10 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D2CD4 002CFC14 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D2CD8 002CFC18 7C 08 03 A6 */ mtlr r0 -/* 802D2CDC 002CFC1C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D2CE0 002CFC20 4E 80 00 20 */ blr - -.global nextSrcData -nextSrcData: -/* 802D2CE4 002CFC24 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2CE8 002CFC28 7C 08 02 A6 */ mflr r0 -/* 802D2CEC 002CFC2C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D2CF0 002CFC30 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2CF4 002CFC34 48 08 F4 E5 */ bl _savegpr_28 -/* 802D2CF8 002CFC38 7C 64 1B 78 */ mr r4, r3 -/* 802D2CFC 002CFC3C 80 0D 8E 50 */ lwz r0, lbl_804513D0-_SDA_BASE_(r13) -/* 802D2D00 002CFC40 7F A4 00 50 */ subf r29, r4, r0 -/* 802D2D04 002CFC44 57 A5 06 FF */ clrlwi. r5, r29, 0x1b -/* 802D2D08 002CFC48 41 82 00 14 */ beq lbl_802D2D1C -/* 802D2D0C 002CFC4C 80 6D 8E 4C */ lwz r3, lbl_804513CC-_SDA_BASE_(r13) -/* 802D2D10 002CFC50 38 03 00 20 */ addi r0, r3, 0x20 -/* 802D2D14 002CFC54 7F C5 00 50 */ subf r30, r5, r0 -/* 802D2D18 002CFC58 48 00 00 08 */ b lbl_802D2D20 -lbl_802D2D1C: -/* 802D2D1C 002CFC5C 83 CD 8E 4C */ lwz r30, lbl_804513CC-_SDA_BASE_(r13) -lbl_802D2D20: -/* 802D2D20 002CFC60 7F C3 F3 78 */ mr r3, r30 -/* 802D2D24 002CFC64 7F A5 EB 78 */ mr r5, r29 -/* 802D2D28 002CFC68 4B D3 08 19 */ bl func_80003540 -/* 802D2D2C 002CFC6C 7F FE EA 14 */ add r31, r30, r29 -/* 802D2D30 002CFC70 80 0D 8E 50 */ lwz r0, lbl_804513D0-_SDA_BASE_(r13) -/* 802D2D34 002CFC74 7F 9F 00 50 */ subf r28, r31, r0 -/* 802D2D38 002CFC78 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D2D3C 002CFC7C 7C 1C 00 40 */ cmplw r28, r0 -/* 802D2D40 002CFC80 40 81 00 08 */ ble lbl_802D2D48 -/* 802D2D44 002CFC84 7C 1C 03 78 */ mr r28, r0 -lbl_802D2D48: -/* 802D2D48 002CFC88 38 60 00 01 */ li r3, 1 -/* 802D2D4C 002CFC8C 80 8D 8E 6C */ lwz r4, lbl_804513EC-_SDA_BASE_(r13) -/* 802D2D50 002CFC90 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) -/* 802D2D54 002CFC94 7C 84 02 14 */ add r4, r4, r0 -/* 802D2D58 002CFC98 7C BE EA 14 */ add r5, r30, r29 -/* 802D2D5C 002CFC9C 38 1C 00 1F */ addi r0, r28, 0x1f -/* 802D2D60 002CFCA0 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a -/* 802D2D64 002CFCA4 38 E0 00 00 */ li r7, 0 -/* 802D2D68 002CFCA8 48 00 0A D1 */ bl JKRAramPiece_NS_orderSync -/* 802D2D6C 002CFCAC 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) -/* 802D2D70 002CFCB0 7C 00 E2 14 */ add r0, r0, r28 -/* 802D2D74 002CFCB4 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13) -/* 802D2D78 002CFCB8 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D2D7C 002CFCBC 7C 1C 00 51 */ subf. r0, r28, r0 -/* 802D2D80 002CFCC0 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13) -/* 802D2D84 002CFCC4 40 82 00 0C */ bne lbl_802D2D90 -/* 802D2D88 002CFCC8 7C 1F E2 14 */ add r0, r31, r28 -/* 802D2D8C 002CFCCC 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13) -lbl_802D2D90: -/* 802D2D90 002CFCD0 7F C3 F3 78 */ mr r3, r30 -/* 802D2D94 002CFCD4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2D98 002CFCD8 48 08 F4 8D */ bl _restgpr_28 -/* 802D2D9C 002CFCDC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2DA0 002CFCE0 7C 08 03 A6 */ mtlr r0 -/* 802D2DA4 002CFCE4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D2DA8 002CFCE8 4E 80 00 20 */ blr +.global __sinit_JKRAram_cpp +__sinit_JKRAram_cpp: /* 802D2DAC 002CFCEC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802D2DB0 002CFCF0 7C 08 02 A6 */ mflr r0 /* 802D2DB4 002CFCF4 90 01 00 14 */ stw r0, 0x14(r1) @@ -1041,6 +23,7 @@ lbl_802D2D90: /* 802D2DE4 002CFD24 7C 08 03 A6 */ mtlr r0 /* 802D2DE8 002CFD28 38 21 00 10 */ addi r1, r1, 0x10 /* 802D2DEC 002CFD2C 4E 80 00 20 */ blr + .global JSUList_NS_dtor_X4_ JSUList_NS_dtor_X4_: /* 802D2DF0 002CFD30 94 21 FF F0 */ stwu r1, -0x10(r1) diff --git a/asm/JKernel/JKRAramArchive.s b/asm/JKernel/JKRAramArchive.s index b49242c1da..678e5e0cd3 100644 --- a/asm/JKernel/JKRAramArchive.s +++ b/asm/JKernel/JKRAramArchive.s @@ -1,780 +1,7 @@ .include "macros.inc" -.section .text, "ax" # 802d70c0 +.section .text, "ax" # 802D7B90 - -.global JKRAramArchive -JKRAramArchive: -/* 802D70C0 002D4000 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D70C4 002D4004 7C 08 02 A6 */ mflr r0 -/* 802D70C8 002D4008 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D70CC 002D400C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D70D0 002D4010 48 08 B1 0D */ bl _savegpr_29 -/* 802D70D4 002D4014 7C 7D 1B 78 */ mr r29, r3 -/* 802D70D8 002D4018 7C 9E 23 78 */ mr r30, r4 -/* 802D70DC 002D401C 7C BF 2B 78 */ mr r31, r5 -/* 802D70E0 002D4020 38 A0 00 02 */ li r5, 2 -/* 802D70E4 002D4024 4B FF F1 B1 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D70E8 002D4028 3C 60 80 3D */ lis r3, lbl_803CC348@ha -/* 802D70EC 002D402C 38 03 C3 48 */ addi r0, r3, lbl_803CC348@l -/* 802D70F0 002D4030 90 1D 00 00 */ stw r0, 0(r29) -/* 802D70F4 002D4034 93 FD 00 60 */ stw r31, 0x60(r29) -/* 802D70F8 002D4038 7F A3 EB 78 */ mr r3, r29 -/* 802D70FC 002D403C 7F C4 F3 78 */ mr r4, r30 -/* 802D7100 002D4040 48 00 01 A9 */ bl JKRAramArchive_NS_open -/* 802D7104 002D4044 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D7108 002D4048 40 82 00 0C */ bne lbl_802D7114 -/* 802D710C 002D404C 7F A3 EB 78 */ mr r3, r29 -/* 802D7110 002D4050 48 00 00 40 */ b lbl_802D7150 -lbl_802D7114: -/* 802D7114 002D4054 3C 60 52 41 */ lis r3, 0x52415243@ha -/* 802D7118 002D4058 38 03 52 43 */ addi r0, r3, 0x52415243@l -/* 802D711C 002D405C 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 802D7120 002D4060 80 9D 00 54 */ lwz r4, 0x54(r29) -/* 802D7124 002D4064 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D7128 002D4068 80 03 00 04 */ lwz r0, 4(r3) -/* 802D712C 002D406C 7C 04 02 14 */ add r0, r4, r0 -/* 802D7130 002D4070 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D7134 002D4074 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D7138 002D4078 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D713C 002D407C 38 9D 00 18 */ addi r4, r29, 0x18 -/* 802D7140 002D4080 48 00 4E B1 */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D7144 002D4084 38 00 00 01 */ li r0, 1 -/* 802D7148 002D4088 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D714C 002D408C 7F A3 EB 78 */ mr r3, r29 -lbl_802D7150: -/* 802D7150 002D4090 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7154 002D4094 48 08 B0 D5 */ bl _restgpr_29 -/* 802D7158 002D4098 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D715C 002D409C 7C 08 03 A6 */ mtlr r0 -/* 802D7160 002D40A0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D7164 002D40A4 4E 80 00 20 */ blr -/* 802D7168 002D40A8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D716C 002D40AC 7C 08 02 A6 */ mflr r0 -/* 802D7170 002D40B0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D7174 002D40B4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7178 002D40B8 48 08 B0 61 */ bl _savegpr_28 -/* 802D717C 002D40BC 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D7180 002D40C0 7C 9F 23 78 */ mr r31, r4 -/* 802D7184 002D40C4 41 82 01 08 */ beq lbl_802D728C -/* 802D7188 002D40C8 3C 60 80 3D */ lis r3, lbl_803CC348@ha -/* 802D718C 002D40CC 38 03 C3 48 */ addi r0, r3, lbl_803CC348@l -/* 802D7190 002D40D0 90 1E 00 00 */ stw r0, 0(r30) -/* 802D7194 002D40D4 88 1E 00 30 */ lbz r0, 0x30(r30) -/* 802D7198 002D40D8 28 00 00 01 */ cmplwi r0, 1 -/* 802D719C 002D40DC 40 82 00 D4 */ bne lbl_802D7270 -/* 802D71A0 002D40E0 80 1E 00 44 */ lwz r0, 0x44(r30) -/* 802D71A4 002D40E4 28 00 00 00 */ cmplwi r0, 0 -/* 802D71A8 002D40E8 41 82 00 4C */ beq lbl_802D71F4 -/* 802D71AC 002D40EC 83 BE 00 4C */ lwz r29, 0x4c(r30) -/* 802D71B0 002D40F0 3B 80 00 00 */ li r28, 0 -/* 802D71B4 002D40F4 48 00 00 20 */ b lbl_802D71D4 -lbl_802D71B8: -/* 802D71B8 002D40F8 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 802D71BC 002D40FC 28 03 00 00 */ cmplwi r3, 0 -/* 802D71C0 002D4100 41 82 00 0C */ beq lbl_802D71CC -/* 802D71C4 002D4104 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D71C8 002D4108 4B FF 73 39 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D71CC: -/* 802D71CC 002D410C 3B BD 00 14 */ addi r29, r29, 0x14 -/* 802D71D0 002D4110 3B 9C 00 01 */ addi r28, r28, 1 -lbl_802D71D4: -/* 802D71D4 002D4114 80 7E 00 44 */ lwz r3, 0x44(r30) -/* 802D71D8 002D4118 80 03 00 08 */ lwz r0, 8(r3) -/* 802D71DC 002D411C 7C 1C 00 40 */ cmplw r28, r0 -/* 802D71E0 002D4120 41 80 FF D8 */ blt lbl_802D71B8 -/* 802D71E4 002D4124 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D71E8 002D4128 4B FF 73 19 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D71EC 002D412C 38 00 00 00 */ li r0, 0 -/* 802D71F0 002D4130 90 1E 00 44 */ stw r0, 0x44(r30) -lbl_802D71F4: -/* 802D71F4 002D4134 80 7E 00 50 */ lwz r3, 0x50(r30) -/* 802D71F8 002D4138 28 03 00 00 */ cmplwi r3, 0 -/* 802D71FC 002D413C 41 82 00 14 */ beq lbl_802D7210 -/* 802D7200 002D4140 38 80 00 00 */ li r4, 0 -/* 802D7204 002D4144 4B FF 72 FD */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D7208 002D4148 38 00 00 00 */ li r0, 0 -/* 802D720C 002D414C 90 1E 00 50 */ stw r0, 0x50(r30) -lbl_802D7210: -/* 802D7210 002D4150 80 7E 00 68 */ lwz r3, 0x68(r30) -/* 802D7214 002D4154 28 03 00 00 */ cmplwi r3, 0 -/* 802D7218 002D4158 41 82 00 1C */ beq lbl_802D7234 -/* 802D721C 002D415C 41 82 00 18 */ beq lbl_802D7234 -/* 802D7220 002D4160 38 80 00 01 */ li r4, 1 -/* 802D7224 002D4164 81 83 00 00 */ lwz r12, 0(r3) -/* 802D7228 002D4168 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D722C 002D416C 7D 89 03 A6 */ mtctr r12 -/* 802D7230 002D4170 4E 80 04 21 */ bctrl -lbl_802D7234: -/* 802D7234 002D4174 80 7E 00 64 */ lwz r3, 0x64(r30) -/* 802D7238 002D4178 28 03 00 00 */ cmplwi r3, 0 -/* 802D723C 002D417C 41 82 00 1C */ beq lbl_802D7258 -/* 802D7240 002D4180 41 82 00 18 */ beq lbl_802D7258 -/* 802D7244 002D4184 38 80 00 01 */ li r4, 1 -/* 802D7248 002D4188 81 83 00 00 */ lwz r12, 0(r3) -/* 802D724C 002D418C 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D7250 002D4190 7D 89 03 A6 */ mtctr r12 -/* 802D7254 002D4194 4E 80 04 21 */ bctrl -lbl_802D7258: -/* 802D7258 002D4198 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D725C 002D419C 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D7260 002D41A0 38 9E 00 18 */ addi r4, r30, 0x18 -/* 802D7264 002D41A4 48 00 4E F9 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D7268 002D41A8 38 00 00 00 */ li r0, 0 -/* 802D726C 002D41AC 98 1E 00 30 */ stb r0, 0x30(r30) -lbl_802D7270: -/* 802D7270 002D41B0 7F C3 F3 78 */ mr r3, r30 -/* 802D7274 002D41B4 38 80 00 00 */ li r4, 0 -/* 802D7278 002D41B8 4B FF F0 BD */ bl __dt__10JKRArchiveFv -/* 802D727C 002D41BC 7F E0 07 35 */ extsh. r0, r31 -/* 802D7280 002D41C0 40 81 00 0C */ ble lbl_802D728C -/* 802D7284 002D41C4 7F C3 F3 78 */ mr r3, r30 -/* 802D7288 002D41C8 4B FF 7A B5 */ bl __dl__FPv -lbl_802D728C: -/* 802D728C 002D41CC 7F C3 F3 78 */ mr r3, r30 -/* 802D7290 002D41D0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7294 002D41D4 48 08 AF 91 */ bl _restgpr_28 -/* 802D7298 002D41D8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D729C 002D41DC 7C 08 03 A6 */ mtlr r0 -/* 802D72A0 002D41E0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D72A4 002D41E4 4E 80 00 20 */ blr - -.global JKRAramArchive_NS_open -JKRAramArchive_NS_open: -/* 802D72A8 002D41E8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D72AC 002D41EC 7C 08 02 A6 */ mflr r0 -/* 802D72B0 002D41F0 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D72B4 002D41F4 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D72B8 002D41F8 48 08 AF 1D */ bl _savegpr_27 -/* 802D72BC 002D41FC 7C 7F 1B 78 */ mr r31, r3 -/* 802D72C0 002D4200 7C 9C 23 78 */ mr r28, r4 -/* 802D72C4 002D4204 38 00 00 00 */ li r0, 0 -/* 802D72C8 002D4208 90 03 00 44 */ stw r0, 0x44(r3) -/* 802D72CC 002D420C 90 03 00 48 */ stw r0, 0x48(r3) -/* 802D72D0 002D4210 90 03 00 4C */ stw r0, 0x4c(r3) -/* 802D72D4 002D4214 90 03 00 54 */ stw r0, 0x54(r3) -/* 802D72D8 002D4218 90 03 00 64 */ stw r0, 0x64(r3) -/* 802D72DC 002D421C 38 60 00 F8 */ li r3, 0xf8 -/* 802D72E0 002D4220 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D72E4 002D4224 80 1F 00 60 */ lwz r0, 0x60(r31) -/* 802D72E8 002D4228 2C 00 00 01 */ cmpwi r0, 1 -/* 802D72EC 002D422C 38 A0 FF FC */ li r5, -4 -/* 802D72F0 002D4230 40 82 00 08 */ bne lbl_802D72F8 -/* 802D72F4 002D4234 38 A0 00 04 */ li r5, 4 -lbl_802D72F8: -/* 802D72F8 002D4238 4B FF 79 A1 */ bl __nw__FUlP7JKRHeapi -/* 802D72FC 002D423C 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D7300 002D4240 41 82 00 10 */ beq lbl_802D7310 -/* 802D7304 002D4244 7F 84 E3 78 */ mr r4, r28 -/* 802D7308 002D4248 48 00 23 99 */ bl __ct__10JKRDvdFileFl -/* 802D730C 002D424C 7C 60 1B 78 */ mr r0, r3 -lbl_802D7310: -/* 802D7310 002D4250 90 1F 00 68 */ stw r0, 0x68(r31) -/* 802D7314 002D4254 80 1F 00 68 */ lwz r0, 0x68(r31) -/* 802D7318 002D4258 28 00 00 00 */ cmplwi r0, 0 -/* 802D731C 002D425C 40 82 00 14 */ bne lbl_802D7330 -/* 802D7320 002D4260 38 00 00 00 */ li r0, 0 -/* 802D7324 002D4264 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D7328 002D4268 38 60 00 00 */ li r3, 0 -/* 802D732C 002D426C 48 00 02 9C */ b lbl_802D75C8 -lbl_802D7330: -/* 802D7330 002D4270 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D7334 002D4274 38 80 00 20 */ li r4, 0x20 -/* 802D7338 002D4278 38 A0 FF E0 */ li r5, -32 -/* 802D733C 002D427C 4B FF 71 99 */ bl alloc__7JKRHeapFUli -/* 802D7340 002D4280 7C 7D 1B 79 */ or. r29, r3, r3 -/* 802D7344 002D4284 40 82 00 10 */ bne lbl_802D7354 -/* 802D7348 002D4288 38 00 00 00 */ li r0, 0 -/* 802D734C 002D428C 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D7350 002D4290 48 00 02 28 */ b lbl_802D7578 -lbl_802D7354: -/* 802D7354 002D4294 38 00 00 00 */ li r0, 0 -/* 802D7358 002D4298 90 01 00 08 */ stw r0, 8(r1) -/* 802D735C 002D429C 7F 83 E3 78 */ mr r3, r28 -/* 802D7360 002D42A0 7F A4 EB 78 */ mr r4, r29 -/* 802D7364 002D42A4 38 A0 00 01 */ li r5, 1 -/* 802D7368 002D42A8 38 C0 00 20 */ li r6, 0x20 -/* 802D736C 002D42AC 38 E0 00 00 */ li r7, 0 -/* 802D7370 002D42B0 39 00 00 01 */ li r8, 1 -/* 802D7374 002D42B4 39 20 00 00 */ li r9, 0 -/* 802D7378 002D42B8 39 5F 00 5C */ addi r10, r31, 0x5c -/* 802D737C 002D42BC 48 00 28 D9 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D7380 002D42C0 7F A3 EB 78 */ mr r3, r29 -/* 802D7384 002D42C4 38 80 00 20 */ li r4, 0x20 -/* 802D7388 002D42C8 48 06 41 F9 */ bl DCInvalidateRange -/* 802D738C 002D42CC 80 1F 00 60 */ lwz r0, 0x60(r31) -/* 802D7390 002D42D0 2C 00 00 01 */ cmpwi r0, 1 -/* 802D7394 002D42D4 3B C0 FF E0 */ li r30, -32 -/* 802D7398 002D42D8 40 82 00 08 */ bne lbl_802D73A0 -/* 802D739C 002D42DC 3B C0 00 20 */ li r30, 0x20 -lbl_802D73A0: -/* 802D73A0 002D42E0 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 802D73A4 002D42E4 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D73A8 002D42E8 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a -/* 802D73AC 002D42EC 7F 63 DB 78 */ mr r3, r27 -/* 802D73B0 002D42F0 7F C4 F3 78 */ mr r4, r30 -/* 802D73B4 002D42F4 80 BF 00 38 */ lwz r5, 0x38(r31) -/* 802D73B8 002D42F8 4B FF 70 BD */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D73BC 002D42FC 90 7F 00 44 */ stw r3, 0x44(r31) -/* 802D73C0 002D4300 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D73C4 002D4304 28 04 00 00 */ cmplwi r4, 0 -/* 802D73C8 002D4308 40 82 00 10 */ bne lbl_802D73D8 -/* 802D73CC 002D430C 38 00 00 00 */ li r0, 0 -/* 802D73D0 002D4310 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D73D4 002D4314 48 00 01 A4 */ b lbl_802D7578 -lbl_802D73D8: -/* 802D73D8 002D4318 38 00 00 00 */ li r0, 0 -/* 802D73DC 002D431C 90 01 00 08 */ stw r0, 8(r1) -/* 802D73E0 002D4320 7F 83 E3 78 */ mr r3, r28 -/* 802D73E4 002D4324 38 A0 00 01 */ li r5, 1 -/* 802D73E8 002D4328 7F 66 DB 78 */ mr r6, r27 -/* 802D73EC 002D432C 38 E0 00 00 */ li r7, 0 -/* 802D73F0 002D4330 39 00 00 01 */ li r8, 1 -/* 802D73F4 002D4334 39 20 00 20 */ li r9, 0x20 -/* 802D73F8 002D4338 39 40 00 00 */ li r10, 0 -/* 802D73FC 002D433C 48 00 28 59 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D7400 002D4340 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7404 002D4344 7F 64 DB 78 */ mr r4, r27 -/* 802D7408 002D4348 48 06 41 79 */ bl DCInvalidateRange -/* 802D740C 002D434C 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7410 002D4350 80 03 00 04 */ lwz r0, 4(r3) -/* 802D7414 002D4354 7C 03 02 14 */ add r0, r3, r0 -/* 802D7418 002D4358 90 1F 00 48 */ stw r0, 0x48(r31) -/* 802D741C 002D435C 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7420 002D4360 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802D7424 002D4364 7C 03 02 14 */ add r0, r3, r0 -/* 802D7428 002D4368 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 802D742C 002D436C 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7430 002D4370 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802D7434 002D4374 7C 03 02 14 */ add r0, r3, r0 -/* 802D7438 002D4378 90 1F 00 54 */ stw r0, 0x54(r31) -/* 802D743C 002D437C 38 00 00 00 */ li r0, 0 -/* 802D7440 002D4380 90 1F 00 50 */ stw r0, 0x50(r31) -/* 802D7444 002D4384 38 80 00 00 */ li r4, 0 -/* 802D7448 002D4388 80 BF 00 4C */ lwz r5, 0x4c(r31) -/* 802D744C 002D438C 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7450 002D4390 80 03 00 08 */ lwz r0, 8(r3) -/* 802D7454 002D4394 7C 09 03 A6 */ mtctr r0 -/* 802D7458 002D4398 28 00 00 00 */ cmplwi r0, 0 -/* 802D745C 002D439C 40 81 00 28 */ ble lbl_802D7484 -lbl_802D7460: -/* 802D7460 002D43A0 80 05 00 04 */ lwz r0, 4(r5) -/* 802D7464 002D43A4 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D7468 002D43A8 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D746C 002D43AC 41 82 00 10 */ beq lbl_802D747C -/* 802D7470 002D43B0 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d -/* 802D7474 002D43B4 7C 80 03 78 */ or r0, r4, r0 -/* 802D7478 002D43B8 54 04 06 3E */ clrlwi r4, r0, 0x18 -lbl_802D747C: -/* 802D747C 002D43BC 38 A5 00 14 */ addi r5, r5, 0x14 -/* 802D7480 002D43C0 42 00 FF E0 */ bdnz lbl_802D7460 -lbl_802D7484: -/* 802D7484 002D43C4 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802D7488 002D43C8 41 82 00 60 */ beq lbl_802D74E8 -/* 802D748C 002D43CC 7F C3 F3 78 */ mr r3, r30 -/* 802D7490 002D43D0 48 08 DC 41 */ bl func_803650D0 -/* 802D7494 002D43D4 7C 64 1B 78 */ mr r4, r3 -/* 802D7498 002D43D8 80 BF 00 38 */ lwz r5, 0x38(r31) -/* 802D749C 002D43DC 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D74A0 002D43E0 80 03 00 08 */ lwz r0, 8(r3) -/* 802D74A4 002D43E4 54 03 10 3A */ slwi r3, r0, 2 -/* 802D74A8 002D43E8 4B FF 6F CD */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D74AC 002D43EC 90 7F 00 50 */ stw r3, 0x50(r31) -/* 802D74B0 002D43F0 80 7F 00 50 */ lwz r3, 0x50(r31) -/* 802D74B4 002D43F4 28 03 00 00 */ cmplwi r3, 0 -/* 802D74B8 002D43F8 40 82 00 1C */ bne lbl_802D74D4 -/* 802D74BC 002D43FC 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D74C0 002D4400 38 80 00 00 */ li r4, 0 -/* 802D74C4 002D4404 4B FF 70 3D */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D74C8 002D4408 38 00 00 00 */ li r0, 0 -/* 802D74CC 002D440C 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D74D0 002D4410 48 00 00 A8 */ b lbl_802D7578 -lbl_802D74D4: -/* 802D74D4 002D4414 38 80 00 00 */ li r4, 0 -/* 802D74D8 002D4418 80 BF 00 44 */ lwz r5, 0x44(r31) -/* 802D74DC 002D441C 80 05 00 08 */ lwz r0, 8(r5) -/* 802D74E0 002D4420 54 05 10 3A */ slwi r5, r0, 2 -/* 802D74E4 002D4424 4B D2 BF 75 */ bl func_80003458 -lbl_802D74E8: -/* 802D74E8 002D4428 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 802D74EC 002D442C 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D74F0 002D4430 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a -/* 802D74F4 002D4434 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802D74F8 002D4438 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802D74FC 002D443C 80 1F 00 60 */ lwz r0, 0x60(r31) -/* 802D7500 002D4440 20 A0 00 01 */ subfic r5, r0, 1 -/* 802D7504 002D4444 30 05 FF FF */ addic r0, r5, -1 -/* 802D7508 002D4448 7C A0 29 10 */ subfe r5, r0, r5 -/* 802D750C 002D444C 4B FF BA B1 */ bl JKRAramHeap_NS_alloc -/* 802D7510 002D4450 90 7F 00 64 */ stw r3, 0x64(r31) -/* 802D7514 002D4454 80 7F 00 64 */ lwz r3, 0x64(r31) -/* 802D7518 002D4458 28 03 00 00 */ cmplwi r3, 0 -/* 802D751C 002D445C 40 82 00 38 */ bne lbl_802D7554 -/* 802D7520 002D4460 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7524 002D4464 28 03 00 00 */ cmplwi r3, 0 -/* 802D7528 002D4468 41 82 00 0C */ beq lbl_802D7534 -/* 802D752C 002D446C 38 80 00 00 */ li r4, 0 -/* 802D7530 002D4470 4B FF 6F D1 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D7534: -/* 802D7534 002D4474 80 7F 00 50 */ lwz r3, 0x50(r31) -/* 802D7538 002D4478 28 03 00 00 */ cmplwi r3, 0 -/* 802D753C 002D447C 41 82 00 0C */ beq lbl_802D7548 -/* 802D7540 002D4480 38 80 00 00 */ li r4, 0 -/* 802D7544 002D4484 4B FF 6F BD */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D7548: -/* 802D7548 002D4488 38 00 00 00 */ li r0, 0 -/* 802D754C 002D448C 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D7550 002D4490 48 00 00 28 */ b lbl_802D7578 -lbl_802D7554: -/* 802D7554 002D4494 80 83 00 14 */ lwz r4, 0x14(r3) -/* 802D7558 002D4498 7F 83 E3 78 */ mr r3, r28 -/* 802D755C 002D449C 38 A0 00 01 */ li r5, 1 -/* 802D7560 002D44A0 80 DD 00 08 */ lwz r6, 8(r29) -/* 802D7564 002D44A4 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 802D7568 002D44A8 7C C6 02 14 */ add r6, r6, r0 -/* 802D756C 002D44AC 38 E0 00 00 */ li r7, 0 -/* 802D7570 002D44B0 39 00 00 00 */ li r8, 0 -/* 802D7574 002D44B4 48 00 33 01 */ bl JKRDvdAramRipper_NS_loadToAram -lbl_802D7578: -/* 802D7578 002D44B8 28 1D 00 00 */ cmplwi r29, 0 -/* 802D757C 002D44BC 41 82 00 10 */ beq lbl_802D758C -/* 802D7580 002D44C0 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D7584 002D44C4 7F A4 EB 78 */ mr r4, r29 -/* 802D7588 002D44C8 4B FF 6F C1 */ bl free__7JKRHeapFPv -lbl_802D758C: -/* 802D758C 002D44CC 88 1F 00 3C */ lbz r0, 0x3c(r31) -/* 802D7590 002D44D0 28 00 00 00 */ cmplwi r0, 0 -/* 802D7594 002D44D4 40 82 00 30 */ bne lbl_802D75C4 -/* 802D7598 002D44D8 80 7F 00 68 */ lwz r3, 0x68(r31) -/* 802D759C 002D44DC 28 03 00 00 */ cmplwi r3, 0 -/* 802D75A0 002D44E0 41 82 00 1C */ beq lbl_802D75BC -/* 802D75A4 002D44E4 41 82 00 18 */ beq lbl_802D75BC -/* 802D75A8 002D44E8 38 80 00 01 */ li r4, 1 -/* 802D75AC 002D44EC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D75B0 002D44F0 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D75B4 002D44F4 7D 89 03 A6 */ mtctr r12 -/* 802D75B8 002D44F8 4E 80 04 21 */ bctrl -lbl_802D75BC: -/* 802D75BC 002D44FC 38 60 00 00 */ li r3, 0 -/* 802D75C0 002D4500 48 00 00 08 */ b lbl_802D75C8 -lbl_802D75C4: -/* 802D75C4 002D4504 38 60 00 01 */ li r3, 1 -lbl_802D75C8: -/* 802D75C8 002D4508 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D75CC 002D450C 48 08 AC 55 */ bl _restgpr_27 -/* 802D75D0 002D4510 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D75D4 002D4514 7C 08 03 A6 */ mtlr r0 -/* 802D75D8 002D4518 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D75DC 002D451C 4E 80 00 20 */ blr -/* 802D75E0 002D4520 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D75E4 002D4524 7C 08 02 A6 */ mflr r0 -/* 802D75E8 002D4528 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D75EC 002D452C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D75F0 002D4530 48 08 AB E9 */ bl _savegpr_28 -/* 802D75F4 002D4534 7C 7C 1B 78 */ mr r28, r3 -/* 802D75F8 002D4538 7C 9D 23 78 */ mr r29, r4 -/* 802D75FC 002D453C 7C BE 2B 79 */ or. r30, r5, r5 -/* 802D7600 002D4540 40 82 00 08 */ bne lbl_802D7608 -/* 802D7604 002D4544 3B C1 00 0C */ addi r30, r1, 0xc -lbl_802D7608: -/* 802D7608 002D4548 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D760C 002D454C 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D7610 002D4550 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D7614 002D4554 40 82 00 0C */ bne lbl_802D7620 -/* 802D7618 002D4558 3B E0 00 00 */ li r31, 0 -/* 802D761C 002D455C 48 00 00 18 */ b lbl_802D7634 -lbl_802D7620: -/* 802D7620 002D4560 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 -/* 802D7624 002D4564 41 82 00 0C */ beq lbl_802D7630 -/* 802D7628 002D4568 3B E0 00 02 */ li r31, 2 -/* 802D762C 002D456C 48 00 00 08 */ b lbl_802D7634 -lbl_802D7630: -/* 802D7630 002D4570 3B E0 00 01 */ li r31, 1 -lbl_802D7634: -/* 802D7634 002D4574 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 802D7638 002D4578 28 00 00 00 */ cmplwi r0, 0 -/* 802D763C 002D457C 40 82 00 6C */ bne lbl_802D76A8 -/* 802D7640 002D4580 80 7C 00 64 */ lwz r3, 0x64(r28) -/* 802D7644 002D4584 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D7648 002D4588 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D764C 002D458C 7C 60 1A 14 */ add r3, r0, r3 -/* 802D7650 002D4590 80 9D 00 0C */ lwz r4, 0xc(r29) -/* 802D7654 002D4594 80 BC 00 38 */ lwz r5, 0x38(r28) -/* 802D7658 002D4598 7F E6 FB 78 */ mr r6, r31 -/* 802D765C 002D459C 38 E1 00 08 */ addi r7, r1, 8 -/* 802D7660 002D45A0 48 00 02 B5 */ bl JKRAramArchive_NS_fetchResource_subroutine_X1_ -/* 802D7664 002D45A4 90 7E 00 00 */ stw r3, 0(r30) -/* 802D7668 002D45A8 28 03 00 00 */ cmplwi r3, 0 -/* 802D766C 002D45AC 40 82 00 0C */ bne lbl_802D7678 -/* 802D7670 002D45B0 38 60 00 00 */ li r3, 0 -/* 802D7674 002D45B4 48 00 00 68 */ b lbl_802D76DC -lbl_802D7678: -/* 802D7678 002D45B8 80 01 00 08 */ lwz r0, 8(r1) -/* 802D767C 002D45BC 90 1D 00 10 */ stw r0, 0x10(r29) -/* 802D7680 002D45C0 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D7684 002D45C4 40 82 00 54 */ bne lbl_802D76D8 -/* 802D7688 002D45C8 7F 83 E3 78 */ mr r3, r28 -/* 802D768C 002D45CC 7F A4 EB 78 */ mr r4, r29 -/* 802D7690 002D45D0 80 BE 00 00 */ lwz r5, 0(r30) -/* 802D7694 002D45D4 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D7698 002D45D8 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D769C 002D45DC 7D 89 03 A6 */ mtctr r12 -/* 802D76A0 002D45E0 4E 80 04 21 */ bctrl -/* 802D76A4 002D45E4 48 00 00 34 */ b lbl_802D76D8 -lbl_802D76A8: -/* 802D76A8 002D45E8 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D76AC 002D45EC 40 82 00 24 */ bne lbl_802D76D0 -/* 802D76B0 002D45F0 7F 83 E3 78 */ mr r3, r28 -/* 802D76B4 002D45F4 7F A4 EB 78 */ mr r4, r29 -/* 802D76B8 002D45F8 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D76BC 002D45FC 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D76C0 002D4600 7D 89 03 A6 */ mtctr r12 -/* 802D76C4 002D4604 4E 80 04 21 */ bctrl -/* 802D76C8 002D4608 90 7E 00 00 */ stw r3, 0(r30) -/* 802D76CC 002D460C 48 00 00 0C */ b lbl_802D76D8 -lbl_802D76D0: -/* 802D76D0 002D4610 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 802D76D4 002D4614 90 1E 00 00 */ stw r0, 0(r30) -lbl_802D76D8: -/* 802D76D8 002D4618 80 7D 00 10 */ lwz r3, 0x10(r29) -lbl_802D76DC: -/* 802D76DC 002D461C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D76E0 002D4620 48 08 AB 45 */ bl _restgpr_28 -/* 802D76E4 002D4624 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D76E8 002D4628 7C 08 03 A6 */ mtlr r0 -/* 802D76EC 002D462C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D76F0 002D4630 4E 80 00 20 */ blr -/* 802D76F4 002D4634 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D76F8 002D4638 7C 08 02 A6 */ mflr r0 -/* 802D76FC 002D463C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D7700 002D4640 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7704 002D4644 48 08 AA D1 */ bl _savegpr_27 -/* 802D7708 002D4648 7C 9B 23 78 */ mr r27, r4 -/* 802D770C 002D464C 7C BC 2B 78 */ mr r28, r5 -/* 802D7710 002D4650 7C DD 33 78 */ mr r29, r6 -/* 802D7714 002D4654 7C FE 3B 78 */ mr r30, r7 -/* 802D7718 002D4658 83 E6 00 0C */ lwz r31, 0xc(r6) -/* 802D771C 002D465C 7C 1F E0 40 */ cmplw r31, r28 -/* 802D7720 002D4660 40 81 00 08 */ ble lbl_802D7728 -/* 802D7724 002D4664 7F 9F E3 78 */ mr r31, r28 -lbl_802D7728: -/* 802D7728 002D4668 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D772C 002D466C 54 04 46 3E */ srwi r4, r0, 0x18 -/* 802D7730 002D4670 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D7734 002D4674 40 82 00 0C */ bne lbl_802D7740 -/* 802D7738 002D4678 38 E0 00 00 */ li r7, 0 -/* 802D773C 002D467C 48 00 00 18 */ b lbl_802D7754 -lbl_802D7740: -/* 802D7740 002D4680 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18 -/* 802D7744 002D4684 41 82 00 0C */ beq lbl_802D7750 -/* 802D7748 002D4688 38 E0 00 02 */ li r7, 2 -/* 802D774C 002D468C 48 00 00 08 */ b lbl_802D7754 -lbl_802D7750: -/* 802D7750 002D4690 38 E0 00 01 */ li r7, 1 -lbl_802D7754: -/* 802D7754 002D4694 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 802D7758 002D4698 28 00 00 00 */ cmplwi r0, 0 -/* 802D775C 002D469C 40 82 00 30 */ bne lbl_802D778C -/* 802D7760 002D46A0 57 9C 00 34 */ rlwinm r28, r28, 0, 0, 0x1a -/* 802D7764 002D46A4 80 63 00 64 */ lwz r3, 0x64(r3) -/* 802D7768 002D46A8 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D776C 002D46AC 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D7770 002D46B0 7C 60 1A 14 */ add r3, r0, r3 -/* 802D7774 002D46B4 7F E4 FB 78 */ mr r4, r31 -/* 802D7778 002D46B8 7F 65 DB 78 */ mr r5, r27 -/* 802D777C 002D46BC 7F 86 E3 78 */ mr r6, r28 -/* 802D7780 002D46C0 48 00 00 D9 */ bl JKRAramArchive_NS_fetchResource_subroutine -/* 802D7784 002D46C4 7C 7F 1B 78 */ mr r31, r3 -/* 802D7788 002D46C8 48 00 00 48 */ b lbl_802D77D0 -lbl_802D778C: -/* 802D778C 002D46CC 2C 07 00 02 */ cmpwi r7, 2 -/* 802D7790 002D46D0 40 82 00 24 */ bne lbl_802D77B4 -/* 802D7794 002D46D4 7F A4 EB 78 */ mr r4, r29 -/* 802D7798 002D46D8 81 83 00 00 */ lwz r12, 0(r3) -/* 802D779C 002D46DC 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D77A0 002D46E0 7D 89 03 A6 */ mtctr r12 -/* 802D77A4 002D46E4 4E 80 04 21 */ bctrl -/* 802D77A8 002D46E8 28 03 00 00 */ cmplwi r3, 0 -/* 802D77AC 002D46EC 41 82 00 08 */ beq lbl_802D77B4 -/* 802D77B0 002D46F0 7C 7F 1B 78 */ mr r31, r3 -lbl_802D77B4: -/* 802D77B4 002D46F4 7C 1F E0 40 */ cmplw r31, r28 -/* 802D77B8 002D46F8 40 81 00 08 */ ble lbl_802D77C0 -/* 802D77BC 002D46FC 7F 9F E3 78 */ mr r31, r28 -lbl_802D77C0: -/* 802D77C0 002D4700 7F 63 DB 78 */ mr r3, r27 -/* 802D77C4 002D4704 80 9D 00 10 */ lwz r4, 0x10(r29) -/* 802D77C8 002D4708 7F E5 FB 78 */ mr r5, r31 -/* 802D77CC 002D470C 4B FF 73 4D */ bl copyMemory__7JKRHeapFPvPvUl -lbl_802D77D0: -/* 802D77D0 002D4710 28 1E 00 00 */ cmplwi r30, 0 -/* 802D77D4 002D4714 41 82 00 08 */ beq lbl_802D77DC -/* 802D77D8 002D4718 93 FE 00 00 */ stw r31, 0(r30) -lbl_802D77DC: -/* 802D77DC 002D471C 7F 63 DB 78 */ mr r3, r27 -/* 802D77E0 002D4720 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D77E4 002D4724 48 08 AA 3D */ bl _restgpr_27 -/* 802D77E8 002D4728 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D77EC 002D472C 7C 08 03 A6 */ mtlr r0 -/* 802D77F0 002D4730 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D77F4 002D4734 4E 80 00 20 */ blr - -.global JKRAramArchive_NS_getAramAddress_Entry -JKRAramArchive_NS_getAramAddress_Entry: -/* 802D77F8 002D4738 28 04 00 00 */ cmplwi r4, 0 -/* 802D77FC 002D473C 40 82 00 0C */ bne lbl_802D7808 -/* 802D7800 002D4740 38 60 00 00 */ li r3, 0 -/* 802D7804 002D4744 4E 80 00 20 */ blr -lbl_802D7808: -/* 802D7808 002D4748 80 63 00 64 */ lwz r3, 0x64(r3) -/* 802D780C 002D474C 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D7810 002D4750 80 04 00 08 */ lwz r0, 8(r4) -/* 802D7814 002D4754 7C 60 1A 14 */ add r3, r0, r3 -/* 802D7818 002D4758 4E 80 00 20 */ blr - -.global JKRAramArchive_NS_getAramAddress -JKRAramArchive_NS_getAramAddress: -/* 802D781C 002D475C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D7820 002D4760 7C 08 02 A6 */ mflr r0 -/* 802D7824 002D4764 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D7828 002D4768 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D782C 002D476C 7C 7F 1B 78 */ mr r31, r3 -/* 802D7830 002D4770 38 A0 00 00 */ li r5, 0 -/* 802D7834 002D4774 4B FF ED 71 */ bl findFsResource__10JKRArchiveCFPCcUl -/* 802D7838 002D4778 7C 64 1B 78 */ mr r4, r3 -/* 802D783C 002D477C 7F E3 FB 78 */ mr r3, r31 -/* 802D7840 002D4780 4B FF FF B9 */ bl JKRAramArchive_NS_getAramAddress_Entry -/* 802D7844 002D4784 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D7848 002D4788 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D784C 002D478C 7C 08 03 A6 */ mtlr r0 -/* 802D7850 002D4790 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D7854 002D4794 4E 80 00 20 */ blr - -.global JKRAramArchive_NS_fetchResource_subroutine -JKRAramArchive_NS_fetchResource_subroutine: -/* 802D7858 002D4798 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D785C 002D479C 7C 08 02 A6 */ mflr r0 -/* 802D7860 002D47A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D7864 002D47A4 38 04 00 1F */ addi r0, r4, 0x1f -/* 802D7868 002D47A8 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a -/* 802D786C 002D47AC 54 C8 00 34 */ rlwinm r8, r6, 0, 0, 0x1a -/* 802D7870 002D47B0 2C 07 00 00 */ cmpwi r7, 0 -/* 802D7874 002D47B4 41 82 00 14 */ beq lbl_802D7888 -/* 802D7878 002D47B8 41 80 00 6C */ blt lbl_802D78E4 -/* 802D787C 002D47BC 2C 07 00 03 */ cmpwi r7, 3 -/* 802D7880 002D47C0 40 80 00 64 */ bge lbl_802D78E4 -/* 802D7884 002D47C4 48 00 00 38 */ b lbl_802D78BC -lbl_802D7888: -/* 802D7888 002D47C8 7C 00 40 40 */ cmplw r0, r8 -/* 802D788C 002D47CC 40 81 00 08 */ ble lbl_802D7894 -/* 802D7890 002D47D0 7D 00 43 78 */ mr r0, r8 -lbl_802D7894: -/* 802D7894 002D47D4 7C A4 2B 78 */ mr r4, r5 -/* 802D7898 002D47D8 7C 05 03 78 */ mr r5, r0 -/* 802D789C 002D47DC 38 C0 00 00 */ li r6, 0 -/* 802D78A0 002D47E0 7D 07 43 78 */ mr r7, r8 -/* 802D78A4 002D47E4 39 00 00 00 */ li r8, 0 -/* 802D78A8 002D47E8 39 20 FF FF */ li r9, -1 -/* 802D78AC 002D47EC 39 41 00 08 */ addi r10, r1, 8 -/* 802D78B0 002D47F0 4B FF AD 05 */ bl JKRAram_NS_aramToMainRam -/* 802D78B4 002D47F4 80 61 00 08 */ lwz r3, 8(r1) -/* 802D78B8 002D47F8 48 00 00 4C */ b lbl_802D7904 -lbl_802D78BC: -/* 802D78BC 002D47FC 7C A4 2B 78 */ mr r4, r5 -/* 802D78C0 002D4800 7C 05 03 78 */ mr r5, r0 -/* 802D78C4 002D4804 38 C0 00 01 */ li r6, 1 -/* 802D78C8 002D4808 7D 07 43 78 */ mr r7, r8 -/* 802D78CC 002D480C 39 00 00 00 */ li r8, 0 -/* 802D78D0 002D4810 39 20 FF FF */ li r9, -1 -/* 802D78D4 002D4814 39 41 00 08 */ addi r10, r1, 8 -/* 802D78D8 002D4818 4B FF AC DD */ bl JKRAram_NS_aramToMainRam -/* 802D78DC 002D481C 80 61 00 08 */ lwz r3, 8(r1) -/* 802D78E0 002D4820 48 00 00 24 */ b lbl_802D7904 -lbl_802D78E4: -/* 802D78E4 002D4824 3C 60 80 3A */ lis r3, lbl_8039D188@ha -/* 802D78E8 002D4828 38 63 D1 88 */ addi r3, r3, lbl_8039D188@l -/* 802D78EC 002D482C 38 80 02 8F */ li r4, 0x28f -/* 802D78F0 002D4830 38 A3 00 13 */ addi r5, r3, 0x13 -/* 802D78F4 002D4834 38 C3 00 16 */ addi r6, r3, 0x16 -/* 802D78F8 002D4838 4C C6 31 82 */ crclr 6 -/* 802D78FC 002D483C 48 00 A9 01 */ bl JUTException_NS_panic_f -/* 802D7900 002D4840 38 60 00 00 */ li r3, 0 -lbl_802D7904: -/* 802D7904 002D4844 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D7908 002D4848 7C 08 03 A6 */ mtlr r0 -/* 802D790C 002D484C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D7910 002D4850 4E 80 00 20 */ blr - -.global JKRAramArchive_NS_fetchResource_subroutine_X1_ -JKRAramArchive_NS_fetchResource_subroutine_X1_: -/* 802D7914 002D4854 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802D7918 002D4858 7C 08 02 A6 */ mflr r0 -/* 802D791C 002D485C 90 01 00 74 */ stw r0, 0x74(r1) -/* 802D7920 002D4860 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D7924 002D4864 48 08 A8 AD */ bl _savegpr_26 -/* 802D7928 002D4868 7C 7C 1B 78 */ mr r28, r3 -/* 802D792C 002D486C 7C 9A 23 78 */ mr r26, r4 -/* 802D7930 002D4870 7C BD 2B 78 */ mr r29, r5 -/* 802D7934 002D4874 7C FE 3B 78 */ mr r30, r7 -/* 802D7938 002D4878 38 1A 00 1F */ addi r0, r26, 0x1f -/* 802D793C 002D487C 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a -/* 802D7940 002D4880 2C 06 00 00 */ cmpwi r6, 0 -/* 802D7944 002D4884 41 82 00 14 */ beq lbl_802D7958 -/* 802D7948 002D4888 41 80 00 E4 */ blt lbl_802D7A2C -/* 802D794C 002D488C 2C 06 00 03 */ cmpwi r6, 3 -/* 802D7950 002D4890 40 80 00 DC */ bge lbl_802D7A2C -/* 802D7954 002D4894 48 00 00 44 */ b lbl_802D7998 -lbl_802D7958: -/* 802D7958 002D4898 7F E3 FB 78 */ mr r3, r31 -/* 802D795C 002D489C 38 80 00 20 */ li r4, 0x20 -/* 802D7960 002D48A0 4B FF 6B 15 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D7964 002D48A4 7C 7B 1B 78 */ mr r27, r3 -/* 802D7968 002D48A8 7F 83 E3 78 */ mr r3, r28 -/* 802D796C 002D48AC 7F 64 DB 78 */ mr r4, r27 -/* 802D7970 002D48B0 7F E5 FB 78 */ mr r5, r31 -/* 802D7974 002D48B4 38 C0 00 00 */ li r6, 0 -/* 802D7978 002D48B8 7F E7 FB 78 */ mr r7, r31 -/* 802D797C 002D48BC 39 00 00 00 */ li r8, 0 -/* 802D7980 002D48C0 39 20 FF FF */ li r9, -1 -/* 802D7984 002D48C4 39 40 00 00 */ li r10, 0 -/* 802D7988 002D48C8 4B FF AC 2D */ bl JKRAram_NS_aramToMainRam -/* 802D798C 002D48CC 93 7E 00 00 */ stw r27, 0(r30) -/* 802D7990 002D48D0 7F 43 D3 78 */ mr r3, r26 -/* 802D7994 002D48D4 48 00 00 B8 */ b lbl_802D7A4C -lbl_802D7998: -/* 802D7998 002D48D8 38 01 00 2B */ addi r0, r1, 0x2b -/* 802D799C 002D48DC 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a -/* 802D79A0 002D48E0 7F 64 DB 78 */ mr r4, r27 -/* 802D79A4 002D48E4 38 A0 00 20 */ li r5, 0x20 -/* 802D79A8 002D48E8 38 C0 00 00 */ li r6, 0 -/* 802D79AC 002D48EC 38 E0 00 00 */ li r7, 0 -/* 802D79B0 002D48F0 39 00 00 00 */ li r8, 0 -/* 802D79B4 002D48F4 39 20 FF FF */ li r9, -1 -/* 802D79B8 002D48F8 39 40 00 00 */ li r10, 0 -/* 802D79BC 002D48FC 4B FF AB F9 */ bl JKRAram_NS_aramToMainRam -/* 802D79C0 002D4900 88 BB 00 07 */ lbz r5, 7(r27) -/* 802D79C4 002D4904 88 9B 00 06 */ lbz r4, 6(r27) -/* 802D79C8 002D4908 88 7B 00 04 */ lbz r3, 4(r27) -/* 802D79CC 002D490C 88 1B 00 05 */ lbz r0, 5(r27) -/* 802D79D0 002D4910 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D79D4 002D4914 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D79D8 002D4918 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D79DC 002D491C 7C A3 03 78 */ or r3, r5, r0 -/* 802D79E0 002D4920 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D79E4 002D4924 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a -/* 802D79E8 002D4928 7F 43 D3 78 */ mr r3, r26 -/* 802D79EC 002D492C 38 80 00 20 */ li r4, 0x20 -/* 802D79F0 002D4930 7F A5 EB 78 */ mr r5, r29 -/* 802D79F4 002D4934 4B FF 6A 81 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D79F8 002D4938 7C 7B 1B 78 */ mr r27, r3 -/* 802D79FC 002D493C 7F 83 E3 78 */ mr r3, r28 -/* 802D7A00 002D4940 7F 64 DB 78 */ mr r4, r27 -/* 802D7A04 002D4944 7F E5 FB 78 */ mr r5, r31 -/* 802D7A08 002D4948 38 C0 00 01 */ li r6, 1 -/* 802D7A0C 002D494C 7F 47 D3 78 */ mr r7, r26 -/* 802D7A10 002D4950 7F A8 EB 78 */ mr r8, r29 -/* 802D7A14 002D4954 39 20 FF FF */ li r9, -1 -/* 802D7A18 002D4958 39 41 00 08 */ addi r10, r1, 8 -/* 802D7A1C 002D495C 4B FF AB 99 */ bl JKRAram_NS_aramToMainRam -/* 802D7A20 002D4960 93 7E 00 00 */ stw r27, 0(r30) -/* 802D7A24 002D4964 80 61 00 08 */ lwz r3, 8(r1) -/* 802D7A28 002D4968 48 00 00 24 */ b lbl_802D7A4C -lbl_802D7A2C: -/* 802D7A2C 002D496C 3C 60 80 3A */ lis r3, lbl_8039D188@ha -/* 802D7A30 002D4970 38 63 D1 88 */ addi r3, r3, lbl_8039D188@l -/* 802D7A34 002D4974 38 80 02 C9 */ li r4, 0x2c9 -/* 802D7A38 002D4978 38 A3 00 13 */ addi r5, r3, 0x13 -/* 802D7A3C 002D497C 38 C3 00 16 */ addi r6, r3, 0x16 -/* 802D7A40 002D4980 4C C6 31 82 */ crclr 6 -/* 802D7A44 002D4984 48 00 A7 B9 */ bl JUTException_NS_panic_f -/* 802D7A48 002D4988 38 60 00 00 */ li r3, 0 -lbl_802D7A4C: -/* 802D7A4C 002D498C 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D7A50 002D4990 48 08 A7 CD */ bl _restgpr_26 -/* 802D7A54 002D4994 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802D7A58 002D4998 7C 08 03 A6 */ mtlr r0 -/* 802D7A5C 002D499C 38 21 00 70 */ addi r1, r1, 0x70 -/* 802D7A60 002D49A0 4E 80 00 20 */ blr -/* 802D7A64 002D49A4 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 802D7A68 002D49A8 7C 08 02 A6 */ mflr r0 -/* 802D7A6C 002D49AC 90 01 00 64 */ stw r0, 0x64(r1) -/* 802D7A70 002D49B0 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D7A74 002D49B4 48 08 A7 69 */ bl _savegpr_29 -/* 802D7A78 002D49B8 7C 7F 1B 78 */ mr r31, r3 -/* 802D7A7C 002D49BC 7C 9E 23 78 */ mr r30, r4 -/* 802D7A80 002D49C0 80 03 00 50 */ lwz r0, 0x50(r3) -/* 802D7A84 002D49C4 28 00 00 00 */ cmplwi r0, 0 -/* 802D7A88 002D49C8 40 82 00 18 */ bne lbl_802D7AA0 -/* 802D7A8C 002D49CC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D7A90 002D49D0 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D7A94 002D49D4 7D 89 03 A6 */ mtctr r12 -/* 802D7A98 002D49D8 4E 80 04 21 */ bctrl -/* 802D7A9C 002D49DC 48 00 00 DC */ b lbl_802D7B78 -lbl_802D7AA0: -/* 802D7AA0 002D49E0 4B FF EC 95 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D7AA4 002D49E4 7C 7D 1B 79 */ or. r29, r3, r3 -/* 802D7AA8 002D49E8 40 82 00 0C */ bne lbl_802D7AB4 -/* 802D7AAC 002D49EC 38 60 FF FF */ li r3, -1 -/* 802D7AB0 002D49F0 48 00 00 C8 */ b lbl_802D7B78 -lbl_802D7AB4: -/* 802D7AB4 002D49F4 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D7AB8 002D49F8 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D7ABC 002D49FC 40 82 00 20 */ bne lbl_802D7ADC -/* 802D7AC0 002D4A00 7F E3 FB 78 */ mr r3, r31 -/* 802D7AC4 002D4A04 7F C4 F3 78 */ mr r4, r30 -/* 802D7AC8 002D4A08 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D7ACC 002D4A0C 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D7AD0 002D4A10 7D 89 03 A6 */ mtctr r12 -/* 802D7AD4 002D4A14 4E 80 04 21 */ bctrl -/* 802D7AD8 002D4A18 48 00 00 A0 */ b lbl_802D7B78 -lbl_802D7ADC: -/* 802D7ADC 002D4A1C 7F E3 FB 78 */ mr r3, r31 -/* 802D7AE0 002D4A20 7F A4 EB 78 */ mr r4, r29 -/* 802D7AE4 002D4A24 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D7AE8 002D4A28 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D7AEC 002D4A2C 7D 89 03 A6 */ mtctr r12 -/* 802D7AF0 002D4A30 4E 80 04 21 */ bctrl -/* 802D7AF4 002D4A34 28 03 00 00 */ cmplwi r3, 0 -/* 802D7AF8 002D4A38 41 82 00 08 */ beq lbl_802D7B00 -/* 802D7AFC 002D4A3C 48 00 00 7C */ b lbl_802D7B78 -lbl_802D7B00: -/* 802D7B00 002D4A40 38 01 00 27 */ addi r0, r1, 0x27 -/* 802D7B04 002D4A44 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a -/* 802D7B08 002D4A48 80 7F 00 64 */ lwz r3, 0x64(r31) -/* 802D7B0C 002D4A4C 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D7B10 002D4A50 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D7B14 002D4A54 7C 60 1A 14 */ add r3, r0, r3 -/* 802D7B18 002D4A58 7F C4 F3 78 */ mr r4, r30 -/* 802D7B1C 002D4A5C 38 A0 00 20 */ li r5, 0x20 -/* 802D7B20 002D4A60 38 C0 00 00 */ li r6, 0 -/* 802D7B24 002D4A64 38 E0 00 00 */ li r7, 0 -/* 802D7B28 002D4A68 39 00 00 00 */ li r8, 0 -/* 802D7B2C 002D4A6C 39 20 FF FF */ li r9, -1 -/* 802D7B30 002D4A70 39 40 00 00 */ li r10, 0 -/* 802D7B34 002D4A74 4B FF AA 81 */ bl JKRAram_NS_aramToMainRam -/* 802D7B38 002D4A78 88 BE 00 07 */ lbz r5, 7(r30) -/* 802D7B3C 002D4A7C 88 9E 00 06 */ lbz r4, 6(r30) -/* 802D7B40 002D4A80 88 7E 00 04 */ lbz r3, 4(r30) -/* 802D7B44 002D4A84 88 1E 00 05 */ lbz r0, 5(r30) -/* 802D7B48 002D4A88 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D7B4C 002D4A8C 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D7B50 002D4A90 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D7B54 002D4A94 7C BE 03 78 */ or r30, r5, r0 -/* 802D7B58 002D4A98 7F E3 FB 78 */ mr r3, r31 -/* 802D7B5C 002D4A9C 7F A4 EB 78 */ mr r4, r29 -/* 802D7B60 002D4AA0 7F C5 F3 78 */ mr r5, r30 -/* 802D7B64 002D4AA4 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D7B68 002D4AA8 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D7B6C 002D4AAC 7D 89 03 A6 */ mtctr r12 -/* 802D7B70 002D4AB0 4E 80 04 21 */ bctrl -/* 802D7B74 002D4AB4 7F C3 F3 78 */ mr r3, r30 -lbl_802D7B78: -/* 802D7B78 002D4AB8 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D7B7C 002D4ABC 48 08 A6 AD */ bl _restgpr_29 -/* 802D7B80 002D4AC0 80 01 00 64 */ lwz r0, 0x64(r1) -/* 802D7B84 002D4AC4 7C 08 03 A6 */ mtlr r0 -/* 802D7B88 002D4AC8 38 21 00 60 */ addi r1, r1, 0x60 -/* 802D7B8C 002D4ACC 4E 80 00 20 */ blr /* 802D7B90 002D4AD0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802D7B94 002D4AD4 7C 08 02 A6 */ mflr r0 /* 802D7B98 002D4AD8 90 01 00 14 */ stw r0, 0x14(r1) @@ -799,5 +26,4 @@ lbl_802D7BD4: /* 802D7BE0 002D4B20 80 01 00 14 */ lwz r0, 0x14(r1) /* 802D7BE4 002D4B24 7C 08 03 A6 */ mtlr r0 /* 802D7BE8 002D4B28 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D7BEC 002D4B2C 4E 80 00 20 */ blr - +/* 802D7BEC 002D4B2C 4E 80 00 20 */ blr diff --git a/asm/JKernel/JKRAramBlock.s b/asm/JKernel/JKRAramBlock.s deleted file mode 100644 index 78e74305ed..0000000000 --- a/asm/JKernel/JKRAramBlock.s +++ /dev/null @@ -1,176 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802d3304 - - -.global JKRAramBlock -JKRAramBlock: -/* 802D3304 002D0244 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3308 002D0248 7C 08 02 A6 */ mflr r0 -/* 802D330C 002D024C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3310 002D0250 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3314 002D0254 48 08 EE BD */ bl _savegpr_26 -/* 802D3318 002D0258 7C 7A 1B 78 */ mr r26, r3 -/* 802D331C 002D025C 7C 9B 23 78 */ mr r27, r4 -/* 802D3320 002D0260 7C BC 2B 78 */ mr r28, r5 -/* 802D3324 002D0264 7C DD 33 78 */ mr r29, r6 -/* 802D3328 002D0268 7C FE 3B 78 */ mr r30, r7 -/* 802D332C 002D026C 7D 1F 43 78 */ mr r31, r8 -/* 802D3330 002D0270 3C 60 80 3D */ lis r3, lbl_803CC178@ha -/* 802D3334 002D0274 38 03 C1 78 */ addi r0, r3, lbl_803CC178@l -/* 802D3338 002D0278 90 1A 00 00 */ stw r0, 0(r26) -/* 802D333C 002D027C 38 7A 00 04 */ addi r3, r26, 4 -/* 802D3340 002D0280 7F 44 D3 78 */ mr r4, r26 -/* 802D3344 002D0284 48 00 8A B9 */ bl __ct__10JSUPtrLinkFPv -/* 802D3348 002D0288 93 7A 00 14 */ stw r27, 0x14(r26) -/* 802D334C 002D028C 93 9A 00 18 */ stw r28, 0x18(r26) -/* 802D3350 002D0290 93 BA 00 1C */ stw r29, 0x1c(r26) -/* 802D3354 002D0294 9B DA 00 20 */ stb r30, 0x20(r26) -/* 802D3358 002D0298 9B FA 00 21 */ stb r31, 0x21(r26) -/* 802D335C 002D029C 7F 43 D3 78 */ mr r3, r26 -/* 802D3360 002D02A0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3364 002D02A4 48 08 EE B9 */ bl _restgpr_26 -/* 802D3368 002D02A8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D336C 002D02AC 7C 08 03 A6 */ mtlr r0 -/* 802D3370 002D02B0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3374 002D02B4 4E 80 00 20 */ blr -/* 802D3378 002D02B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D337C 002D02BC 7C 08 02 A6 */ mflr r0 -/* 802D3380 002D02C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3384 002D02C4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3388 002D02C8 93 C1 00 08 */ stw r30, 8(r1) -/* 802D338C 002D02CC 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D3390 002D02D0 7C 9F 23 78 */ mr r31, r4 -/* 802D3394 002D02D4 41 82 00 84 */ beq lbl_802D3418 -/* 802D3398 002D02D8 3C 60 80 3D */ lis r3, lbl_803CC178@ha -/* 802D339C 002D02DC 38 03 C1 78 */ addi r0, r3, lbl_803CC178@l -/* 802D33A0 002D02E0 90 1E 00 00 */ stw r0, 0(r30) -/* 802D33A4 002D02E4 80 7E 00 08 */ lwz r3, 8(r30) -/* 802D33A8 002D02E8 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 802D33AC 002D02EC 28 04 00 00 */ cmplwi r4, 0 -/* 802D33B0 002D02F0 41 82 00 2C */ beq lbl_802D33DC -/* 802D33B4 002D02F4 80 C4 00 00 */ lwz r6, 0(r4) -/* 802D33B8 002D02F8 80 A6 00 1C */ lwz r5, 0x1c(r6) -/* 802D33BC 002D02FC 80 9E 00 18 */ lwz r4, 0x18(r30) -/* 802D33C0 002D0300 80 1E 00 1C */ lwz r0, 0x1c(r30) -/* 802D33C4 002D0304 7C 00 2A 14 */ add r0, r0, r5 -/* 802D33C8 002D0308 7C 04 02 14 */ add r0, r4, r0 -/* 802D33CC 002D030C 90 06 00 1C */ stw r0, 0x1c(r6) -/* 802D33D0 002D0310 38 9E 00 04 */ addi r4, r30, 4 -/* 802D33D4 002D0314 48 00 8D 89 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D33D8 002D0318 48 00 00 1C */ b lbl_802D33F4 -lbl_802D33DC: -/* 802D33DC 002D031C 80 7E 00 1C */ lwz r3, 0x1c(r30) -/* 802D33E0 002D0320 80 1E 00 18 */ lwz r0, 0x18(r30) -/* 802D33E4 002D0324 7C 03 02 14 */ add r0, r3, r0 -/* 802D33E8 002D0328 90 1E 00 1C */ stw r0, 0x1c(r30) -/* 802D33EC 002D032C 38 00 00 00 */ li r0, 0 -/* 802D33F0 002D0330 90 1E 00 18 */ stw r0, 0x18(r30) -lbl_802D33F4: -/* 802D33F4 002D0334 34 1E 00 04 */ addic. r0, r30, 4 -/* 802D33F8 002D0338 41 82 00 10 */ beq lbl_802D3408 -/* 802D33FC 002D033C 38 7E 00 04 */ addi r3, r30, 4 -/* 802D3400 002D0340 38 80 00 00 */ li r4, 0 -/* 802D3404 002D0344 48 00 8A 11 */ bl __dt__10JSUPtrLinkFv -lbl_802D3408: -/* 802D3408 002D0348 7F E0 07 35 */ extsh. r0, r31 -/* 802D340C 002D034C 40 81 00 0C */ ble lbl_802D3418 -/* 802D3410 002D0350 7F C3 F3 78 */ mr r3, r30 -/* 802D3414 002D0354 4B FF B9 29 */ bl __dl__FPv -lbl_802D3418: -/* 802D3418 002D0358 7F C3 F3 78 */ mr r3, r30 -/* 802D341C 002D035C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3420 002D0360 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3424 002D0364 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3428 002D0368 7C 08 03 A6 */ mtlr r0 -/* 802D342C 002D036C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3430 002D0370 4E 80 00 20 */ blr - -.global JKRAramBlock_NS_allocHead -JKRAramBlock_NS_allocHead: -/* 802D3434 002D0374 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3438 002D0378 7C 08 02 A6 */ mflr r0 -/* 802D343C 002D037C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3440 002D0380 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3444 002D0384 48 08 ED 8D */ bl _savegpr_26 -/* 802D3448 002D0388 7C 7A 1B 78 */ mr r26, r3 -/* 802D344C 002D038C 7C 9B 23 78 */ mr r27, r4 -/* 802D3450 002D0390 7C BC 2B 78 */ mr r28, r5 -/* 802D3454 002D0394 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D3458 002D0398 80 1A 00 18 */ lwz r0, 0x18(r26) -/* 802D345C 002D039C 7F C3 02 14 */ add r30, r3, r0 -/* 802D3460 002D03A0 80 1A 00 1C */ lwz r0, 0x1c(r26) -/* 802D3464 002D03A4 7F BB 00 50 */ subf r29, r27, r0 -/* 802D3468 002D03A8 38 60 00 24 */ li r3, 0x24 -/* 802D346C 002D03AC 80 86 00 30 */ lwz r4, 0x30(r6) -/* 802D3470 002D03B0 38 A0 00 00 */ li r5, 0 -/* 802D3474 002D03B4 4B FF B8 25 */ bl __nw__FUlP7JKRHeapi -/* 802D3478 002D03B8 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D347C 002D03BC 41 82 00 20 */ beq lbl_802D349C -/* 802D3480 002D03C0 7F C4 F3 78 */ mr r4, r30 -/* 802D3484 002D03C4 7F 65 DB 78 */ mr r5, r27 -/* 802D3488 002D03C8 7F A6 EB 78 */ mr r6, r29 -/* 802D348C 002D03CC 7F 87 E3 78 */ mr r7, r28 -/* 802D3490 002D03D0 39 00 00 00 */ li r8, 0 -/* 802D3494 002D03D4 4B FF FE 71 */ bl JKRAramBlock -/* 802D3498 002D03D8 7C 7F 1B 78 */ mr r31, r3 -lbl_802D349C: -/* 802D349C 002D03DC 38 00 00 00 */ li r0, 0 -/* 802D34A0 002D03E0 90 1A 00 1C */ stw r0, 0x1c(r26) -/* 802D34A4 002D03E4 80 9A 00 10 */ lwz r4, 0x10(r26) -/* 802D34A8 002D03E8 80 7A 00 08 */ lwz r3, 8(r26) -/* 802D34AC 002D03EC 38 BF 00 04 */ addi r5, r31, 4 -/* 802D34B0 002D03F0 48 00 8B E5 */ bl insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink -/* 802D34B4 002D03F4 7F E3 FB 78 */ mr r3, r31 -/* 802D34B8 002D03F8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D34BC 002D03FC 48 08 ED 61 */ bl _restgpr_26 -/* 802D34C0 002D0400 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D34C4 002D0404 7C 08 03 A6 */ mtlr r0 -/* 802D34C8 002D0408 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D34CC 002D040C 4E 80 00 20 */ blr - -.global JKRAramBlock_NS_allocTail -JKRAramBlock_NS_allocTail: -/* 802D34D0 002D0410 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D34D4 002D0414 7C 08 02 A6 */ mflr r0 -/* 802D34D8 002D0418 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D34DC 002D041C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D34E0 002D0420 48 08 EC F5 */ bl _savegpr_27 -/* 802D34E4 002D0424 7C 7B 1B 78 */ mr r27, r3 -/* 802D34E8 002D0428 7C 9C 23 78 */ mr r28, r4 -/* 802D34EC 002D042C 7C BD 2B 78 */ mr r29, r5 -/* 802D34F0 002D0430 80 83 00 1C */ lwz r4, 0x1c(r3) -/* 802D34F4 002D0434 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D34F8 002D0438 80 1B 00 18 */ lwz r0, 0x18(r27) -/* 802D34FC 002D043C 7C 00 22 14 */ add r0, r0, r4 -/* 802D3500 002D0440 7C 03 02 14 */ add r0, r3, r0 -/* 802D3504 002D0444 7F DC 00 50 */ subf r30, r28, r0 -/* 802D3508 002D0448 38 60 00 24 */ li r3, 0x24 -/* 802D350C 002D044C 80 86 00 30 */ lwz r4, 0x30(r6) -/* 802D3510 002D0450 38 A0 00 00 */ li r5, 0 -/* 802D3514 002D0454 4B FF B7 85 */ bl __nw__FUlP7JKRHeapi -/* 802D3518 002D0458 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D351C 002D045C 41 82 00 20 */ beq lbl_802D353C -/* 802D3520 002D0460 7F C4 F3 78 */ mr r4, r30 -/* 802D3524 002D0464 7F 85 E3 78 */ mr r5, r28 -/* 802D3528 002D0468 38 C0 00 00 */ li r6, 0 -/* 802D352C 002D046C 7F A7 EB 78 */ mr r7, r29 -/* 802D3530 002D0470 39 00 00 01 */ li r8, 1 -/* 802D3534 002D0474 4B FF FD D1 */ bl JKRAramBlock -/* 802D3538 002D0478 7C 7F 1B 78 */ mr r31, r3 -lbl_802D353C: -/* 802D353C 002D047C 80 1B 00 1C */ lwz r0, 0x1c(r27) -/* 802D3540 002D0480 7C 1C 00 50 */ subf r0, r28, r0 -/* 802D3544 002D0484 90 1B 00 1C */ stw r0, 0x1c(r27) -/* 802D3548 002D0488 80 9B 00 10 */ lwz r4, 0x10(r27) -/* 802D354C 002D048C 80 7B 00 08 */ lwz r3, 8(r27) -/* 802D3550 002D0490 38 BF 00 04 */ addi r5, r31, 4 -/* 802D3554 002D0494 48 00 8B 41 */ bl insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink -/* 802D3558 002D0498 7F E3 FB 78 */ mr r3, r31 -/* 802D355C 002D049C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3560 002D04A0 48 08 EC C1 */ bl _restgpr_27 -/* 802D3564 002D04A4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D3568 002D04A8 7C 08 03 A6 */ mtlr r0 -/* 802D356C 002D04AC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3570 002D04B0 4E 80 00 20 */ blr - diff --git a/asm/JKernel/JKRAramHeap.s b/asm/JKernel/JKRAramHeap.s index d10ce69f7f..8d1e0dc6a6 100644 --- a/asm/JKernel/JKRAramHeap.s +++ b/asm/JKernel/JKRAramHeap.s @@ -1,319 +1,9 @@ .include "macros.inc" -.section .text, "ax" # 802d2e44 +.section .text, "ax" # 802D326C - -.global JKRAramHeap -JKRAramHeap: -/* 802D2E44 002CFD84 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2E48 002CFD88 7C 08 02 A6 */ mflr r0 -/* 802D2E4C 002CFD8C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D2E50 002CFD90 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2E54 002CFD94 48 08 F3 89 */ bl _savegpr_29 -/* 802D2E58 002CFD98 7C 7D 1B 78 */ mr r29, r3 -/* 802D2E5C 002CFD9C 7C 9E 23 78 */ mr r30, r4 -/* 802D2E60 002CFDA0 7C BF 2B 78 */ mr r31, r5 -/* 802D2E64 002CFDA4 4B FF E6 19 */ bl __ct__11JKRDisposerFv -/* 802D2E68 002CFDA8 3C 60 80 3D */ lis r3, lbl_803CC168@ha -/* 802D2E6C 002CFDAC 38 03 C1 68 */ addi r0, r3, lbl_803CC168@l -/* 802D2E70 002CFDB0 90 1D 00 00 */ stw r0, 0(r29) -/* 802D2E74 002CFDB4 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D2E78 002CFDB8 48 06 C1 91 */ bl OSInitMutex -/* 802D2E7C 002CFDBC 7F A3 EB 78 */ mr r3, r29 -/* 802D2E80 002CFDC0 4B FF B9 BD */ bl findFromRoot__7JKRHeapFPv -/* 802D2E84 002CFDC4 90 7D 00 30 */ stw r3, 0x30(r29) -/* 802D2E88 002CFDC8 57 E0 00 34 */ rlwinm r0, r31, 0, 0, 0x1a -/* 802D2E8C 002CFDCC 90 1D 00 3C */ stw r0, 0x3c(r29) -/* 802D2E90 002CFDD0 38 1E 00 1F */ addi r0, r30, 0x1f -/* 802D2E94 002CFDD4 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a -/* 802D2E98 002CFDD8 90 1D 00 34 */ stw r0, 0x34(r29) -/* 802D2E9C 002CFDDC 80 7D 00 34 */ lwz r3, 0x34(r29) -/* 802D2EA0 002CFDE0 80 1D 00 3C */ lwz r0, 0x3c(r29) -/* 802D2EA4 002CFDE4 7C 03 02 14 */ add r0, r3, r0 -/* 802D2EA8 002CFDE8 90 1D 00 38 */ stw r0, 0x38(r29) -/* 802D2EAC 002CFDEC 38 00 00 FF */ li r0, 0xff -/* 802D2EB0 002CFDF0 98 1D 00 40 */ stb r0, 0x40(r29) -/* 802D2EB4 002CFDF4 38 60 00 24 */ li r3, 0x24 -/* 802D2EB8 002CFDF8 80 9D 00 30 */ lwz r4, 0x30(r29) -/* 802D2EBC 002CFDFC 38 A0 00 00 */ li r5, 0 -/* 802D2EC0 002CFE00 4B FF BD D9 */ bl __nw__FUlP7JKRHeapi -/* 802D2EC4 002CFE04 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D2EC8 002CFE08 41 82 00 20 */ beq lbl_802D2EE8 -/* 802D2ECC 002CFE0C 80 9D 00 34 */ lwz r4, 0x34(r29) -/* 802D2ED0 002CFE10 38 A0 00 00 */ li r5, 0 -/* 802D2ED4 002CFE14 80 DD 00 3C */ lwz r6, 0x3c(r29) -/* 802D2ED8 002CFE18 38 E0 00 FF */ li r7, 0xff -/* 802D2EDC 002CFE1C 39 00 00 00 */ li r8, 0 -/* 802D2EE0 002CFE20 48 00 04 25 */ bl JKRAramBlock -/* 802D2EE4 002CFE24 7C 64 1B 78 */ mr r4, r3 -lbl_802D2EE8: -/* 802D2EE8 002CFE28 3C 60 80 43 */ lis r3, lbl_8043430C@ha -/* 802D2EEC 002CFE2C 38 63 43 0C */ addi r3, r3, lbl_8043430C@l -/* 802D2EF0 002CFE30 38 84 00 04 */ addi r4, r4, 4 -/* 802D2EF4 002CFE34 48 00 90 59 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802D2EF8 002CFE38 7F A3 EB 78 */ mr r3, r29 -/* 802D2EFC 002CFE3C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2F00 002CFE40 48 08 F3 29 */ bl _restgpr_29 -/* 802D2F04 002CFE44 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2F08 002CFE48 7C 08 03 A6 */ mtlr r0 -/* 802D2F0C 002CFE4C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D2F10 002CFE50 4E 80 00 20 */ blr -/* 802D2F14 002CFE54 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2F18 002CFE58 7C 08 02 A6 */ mflr r0 -/* 802D2F1C 002CFE5C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D2F20 002CFE60 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2F24 002CFE64 48 08 F2 B9 */ bl _savegpr_29 -/* 802D2F28 002CFE68 7C 7D 1B 79 */ or. r29, r3, r3 -/* 802D2F2C 002CFE6C 7C 9E 23 78 */ mr r30, r4 -/* 802D2F30 002CFE70 41 82 00 70 */ beq lbl_802D2FA0 -/* 802D2F34 002CFE74 3C 60 80 3D */ lis r3, lbl_803CC168@ha -/* 802D2F38 002CFE78 38 03 C1 68 */ addi r0, r3, lbl_803CC168@l -/* 802D2F3C 002CFE7C 90 1D 00 00 */ stw r0, 0(r29) -/* 802D2F40 002CFE80 3C 60 80 43 */ lis r3, lbl_8043430C@ha -/* 802D2F44 002CFE84 83 E3 43 0C */ lwz r31, lbl_8043430C@l(r3) -/* 802D2F48 002CFE88 48 00 00 34 */ b lbl_802D2F7C -lbl_802D2F4C: -/* 802D2F4C 002CFE8C 93 E1 00 08 */ stw r31, 8(r1) -/* 802D2F50 002CFE90 83 FF 00 0C */ lwz r31, 0xc(r31) -/* 802D2F54 002CFE94 80 61 00 08 */ lwz r3, 8(r1) -/* 802D2F58 002CFE98 90 61 00 0C */ stw r3, 0xc(r1) -/* 802D2F5C 002CFE9C 80 63 00 00 */ lwz r3, 0(r3) -/* 802D2F60 002CFEA0 28 03 00 00 */ cmplwi r3, 0 -/* 802D2F64 002CFEA4 41 82 00 18 */ beq lbl_802D2F7C -/* 802D2F68 002CFEA8 38 80 00 01 */ li r4, 1 -/* 802D2F6C 002CFEAC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D2F70 002CFEB0 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D2F74 002CFEB4 7D 89 03 A6 */ mtctr r12 -/* 802D2F78 002CFEB8 4E 80 04 21 */ bctrl -lbl_802D2F7C: -/* 802D2F7C 002CFEBC 28 1F 00 00 */ cmplwi r31, 0 -/* 802D2F80 002CFEC0 40 82 FF CC */ bne lbl_802D2F4C -/* 802D2F84 002CFEC4 7F A3 EB 78 */ mr r3, r29 -/* 802D2F88 002CFEC8 38 80 00 00 */ li r4, 0 -/* 802D2F8C 002CFECC 4B FF E5 59 */ bl __dt__11JKRDisposerFv -/* 802D2F90 002CFED0 7F C0 07 35 */ extsh. r0, r30 -/* 802D2F94 002CFED4 40 81 00 0C */ ble lbl_802D2FA0 -/* 802D2F98 002CFED8 7F A3 EB 78 */ mr r3, r29 -/* 802D2F9C 002CFEDC 4B FF BD A1 */ bl __dl__FPv -lbl_802D2FA0: -/* 802D2FA0 002CFEE0 7F A3 EB 78 */ mr r3, r29 -/* 802D2FA4 002CFEE4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2FA8 002CFEE8 48 08 F2 81 */ bl _restgpr_29 -/* 802D2FAC 002CFEEC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D2FB0 002CFEF0 7C 08 03 A6 */ mtlr r0 -/* 802D2FB4 002CFEF4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D2FB8 002CFEF8 4E 80 00 20 */ blr - -.global JKRAramHeap_NS_alloc -JKRAramHeap_NS_alloc: -/* 802D2FBC 002CFEFC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D2FC0 002CFF00 7C 08 02 A6 */ mflr r0 -/* 802D2FC4 002CFF04 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D2FC8 002CFF08 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D2FCC 002CFF0C 48 08 F2 11 */ bl _savegpr_29 -/* 802D2FD0 002CFF10 7C 7D 1B 78 */ mr r29, r3 -/* 802D2FD4 002CFF14 7C 9E 23 78 */ mr r30, r4 -/* 802D2FD8 002CFF18 7C BF 2B 78 */ mr r31, r5 -/* 802D2FDC 002CFF1C 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D2FE0 002CFF20 48 06 C0 61 */ bl OSLockMutex -/* 802D2FE4 002CFF24 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D2FE8 002CFF28 40 82 00 18 */ bne lbl_802D3000 -/* 802D2FEC 002CFF2C 7F A3 EB 78 */ mr r3, r29 -/* 802D2FF0 002CFF30 7F C4 F3 78 */ mr r4, r30 -/* 802D2FF4 002CFF34 48 00 00 41 */ bl JKRAramHeap_NS_allocFromHead -/* 802D2FF8 002CFF38 7C 7F 1B 78 */ mr r31, r3 -/* 802D2FFC 002CFF3C 48 00 00 14 */ b lbl_802D3010 -lbl_802D3000: -/* 802D3000 002CFF40 7F A3 EB 78 */ mr r3, r29 -/* 802D3004 002CFF44 7F C4 F3 78 */ mr r4, r30 -/* 802D3008 002CFF48 48 00 00 B5 */ bl JKRAramHeap_NS_allocFromTail -/* 802D300C 002CFF4C 7C 7F 1B 78 */ mr r31, r3 -lbl_802D3010: -/* 802D3010 002CFF50 38 7D 00 18 */ addi r3, r29, 0x18 -/* 802D3014 002CFF54 48 06 C1 09 */ bl OSUnlockMutex -/* 802D3018 002CFF58 7F E3 FB 78 */ mr r3, r31 -/* 802D301C 002CFF5C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3020 002CFF60 48 08 F2 09 */ bl _restgpr_29 -/* 802D3024 002CFF64 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D3028 002CFF68 7C 08 03 A6 */ mtlr r0 -/* 802D302C 002CFF6C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3030 002CFF70 4E 80 00 20 */ blr - -.global JKRAramHeap_NS_allocFromHead -JKRAramHeap_NS_allocFromHead: -/* 802D3034 002CFF74 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3038 002CFF78 7C 08 02 A6 */ mflr r0 -/* 802D303C 002CFF7C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3040 002CFF80 7C 66 1B 78 */ mr r6, r3 -/* 802D3044 002CFF84 38 04 00 1F */ addi r0, r4, 0x1f -/* 802D3048 002CFF88 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a -/* 802D304C 002CFF8C 39 00 FF FF */ li r8, -1 -/* 802D3050 002CFF90 38 60 00 00 */ li r3, 0 -/* 802D3054 002CFF94 3C A0 80 43 */ lis r5, lbl_8043430C@ha -/* 802D3058 002CFF98 80 E5 43 0C */ lwz r7, lbl_8043430C@l(r5) -/* 802D305C 002CFF9C 48 00 00 30 */ b lbl_802D308C -lbl_802D3060: -/* 802D3060 002CFFA0 80 A7 00 00 */ lwz r5, 0(r7) -/* 802D3064 002CFFA4 80 05 00 1C */ lwz r0, 0x1c(r5) -/* 802D3068 002CFFA8 7C 00 20 40 */ cmplw r0, r4 -/* 802D306C 002CFFAC 41 80 00 1C */ blt lbl_802D3088 -/* 802D3070 002CFFB0 7C 08 00 40 */ cmplw r8, r0 -/* 802D3074 002CFFB4 40 81 00 14 */ ble lbl_802D3088 -/* 802D3078 002CFFB8 7C 08 03 78 */ mr r8, r0 -/* 802D307C 002CFFBC 7C A3 2B 78 */ mr r3, r5 -/* 802D3080 002CFFC0 7C 00 20 40 */ cmplw r0, r4 -/* 802D3084 002CFFC4 41 82 00 10 */ beq lbl_802D3094 -lbl_802D3088: -/* 802D3088 002CFFC8 80 E7 00 0C */ lwz r7, 0xc(r7) -lbl_802D308C: -/* 802D308C 002CFFCC 28 07 00 00 */ cmplwi r7, 0 -/* 802D3090 002CFFD0 40 82 FF D0 */ bne lbl_802D3060 -lbl_802D3094: -/* 802D3094 002CFFD4 28 03 00 00 */ cmplwi r3, 0 -/* 802D3098 002CFFD8 41 82 00 10 */ beq lbl_802D30A8 -/* 802D309C 002CFFDC 88 A6 00 40 */ lbz r5, 0x40(r6) -/* 802D30A0 002CFFE0 48 00 03 95 */ bl JKRAramBlock_NS_allocHead -/* 802D30A4 002CFFE4 48 00 00 08 */ b lbl_802D30AC -lbl_802D30A8: -/* 802D30A8 002CFFE8 38 60 00 00 */ li r3, 0 -lbl_802D30AC: -/* 802D30AC 002CFFEC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D30B0 002CFFF0 7C 08 03 A6 */ mtlr r0 -/* 802D30B4 002CFFF4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D30B8 002CFFF8 4E 80 00 20 */ blr - -.global JKRAramHeap_NS_allocFromTail -JKRAramHeap_NS_allocFromTail: -/* 802D30BC 002CFFFC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D30C0 002D0000 7C 08 02 A6 */ mflr r0 -/* 802D30C4 002D0004 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D30C8 002D0008 7C 66 1B 78 */ mr r6, r3 -/* 802D30CC 002D000C 38 04 00 1F */ addi r0, r4, 0x1f -/* 802D30D0 002D0010 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a -/* 802D30D4 002D0014 38 60 00 00 */ li r3, 0 -/* 802D30D8 002D0018 3C A0 80 43 */ lis r5, lbl_8043430C@ha -/* 802D30DC 002D001C 38 A5 43 0C */ addi r5, r5, lbl_8043430C@l -/* 802D30E0 002D0020 80 E5 00 04 */ lwz r7, 4(r5) -/* 802D30E4 002D0024 48 00 00 20 */ b lbl_802D3104 -lbl_802D30E8: -/* 802D30E8 002D0028 80 A7 00 00 */ lwz r5, 0(r7) -/* 802D30EC 002D002C 80 05 00 1C */ lwz r0, 0x1c(r5) -/* 802D30F0 002D0030 7C 00 20 40 */ cmplw r0, r4 -/* 802D30F4 002D0034 41 80 00 0C */ blt lbl_802D3100 -/* 802D30F8 002D0038 7C A3 2B 78 */ mr r3, r5 -/* 802D30FC 002D003C 48 00 00 10 */ b lbl_802D310C -lbl_802D3100: -/* 802D3100 002D0040 80 E7 00 08 */ lwz r7, 8(r7) -lbl_802D3104: -/* 802D3104 002D0044 28 07 00 00 */ cmplwi r7, 0 -/* 802D3108 002D0048 40 82 FF E0 */ bne lbl_802D30E8 -lbl_802D310C: -/* 802D310C 002D004C 28 03 00 00 */ cmplwi r3, 0 -/* 802D3110 002D0050 41 82 00 10 */ beq lbl_802D3120 -/* 802D3114 002D0054 88 A6 00 40 */ lbz r5, 0x40(r6) -/* 802D3118 002D0058 48 00 03 B9 */ bl JKRAramBlock_NS_allocTail -/* 802D311C 002D005C 48 00 00 08 */ b lbl_802D3124 -lbl_802D3120: -/* 802D3120 002D0060 38 60 00 00 */ li r3, 0 -lbl_802D3124: -/* 802D3124 002D0064 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3128 002D0068 7C 08 03 A6 */ mtlr r0 -/* 802D312C 002D006C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3130 002D0070 4E 80 00 20 */ blr - -.global JKRAramHeap_NS_getFreeSize -JKRAramHeap_NS_getFreeSize: -/* 802D3134 002D0074 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3138 002D0078 7C 08 02 A6 */ mflr r0 -/* 802D313C 002D007C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3140 002D0080 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3144 002D0084 93 C1 00 08 */ stw r30, 8(r1) -/* 802D3148 002D0088 7C 7E 1B 78 */ mr r30, r3 -/* 802D314C 002D008C 3B E0 00 00 */ li r31, 0 -/* 802D3150 002D0090 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D3154 002D0094 48 06 BE ED */ bl OSLockMutex -/* 802D3158 002D0098 3C 60 80 43 */ lis r3, lbl_8043430C@ha -/* 802D315C 002D009C 38 63 43 0C */ addi r3, r3, lbl_8043430C@l -/* 802D3160 002D00A0 80 63 00 00 */ lwz r3, 0(r3) -/* 802D3164 002D00A4 48 00 00 1C */ b lbl_802D3180 -lbl_802D3168: -/* 802D3168 002D00A8 80 83 00 00 */ lwz r4, 0(r3) -/* 802D316C 002D00AC 80 04 00 1C */ lwz r0, 0x1c(r4) -/* 802D3170 002D00B0 7C 00 F8 40 */ cmplw r0, r31 -/* 802D3174 002D00B4 40 81 00 08 */ ble lbl_802D317C -/* 802D3178 002D00B8 7C 1F 03 78 */ mr r31, r0 -lbl_802D317C: -/* 802D317C 002D00BC 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802D3180: -/* 802D3180 002D00C0 28 03 00 00 */ cmplwi r3, 0 -/* 802D3184 002D00C4 40 82 FF E4 */ bne lbl_802D3168 -/* 802D3188 002D00C8 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D318C 002D00CC 48 06 BF 91 */ bl OSUnlockMutex -/* 802D3190 002D00D0 7F E3 FB 78 */ mr r3, r31 -/* 802D3194 002D00D4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3198 002D00D8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D319C 002D00DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D31A0 002D00E0 7C 08 03 A6 */ mtlr r0 -/* 802D31A4 002D00E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D31A8 002D00E8 4E 80 00 20 */ blr - -.global JKRAramHeap_NS_getTotalFreeSize -JKRAramHeap_NS_getTotalFreeSize: -/* 802D31AC 002D00EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D31B0 002D00F0 7C 08 02 A6 */ mflr r0 -/* 802D31B4 002D00F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D31B8 002D00F8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D31BC 002D00FC 93 C1 00 08 */ stw r30, 8(r1) -/* 802D31C0 002D0100 7C 7E 1B 78 */ mr r30, r3 -/* 802D31C4 002D0104 3B E0 00 00 */ li r31, 0 -/* 802D31C8 002D0108 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D31CC 002D010C 48 06 BE 75 */ bl OSLockMutex -/* 802D31D0 002D0110 3C 60 80 43 */ lis r3, lbl_8043430C@ha -/* 802D31D4 002D0114 80 83 43 0C */ lwz r4, lbl_8043430C@l(r3) -/* 802D31D8 002D0118 48 00 00 14 */ b lbl_802D31EC -lbl_802D31DC: -/* 802D31DC 002D011C 80 64 00 00 */ lwz r3, 0(r4) -/* 802D31E0 002D0120 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 802D31E4 002D0124 7F FF 02 14 */ add r31, r31, r0 -/* 802D31E8 002D0128 80 84 00 0C */ lwz r4, 0xc(r4) -lbl_802D31EC: -/* 802D31EC 002D012C 28 04 00 00 */ cmplwi r4, 0 -/* 802D31F0 002D0130 40 82 FF EC */ bne lbl_802D31DC -/* 802D31F4 002D0134 38 7E 00 18 */ addi r3, r30, 0x18 -/* 802D31F8 002D0138 48 06 BF 25 */ bl OSUnlockMutex -/* 802D31FC 002D013C 7F E3 FB 78 */ mr r3, r31 -/* 802D3200 002D0140 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3204 002D0144 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3208 002D0148 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D320C 002D014C 7C 08 03 A6 */ mtlr r0 -/* 802D3210 002D0150 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3214 002D0154 4E 80 00 20 */ blr - -.global JKRAramHeap_NS_dump -JKRAramHeap_NS_dump: -/* 802D3218 002D0158 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D321C 002D015C 7C 08 02 A6 */ mflr r0 -/* 802D3220 002D0160 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3224 002D0164 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3228 002D0168 7C 7F 1B 78 */ mr r31, r3 -/* 802D322C 002D016C 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D3230 002D0170 48 06 BE 11 */ bl OSLockMutex -/* 802D3234 002D0174 3C 60 80 43 */ lis r3, lbl_8043430C@ha -/* 802D3238 002D0178 38 63 43 0C */ addi r3, r3, lbl_8043430C@l -/* 802D323C 002D017C 80 63 00 00 */ lwz r3, 0(r3) -/* 802D3240 002D0180 48 00 00 08 */ b lbl_802D3248 -lbl_802D3244: -/* 802D3244 002D0184 80 63 00 0C */ lwz r3, 0xc(r3) -lbl_802D3248: -/* 802D3248 002D0188 28 03 00 00 */ cmplwi r3, 0 -/* 802D324C 002D018C 40 82 FF F8 */ bne lbl_802D3244 -/* 802D3250 002D0190 38 7F 00 18 */ addi r3, r31, 0x18 -/* 802D3254 002D0194 48 06 BE C9 */ bl OSUnlockMutex -/* 802D3258 002D0198 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D325C 002D019C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3260 002D01A0 7C 08 03 A6 */ mtlr r0 -/* 802D3264 002D01A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3268 002D01A8 4E 80 00 20 */ blr +.global __sinit_JKRAramHeap_cpp +__sinit_JKRAramHeap_cpp: /* 802D326C 002D01AC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802D3270 002D01B0 7C 08 02 A6 */ mflr r0 /* 802D3274 002D01B4 90 01 00 14 */ stw r0, 0x14(r1) @@ -333,6 +23,7 @@ lbl_802D3248: /* 802D32A4 002D01E4 7C 08 03 A6 */ mtlr r0 /* 802D32A8 002D01E8 38 21 00 10 */ addi r1, r1, 0x10 /* 802D32AC 002D01EC 4E 80 00 20 */ blr + .global JSUList_NS_dtor_X5_ JSUList_NS_dtor_X5_: /* 802D32B0 002D01F0 94 21 FF F0 */ stwu r1, -0x10(r1) diff --git a/asm/JKernel/JKRAramPiece.s b/asm/JKernel/JKRAramPiece.s index 63b0b10278..e37427cfef 100644 --- a/asm/JKernel/JKRAramPiece.s +++ b/asm/JKernel/JKRAramPiece.s @@ -3,409 +3,8 @@ .section .text, "ax" # 802d3574 -.global JKRAramPiece_NS_prepareCommand -JKRAramPiece_NS_prepareCommand: -/* 802D3574 002D04B4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3578 002D04B8 7C 08 02 A6 */ mflr r0 -/* 802D357C 002D04BC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3580 002D04C0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3584 002D04C4 48 08 EC 4D */ bl _savegpr_26 -/* 802D3588 002D04C8 7C 7A 1B 78 */ mr r26, r3 -/* 802D358C 002D04CC 7C 9B 23 78 */ mr r27, r4 -/* 802D3590 002D04D0 7C BC 2B 78 */ mr r28, r5 -/* 802D3594 002D04D4 7C DD 33 78 */ mr r29, r6 -/* 802D3598 002D04D8 7C FE 3B 78 */ mr r30, r7 -/* 802D359C 002D04DC 7D 1F 43 78 */ mr r31, r8 -/* 802D35A0 002D04E0 38 60 00 98 */ li r3, 0x98 -/* 802D35A4 002D04E4 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D35A8 002D04E8 38 A0 FF FC */ li r5, -4 -/* 802D35AC 002D04EC 4B FF B6 ED */ bl __nw__FUlP7JKRHeapi -/* 802D35B0 002D04F0 7C 64 1B 79 */ or. r4, r3, r3 -/* 802D35B4 002D04F4 41 82 00 0C */ beq lbl_802D35C0 -/* 802D35B8 002D04F8 48 00 04 35 */ bl JKRAMCommand -/* 802D35BC 002D04FC 7C 64 1B 78 */ mr r4, r3 -lbl_802D35C0: -/* 802D35C0 002D0500 93 44 00 40 */ stw r26, 0x40(r4) -/* 802D35C4 002D0504 93 64 00 48 */ stw r27, 0x48(r4) -/* 802D35C8 002D0508 93 84 00 4C */ stw r28, 0x4c(r4) -/* 802D35CC 002D050C 93 C4 00 50 */ stw r30, 0x50(r4) -/* 802D35D0 002D0510 93 A4 00 44 */ stw r29, 0x44(r4) -/* 802D35D4 002D0514 93 E4 00 58 */ stw r31, 0x58(r4) -/* 802D35D8 002D0518 7C 83 23 78 */ mr r3, r4 -/* 802D35DC 002D051C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D35E0 002D0520 48 08 EC 3D */ bl _restgpr_26 -/* 802D35E4 002D0524 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D35E8 002D0528 7C 08 03 A6 */ mtlr r0 -/* 802D35EC 002D052C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D35F0 002D0530 4E 80 00 20 */ blr - -.global JKRAramPiece_NS_sendCommand -JKRAramPiece_NS_sendCommand: -/* 802D35F4 002D0534 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D35F8 002D0538 7C 08 02 A6 */ mflr r0 -/* 802D35FC 002D053C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3600 002D0540 48 00 02 CD */ bl JKRAramPiece_NS_startDMA -/* 802D3604 002D0544 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3608 002D0548 7C 08 03 A6 */ mtlr r0 -/* 802D360C 002D054C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3610 002D0550 4E 80 00 20 */ blr - -.global JKRAramPiece_NS_orderAsync -JKRAramPiece_NS_orderAsync: -/* 802D3614 002D0554 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D3618 002D0558 7C 08 02 A6 */ mflr r0 -/* 802D361C 002D055C 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D3620 002D0560 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D3624 002D0564 48 08 EB A9 */ bl func_803621CC -/* 802D3628 002D0568 7C 7A 1B 78 */ mr r26, r3 -/* 802D362C 002D056C 7C 9B 23 78 */ mr r27, r4 -/* 802D3630 002D0570 7C BC 2B 78 */ mr r28, r5 -/* 802D3634 002D0574 7C DD 33 78 */ mr r29, r6 -/* 802D3638 002D0578 7C FE 3B 78 */ mr r30, r7 -/* 802D363C 002D057C 7D 1F 43 78 */ mr r31, r8 -/* 802D3640 002D0580 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D3644 002D0584 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D3648 002D0588 48 06 B9 F9 */ bl OSLockMutex -/* 802D364C 002D058C 57 60 06 FF */ clrlwi. r0, r27, 0x1b -/* 802D3650 002D0590 40 82 00 0C */ bne lbl_802D365C -/* 802D3654 002D0594 57 80 06 FF */ clrlwi. r0, r28, 0x1b -/* 802D3658 002D0598 41 82 00 80 */ beq lbl_802D36D8 -lbl_802D365C: -/* 802D365C 002D059C 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha -/* 802D3660 002D05A0 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l -/* 802D3664 002D05A4 7F 44 D3 78 */ mr r4, r26 -/* 802D3668 002D05A8 4C C6 31 82 */ crclr 6 -/* 802D366C 002D05AC 4B D3 34 51 */ bl OSReport -/* 802D3670 002D05B0 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha -/* 802D3674 002D05B4 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l -/* 802D3678 002D05B8 38 63 00 10 */ addi r3, r3, 0x10 -/* 802D367C 002D05BC 7F 64 DB 78 */ mr r4, r27 -/* 802D3680 002D05C0 4C C6 31 82 */ crclr 6 -/* 802D3684 002D05C4 4B D3 34 39 */ bl OSReport -/* 802D3688 002D05C8 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha -/* 802D368C 002D05CC 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l -/* 802D3690 002D05D0 38 63 00 1D */ addi r3, r3, 0x1d -/* 802D3694 002D05D4 7F 84 E3 78 */ mr r4, r28 -/* 802D3698 002D05D8 4C C6 31 82 */ crclr 6 -/* 802D369C 002D05DC 4B D3 34 21 */ bl OSReport -/* 802D36A0 002D05E0 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha -/* 802D36A4 002D05E4 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l -/* 802D36A8 002D05E8 38 63 00 2F */ addi r3, r3, 0x2f -/* 802D36AC 002D05EC 7F A4 EB 78 */ mr r4, r29 -/* 802D36B0 002D05F0 4C C6 31 82 */ crclr 6 -/* 802D36B4 002D05F4 4B D3 34 09 */ bl OSReport -/* 802D36B8 002D05F8 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha -/* 802D36BC 002D05FC 38 C3 D0 B8 */ addi r6, r3, lbl_8039D0B8@l -/* 802D36C0 002D0600 38 66 00 3C */ addi r3, r6, 0x3c -/* 802D36C4 002D0604 38 80 00 6C */ li r4, 0x6c -/* 802D36C8 002D0608 38 A6 00 4D */ addi r5, r6, 0x4d -/* 802D36CC 002D060C 38 C6 00 50 */ addi r6, r6, 0x50 -/* 802D36D0 002D0610 4C C6 31 82 */ crclr 6 -/* 802D36D4 002D0614 48 00 EB 29 */ bl JUTException_NS_panic_f -lbl_802D36D8: -/* 802D36D8 002D0618 38 60 00 08 */ li r3, 8 -/* 802D36DC 002D061C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D36E0 002D0620 38 A0 FF FC */ li r5, -4 -/* 802D36E4 002D0624 4B FF B5 B5 */ bl __nw__FUlP7JKRHeapi -/* 802D36E8 002D0628 7C 79 1B 78 */ mr r25, r3 -/* 802D36EC 002D062C 7F 43 D3 78 */ mr r3, r26 -/* 802D36F0 002D0630 7F 64 DB 78 */ mr r4, r27 -/* 802D36F4 002D0634 7F 85 E3 78 */ mr r5, r28 -/* 802D36F8 002D0638 7F A6 EB 78 */ mr r6, r29 -/* 802D36FC 002D063C 7F C7 F3 78 */ mr r7, r30 -/* 802D3700 002D0640 7F E8 FB 78 */ mr r8, r31 -/* 802D3704 002D0644 4B FF FE 71 */ bl JKRAramPiece_NS_prepareCommand -/* 802D3708 002D0648 7C 7A 1B 78 */ mr r26, r3 -/* 802D370C 002D064C 38 00 00 01 */ li r0, 1 -/* 802D3710 002D0650 90 19 00 00 */ stw r0, 0(r25) -/* 802D3714 002D0654 93 59 00 04 */ stw r26, 4(r25) -/* 802D3718 002D0658 3C 60 80 3D */ lis r3, lbl_803CC138@ha -/* 802D371C 002D065C 38 63 C1 38 */ addi r3, r3, lbl_803CC138@l -/* 802D3720 002D0660 7F 24 CB 78 */ mr r4, r25 -/* 802D3724 002D0664 38 A0 00 01 */ li r5, 1 -/* 802D3728 002D0668 48 06 B2 CD */ bl OSSendMessage -/* 802D372C 002D066C 80 1A 00 58 */ lwz r0, 0x58(r26) -/* 802D3730 002D0670 28 00 00 00 */ cmplwi r0, 0 -/* 802D3734 002D0674 41 82 00 14 */ beq lbl_802D3748 -/* 802D3738 002D0678 3C 60 80 43 */ lis r3, lbl_80434324@ha -/* 802D373C 002D067C 38 63 43 24 */ addi r3, r3, lbl_80434324@l -/* 802D3740 002D0680 38 9A 00 20 */ addi r4, r26, 0x20 -/* 802D3744 002D0684 48 00 88 09 */ bl append__10JSUPtrListFP10JSUPtrLink -lbl_802D3748: -/* 802D3748 002D0688 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D374C 002D068C 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D3750 002D0690 48 06 B9 CD */ bl OSUnlockMutex -/* 802D3754 002D0694 7F 43 D3 78 */ mr r3, r26 -/* 802D3758 002D0698 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D375C 002D069C 48 08 EA BD */ bl func_80362218 -/* 802D3760 002D06A0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D3764 002D06A4 7C 08 03 A6 */ mtlr r0 -/* 802D3768 002D06A8 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D376C 002D06AC 4E 80 00 20 */ blr - -.global JKRAramPiece_NS_sync -JKRAramPiece_NS_sync: -/* 802D3770 002D06B0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3774 002D06B4 7C 08 02 A6 */ mflr r0 -/* 802D3778 002D06B8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D377C 002D06BC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D3780 002D06C0 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802D3784 002D06C4 7C 7E 1B 78 */ mr r30, r3 -/* 802D3788 002D06C8 7C 9F 23 78 */ mr r31, r4 -/* 802D378C 002D06CC 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D3790 002D06D0 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D3794 002D06D4 48 06 B8 AD */ bl OSLockMutex -/* 802D3798 002D06D8 2C 1F 00 00 */ cmpwi r31, 0 -/* 802D379C 002D06DC 40 82 00 38 */ bne lbl_802D37D4 -/* 802D37A0 002D06E0 38 7E 00 68 */ addi r3, r30, 0x68 -/* 802D37A4 002D06E4 38 81 00 08 */ addi r4, r1, 8 -/* 802D37A8 002D06E8 38 A0 00 01 */ li r5, 1 -/* 802D37AC 002D06EC 48 06 B3 11 */ bl OSReceiveMessage -/* 802D37B0 002D06F0 3C 60 80 43 */ lis r3, lbl_80434324@ha -/* 802D37B4 002D06F4 38 63 43 24 */ addi r3, r3, lbl_80434324@l -/* 802D37B8 002D06F8 38 9E 00 20 */ addi r4, r30, 0x20 -/* 802D37BC 002D06FC 48 00 89 A1 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D37C0 002D0700 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D37C4 002D0704 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D37C8 002D0708 48 06 B9 55 */ bl OSUnlockMutex -/* 802D37CC 002D070C 38 60 00 01 */ li r3, 1 -/* 802D37D0 002D0710 48 00 00 50 */ b lbl_802D3820 -lbl_802D37D4: -/* 802D37D4 002D0714 38 7E 00 68 */ addi r3, r30, 0x68 -/* 802D37D8 002D0718 38 81 00 08 */ addi r4, r1, 8 -/* 802D37DC 002D071C 38 A0 00 00 */ li r5, 0 -/* 802D37E0 002D0720 48 06 B2 DD */ bl OSReceiveMessage -/* 802D37E4 002D0724 2C 03 00 00 */ cmpwi r3, 0 -/* 802D37E8 002D0728 40 82 00 18 */ bne lbl_802D3800 -/* 802D37EC 002D072C 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D37F0 002D0730 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D37F4 002D0734 48 06 B9 29 */ bl OSUnlockMutex -/* 802D37F8 002D0738 38 60 00 00 */ li r3, 0 -/* 802D37FC 002D073C 48 00 00 24 */ b lbl_802D3820 -lbl_802D3800: -/* 802D3800 002D0740 3C 60 80 43 */ lis r3, lbl_80434324@ha -/* 802D3804 002D0744 38 63 43 24 */ addi r3, r3, lbl_80434324@l -/* 802D3808 002D0748 38 9E 00 20 */ addi r4, r30, 0x20 -/* 802D380C 002D074C 48 00 89 51 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D3810 002D0750 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D3814 002D0754 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D3818 002D0758 48 06 B9 05 */ bl OSUnlockMutex -/* 802D381C 002D075C 38 60 00 01 */ li r3, 1 -lbl_802D3820: -/* 802D3820 002D0760 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D3824 002D0764 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 802D3828 002D0768 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D382C 002D076C 7C 08 03 A6 */ mtlr r0 -/* 802D3830 002D0770 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3834 002D0774 4E 80 00 20 */ blr - -.global JKRAramPiece_NS_orderSync -JKRAramPiece_NS_orderSync: -/* 802D3838 002D0778 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D383C 002D077C 7C 08 02 A6 */ mflr r0 -/* 802D3840 002D0780 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3844 002D0784 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3848 002D0788 48 08 E9 8D */ bl _savegpr_27 -/* 802D384C 002D078C 7C 7B 1B 78 */ mr r27, r3 -/* 802D3850 002D0790 7C 9C 23 78 */ mr r28, r4 -/* 802D3854 002D0794 7C BD 2B 78 */ mr r29, r5 -/* 802D3858 002D0798 7C DF 33 78 */ mr r31, r6 -/* 802D385C 002D079C 7C FE 3B 78 */ mr r30, r7 -/* 802D3860 002D07A0 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D3864 002D07A4 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D3868 002D07A8 48 06 B7 D9 */ bl OSLockMutex -/* 802D386C 002D07AC 7F 63 DB 78 */ mr r3, r27 -/* 802D3870 002D07B0 7F 84 E3 78 */ mr r4, r28 -/* 802D3874 002D07B4 7F A5 EB 78 */ mr r5, r29 -/* 802D3878 002D07B8 7F E6 FB 78 */ mr r6, r31 -/* 802D387C 002D07BC 7F C7 F3 78 */ mr r7, r30 -/* 802D3880 002D07C0 39 00 00 00 */ li r8, 0 -/* 802D3884 002D07C4 4B FF FD 91 */ bl JKRAramPiece_NS_orderAsync -/* 802D3888 002D07C8 7C 7F 1B 78 */ mr r31, r3 -/* 802D388C 002D07CC 38 80 00 00 */ li r4, 0 -/* 802D3890 002D07D0 4B FF FE E1 */ bl JKRAramPiece_NS_sync -/* 802D3894 002D07D4 7C 7E 1B 78 */ mr r30, r3 -/* 802D3898 002D07D8 7F E3 FB 78 */ mr r3, r31 -/* 802D389C 002D07DC 38 80 00 01 */ li r4, 1 -/* 802D38A0 002D07E0 48 00 01 BD */ bl JKRAMCommand_NS_dtor -/* 802D38A4 002D07E4 3C 60 80 43 */ lis r3, lbl_80434330@ha -/* 802D38A8 002D07E8 38 63 43 30 */ addi r3, r3, lbl_80434330@l -/* 802D38AC 002D07EC 48 06 B8 71 */ bl OSUnlockMutex -/* 802D38B0 002D07F0 7F C3 F3 78 */ mr r3, r30 -/* 802D38B4 002D07F4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D38B8 002D07F8 48 08 E9 69 */ bl _restgpr_27 -/* 802D38BC 002D07FC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D38C0 002D0800 7C 08 03 A6 */ mtlr r0 -/* 802D38C4 002D0804 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D38C8 002D0808 4E 80 00 20 */ blr - -.global JKRAramPiece_NS_startDMA -JKRAramPiece_NS_startDMA: -/* 802D38CC 002D080C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D38D0 002D0810 7C 08 02 A6 */ mflr r0 -/* 802D38D4 002D0814 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D38D8 002D0818 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D38DC 002D081C 7C 7F 1B 78 */ mr r31, r3 -/* 802D38E0 002D0820 80 03 00 40 */ lwz r0, 0x40(r3) -/* 802D38E4 002D0824 2C 00 00 01 */ cmpwi r0, 1 -/* 802D38E8 002D0828 40 82 00 14 */ bne lbl_802D38FC -/* 802D38EC 002D082C 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 802D38F0 002D0830 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D38F4 002D0834 48 06 7C 8D */ bl DCInvalidateRange -/* 802D38F8 002D0838 48 00 00 10 */ b lbl_802D3908 -lbl_802D38FC: -/* 802D38FC 002D083C 80 7F 00 48 */ lwz r3, 0x48(r31) -/* 802D3900 002D0840 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D3904 002D0844 48 06 7C D9 */ bl DCStoreRange -lbl_802D3908: -/* 802D3908 002D0848 7F E3 FB 78 */ mr r3, r31 -/* 802D390C 002D084C 38 80 00 00 */ li r4, 0 -/* 802D3910 002D0850 80 BF 00 40 */ lwz r5, 0x40(r31) -/* 802D3914 002D0854 38 C0 00 00 */ li r6, 0 -/* 802D3918 002D0858 80 FF 00 48 */ lwz r7, 0x48(r31) -/* 802D391C 002D085C 81 1F 00 4C */ lwz r8, 0x4c(r31) -/* 802D3920 002D0860 81 3F 00 44 */ lwz r9, 0x44(r31) -.global JKRAramPiece_NS_doneDMA -/* 802D3924 002D0864 3D 40 80 2D */ lis r10, JKRAramPiece_NS_doneDMA@ha -.global JKRAramPiece_NS_doneDMA -/* 802D3928 002D0868 39 4A 39 44 */ addi r10, r10, JKRAramPiece_NS_doneDMA@l -/* 802D392C 002D086C 48 07 E9 A9 */ bl ARQPostRequest -/* 802D3930 002D0870 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3934 002D0874 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3938 002D0878 7C 08 03 A6 */ mtlr r0 -/* 802D393C 002D087C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3940 002D0880 4E 80 00 20 */ blr -.global JKRAramPiece_NS_doneDMA -JKRAramPiece_NS_doneDMA: -/* 802D3944 002D0884 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3948 002D0888 7C 08 02 A6 */ mflr r0 -/* 802D394C 002D088C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3950 002D0890 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3954 002D0894 7C 7F 1B 78 */ mr r31, r3 -/* 802D3958 002D0898 80 03 00 40 */ lwz r0, 0x40(r3) -/* 802D395C 002D089C 2C 00 00 01 */ cmpwi r0, 1 -/* 802D3960 002D08A0 40 82 00 10 */ bne lbl_802D3970 -/* 802D3964 002D08A4 80 7F 00 4C */ lwz r3, 0x4c(r31) -/* 802D3968 002D08A8 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D396C 002D08AC 48 06 7C 15 */ bl DCInvalidateRange -lbl_802D3970: -/* 802D3970 002D08B0 80 1F 00 60 */ lwz r0, 0x60(r31) -/* 802D3974 002D08B4 2C 00 00 00 */ cmpwi r0, 0 -/* 802D3978 002D08B8 41 82 00 18 */ beq lbl_802D3990 -/* 802D397C 002D08BC 2C 00 00 02 */ cmpwi r0, 2 -/* 802D3980 002D08C0 40 82 00 58 */ bne lbl_802D39D8 -/* 802D3984 002D08C4 80 7F 00 64 */ lwz r3, 0x64(r31) -/* 802D3988 002D08C8 48 00 7F 49 */ bl JKRDecomp_NS_sendCommand -/* 802D398C 002D08CC 48 00 00 4C */ b lbl_802D39D8 -lbl_802D3990: -/* 802D3990 002D08D0 81 9F 00 58 */ lwz r12, 0x58(r31) -/* 802D3994 002D08D4 28 0C 00 00 */ cmplwi r12, 0 -/* 802D3998 002D08D8 41 82 00 14 */ beq lbl_802D39AC -/* 802D399C 002D08DC 7F E3 FB 78 */ mr r3, r31 -/* 802D39A0 002D08E0 7D 89 03 A6 */ mtctr r12 -/* 802D39A4 002D08E4 4E 80 04 21 */ bctrl -/* 802D39A8 002D08E8 48 00 00 30 */ b lbl_802D39D8 -lbl_802D39AC: -/* 802D39AC 002D08EC 80 7F 00 5C */ lwz r3, 0x5c(r31) -/* 802D39B0 002D08F0 28 03 00 00 */ cmplwi r3, 0 -/* 802D39B4 002D08F4 41 82 00 14 */ beq lbl_802D39C8 -/* 802D39B8 002D08F8 7F E4 FB 78 */ mr r4, r31 -/* 802D39BC 002D08FC 38 A0 00 00 */ li r5, 0 -/* 802D39C0 002D0900 48 06 B0 35 */ bl OSSendMessage -/* 802D39C4 002D0904 48 00 00 14 */ b lbl_802D39D8 -lbl_802D39C8: -/* 802D39C8 002D0908 38 7F 00 68 */ addi r3, r31, 0x68 -/* 802D39CC 002D090C 7F E4 FB 78 */ mr r4, r31 -/* 802D39D0 002D0910 38 A0 00 00 */ li r5, 0 -/* 802D39D4 002D0914 48 06 B0 21 */ bl OSSendMessage -lbl_802D39D8: -/* 802D39D8 002D0918 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D39DC 002D091C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D39E0 002D0920 7C 08 03 A6 */ mtlr r0 -/* 802D39E4 002D0924 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D39E8 002D0928 4E 80 00 20 */ blr - -.global JKRAMCommand -JKRAMCommand: -/* 802D39EC 002D092C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D39F0 002D0930 7C 08 02 A6 */ mflr r0 -/* 802D39F4 002D0934 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D39F8 002D0938 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D39FC 002D093C 7C 7F 1B 78 */ mr r31, r3 -/* 802D3A00 002D0940 7F E4 FB 78 */ mr r4, r31 -/* 802D3A04 002D0944 38 64 00 20 */ addi r3, r4, 0x20 -/* 802D3A08 002D0948 48 00 83 F5 */ bl __ct__10JSUPtrLinkFPv -/* 802D3A0C 002D094C 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3A10 002D0950 7F E4 FB 78 */ mr r4, r31 -/* 802D3A14 002D0954 48 00 83 E9 */ bl __ct__10JSUPtrLinkFPv -/* 802D3A18 002D0958 38 7F 00 68 */ addi r3, r31, 0x68 -/* 802D3A1C 002D095C 38 9F 00 88 */ addi r4, r31, 0x88 -/* 802D3A20 002D0960 38 A0 00 01 */ li r5, 1 -/* 802D3A24 002D0964 48 06 AF 71 */ bl OSInitMessageQueue -/* 802D3A28 002D0968 38 00 00 00 */ li r0, 0 -/* 802D3A2C 002D096C 90 1F 00 58 */ stw r0, 0x58(r31) -/* 802D3A30 002D0970 90 1F 00 5C */ stw r0, 0x5c(r31) -/* 802D3A34 002D0974 90 1F 00 60 */ stw r0, 0x60(r31) -/* 802D3A38 002D0978 90 1F 00 8C */ stw r0, 0x8c(r31) -/* 802D3A3C 002D097C 90 1F 00 90 */ stw r0, 0x90(r31) -/* 802D3A40 002D0980 90 1F 00 94 */ stw r0, 0x94(r31) -/* 802D3A44 002D0984 7F E3 FB 78 */ mr r3, r31 -/* 802D3A48 002D0988 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3A4C 002D098C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3A50 002D0990 7C 08 03 A6 */ mtlr r0 -/* 802D3A54 002D0994 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3A58 002D0998 4E 80 00 20 */ blr - -.global JKRAMCommand_NS_dtor -JKRAMCommand_NS_dtor: -/* 802D3A5C 002D099C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3A60 002D09A0 7C 08 02 A6 */ mflr r0 -/* 802D3A64 002D09A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3A68 002D09A8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3A6C 002D09AC 93 C1 00 08 */ stw r30, 8(r1) -/* 802D3A70 002D09B0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D3A74 002D09B4 7C 9F 23 78 */ mr r31, r4 -/* 802D3A78 002D09B8 41 82 00 70 */ beq lbl_802D3AE8 -/* 802D3A7C 002D09BC 80 7E 00 8C */ lwz r3, 0x8c(r30) -/* 802D3A80 002D09C0 28 03 00 00 */ cmplwi r3, 0 -/* 802D3A84 002D09C4 41 82 00 08 */ beq lbl_802D3A8C -/* 802D3A88 002D09C8 4B FF B2 B5 */ bl __dl__FPv -lbl_802D3A8C: -/* 802D3A8C 002D09CC 80 7E 00 90 */ lwz r3, 0x90(r30) -/* 802D3A90 002D09D0 28 03 00 00 */ cmplwi r3, 0 -/* 802D3A94 002D09D4 41 82 00 08 */ beq lbl_802D3A9C -/* 802D3A98 002D09D8 4B FF B2 A5 */ bl __dl__FPv -lbl_802D3A9C: -/* 802D3A9C 002D09DC 80 7E 00 94 */ lwz r3, 0x94(r30) -/* 802D3AA0 002D09E0 28 03 00 00 */ cmplwi r3, 0 -/* 802D3AA4 002D09E4 41 82 00 0C */ beq lbl_802D3AB0 -/* 802D3AA8 002D09E8 38 80 00 00 */ li r4, 0 -/* 802D3AAC 002D09EC 4B FF AA 55 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D3AB0: -/* 802D3AB0 002D09F0 34 1E 00 30 */ addic. r0, r30, 0x30 -/* 802D3AB4 002D09F4 41 82 00 10 */ beq lbl_802D3AC4 -/* 802D3AB8 002D09F8 38 7E 00 30 */ addi r3, r30, 0x30 -/* 802D3ABC 002D09FC 38 80 00 00 */ li r4, 0 -/* 802D3AC0 002D0A00 48 00 83 55 */ bl __dt__10JSUPtrLinkFv -lbl_802D3AC4: -/* 802D3AC4 002D0A04 34 1E 00 20 */ addic. r0, r30, 0x20 -/* 802D3AC8 002D0A08 41 82 00 10 */ beq lbl_802D3AD8 -/* 802D3ACC 002D0A0C 38 7E 00 20 */ addi r3, r30, 0x20 -/* 802D3AD0 002D0A10 38 80 00 00 */ li r4, 0 -/* 802D3AD4 002D0A14 48 00 83 41 */ bl __dt__10JSUPtrLinkFv -lbl_802D3AD8: -/* 802D3AD8 002D0A18 7F E0 07 35 */ extsh. r0, r31 -/* 802D3ADC 002D0A1C 40 81 00 0C */ ble lbl_802D3AE8 -/* 802D3AE0 002D0A20 7F C3 F3 78 */ mr r3, r30 -/* 802D3AE4 002D0A24 4B FF B2 59 */ bl __dl__FPv -lbl_802D3AE8: -/* 802D3AE8 002D0A28 7F C3 F3 78 */ mr r3, r30 -/* 802D3AEC 002D0A2C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3AF0 002D0A30 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3AF4 002D0A34 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3AF8 002D0A38 7C 08 03 A6 */ mtlr r0 -/* 802D3AFC 002D0A3C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3B00 002D0A40 4E 80 00 20 */ blr +.global __sinit_JKRAramPiece_cpp +__sinit_JKRAramPiece_cpp: /* 802D3B04 002D0A44 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802D3B08 002D0A48 7C 08 02 A6 */ mflr r0 /* 802D3B0C 002D0A4C 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/asm/JKernel/JKRAramStream.s b/asm/JKernel/JKRAramStream.s deleted file mode 100644 index 3373572a4d..0000000000 --- a/asm/JKernel/JKRAramStream.s +++ /dev/null @@ -1,421 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802d3b48 - - -.global JKRAramStream_NS_create -JKRAramStream_NS_create: -/* 802D3B48 002D0A88 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3B4C 002D0A8C 7C 08 02 A6 */ mflr r0 -/* 802D3B50 002D0A90 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3B54 002D0A94 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3B58 002D0A98 7C 7F 1B 78 */ mr r31, r3 -/* 802D3B5C 002D0A9C 80 0D 8E 88 */ lwz r0, lbl_80451408-_SDA_BASE_(r13) -/* 802D3B60 002D0AA0 28 00 00 00 */ cmplwi r0, 0 -/* 802D3B64 002D0AA4 40 82 00 3C */ bne lbl_802D3BA0 -/* 802D3B68 002D0AA8 38 60 00 7C */ li r3, 0x7c -/* 802D3B6C 002D0AAC 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D3B70 002D0AB0 38 A0 00 00 */ li r5, 0 -/* 802D3B74 002D0AB4 4B FF B1 25 */ bl __nw__FUlP7JKRHeapi -/* 802D3B78 002D0AB8 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D3B7C 002D0ABC 41 82 00 10 */ beq lbl_802D3B8C -/* 802D3B80 002D0AC0 7F E4 FB 78 */ mr r4, r31 -/* 802D3B84 002D0AC4 48 00 00 35 */ bl JKRAramStream -/* 802D3B88 002D0AC8 7C 60 1B 78 */ mr r0, r3 -lbl_802D3B8C: -/* 802D3B8C 002D0ACC 90 0D 8E 88 */ stw r0, lbl_80451408-_SDA_BASE_(r13) -/* 802D3B90 002D0AD0 38 60 00 00 */ li r3, 0 -/* 802D3B94 002D0AD4 38 80 00 00 */ li r4, 0 -/* 802D3B98 002D0AD8 38 A0 00 00 */ li r5, 0 -/* 802D3B9C 002D0ADC 48 00 04 99 */ bl JKRAramStream_NS_setTransBuffer -lbl_802D3BA0: -/* 802D3BA0 002D0AE0 80 6D 8E 88 */ lwz r3, lbl_80451408-_SDA_BASE_(r13) -/* 802D3BA4 002D0AE4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3BA8 002D0AE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3BAC 002D0AEC 7C 08 03 A6 */ mtlr r0 -/* 802D3BB0 002D0AF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3BB4 002D0AF4 4E 80 00 20 */ blr - -.global JKRAramStream -JKRAramStream: -/* 802D3BB8 002D0AF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3BBC 002D0AFC 7C 08 02 A6 */ mflr r0 -/* 802D3BC0 002D0B00 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3BC4 002D0B04 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3BC8 002D0B08 7C 7F 1B 78 */ mr r31, r3 -/* 802D3BCC 002D0B0C 7C 86 23 78 */ mr r6, r4 -/* 802D3BD0 002D0B10 38 80 0C 00 */ li r4, 0xc00 -/* 802D3BD4 002D0B14 38 A0 00 10 */ li r5, 0x10 -/* 802D3BD8 002D0B18 4B FF D9 91 */ bl __ct__9JKRThreadFUlii -/* 802D3BDC 002D0B1C 3C 60 80 3D */ lis r3, lbl_803CC1B8@ha -/* 802D3BE0 002D0B20 38 03 C1 B8 */ addi r0, r3, lbl_803CC1B8@l -/* 802D3BE4 002D0B24 90 1F 00 00 */ stw r0, 0(r31) -/* 802D3BE8 002D0B28 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 802D3BEC 002D0B2C 48 06 DB C9 */ bl OSResumeThread -/* 802D3BF0 002D0B30 7F E3 FB 78 */ mr r3, r31 -/* 802D3BF4 002D0B34 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3BF8 002D0B38 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3BFC 002D0B3C 7C 08 03 A6 */ mtlr r0 -/* 802D3C00 002D0B40 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3C04 002D0B44 4E 80 00 20 */ blr -/* 802D3C08 002D0B48 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D3C0C 002D0B4C 7C 08 02 A6 */ mflr r0 -/* 802D3C10 002D0B50 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D3C14 002D0B54 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D3C18 002D0B58 93 C1 00 08 */ stw r30, 8(r1) -/* 802D3C1C 002D0B5C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D3C20 002D0B60 7C 9F 23 78 */ mr r31, r4 -/* 802D3C24 002D0B64 41 82 00 28 */ beq lbl_802D3C4C -/* 802D3C28 002D0B68 3C 80 80 3D */ lis r4, lbl_803CC1B8@ha -/* 802D3C2C 002D0B6C 38 04 C1 B8 */ addi r0, r4, lbl_803CC1B8@l -/* 802D3C30 002D0B70 90 1E 00 00 */ stw r0, 0(r30) -/* 802D3C34 002D0B74 38 80 00 00 */ li r4, 0 -/* 802D3C38 002D0B78 4B FF DB 21 */ bl __dt__9JKRThreadFv -/* 802D3C3C 002D0B7C 7F E0 07 35 */ extsh. r0, r31 -/* 802D3C40 002D0B80 40 81 00 0C */ ble lbl_802D3C4C -/* 802D3C44 002D0B84 7F C3 F3 78 */ mr r3, r30 -/* 802D3C48 002D0B88 4B FF B0 F5 */ bl __dl__FPv -lbl_802D3C4C: -/* 802D3C4C 002D0B8C 7F C3 F3 78 */ mr r3, r30 -/* 802D3C50 002D0B90 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D3C54 002D0B94 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D3C58 002D0B98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D3C5C 002D0B9C 7C 08 03 A6 */ mtlr r0 -/* 802D3C60 002D0BA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D3C64 002D0BA4 4E 80 00 20 */ blr -/* 802D3C68 002D0BA8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3C6C 002D0BAC 7C 08 02 A6 */ mflr r0 -/* 802D3C70 002D0BB0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3C74 002D0BB4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D3C78 002D0BB8 3C 60 80 3D */ lis r3, lbl_803CC198@ha -/* 802D3C7C 002D0BBC 38 63 C1 98 */ addi r3, r3, lbl_803CC198@l -/* 802D3C80 002D0BC0 3C 80 80 3D */ lis r4, lbl_803CC188@ha -/* 802D3C84 002D0BC4 38 84 C1 88 */ addi r4, r4, lbl_803CC188@l -/* 802D3C88 002D0BC8 38 A0 00 04 */ li r5, 4 -/* 802D3C8C 002D0BCC 48 06 AD 09 */ bl OSInitMessageQueue -/* 802D3C90 002D0BD0 3C 60 80 3D */ lis r3, lbl_803CC198@ha -/* 802D3C94 002D0BD4 3B E3 C1 98 */ addi r31, r3, lbl_803CC198@l -lbl_802D3C98: -/* 802D3C98 002D0BD8 7F E3 FB 78 */ mr r3, r31 -/* 802D3C9C 002D0BDC 38 81 00 08 */ addi r4, r1, 8 -/* 802D3CA0 002D0BE0 38 A0 00 01 */ li r5, 1 -/* 802D3CA4 002D0BE4 48 06 AE 19 */ bl OSReceiveMessage -/* 802D3CA8 002D0BE8 80 61 00 08 */ lwz r3, 8(r1) -/* 802D3CAC 002D0BEC 80 03 00 00 */ lwz r0, 0(r3) -/* 802D3CB0 002D0BF0 2C 00 00 02 */ cmpwi r0, 2 -/* 802D3CB4 002D0BF4 41 82 00 1C */ beq lbl_802D3CD0 -/* 802D3CB8 002D0BF8 40 80 FF E0 */ bge lbl_802D3C98 -/* 802D3CBC 002D0BFC 2C 00 00 01 */ cmpwi r0, 1 -/* 802D3CC0 002D0C00 40 80 00 08 */ bge lbl_802D3CC8 -/* 802D3CC4 002D0C04 4B FF FF D4 */ b lbl_802D3C98 -lbl_802D3CC8: -/* 802D3CC8 002D0C08 48 00 00 11 */ bl JKRAramStream_NS_readFromAram -/* 802D3CCC 002D0C0C 4B FF FF CC */ b lbl_802D3C98 -lbl_802D3CD0: -/* 802D3CD0 002D0C10 48 00 00 11 */ bl JKRAramStream_NS_writeToAram -/* 802D3CD4 002D0C14 4B FF FF C4 */ b lbl_802D3C98 - -.global JKRAramStream_NS_readFromAram -JKRAramStream_NS_readFromAram: -/* 802D3CD8 002D0C18 38 60 00 01 */ li r3, 1 -/* 802D3CDC 002D0C1C 4E 80 00 20 */ blr - -.global JKRAramStream_NS_writeToAram -JKRAramStream_NS_writeToAram: -/* 802D3CE0 002D0C20 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D3CE4 002D0C24 7C 08 02 A6 */ mflr r0 -/* 802D3CE8 002D0C28 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D3CEC 002D0C2C 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D3CF0 002D0C30 48 08 E4 D9 */ bl func_803621C8 -/* 802D3CF4 002D0C34 7C 78 1B 78 */ mr r24, r3 -/* 802D3CF8 002D0C38 83 C3 00 08 */ lwz r30, 8(r3) -/* 802D3CFC 002D0C3C 83 A3 00 14 */ lwz r29, 0x14(r3) -/* 802D3D00 002D0C40 3B 80 00 00 */ li r28, 0 -/* 802D3D04 002D0C44 83 63 00 04 */ lwz r27, 4(r3) -/* 802D3D08 002D0C48 83 43 00 1C */ lwz r26, 0x1c(r3) -/* 802D3D0C 002D0C4C 80 03 00 20 */ lwz r0, 0x20(r3) -/* 802D3D10 002D0C50 83 23 00 24 */ lwz r25, 0x24(r3) -/* 802D3D14 002D0C54 28 1A 00 00 */ cmplwi r26, 0 -/* 802D3D18 002D0C58 41 82 00 28 */ beq lbl_802D3D40 -/* 802D3D1C 002D0C5C 28 00 00 00 */ cmplwi r0, 0 -/* 802D3D20 002D0C60 3C 60 00 01 */ lis r3, 0x00008000@ha -/* 802D3D24 002D0C64 3B E3 80 00 */ addi r31, r3, 0x00008000@l -/* 802D3D28 002D0C68 41 82 00 08 */ beq lbl_802D3D30 -/* 802D3D2C 002D0C6C 7C 1F 03 78 */ mr r31, r0 -lbl_802D3D30: -/* 802D3D30 002D0C70 93 F8 00 20 */ stw r31, 0x20(r24) -/* 802D3D34 002D0C74 38 00 00 00 */ li r0, 0 -/* 802D3D38 002D0C78 98 18 00 28 */ stb r0, 0x28(r24) -/* 802D3D3C 002D0C7C 48 00 00 60 */ b lbl_802D3D9C -lbl_802D3D40: -/* 802D3D40 002D0C80 28 00 00 00 */ cmplwi r0, 0 -/* 802D3D44 002D0C84 3C 60 00 01 */ lis r3, 0x00008000@ha -/* 802D3D48 002D0C88 3B E3 80 00 */ addi r31, r3, 0x00008000@l -/* 802D3D4C 002D0C8C 41 82 00 08 */ beq lbl_802D3D54 -/* 802D3D50 002D0C90 7C 1F 03 78 */ mr r31, r0 -lbl_802D3D54: -/* 802D3D54 002D0C94 28 19 00 00 */ cmplwi r25, 0 -/* 802D3D58 002D0C98 41 82 00 20 */ beq lbl_802D3D78 -/* 802D3D5C 002D0C9C 7F E3 FB 78 */ mr r3, r31 -/* 802D3D60 002D0CA0 38 80 FF E0 */ li r4, -32 -/* 802D3D64 002D0CA4 7F 25 CB 78 */ mr r5, r25 -/* 802D3D68 002D0CA8 4B FF A7 0D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D3D6C 002D0CAC 7C 7A 1B 78 */ mr r26, r3 -/* 802D3D70 002D0CB0 93 58 00 1C */ stw r26, 0x1c(r24) -/* 802D3D74 002D0CB4 48 00 00 1C */ b lbl_802D3D90 -lbl_802D3D78: -/* 802D3D78 002D0CB8 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D3D7C 002D0CBC 7F E4 FB 78 */ mr r4, r31 -/* 802D3D80 002D0CC0 38 A0 FF E0 */ li r5, -32 -/* 802D3D84 002D0CC4 4B FF A7 51 */ bl alloc__7JKRHeapFUli -/* 802D3D88 002D0CC8 7C 7A 1B 78 */ mr r26, r3 -/* 802D3D8C 002D0CCC 93 58 00 1C */ stw r26, 0x1c(r24) -lbl_802D3D90: -/* 802D3D90 002D0CD0 93 F8 00 20 */ stw r31, 0x20(r24) -/* 802D3D94 002D0CD4 38 00 00 01 */ li r0, 1 -/* 802D3D98 002D0CD8 98 18 00 28 */ stb r0, 0x28(r24) -lbl_802D3D9C: -/* 802D3D9C 002D0CDC 28 1A 00 00 */ cmplwi r26, 0 -/* 802D3DA0 002D0CE0 40 82 00 54 */ bne lbl_802D3DF4 -/* 802D3DA4 002D0CE4 28 19 00 00 */ cmplwi r25, 0 -/* 802D3DA8 002D0CE8 40 82 00 1C */ bne lbl_802D3DC4 -/* 802D3DAC 002D0CEC 80 6D 8D F4 */ lwz r3, lbl_80451374-_SDA_BASE_(r13) -/* 802D3DB0 002D0CF0 81 83 00 00 */ lwz r12, 0(r3) -/* 802D3DB4 002D0CF4 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D3DB8 002D0CF8 7D 89 03 A6 */ mtctr r12 -/* 802D3DBC 002D0CFC 4E 80 04 21 */ bctrl -/* 802D3DC0 002D0D00 48 00 00 18 */ b lbl_802D3DD8 -lbl_802D3DC4: -/* 802D3DC4 002D0D04 7F 23 CB 78 */ mr r3, r25 -/* 802D3DC8 002D0D08 81 99 00 00 */ lwz r12, 0(r25) -/* 802D3DCC 002D0D0C 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D3DD0 002D0D10 7D 89 03 A6 */ mtctr r12 -/* 802D3DD4 002D0D14 4E 80 04 21 */ bctrl -lbl_802D3DD8: -/* 802D3DD8 002D0D18 3C 60 80 3A */ lis r3, lbl_8039D120@ha -/* 802D3DDC 002D0D1C 38 63 D1 20 */ addi r3, r3, lbl_8039D120@l -/* 802D3DE0 002D0D20 38 80 00 AC */ li r4, 0xac -/* 802D3DE4 002D0D24 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D3DE8 002D0D28 38 C3 00 15 */ addi r6, r3, 0x15 -/* 802D3DEC 002D0D2C 4C C6 31 82 */ crclr 6 -/* 802D3DF0 002D0D30 48 00 E4 0D */ bl JUTException_NS_panic_f -lbl_802D3DF4: -/* 802D3DF4 002D0D34 28 1A 00 00 */ cmplwi r26, 0 -/* 802D3DF8 002D0D38 41 82 00 AC */ beq lbl_802D3EA4 -/* 802D3DFC 002D0D3C 80 78 00 10 */ lwz r3, 0x10(r24) -/* 802D3E00 002D0D40 7F A4 EB 78 */ mr r4, r29 -/* 802D3E04 002D0D44 38 A0 00 00 */ li r5, 0 -/* 802D3E08 002D0D48 48 00 86 D5 */ bl JSURandomInputStream_NS_seek -/* 802D3E0C 002D0D4C 48 00 00 70 */ b lbl_802D3E7C -lbl_802D3E10: -/* 802D3E10 002D0D50 7C 1E F8 40 */ cmplw r30, r31 -/* 802D3E14 002D0D54 7F D9 F3 78 */ mr r25, r30 -/* 802D3E18 002D0D58 40 81 00 08 */ ble lbl_802D3E20 -/* 802D3E1C 002D0D5C 7F F9 FB 78 */ mr r25, r31 -lbl_802D3E20: -/* 802D3E20 002D0D60 80 78 00 10 */ lwz r3, 0x10(r24) -/* 802D3E24 002D0D64 7F 44 D3 78 */ mr r4, r26 -/* 802D3E28 002D0D68 7F 25 CB 78 */ mr r5, r25 -/* 802D3E2C 002D0D6C 48 00 84 6D */ bl JSUInputStream_NS_read -/* 802D3E30 002D0D70 2C 03 00 00 */ cmpwi r3, 0 -/* 802D3E34 002D0D74 40 82 00 0C */ bne lbl_802D3E40 -/* 802D3E38 002D0D78 3B 80 00 00 */ li r28, 0 -/* 802D3E3C 002D0D7C 48 00 00 48 */ b lbl_802D3E84 -lbl_802D3E40: -/* 802D3E40 002D0D80 38 60 00 00 */ li r3, 0 -/* 802D3E44 002D0D84 7F 44 D3 78 */ mr r4, r26 -/* 802D3E48 002D0D88 7F 65 DB 78 */ mr r5, r27 -/* 802D3E4C 002D0D8C 7F 26 CB 78 */ mr r6, r25 -/* 802D3E50 002D0D90 38 E0 00 00 */ li r7, 0 -/* 802D3E54 002D0D94 4B FF F9 E5 */ bl JKRAramPiece_NS_orderSync -/* 802D3E58 002D0D98 7F D9 F0 50 */ subf r30, r25, r30 -/* 802D3E5C 002D0D9C 7F 9C CA 14 */ add r28, r28, r25 -/* 802D3E60 002D0DA0 7F 7B CA 14 */ add r27, r27, r25 -/* 802D3E64 002D0DA4 80 78 00 18 */ lwz r3, 0x18(r24) -/* 802D3E68 002D0DA8 28 03 00 00 */ cmplwi r3, 0 -/* 802D3E6C 002D0DAC 41 82 00 10 */ beq lbl_802D3E7C -/* 802D3E70 002D0DB0 80 03 00 00 */ lwz r0, 0(r3) -/* 802D3E74 002D0DB4 7C 00 CA 14 */ add r0, r0, r25 -/* 802D3E78 002D0DB8 90 03 00 00 */ stw r0, 0(r3) -lbl_802D3E7C: -/* 802D3E7C 002D0DBC 28 1E 00 00 */ cmplwi r30, 0 -/* 802D3E80 002D0DC0 40 82 FF 90 */ bne lbl_802D3E10 -lbl_802D3E84: -/* 802D3E84 002D0DC4 88 18 00 28 */ lbz r0, 0x28(r24) -/* 802D3E88 002D0DC8 28 00 00 00 */ cmplwi r0, 0 -/* 802D3E8C 002D0DCC 41 82 00 18 */ beq lbl_802D3EA4 -/* 802D3E90 002D0DD0 7F 43 D3 78 */ mr r3, r26 -/* 802D3E94 002D0DD4 38 80 00 00 */ li r4, 0 -/* 802D3E98 002D0DD8 4B FF A6 69 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D3E9C 002D0DDC 38 00 00 00 */ li r0, 0 -/* 802D3EA0 002D0DE0 98 18 00 28 */ stb r0, 0x28(r24) -lbl_802D3EA4: -/* 802D3EA4 002D0DE4 38 78 00 30 */ addi r3, r24, 0x30 -/* 802D3EA8 002D0DE8 7F 84 E3 78 */ mr r4, r28 -/* 802D3EAC 002D0DEC 38 A0 00 00 */ li r5, 0 -/* 802D3EB0 002D0DF0 48 06 AB 45 */ bl OSSendMessage -/* 802D3EB4 002D0DF4 7F 83 E3 78 */ mr r3, r28 -/* 802D3EB8 002D0DF8 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D3EBC 002D0DFC 48 08 E3 59 */ bl func_80362214 -/* 802D3EC0 002D0E00 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D3EC4 002D0E04 7C 08 03 A6 */ mtlr r0 -/* 802D3EC8 002D0E08 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D3ECC 002D0E0C 4E 80 00 20 */ blr - -.global JKRAramStream_NS_write_StreamToAram_Async -JKRAramStream_NS_write_StreamToAram_Async: -/* 802D3ED0 002D0E10 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3ED4 002D0E14 7C 08 02 A6 */ mflr r0 -/* 802D3ED8 002D0E18 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3EDC 002D0E1C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3EE0 002D0E20 48 08 E2 F1 */ bl _savegpr_26 -/* 802D3EE4 002D0E24 7C 7A 1B 78 */ mr r26, r3 -/* 802D3EE8 002D0E28 7C 9B 23 78 */ mr r27, r4 -/* 802D3EEC 002D0E2C 7C BC 2B 78 */ mr r28, r5 -/* 802D3EF0 002D0E30 7C DD 33 78 */ mr r29, r6 -/* 802D3EF4 002D0E34 7C FE 3B 78 */ mr r30, r7 -/* 802D3EF8 002D0E38 38 60 00 5C */ li r3, 0x5c -/* 802D3EFC 002D0E3C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D3F00 002D0E40 38 A0 FF FC */ li r5, -4 -/* 802D3F04 002D0E44 4B FF AD 95 */ bl __nw__FUlP7JKRHeapi -/* 802D3F08 002D0E48 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D3F0C 002D0E4C 41 82 00 0C */ beq lbl_802D3F18 -/* 802D3F10 002D0E50 48 00 01 79 */ bl JKRAramStreamCommand -/* 802D3F14 002D0E54 7C 7F 1B 78 */ mr r31, r3 -lbl_802D3F18: -/* 802D3F18 002D0E58 38 00 00 02 */ li r0, 2 -/* 802D3F1C 002D0E5C 90 1F 00 00 */ stw r0, 0(r31) -/* 802D3F20 002D0E60 93 7F 00 04 */ stw r27, 4(r31) -/* 802D3F24 002D0E64 93 9F 00 08 */ stw r28, 8(r31) -/* 802D3F28 002D0E68 93 5F 00 10 */ stw r26, 0x10(r31) -/* 802D3F2C 002D0E6C 38 60 00 00 */ li r3, 0 -/* 802D3F30 002D0E70 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 802D3F34 002D0E74 93 BF 00 14 */ stw r29, 0x14(r31) -/* 802D3F38 002D0E78 80 0D 8E 8C */ lwz r0, lbl_8045140C-_SDA_BASE_(r13) -/* 802D3F3C 002D0E7C 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 802D3F40 002D0E80 80 0D 8E 94 */ lwz r0, lbl_80451414-_SDA_BASE_(r13) -/* 802D3F44 002D0E84 90 1F 00 24 */ stw r0, 0x24(r31) -/* 802D3F48 002D0E88 80 0D 8E 90 */ lwz r0, lbl_80451410-_SDA_BASE_(r13) -/* 802D3F4C 002D0E8C 90 1F 00 20 */ stw r0, 0x20(r31) -/* 802D3F50 002D0E90 93 DF 00 18 */ stw r30, 0x18(r31) -/* 802D3F54 002D0E94 28 1E 00 00 */ cmplwi r30, 0 -/* 802D3F58 002D0E98 41 82 00 08 */ beq lbl_802D3F60 -/* 802D3F5C 002D0E9C 90 7E 00 00 */ stw r3, 0(r30) -lbl_802D3F60: -/* 802D3F60 002D0EA0 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3F64 002D0EA4 38 9F 00 50 */ addi r4, r31, 0x50 -/* 802D3F68 002D0EA8 38 A0 00 01 */ li r5, 1 -/* 802D3F6C 002D0EAC 48 06 AA 29 */ bl OSInitMessageQueue -/* 802D3F70 002D0EB0 3C 60 80 3D */ lis r3, lbl_803CC198@ha -/* 802D3F74 002D0EB4 38 63 C1 98 */ addi r3, r3, lbl_803CC198@l -/* 802D3F78 002D0EB8 7F E4 FB 78 */ mr r4, r31 -/* 802D3F7C 002D0EBC 38 A0 00 01 */ li r5, 1 -/* 802D3F80 002D0EC0 48 06 AA 75 */ bl OSSendMessage -/* 802D3F84 002D0EC4 7F E3 FB 78 */ mr r3, r31 -/* 802D3F88 002D0EC8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D3F8C 002D0ECC 48 08 E2 91 */ bl _restgpr_26 -/* 802D3F90 002D0ED0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D3F94 002D0ED4 7C 08 03 A6 */ mtlr r0 -/* 802D3F98 002D0ED8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D3F9C 002D0EDC 4E 80 00 20 */ blr - -.global JKRAramStream_NS_sync -JKRAramStream_NS_sync: -/* 802D3FA0 002D0EE0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D3FA4 002D0EE4 7C 08 02 A6 */ mflr r0 -/* 802D3FA8 002D0EE8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D3FAC 002D0EEC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D3FB0 002D0EF0 7C 7F 1B 78 */ mr r31, r3 -/* 802D3FB4 002D0EF4 2C 04 00 00 */ cmpwi r4, 0 -/* 802D3FB8 002D0EF8 40 82 00 30 */ bne lbl_802D3FE8 -/* 802D3FBC 002D0EFC 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3FC0 002D0F00 38 81 00 08 */ addi r4, r1, 8 -/* 802D3FC4 002D0F04 38 A0 00 01 */ li r5, 1 -/* 802D3FC8 002D0F08 48 06 AA F5 */ bl OSReceiveMessage -/* 802D3FCC 002D0F0C 80 01 00 08 */ lwz r0, 8(r1) -/* 802D3FD0 002D0F10 28 00 00 00 */ cmplwi r0, 0 -/* 802D3FD4 002D0F14 40 82 00 0C */ bne lbl_802D3FE0 -/* 802D3FD8 002D0F18 38 60 00 00 */ li r3, 0 -/* 802D3FDC 002D0F1C 48 00 00 44 */ b lbl_802D4020 -lbl_802D3FE0: -/* 802D3FE0 002D0F20 7F E3 FB 78 */ mr r3, r31 -/* 802D3FE4 002D0F24 48 00 00 3C */ b lbl_802D4020 -lbl_802D3FE8: -/* 802D3FE8 002D0F28 38 7F 00 30 */ addi r3, r31, 0x30 -/* 802D3FEC 002D0F2C 38 81 00 08 */ addi r4, r1, 8 -/* 802D3FF0 002D0F30 38 A0 00 00 */ li r5, 0 -/* 802D3FF4 002D0F34 48 06 AA C9 */ bl OSReceiveMessage -/* 802D3FF8 002D0F38 2C 03 00 00 */ cmpwi r3, 0 -/* 802D3FFC 002D0F3C 40 82 00 0C */ bne lbl_802D4008 -/* 802D4000 002D0F40 38 60 00 00 */ li r3, 0 -/* 802D4004 002D0F44 48 00 00 1C */ b lbl_802D4020 -lbl_802D4008: -/* 802D4008 002D0F48 80 01 00 08 */ lwz r0, 8(r1) -/* 802D400C 002D0F4C 28 00 00 00 */ cmplwi r0, 0 -/* 802D4010 002D0F50 40 82 00 0C */ bne lbl_802D401C -/* 802D4014 002D0F54 38 60 00 00 */ li r3, 0 -/* 802D4018 002D0F58 48 00 00 08 */ b lbl_802D4020 -lbl_802D401C: -/* 802D401C 002D0F5C 7F E3 FB 78 */ mr r3, r31 -lbl_802D4020: -/* 802D4020 002D0F60 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D4024 002D0F64 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4028 002D0F68 7C 08 03 A6 */ mtlr r0 -/* 802D402C 002D0F6C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D4030 002D0F70 4E 80 00 20 */ blr - -.global JKRAramStream_NS_setTransBuffer -JKRAramStream_NS_setTransBuffer: -/* 802D4034 002D0F74 38 E0 00 00 */ li r7, 0 -/* 802D4038 002D0F78 90 ED 8E 8C */ stw r7, lbl_8045140C-_SDA_BASE_(r13) -/* 802D403C 002D0F7C 3C C0 00 01 */ lis r6, 0x00008000@ha -/* 802D4040 002D0F80 38 06 80 00 */ addi r0, r6, 0x00008000@l -/* 802D4044 002D0F84 90 0D 8E 90 */ stw r0, lbl_80451410-_SDA_BASE_(r13) -/* 802D4048 002D0F88 90 ED 8E 94 */ stw r7, lbl_80451414-_SDA_BASE_(r13) -/* 802D404C 002D0F8C 28 03 00 00 */ cmplwi r3, 0 -/* 802D4050 002D0F90 41 82 00 10 */ beq lbl_802D4060 -/* 802D4054 002D0F94 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D4058 002D0F98 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a -/* 802D405C 002D0F9C 90 0D 8E 8C */ stw r0, lbl_8045140C-_SDA_BASE_(r13) -lbl_802D4060: -/* 802D4060 002D0FA0 28 04 00 00 */ cmplwi r4, 0 -/* 802D4064 002D0FA4 41 82 00 0C */ beq lbl_802D4070 -/* 802D4068 002D0FA8 54 80 00 34 */ rlwinm r0, r4, 0, 0, 0x1a -/* 802D406C 002D0FAC 90 0D 8E 90 */ stw r0, lbl_80451410-_SDA_BASE_(r13) -lbl_802D4070: -/* 802D4070 002D0FB0 28 05 00 00 */ cmplwi r5, 0 -/* 802D4074 002D0FB4 4D 82 00 20 */ beqlr -/* 802D4078 002D0FB8 28 03 00 00 */ cmplwi r3, 0 -/* 802D407C 002D0FBC 4C 82 00 20 */ bnelr -/* 802D4080 002D0FC0 90 AD 8E 94 */ stw r5, lbl_80451414-_SDA_BASE_(r13) -/* 802D4084 002D0FC4 4E 80 00 20 */ blr - -.global JKRAramStreamCommand -JKRAramStreamCommand: -/* 802D4088 002D0FC8 38 00 00 00 */ li r0, 0 -/* 802D408C 002D0FCC 98 03 00 28 */ stb r0, 0x28(r3) -/* 802D4090 002D0FD0 4E 80 00 20 */ blr -/* 802D4094 002D0FD4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D4098 002D0FD8 7C 08 02 A6 */ mflr r0 -/* 802D409C 002D0FDC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D40A0 002D0FE0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D40A4 002D0FE4 93 C1 00 08 */ stw r30, 8(r1) -/* 802D40A8 002D0FE8 7C 7E 1B 78 */ mr r30, r3 -/* 802D40AC 002D0FEC 81 83 00 00 */ lwz r12, 0(r3) -/* 802D40B0 002D0FF0 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802D40B4 002D0FF4 7D 89 03 A6 */ mtctr r12 -/* 802D40B8 002D0FF8 4E 80 04 21 */ bctrl -/* 802D40BC 002D0FFC 7C 7F 1B 78 */ mr r31, r3 -/* 802D40C0 002D1000 7F C3 F3 78 */ mr r3, r30 -/* 802D40C4 002D1004 81 9E 00 00 */ lwz r12, 0(r30) -/* 802D40C8 002D1008 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D40CC 002D100C 7D 89 03 A6 */ mtctr r12 -/* 802D40D0 002D1010 4E 80 04 21 */ bctrl -/* 802D40D4 002D1014 7C 63 F8 50 */ subf r3, r3, r31 -/* 802D40D8 002D1018 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D40DC 002D101C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D40E0 002D1020 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D40E4 002D1024 7C 08 03 A6 */ mtlr r0 -/* 802D40E8 002D1028 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D40EC 002D102C 4E 80 00 20 */ blr - diff --git a/asm/JKernel/JKRCompArchive.s b/asm/JKernel/JKRCompArchive.s deleted file mode 100644 index 2411ab8a3a..0000000000 --- a/asm/JKernel/JKRCompArchive.s +++ /dev/null @@ -1,932 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802d87d4 - - -.global JKRCompArchive -JKRCompArchive: -/* 802D87D4 002D5714 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D87D8 002D5718 7C 08 02 A6 */ mflr r0 -/* 802D87DC 002D571C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D87E0 002D5720 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D87E4 002D5724 48 08 99 F9 */ bl _savegpr_29 -/* 802D87E8 002D5728 7C 7D 1B 78 */ mr r29, r3 -/* 802D87EC 002D572C 7C 9E 23 78 */ mr r30, r4 -/* 802D87F0 002D5730 7C BF 2B 78 */ mr r31, r5 -/* 802D87F4 002D5734 38 A0 00 04 */ li r5, 4 -/* 802D87F8 002D5738 4B FF DA 9D */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D87FC 002D573C 3C 60 80 3D */ lis r3, lbl_803CC3E8@ha -/* 802D8800 002D5740 38 03 C3 E8 */ addi r0, r3, lbl_803CC3E8@l -/* 802D8804 002D5744 90 1D 00 00 */ stw r0, 0(r29) -/* 802D8808 002D5748 93 FD 00 60 */ stw r31, 0x60(r29) -/* 802D880C 002D574C 7F A3 EB 78 */ mr r3, r29 -/* 802D8810 002D5750 7F C4 F3 78 */ mr r4, r30 -/* 802D8814 002D5754 48 00 01 A9 */ bl JKRCompArchive_NS_open -/* 802D8818 002D5758 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D881C 002D575C 40 82 00 0C */ bne lbl_802D8828 -/* 802D8820 002D5760 7F A3 EB 78 */ mr r3, r29 -/* 802D8824 002D5764 48 00 00 40 */ b lbl_802D8864 -lbl_802D8828: -/* 802D8828 002D5768 3C 60 52 41 */ lis r3, 0x52415243@ha -/* 802D882C 002D576C 38 03 52 43 */ addi r0, r3, 0x52415243@l -/* 802D8830 002D5770 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 802D8834 002D5774 80 9D 00 54 */ lwz r4, 0x54(r29) -/* 802D8838 002D5778 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D883C 002D577C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D8840 002D5780 7C 04 02 14 */ add r0, r4, r0 -/* 802D8844 002D5784 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D8848 002D5788 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D884C 002D578C 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D8850 002D5790 38 9D 00 18 */ addi r4, r29, 0x18 -/* 802D8854 002D5794 48 00 37 9D */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D8858 002D5798 38 00 00 01 */ li r0, 1 -/* 802D885C 002D579C 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D8860 002D57A0 7F A3 EB 78 */ mr r3, r29 -lbl_802D8864: -/* 802D8864 002D57A4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8868 002D57A8 48 08 99 C1 */ bl _restgpr_29 -/* 802D886C 002D57AC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D8870 002D57B0 7C 08 03 A6 */ mtlr r0 -/* 802D8874 002D57B4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D8878 002D57B8 4E 80 00 20 */ blr -/* 802D887C 002D57BC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D8880 002D57C0 7C 08 02 A6 */ mflr r0 -/* 802D8884 002D57C4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D8888 002D57C8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D888C 002D57CC 48 08 99 4D */ bl _savegpr_28 -/* 802D8890 002D57D0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D8894 002D57D4 7C 9F 23 78 */ mr r31, r4 -/* 802D8898 002D57D8 41 82 01 08 */ beq lbl_802D89A0 -/* 802D889C 002D57DC 3C 60 80 3D */ lis r3, lbl_803CC3E8@ha -/* 802D88A0 002D57E0 38 03 C3 E8 */ addi r0, r3, lbl_803CC3E8@l -/* 802D88A4 002D57E4 90 1E 00 00 */ stw r0, 0(r30) -/* 802D88A8 002D57E8 80 1E 00 44 */ lwz r0, 0x44(r30) -/* 802D88AC 002D57EC 28 00 00 00 */ cmplwi r0, 0 -/* 802D88B0 002D57F0 41 82 00 58 */ beq lbl_802D8908 -/* 802D88B4 002D57F4 83 BE 00 4C */ lwz r29, 0x4c(r30) -/* 802D88B8 002D57F8 3B 80 00 00 */ li r28, 0 -/* 802D88BC 002D57FC 48 00 00 2C */ b lbl_802D88E8 -lbl_802D88C0: -/* 802D88C0 002D5800 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D88C4 002D5804 54 00 46 F7 */ rlwinm. r0, r0, 8, 0x1b, 0x1b -/* 802D88C8 002D5808 40 82 00 18 */ bne lbl_802D88E0 -/* 802D88CC 002D580C 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 802D88D0 002D5810 28 03 00 00 */ cmplwi r3, 0 -/* 802D88D4 002D5814 41 82 00 0C */ beq lbl_802D88E0 -/* 802D88D8 002D5818 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D88DC 002D581C 4B FF 5C 25 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D88E0: -/* 802D88E0 002D5820 3B BD 00 14 */ addi r29, r29, 0x14 -/* 802D88E4 002D5824 3B 9C 00 01 */ addi r28, r28, 1 -lbl_802D88E8: -/* 802D88E8 002D5828 80 7E 00 44 */ lwz r3, 0x44(r30) -/* 802D88EC 002D582C 80 03 00 08 */ lwz r0, 8(r3) -/* 802D88F0 002D5830 7C 1C 00 40 */ cmplw r28, r0 -/* 802D88F4 002D5834 41 80 FF CC */ blt lbl_802D88C0 -/* 802D88F8 002D5838 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D88FC 002D583C 4B FF 5C 05 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D8900 002D5840 38 00 00 00 */ li r0, 0 -/* 802D8904 002D5844 90 1E 00 44 */ stw r0, 0x44(r30) -lbl_802D8908: -/* 802D8908 002D5848 80 7E 00 68 */ lwz r3, 0x68(r30) -/* 802D890C 002D584C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8910 002D5850 41 82 00 1C */ beq lbl_802D892C -/* 802D8914 002D5854 41 82 00 18 */ beq lbl_802D892C -/* 802D8918 002D5858 38 80 00 01 */ li r4, 1 -/* 802D891C 002D585C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D8920 002D5860 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D8924 002D5864 7D 89 03 A6 */ mtctr r12 -/* 802D8928 002D5868 4E 80 04 21 */ bctrl -lbl_802D892C: -/* 802D892C 002D586C 80 7E 00 50 */ lwz r3, 0x50(r30) -/* 802D8930 002D5870 28 03 00 00 */ cmplwi r3, 0 -/* 802D8934 002D5874 41 82 00 14 */ beq lbl_802D8948 -/* 802D8938 002D5878 38 80 00 00 */ li r4, 0 -/* 802D893C 002D587C 4B FF 5B C5 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D8940 002D5880 38 00 00 00 */ li r0, 0 -/* 802D8944 002D5884 90 1E 00 50 */ stw r0, 0x50(r30) -lbl_802D8948: -/* 802D8948 002D5888 80 7E 00 70 */ lwz r3, 0x70(r30) -/* 802D894C 002D588C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8950 002D5890 41 82 00 1C */ beq lbl_802D896C -/* 802D8954 002D5894 41 82 00 18 */ beq lbl_802D896C -/* 802D8958 002D5898 38 80 00 01 */ li r4, 1 -/* 802D895C 002D589C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D8960 002D58A0 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D8964 002D58A4 7D 89 03 A6 */ mtctr r12 -/* 802D8968 002D58A8 4E 80 04 21 */ bctrl -lbl_802D896C: -/* 802D896C 002D58AC 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D8970 002D58B0 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D8974 002D58B4 38 9E 00 18 */ addi r4, r30, 0x18 -/* 802D8978 002D58B8 48 00 37 E5 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D897C 002D58BC 38 00 00 00 */ li r0, 0 -/* 802D8980 002D58C0 98 1E 00 30 */ stb r0, 0x30(r30) -/* 802D8984 002D58C4 7F C3 F3 78 */ mr r3, r30 -/* 802D8988 002D58C8 38 80 00 00 */ li r4, 0 -/* 802D898C 002D58CC 4B FF D9 A9 */ bl __dt__10JKRArchiveFv -/* 802D8990 002D58D0 7F E0 07 35 */ extsh. r0, r31 -/* 802D8994 002D58D4 40 81 00 0C */ ble lbl_802D89A0 -/* 802D8998 002D58D8 7F C3 F3 78 */ mr r3, r30 -/* 802D899C 002D58DC 4B FF 63 A1 */ bl __dl__FPv -lbl_802D89A0: -/* 802D89A0 002D58E0 7F C3 F3 78 */ mr r3, r30 -/* 802D89A4 002D58E4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D89A8 002D58E8 48 08 98 7D */ bl _restgpr_28 -/* 802D89AC 002D58EC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D89B0 002D58F0 7C 08 03 A6 */ mtlr r0 -/* 802D89B4 002D58F4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D89B8 002D58F8 4E 80 00 20 */ blr - -.global JKRCompArchive_NS_open -JKRCompArchive_NS_open: -/* 802D89BC 002D58FC 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D89C0 002D5900 7C 08 02 A6 */ mflr r0 -/* 802D89C4 002D5904 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D89C8 002D5908 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D89CC 002D590C 48 08 98 01 */ bl func_803621CC -/* 802D89D0 002D5910 7C 7F 1B 78 */ mr r31, r3 -/* 802D89D4 002D5914 7C 9A 23 78 */ mr r26, r4 -/* 802D89D8 002D5918 38 00 00 00 */ li r0, 0 -/* 802D89DC 002D591C 90 03 00 44 */ stw r0, 0x44(r3) -/* 802D89E0 002D5920 90 03 00 64 */ stw r0, 0x64(r3) -/* 802D89E4 002D5924 90 03 00 68 */ stw r0, 0x68(r3) -/* 802D89E8 002D5928 90 03 00 6C */ stw r0, 0x6c(r3) -/* 802D89EC 002D592C 90 03 00 74 */ stw r0, 0x74(r3) -/* 802D89F0 002D5930 90 03 00 78 */ stw r0, 0x78(r3) -/* 802D89F4 002D5934 90 03 00 7C */ stw r0, 0x7c(r3) -/* 802D89F8 002D5938 90 03 00 48 */ stw r0, 0x48(r3) -/* 802D89FC 002D593C 90 03 00 4C */ stw r0, 0x4c(r3) -/* 802D8A00 002D5940 90 03 00 54 */ stw r0, 0x54(r3) -/* 802D8A04 002D5944 38 60 00 F8 */ li r3, 0xf8 -/* 802D8A08 002D5948 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D8A0C 002D594C 38 A0 00 00 */ li r5, 0 -/* 802D8A10 002D5950 4B FF 62 89 */ bl __nw__FUlP7JKRHeapi -/* 802D8A14 002D5954 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D8A18 002D5958 41 82 00 10 */ beq lbl_802D8A28 -/* 802D8A1C 002D595C 7F 44 D3 78 */ mr r4, r26 -/* 802D8A20 002D5960 48 00 0C 81 */ bl __ct__10JKRDvdFileFl -/* 802D8A24 002D5964 7C 60 1B 78 */ mr r0, r3 -lbl_802D8A28: -/* 802D8A28 002D5968 90 1F 00 70 */ stw r0, 0x70(r31) -/* 802D8A2C 002D596C 80 1F 00 70 */ lwz r0, 0x70(r31) -/* 802D8A30 002D5970 28 00 00 00 */ cmplwi r0, 0 -/* 802D8A34 002D5974 40 82 00 14 */ bne lbl_802D8A48 -/* 802D8A38 002D5978 38 00 00 00 */ li r0, 0 -/* 802D8A3C 002D597C 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8A40 002D5980 38 60 00 00 */ li r3, 0 -/* 802D8A44 002D5984 48 00 04 E4 */ b lbl_802D8F28 -lbl_802D8A48: -/* 802D8A48 002D5988 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D8A4C 002D598C 38 80 00 20 */ li r4, 0x20 -/* 802D8A50 002D5990 38 A0 FF E0 */ li r5, -32 -/* 802D8A54 002D5994 4B FF 5A 81 */ bl alloc__7JKRHeapFUli -/* 802D8A58 002D5998 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D8A5C 002D599C 40 82 00 10 */ bne lbl_802D8A6C -/* 802D8A60 002D59A0 38 00 00 00 */ li r0, 0 -/* 802D8A64 002D59A4 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8A68 002D59A8 48 00 04 70 */ b lbl_802D8ED8 -lbl_802D8A6C: -/* 802D8A6C 002D59AC 38 00 00 00 */ li r0, 0 -/* 802D8A70 002D59B0 90 01 00 08 */ stw r0, 8(r1) -/* 802D8A74 002D59B4 7F 43 D3 78 */ mr r3, r26 -/* 802D8A78 002D59B8 7F C4 F3 78 */ mr r4, r30 -/* 802D8A7C 002D59BC 38 A0 00 01 */ li r5, 1 -/* 802D8A80 002D59C0 38 C0 00 20 */ li r6, 0x20 -/* 802D8A84 002D59C4 38 E0 00 00 */ li r7, 0 -/* 802D8A88 002D59C8 39 00 00 01 */ li r8, 1 -/* 802D8A8C 002D59CC 39 20 00 00 */ li r9, 0 -/* 802D8A90 002D59D0 39 5F 00 5C */ addi r10, r31, 0x5c -/* 802D8A94 002D59D4 48 00 11 C1 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8A98 002D59D8 7F C3 F3 78 */ mr r3, r30 -/* 802D8A9C 002D59DC 38 80 00 20 */ li r4, 0x20 -/* 802D8AA0 002D59E0 48 06 2A E1 */ bl DCInvalidateRange -/* 802D8AA4 002D59E4 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802D8AA8 002D59E8 90 1F 00 74 */ stw r0, 0x74(r31) -/* 802D8AAC 002D59EC 80 1E 00 18 */ lwz r0, 0x18(r30) -/* 802D8AB0 002D59F0 90 1F 00 78 */ stw r0, 0x78(r31) -/* 802D8AB4 002D59F4 80 1F 00 5C */ lwz r0, 0x5c(r31) -/* 802D8AB8 002D59F8 2C 00 00 01 */ cmpwi r0, 1 -/* 802D8ABC 002D59FC 41 82 01 60 */ beq lbl_802D8C1C -/* 802D8AC0 002D5A00 40 80 00 10 */ bge lbl_802D8AD0 -/* 802D8AC4 002D5A04 2C 00 00 00 */ cmpwi r0, 0 -/* 802D8AC8 002D5A08 40 80 00 10 */ bge lbl_802D8AD8 -/* 802D8ACC 002D5A0C 48 00 03 58 */ b lbl_802D8E24 -lbl_802D8AD0: -/* 802D8AD0 002D5A10 2C 00 00 03 */ cmpwi r0, 3 -/* 802D8AD4 002D5A14 40 80 03 50 */ bge lbl_802D8E24 -lbl_802D8AD8: -/* 802D8AD8 002D5A18 80 1F 00 60 */ lwz r0, 0x60(r31) -/* 802D8ADC 002D5A1C 2C 00 00 01 */ cmpwi r0, 1 -/* 802D8AE0 002D5A20 38 80 FF E0 */ li r4, -32 -/* 802D8AE4 002D5A24 40 82 00 08 */ bne lbl_802D8AEC -/* 802D8AE8 002D5A28 38 80 00 20 */ li r4, 0x20 -lbl_802D8AEC: -/* 802D8AEC 002D5A2C 7C 9D 23 78 */ mr r29, r4 -/* 802D8AF0 002D5A30 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 802D8AF4 002D5A34 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 802D8AF8 002D5A38 7C 63 02 14 */ add r3, r3, r0 -/* 802D8AFC 002D5A3C 80 BF 00 38 */ lwz r5, 0x38(r31) -/* 802D8B00 002D5A40 4B FF 59 75 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D8B04 002D5A44 90 7F 00 44 */ stw r3, 0x44(r31) -/* 802D8B08 002D5A48 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D8B0C 002D5A4C 28 04 00 00 */ cmplwi r4, 0 -/* 802D8B10 002D5A50 40 82 00 10 */ bne lbl_802D8B20 -/* 802D8B14 002D5A54 38 00 00 00 */ li r0, 0 -/* 802D8B18 002D5A58 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8B1C 002D5A5C 48 00 03 08 */ b lbl_802D8E24 -lbl_802D8B20: -/* 802D8B20 002D5A60 38 00 00 00 */ li r0, 0 -/* 802D8B24 002D5A64 90 01 00 08 */ stw r0, 8(r1) -/* 802D8B28 002D5A68 7F 43 D3 78 */ mr r3, r26 -/* 802D8B2C 002D5A6C 38 A0 00 01 */ li r5, 1 -/* 802D8B30 002D5A70 80 DE 00 0C */ lwz r6, 0xc(r30) -/* 802D8B34 002D5A74 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 802D8B38 002D5A78 7C C6 02 14 */ add r6, r6, r0 -/* 802D8B3C 002D5A7C 38 E0 00 00 */ li r7, 0 -/* 802D8B40 002D5A80 39 00 00 01 */ li r8, 1 -/* 802D8B44 002D5A84 39 20 00 20 */ li r9, 0x20 -/* 802D8B48 002D5A88 39 40 00 00 */ li r10, 0 -/* 802D8B4C 002D5A8C 48 00 11 09 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8B50 002D5A90 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8B54 002D5A94 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 802D8B58 002D5A98 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 802D8B5C 002D5A9C 7C 84 02 14 */ add r4, r4, r0 -/* 802D8B60 002D5AA0 48 06 2A 21 */ bl DCInvalidateRange -/* 802D8B64 002D5AA4 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8B68 002D5AA8 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D8B6C 002D5AAC 7C 03 02 14 */ add r0, r3, r0 -/* 802D8B70 002D5AB0 90 1F 00 64 */ stw r0, 0x64(r31) -/* 802D8B74 002D5AB4 80 9F 00 78 */ lwz r4, 0x78(r31) -/* 802D8B78 002D5AB8 28 04 00 00 */ cmplwi r4, 0 -/* 802D8B7C 002D5ABC 41 82 00 5C */ beq lbl_802D8BD8 -/* 802D8B80 002D5AC0 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802D8B84 002D5AC4 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802D8B88 002D5AC8 38 A0 00 00 */ li r5, 0 -/* 802D8B8C 002D5ACC 4B FF A4 31 */ bl JKRAramHeap_NS_alloc -/* 802D8B90 002D5AD0 90 7F 00 68 */ stw r3, 0x68(r31) -/* 802D8B94 002D5AD4 80 7F 00 68 */ lwz r3, 0x68(r31) -/* 802D8B98 002D5AD8 28 03 00 00 */ cmplwi r3, 0 -/* 802D8B9C 002D5ADC 40 82 00 10 */ bne lbl_802D8BAC -/* 802D8BA0 002D5AE0 38 00 00 00 */ li r0, 0 -/* 802D8BA4 002D5AE4 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8BA8 002D5AE8 48 00 02 7C */ b lbl_802D8E24 -lbl_802D8BAC: -/* 802D8BAC 002D5AEC 80 83 00 14 */ lwz r4, 0x14(r3) -/* 802D8BB0 002D5AF0 7F 43 D3 78 */ mr r3, r26 -/* 802D8BB4 002D5AF4 38 A0 00 01 */ li r5, 1 -/* 802D8BB8 002D5AF8 80 DF 00 74 */ lwz r6, 0x74(r31) -/* 802D8BBC 002D5AFC 80 FE 00 08 */ lwz r7, 8(r30) -/* 802D8BC0 002D5B00 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D8BC4 002D5B04 7C C0 32 14 */ add r6, r0, r6 -/* 802D8BC8 002D5B08 7C C7 32 14 */ add r6, r7, r6 -/* 802D8BCC 002D5B0C 38 E0 00 00 */ li r7, 0 -/* 802D8BD0 002D5B10 39 00 00 00 */ li r8, 0 -/* 802D8BD4 002D5B14 48 00 1C A1 */ bl JKRDvdAramRipper_NS_loadToAram -lbl_802D8BD8: -/* 802D8BD8 002D5B18 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8BDC 002D5B1C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D8BE0 002D5B20 7C 03 02 14 */ add r0, r3, r0 -/* 802D8BE4 002D5B24 90 1F 00 48 */ stw r0, 0x48(r31) -/* 802D8BE8 002D5B28 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8BEC 002D5B2C 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802D8BF0 002D5B30 7C 03 02 14 */ add r0, r3, r0 -/* 802D8BF4 002D5B34 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 802D8BF8 002D5B38 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8BFC 002D5B3C 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802D8C00 002D5B40 7C 03 02 14 */ add r0, r3, r0 -/* 802D8C04 002D5B44 90 1F 00 54 */ stw r0, 0x54(r31) -/* 802D8C08 002D5B48 80 7E 00 08 */ lwz r3, 8(r30) -/* 802D8C0C 002D5B4C 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D8C10 002D5B50 7C 03 02 14 */ add r0, r3, r0 -/* 802D8C14 002D5B54 90 1F 00 6C */ stw r0, 0x6c(r31) -/* 802D8C18 002D5B58 48 00 02 0C */ b lbl_802D8E24 -lbl_802D8C1C: -/* 802D8C1C 002D5B5C 80 7F 00 70 */ lwz r3, 0x70(r31) -/* 802D8C20 002D5B60 81 83 00 00 */ lwz r12, 0(r3) -/* 802D8C24 002D5B64 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D8C28 002D5B68 7D 89 03 A6 */ mtctr r12 -/* 802D8C2C 002D5B6C 4E 80 04 21 */ bctrl -/* 802D8C30 002D5B70 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D8C34 002D5B74 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a -/* 802D8C38 002D5B78 80 1F 00 60 */ lwz r0, 0x60(r31) -/* 802D8C3C 002D5B7C 2C 00 00 01 */ cmpwi r0, 1 -/* 802D8C40 002D5B80 3B A0 FF E0 */ li r29, -32 -/* 802D8C44 002D5B84 40 82 00 08 */ bne lbl_802D8C4C -/* 802D8C48 002D5B88 3B A0 00 20 */ li r29, 0x20 -lbl_802D8C4C: -/* 802D8C4C 002D5B8C 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D8C50 002D5B90 7F 24 CB 78 */ mr r4, r25 -/* 802D8C54 002D5B94 7F 9D 00 D0 */ neg r28, r29 -/* 802D8C58 002D5B98 7F 85 E3 78 */ mr r5, r28 -/* 802D8C5C 002D5B9C 4B FF 58 79 */ bl alloc__7JKRHeapFUli -/* 802D8C60 002D5BA0 7C 7B 1B 79 */ or. r27, r3, r3 -/* 802D8C64 002D5BA4 40 82 00 10 */ bne lbl_802D8C74 -/* 802D8C68 002D5BA8 38 00 00 00 */ li r0, 0 -/* 802D8C6C 002D5BAC 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8C70 002D5BB0 48 00 01 74 */ b lbl_802D8DE4 -lbl_802D8C74: -/* 802D8C74 002D5BB4 38 00 00 00 */ li r0, 0 -/* 802D8C78 002D5BB8 90 01 00 08 */ stw r0, 8(r1) -/* 802D8C7C 002D5BBC 7F 43 D3 78 */ mr r3, r26 -/* 802D8C80 002D5BC0 7F 64 DB 78 */ mr r4, r27 -/* 802D8C84 002D5BC4 38 A0 00 02 */ li r5, 2 -/* 802D8C88 002D5BC8 7F 26 CB 78 */ mr r6, r25 -/* 802D8C8C 002D5BCC 38 E0 00 00 */ li r7, 0 -/* 802D8C90 002D5BD0 39 00 00 01 */ li r8, 1 -/* 802D8C94 002D5BD4 39 20 00 00 */ li r9, 0 -/* 802D8C98 002D5BD8 39 40 00 00 */ li r10, 0 -/* 802D8C9C 002D5BDC 48 00 0F B9 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8CA0 002D5BE0 7F 63 DB 78 */ mr r3, r27 -/* 802D8CA4 002D5BE4 7F 24 CB 78 */ mr r4, r25 -/* 802D8CA8 002D5BE8 48 06 28 D9 */ bl DCInvalidateRange -/* 802D8CAC 002D5BEC 88 BB 00 07 */ lbz r5, 7(r27) -/* 802D8CB0 002D5BF0 88 9B 00 06 */ lbz r4, 6(r27) -/* 802D8CB4 002D5BF4 88 7B 00 04 */ lbz r3, 4(r27) -/* 802D8CB8 002D5BF8 88 1B 00 05 */ lbz r0, 5(r27) -/* 802D8CBC 002D5BFC 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D8CC0 002D5C00 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D8CC4 002D5C04 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D8CC8 002D5C08 7C A3 03 78 */ or r3, r5, r0 -/* 802D8CCC 002D5C0C 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D8CD0 002D5C10 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a -/* 802D8CD4 002D5C14 7F 23 CB 78 */ mr r3, r25 -/* 802D8CD8 002D5C18 7F 84 E3 78 */ mr r4, r28 -/* 802D8CDC 002D5C1C 80 BF 00 38 */ lwz r5, 0x38(r31) -/* 802D8CE0 002D5C20 4B FF 57 95 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D8CE4 002D5C24 7C 7C 1B 79 */ or. r28, r3, r3 -/* 802D8CE8 002D5C28 40 82 00 10 */ bne lbl_802D8CF8 -/* 802D8CEC 002D5C2C 38 00 00 00 */ li r0, 0 -/* 802D8CF0 002D5C30 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8CF4 002D5C34 48 00 00 F0 */ b lbl_802D8DE4 -lbl_802D8CF8: -/* 802D8CF8 002D5C38 7F 9E E3 78 */ mr r30, r28 -/* 802D8CFC 002D5C3C 7F 63 DB 78 */ mr r3, r27 -/* 802D8D00 002D5C40 7F 84 E3 78 */ mr r4, r28 -/* 802D8D04 002D5C44 7F 25 CB 78 */ mr r5, r25 -/* 802D8D08 002D5C48 38 C0 00 00 */ li r6, 0 -/* 802D8D0C 002D5C4C 48 00 2C 7D */ bl JKRDecomp_NS_orderSync -/* 802D8D10 002D5C50 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D8D14 002D5C54 7F 64 DB 78 */ mr r4, r27 -/* 802D8D18 002D5C58 4B FF 58 31 */ bl free__7JKRHeapFPv -/* 802D8D1C 002D5C5C 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 802D8D20 002D5C60 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 802D8D24 002D5C64 7C 63 02 14 */ add r3, r3, r0 -/* 802D8D28 002D5C68 7F A4 EB 78 */ mr r4, r29 -/* 802D8D2C 002D5C6C 80 BF 00 38 */ lwz r5, 0x38(r31) -/* 802D8D30 002D5C70 4B FF 57 45 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D8D34 002D5C74 90 7F 00 44 */ stw r3, 0x44(r31) -/* 802D8D38 002D5C78 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8D3C 002D5C7C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8D40 002D5C80 40 82 00 10 */ bne lbl_802D8D50 -/* 802D8D44 002D5C84 38 00 00 00 */ li r0, 0 -/* 802D8D48 002D5C88 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8D4C 002D5C8C 48 00 00 98 */ b lbl_802D8DE4 -lbl_802D8D50: -/* 802D8D50 002D5C90 38 9E 00 20 */ addi r4, r30, 0x20 -/* 802D8D54 002D5C94 80 BE 00 0C */ lwz r5, 0xc(r30) -/* 802D8D58 002D5C98 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 802D8D5C 002D5C9C 7C A5 02 14 */ add r5, r5, r0 -/* 802D8D60 002D5CA0 4B FF 5D B9 */ bl copyMemory__7JKRHeapFPvPvUl -/* 802D8D64 002D5CA4 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8D68 002D5CA8 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D8D6C 002D5CAC 7C 03 02 14 */ add r0, r3, r0 -/* 802D8D70 002D5CB0 90 1F 00 64 */ stw r0, 0x64(r31) -/* 802D8D74 002D5CB4 80 9F 00 78 */ lwz r4, 0x78(r31) -/* 802D8D78 002D5CB8 28 04 00 00 */ cmplwi r4, 0 -/* 802D8D7C 002D5CBC 41 82 00 68 */ beq lbl_802D8DE4 -/* 802D8D80 002D5CC0 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802D8D84 002D5CC4 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802D8D88 002D5CC8 38 A0 00 00 */ li r5, 0 -/* 802D8D8C 002D5CCC 4B FF A2 31 */ bl JKRAramHeap_NS_alloc -/* 802D8D90 002D5CD0 90 7F 00 68 */ stw r3, 0x68(r31) -/* 802D8D94 002D5CD4 80 7F 00 68 */ lwz r3, 0x68(r31) -/* 802D8D98 002D5CD8 28 03 00 00 */ cmplwi r3, 0 -/* 802D8D9C 002D5CDC 40 82 00 10 */ bne lbl_802D8DAC -/* 802D8DA0 002D5CE0 38 00 00 00 */ li r0, 0 -/* 802D8DA4 002D5CE4 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8DA8 002D5CE8 48 00 00 3C */ b lbl_802D8DE4 -lbl_802D8DAC: -/* 802D8DAC 002D5CEC 80 83 00 14 */ lwz r4, 0x14(r3) -/* 802D8DB0 002D5CF0 80 7E 00 08 */ lwz r3, 8(r30) -/* 802D8DB4 002D5CF4 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D8DB8 002D5CF8 7C 63 02 14 */ add r3, r3, r0 -/* 802D8DBC 002D5CFC 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 802D8DC0 002D5D00 7C 63 02 14 */ add r3, r3, r0 -/* 802D8DC4 002D5D04 7C 7C 1A 14 */ add r3, r28, r3 -/* 802D8DC8 002D5D08 80 BF 00 78 */ lwz r5, 0x78(r31) -/* 802D8DCC 002D5D0C 38 C0 00 00 */ li r6, 0 -/* 802D8DD0 002D5D10 38 E0 00 00 */ li r7, 0 -/* 802D8DD4 002D5D14 39 00 00 00 */ li r8, 0 -/* 802D8DD8 002D5D18 39 20 FF FF */ li r9, -1 -/* 802D8DDC 002D5D1C 39 40 00 00 */ li r10, 0 -/* 802D8DE0 002D5D20 4B FF 95 5D */ bl JKRAram_NS_mainRamToAram -lbl_802D8DE4: -/* 802D8DE4 002D5D24 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8DE8 002D5D28 80 03 00 04 */ lwz r0, 4(r3) -/* 802D8DEC 002D5D2C 7C 03 02 14 */ add r0, r3, r0 -/* 802D8DF0 002D5D30 90 1F 00 48 */ stw r0, 0x48(r31) -/* 802D8DF4 002D5D34 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8DF8 002D5D38 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802D8DFC 002D5D3C 7C 03 02 14 */ add r0, r3, r0 -/* 802D8E00 002D5D40 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 802D8E04 002D5D44 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8E08 002D5D48 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802D8E0C 002D5D4C 7C 03 02 14 */ add r0, r3, r0 -/* 802D8E10 002D5D50 90 1F 00 54 */ stw r0, 0x54(r31) -/* 802D8E14 002D5D54 80 7E 00 08 */ lwz r3, 8(r30) -/* 802D8E18 002D5D58 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D8E1C 002D5D5C 7C 03 02 14 */ add r0, r3, r0 -/* 802D8E20 002D5D60 90 1F 00 6C */ stw r0, 0x6c(r31) -lbl_802D8E24: -/* 802D8E24 002D5D64 38 00 00 00 */ li r0, 0 -/* 802D8E28 002D5D68 90 1F 00 50 */ stw r0, 0x50(r31) -/* 802D8E2C 002D5D6C 38 80 00 00 */ li r4, 0 -/* 802D8E30 002D5D70 80 BF 00 4C */ lwz r5, 0x4c(r31) -/* 802D8E34 002D5D74 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8E38 002D5D78 80 03 00 08 */ lwz r0, 8(r3) -/* 802D8E3C 002D5D7C 7C 09 03 A6 */ mtctr r0 -/* 802D8E40 002D5D80 28 00 00 00 */ cmplwi r0, 0 -/* 802D8E44 002D5D84 40 81 00 30 */ ble lbl_802D8E74 -lbl_802D8E48: -/* 802D8E48 002D5D88 80 05 00 04 */ lwz r0, 4(r5) -/* 802D8E4C 002D5D8C 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D8E50 002D5D90 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D8E54 002D5D94 41 82 00 18 */ beq lbl_802D8E6C -/* 802D8E58 002D5D98 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b -/* 802D8E5C 002D5D9C 40 82 00 10 */ bne lbl_802D8E6C -/* 802D8E60 002D5DA0 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d -/* 802D8E64 002D5DA4 7C 80 03 78 */ or r0, r4, r0 -/* 802D8E68 002D5DA8 54 04 06 3E */ clrlwi r4, r0, 0x18 -lbl_802D8E6C: -/* 802D8E6C 002D5DAC 38 A5 00 14 */ addi r5, r5, 0x14 -/* 802D8E70 002D5DB0 42 00 FF D8 */ bdnz lbl_802D8E48 -lbl_802D8E74: -/* 802D8E74 002D5DB4 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802D8E78 002D5DB8 41 82 00 60 */ beq lbl_802D8ED8 -/* 802D8E7C 002D5DBC 7F A3 EB 78 */ mr r3, r29 -/* 802D8E80 002D5DC0 48 08 C2 51 */ bl func_803650D0 -/* 802D8E84 002D5DC4 7C 64 1B 78 */ mr r4, r3 -/* 802D8E88 002D5DC8 80 BF 00 38 */ lwz r5, 0x38(r31) -/* 802D8E8C 002D5DCC 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D8E90 002D5DD0 80 03 00 08 */ lwz r0, 8(r3) -/* 802D8E94 002D5DD4 54 03 10 3A */ slwi r3, r0, 2 -/* 802D8E98 002D5DD8 4B FF 55 DD */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D8E9C 002D5DDC 90 7F 00 50 */ stw r3, 0x50(r31) -/* 802D8EA0 002D5DE0 80 7F 00 50 */ lwz r3, 0x50(r31) -/* 802D8EA4 002D5DE4 28 03 00 00 */ cmplwi r3, 0 -/* 802D8EA8 002D5DE8 40 82 00 1C */ bne lbl_802D8EC4 -/* 802D8EAC 002D5DEC 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D8EB0 002D5DF0 80 9F 00 44 */ lwz r4, 0x44(r31) -/* 802D8EB4 002D5DF4 4B FF 56 95 */ bl free__7JKRHeapFPv -/* 802D8EB8 002D5DF8 38 00 00 00 */ li r0, 0 -/* 802D8EBC 002D5DFC 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D8EC0 002D5E00 48 00 00 18 */ b lbl_802D8ED8 -lbl_802D8EC4: -/* 802D8EC4 002D5E04 38 80 00 00 */ li r4, 0 -/* 802D8EC8 002D5E08 80 BF 00 44 */ lwz r5, 0x44(r31) -/* 802D8ECC 002D5E0C 80 05 00 08 */ lwz r0, 8(r5) -/* 802D8ED0 002D5E10 54 05 10 3A */ slwi r5, r0, 2 -/* 802D8ED4 002D5E14 4B D2 A5 85 */ bl func_80003458 -lbl_802D8ED8: -/* 802D8ED8 002D5E18 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8EDC 002D5E1C 41 82 00 10 */ beq lbl_802D8EEC -/* 802D8EE0 002D5E20 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D8EE4 002D5E24 7F C4 F3 78 */ mr r4, r30 -/* 802D8EE8 002D5E28 4B FF 56 61 */ bl free__7JKRHeapFPv -lbl_802D8EEC: -/* 802D8EEC 002D5E2C 88 1F 00 3C */ lbz r0, 0x3c(r31) -/* 802D8EF0 002D5E30 28 00 00 00 */ cmplwi r0, 0 -/* 802D8EF4 002D5E34 40 82 00 30 */ bne lbl_802D8F24 -/* 802D8EF8 002D5E38 80 7F 00 70 */ lwz r3, 0x70(r31) -/* 802D8EFC 002D5E3C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8F00 002D5E40 41 82 00 1C */ beq lbl_802D8F1C -/* 802D8F04 002D5E44 41 82 00 18 */ beq lbl_802D8F1C -/* 802D8F08 002D5E48 38 80 00 01 */ li r4, 1 -/* 802D8F0C 002D5E4C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D8F10 002D5E50 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D8F14 002D5E54 7D 89 03 A6 */ mtctr r12 -/* 802D8F18 002D5E58 4E 80 04 21 */ bctrl -lbl_802D8F1C: -/* 802D8F1C 002D5E5C 38 60 00 00 */ li r3, 0 -/* 802D8F20 002D5E60 48 00 00 08 */ b lbl_802D8F28 -lbl_802D8F24: -/* 802D8F24 002D5E64 38 60 00 01 */ li r3, 1 -lbl_802D8F28: -/* 802D8F28 002D5E68 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D8F2C 002D5E6C 48 08 92 ED */ bl func_80362218 -/* 802D8F30 002D5E70 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D8F34 002D5E74 7C 08 03 A6 */ mtlr r0 -/* 802D8F38 002D5E78 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D8F3C 002D5E7C 4E 80 00 20 */ blr -/* 802D8F40 002D5E80 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802D8F44 002D5E84 7C 08 02 A6 */ mflr r0 -/* 802D8F48 002D5E88 90 01 00 34 */ stw r0, 0x34(r1) -/* 802D8F4C 002D5E8C 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D8F50 002D5E90 48 08 92 89 */ bl _savegpr_28 -/* 802D8F54 002D5E94 7C 7C 1B 78 */ mr r28, r3 -/* 802D8F58 002D5E98 7C 9D 23 78 */ mr r29, r4 -/* 802D8F5C 002D5E9C 7C BE 2B 78 */ mr r30, r5 -/* 802D8F60 002D5EA0 80 A4 00 0C */ lwz r5, 0xc(r4) -/* 802D8F64 002D5EA4 7C A4 2B 78 */ mr r4, r5 -/* 802D8F68 002D5EA8 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D8F6C 002D5EAC 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D8F70 002D5EB0 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D8F74 002D5EB4 40 82 00 0C */ bne lbl_802D8F80 -/* 802D8F78 002D5EB8 3B E0 00 00 */ li r31, 0 -/* 802D8F7C 002D5EBC 48 00 00 18 */ b lbl_802D8F94 -lbl_802D8F80: -/* 802D8F80 002D5EC0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 -/* 802D8F84 002D5EC4 41 82 00 0C */ beq lbl_802D8F90 -/* 802D8F88 002D5EC8 3B E0 00 02 */ li r31, 2 -/* 802D8F8C 002D5ECC 48 00 00 08 */ b lbl_802D8F94 -lbl_802D8F90: -/* 802D8F90 002D5ED0 3B E0 00 01 */ li r31, 1 -lbl_802D8F94: -/* 802D8F94 002D5ED4 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8F98 002D5ED8 40 82 00 08 */ bne lbl_802D8FA0 -/* 802D8F9C 002D5EDC 3B C1 00 10 */ addi r30, r1, 0x10 -lbl_802D8FA0: -/* 802D8FA0 002D5EE0 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 802D8FA4 002D5EE4 28 00 00 00 */ cmplwi r0, 0 -/* 802D8FA8 002D5EE8 40 82 00 F0 */ bne lbl_802D9098 -/* 802D8FAC 002D5EEC 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b -/* 802D8FB0 002D5EF0 41 82 00 1C */ beq lbl_802D8FCC -/* 802D8FB4 002D5EF4 80 7C 00 64 */ lwz r3, 0x64(r28) -/* 802D8FB8 002D5EF8 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D8FBC 002D5EFC 7C 03 02 14 */ add r0, r3, r0 -/* 802D8FC0 002D5F00 90 1D 00 10 */ stw r0, 0x10(r29) -/* 802D8FC4 002D5F04 90 9E 00 00 */ stw r4, 0(r30) -/* 802D8FC8 002D5F08 48 00 00 DC */ b lbl_802D90A4 -lbl_802D8FCC: -/* 802D8FCC 002D5F0C 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a -/* 802D8FD0 002D5F10 41 82 00 60 */ beq lbl_802D9030 -/* 802D8FD4 002D5F14 80 7C 00 68 */ lwz r3, 0x68(r28) -/* 802D8FD8 002D5F18 80 A3 00 14 */ lwz r5, 0x14(r3) -/* 802D8FDC 002D5F1C 80 7C 00 74 */ lwz r3, 0x74(r28) -/* 802D8FE0 002D5F20 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D8FE4 002D5F24 7C 00 2A 14 */ add r0, r0, r5 -/* 802D8FE8 002D5F28 7C 63 00 50 */ subf r3, r3, r0 -/* 802D8FEC 002D5F2C 80 BC 00 38 */ lwz r5, 0x38(r28) -/* 802D8FF0 002D5F30 7F E6 FB 78 */ mr r6, r31 -/* 802D8FF4 002D5F34 38 E1 00 0C */ addi r7, r1, 0xc -/* 802D8FF8 002D5F38 4B FF E9 1D */ bl JKRAramArchive_NS_fetchResource_subroutine_X1_ -/* 802D8FFC 002D5F3C 90 7E 00 00 */ stw r3, 0(r30) -/* 802D9000 002D5F40 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802D9004 002D5F44 90 1D 00 10 */ stw r0, 0x10(r29) -/* 802D9008 002D5F48 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D900C 002D5F4C 40 82 00 98 */ bne lbl_802D90A4 -/* 802D9010 002D5F50 7F 83 E3 78 */ mr r3, r28 -/* 802D9014 002D5F54 7F A4 EB 78 */ mr r4, r29 -/* 802D9018 002D5F58 80 BE 00 00 */ lwz r5, 0(r30) -/* 802D901C 002D5F5C 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D9020 002D5F60 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D9024 002D5F64 7D 89 03 A6 */ mtctr r12 -/* 802D9028 002D5F68 4E 80 04 21 */ bctrl -/* 802D902C 002D5F6C 48 00 00 78 */ b lbl_802D90A4 -lbl_802D9030: -/* 802D9030 002D5F70 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 -/* 802D9034 002D5F74 41 82 00 70 */ beq lbl_802D90A4 -/* 802D9038 002D5F78 80 7C 00 40 */ lwz r3, 0x40(r28) -/* 802D903C 002D5F7C 80 9C 00 6C */ lwz r4, 0x6c(r28) -/* 802D9040 002D5F80 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D9044 002D5F84 7C 84 02 14 */ add r4, r4, r0 -/* 802D9048 002D5F88 80 DC 00 38 */ lwz r6, 0x38(r28) -/* 802D904C 002D5F8C 7F E7 FB 78 */ mr r7, r31 -/* 802D9050 002D5F90 81 1C 00 5C */ lwz r8, 0x5c(r28) -/* 802D9054 002D5F94 39 21 00 08 */ addi r9, r1, 8 -/* 802D9058 002D5F98 4B FF F4 1D */ bl JKRDvdArchive_NS_fetchResource_subroutine_X1_ -/* 802D905C 002D5F9C 28 1E 00 00 */ cmplwi r30, 0 -/* 802D9060 002D5FA0 41 82 00 08 */ beq lbl_802D9068 -/* 802D9064 002D5FA4 90 7E 00 00 */ stw r3, 0(r30) -lbl_802D9068: -/* 802D9068 002D5FA8 80 01 00 08 */ lwz r0, 8(r1) -/* 802D906C 002D5FAC 90 1D 00 10 */ stw r0, 0x10(r29) -/* 802D9070 002D5FB0 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D9074 002D5FB4 40 82 00 30 */ bne lbl_802D90A4 -/* 802D9078 002D5FB8 7F 83 E3 78 */ mr r3, r28 -/* 802D907C 002D5FBC 7F A4 EB 78 */ mr r4, r29 -/* 802D9080 002D5FC0 80 BE 00 00 */ lwz r5, 0(r30) -/* 802D9084 002D5FC4 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D9088 002D5FC8 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D908C 002D5FCC 7D 89 03 A6 */ mtctr r12 -/* 802D9090 002D5FD0 4E 80 04 21 */ bctrl -/* 802D9094 002D5FD4 48 00 00 10 */ b lbl_802D90A4 -lbl_802D9098: -/* 802D9098 002D5FD8 28 1E 00 00 */ cmplwi r30, 0 -/* 802D909C 002D5FDC 41 82 00 08 */ beq lbl_802D90A4 -/* 802D90A0 002D5FE0 90 BE 00 00 */ stw r5, 0(r30) -lbl_802D90A4: -/* 802D90A4 002D5FE4 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 802D90A8 002D5FE8 39 61 00 30 */ addi r11, r1, 0x30 -/* 802D90AC 002D5FEC 48 08 91 79 */ bl _restgpr_28 -/* 802D90B0 002D5FF0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802D90B4 002D5FF4 7C 08 03 A6 */ mtlr r0 -/* 802D90B8 002D5FF8 38 21 00 30 */ addi r1, r1, 0x30 -/* 802D90BC 002D5FFC 4E 80 00 20 */ blr -/* 802D90C0 002D6000 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D90C4 002D6004 7C 08 02 A6 */ mflr r0 -/* 802D90C8 002D6008 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D90CC 002D600C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D90D0 002D6010 48 08 91 01 */ bl _savegpr_26 -/* 802D90D4 002D6014 7C 69 1B 78 */ mr r9, r3 -/* 802D90D8 002D6018 7C 9C 23 78 */ mr r28, r4 -/* 802D90DC 002D601C 7C BD 2B 78 */ mr r29, r5 -/* 802D90E0 002D6020 7C DE 33 78 */ mr r30, r6 -/* 802D90E4 002D6024 7C FF 3B 78 */ mr r31, r7 -/* 802D90E8 002D6028 3B 60 00 00 */ li r27, 0 -/* 802D90EC 002D602C 83 46 00 0C */ lwz r26, 0xc(r6) -/* 802D90F0 002D6030 38 1A 00 1F */ addi r0, r26, 0x1f -/* 802D90F4 002D6034 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a -/* 802D90F8 002D6038 80 06 00 04 */ lwz r0, 4(r6) -/* 802D90FC 002D603C 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D9100 002D6040 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D9104 002D6044 40 82 00 0C */ bne lbl_802D9110 -/* 802D9108 002D6048 39 00 00 00 */ li r8, 0 -/* 802D910C 002D604C 48 00 00 18 */ b lbl_802D9124 -lbl_802D9110: -/* 802D9110 002D6050 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 -/* 802D9114 002D6054 41 82 00 0C */ beq lbl_802D9120 -/* 802D9118 002D6058 39 00 00 02 */ li r8, 2 -/* 802D911C 002D605C 48 00 00 08 */ b lbl_802D9124 -lbl_802D9120: -/* 802D9120 002D6060 39 00 00 01 */ li r8, 1 -lbl_802D9124: -/* 802D9124 002D6064 80 1E 00 10 */ lwz r0, 0x10(r30) -/* 802D9128 002D6068 28 00 00 00 */ cmplwi r0, 0 -/* 802D912C 002D606C 41 82 00 54 */ beq lbl_802D9180 -/* 802D9130 002D6070 2C 08 00 02 */ cmpwi r8, 2 -/* 802D9134 002D6074 40 82 00 28 */ bne lbl_802D915C -/* 802D9138 002D6078 7D 23 4B 78 */ mr r3, r9 -/* 802D913C 002D607C 7F C4 F3 78 */ mr r4, r30 -/* 802D9140 002D6080 81 89 00 00 */ lwz r12, 0(r9) -/* 802D9144 002D6084 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D9148 002D6088 7D 89 03 A6 */ mtctr r12 -/* 802D914C 002D608C 4E 80 04 21 */ bctrl -/* 802D9150 002D6090 28 03 00 00 */ cmplwi r3, 0 -/* 802D9154 002D6094 41 82 00 08 */ beq lbl_802D915C -/* 802D9158 002D6098 7C 7A 1B 78 */ mr r26, r3 -lbl_802D915C: -/* 802D915C 002D609C 7C 1A E8 40 */ cmplw r26, r29 -/* 802D9160 002D60A0 40 81 00 08 */ ble lbl_802D9168 -/* 802D9164 002D60A4 7F BA EB 78 */ mr r26, r29 -lbl_802D9168: -/* 802D9168 002D60A8 7F 83 E3 78 */ mr r3, r28 -/* 802D916C 002D60AC 80 9E 00 10 */ lwz r4, 0x10(r30) -/* 802D9170 002D60B0 7F 45 D3 78 */ mr r5, r26 -/* 802D9174 002D60B4 4B FF 59 A5 */ bl copyMemory__7JKRHeapFPvPvUl -/* 802D9178 002D60B8 7F 5B D3 78 */ mr r27, r26 -/* 802D917C 002D60BC 48 00 00 BC */ b lbl_802D9238 -lbl_802D9180: -/* 802D9180 002D60C0 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b -/* 802D9184 002D60C4 41 82 00 2C */ beq lbl_802D91B0 -/* 802D9188 002D60C8 80 69 00 64 */ lwz r3, 0x64(r9) -/* 802D918C 002D60CC 80 1E 00 08 */ lwz r0, 8(r30) -/* 802D9190 002D60D0 7C 63 02 14 */ add r3, r3, r0 -/* 802D9194 002D60D4 7C A4 2B 78 */ mr r4, r5 -/* 802D9198 002D60D8 7F 85 E3 78 */ mr r5, r28 -/* 802D919C 002D60DC 57 A6 00 34 */ rlwinm r6, r29, 0, 0, 0x1a -/* 802D91A0 002D60E0 7D 07 43 78 */ mr r7, r8 -/* 802D91A4 002D60E4 4B FF DD B9 */ bl JKRMemArchive_NS_fetchResource_subroutine -/* 802D91A8 002D60E8 7C 7B 1B 78 */ mr r27, r3 -/* 802D91AC 002D60EC 48 00 00 8C */ b lbl_802D9238 -lbl_802D91B0: -/* 802D91B0 002D60F0 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a -/* 802D91B4 002D60F4 41 82 00 38 */ beq lbl_802D91EC -/* 802D91B8 002D60F8 80 69 00 68 */ lwz r3, 0x68(r9) -/* 802D91BC 002D60FC 80 83 00 14 */ lwz r4, 0x14(r3) -/* 802D91C0 002D6100 80 69 00 74 */ lwz r3, 0x74(r9) -/* 802D91C4 002D6104 80 1E 00 08 */ lwz r0, 8(r30) -/* 802D91C8 002D6108 7C 00 22 14 */ add r0, r0, r4 -/* 802D91CC 002D610C 7C 63 00 50 */ subf r3, r3, r0 -/* 802D91D0 002D6110 7C A4 2B 78 */ mr r4, r5 -/* 802D91D4 002D6114 7F 85 E3 78 */ mr r5, r28 -/* 802D91D8 002D6118 57 A6 00 34 */ rlwinm r6, r29, 0, 0, 0x1a -/* 802D91DC 002D611C 7D 07 43 78 */ mr r7, r8 -/* 802D91E0 002D6120 4B FF E6 79 */ bl JKRAramArchive_NS_fetchResource_subroutine -/* 802D91E4 002D6124 7C 7B 1B 78 */ mr r27, r3 -/* 802D91E8 002D6128 48 00 00 50 */ b lbl_802D9238 -lbl_802D91EC: -/* 802D91EC 002D612C 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 -/* 802D91F0 002D6130 41 82 00 2C */ beq lbl_802D921C -/* 802D91F4 002D6134 80 69 00 40 */ lwz r3, 0x40(r9) -/* 802D91F8 002D6138 80 89 00 6C */ lwz r4, 0x6c(r9) -/* 802D91FC 002D613C 80 1E 00 08 */ lwz r0, 8(r30) -/* 802D9200 002D6140 7C 84 02 14 */ add r4, r4, r0 -/* 802D9204 002D6144 7F 86 E3 78 */ mr r6, r28 -/* 802D9208 002D6148 57 A7 00 34 */ rlwinm r7, r29, 0, 0, 0x1a -/* 802D920C 002D614C 81 29 00 5C */ lwz r9, 0x5c(r9) -/* 802D9210 002D6150 4B FF F0 5D */ bl JKRDvdArchive_NS_fetchResource_subroutine -/* 802D9214 002D6154 7C 7B 1B 78 */ mr r27, r3 -/* 802D9218 002D6158 48 00 00 20 */ b lbl_802D9238 -lbl_802D921C: -/* 802D921C 002D615C 3C 60 80 3A */ lis r3, lbl_8039D220@ha -/* 802D9220 002D6160 38 63 D2 20 */ addi r3, r3, lbl_8039D220@l -/* 802D9224 002D6164 38 80 03 08 */ li r4, 0x308 -/* 802D9228 002D6168 38 A3 00 13 */ addi r5, r3, 0x13 -/* 802D922C 002D616C 38 C3 00 16 */ addi r6, r3, 0x16 -/* 802D9230 002D6170 4C C6 31 82 */ crclr 6 -/* 802D9234 002D6174 48 00 8F C9 */ bl JUTException_NS_panic_f -lbl_802D9238: -/* 802D9238 002D6178 28 1F 00 00 */ cmplwi r31, 0 -/* 802D923C 002D617C 41 82 00 08 */ beq lbl_802D9244 -/* 802D9240 002D6180 93 7F 00 00 */ stw r27, 0(r31) -lbl_802D9244: -/* 802D9244 002D6184 7F 83 E3 78 */ mr r3, r28 -/* 802D9248 002D6188 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D924C 002D618C 48 08 8F D1 */ bl _restgpr_26 -/* 802D9250 002D6190 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D9254 002D6194 7C 08 03 A6 */ mtlr r0 -/* 802D9258 002D6198 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D925C 002D619C 4E 80 00 20 */ blr -/* 802D9260 002D61A0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D9264 002D61A4 7C 08 02 A6 */ mflr r0 -/* 802D9268 002D61A8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D926C 002D61AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9270 002D61B0 48 08 8F 69 */ bl _savegpr_28 -/* 802D9274 002D61B4 7C 7C 1B 78 */ mr r28, r3 -/* 802D9278 002D61B8 80 03 00 44 */ lwz r0, 0x44(r3) -/* 802D927C 002D61BC 28 00 00 00 */ cmplwi r0, 0 -/* 802D9280 002D61C0 41 82 00 5C */ beq lbl_802D92DC -/* 802D9284 002D61C4 88 1C 00 3C */ lbz r0, 0x3c(r28) -/* 802D9288 002D61C8 28 00 00 01 */ cmplwi r0, 1 -/* 802D928C 002D61CC 41 82 00 50 */ beq lbl_802D92DC -/* 802D9290 002D61D0 83 DC 00 4C */ lwz r30, 0x4c(r28) -/* 802D9294 002D61D4 3B A0 00 00 */ li r29, 0 -/* 802D9298 002D61D8 3B E0 00 00 */ li r31, 0 -/* 802D929C 002D61DC 48 00 00 30 */ b lbl_802D92CC -lbl_802D92A0: -/* 802D92A0 002D61E0 80 1E 00 04 */ lwz r0, 4(r30) -/* 802D92A4 002D61E4 54 00 46 3E */ srwi r0, r0, 0x18 -/* 802D92A8 002D61E8 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 802D92AC 002D61EC 28 03 00 00 */ cmplwi r3, 0 -/* 802D92B0 002D61F0 41 82 00 18 */ beq lbl_802D92C8 -/* 802D92B4 002D61F4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b -/* 802D92B8 002D61F8 40 82 00 0C */ bne lbl_802D92C4 -/* 802D92BC 002D61FC 80 9C 00 38 */ lwz r4, 0x38(r28) -/* 802D92C0 002D6200 4B FF 52 41 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D92C4: -/* 802D92C4 002D6204 93 FE 00 10 */ stw r31, 0x10(r30) -lbl_802D92C8: -/* 802D92C8 002D6208 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D92CC: -/* 802D92CC 002D620C 80 7C 00 44 */ lwz r3, 0x44(r28) -/* 802D92D0 002D6210 80 03 00 08 */ lwz r0, 8(r3) -/* 802D92D4 002D6214 7C 1D 00 40 */ cmplw r29, r0 -/* 802D92D8 002D6218 41 80 FF C8 */ blt lbl_802D92A0 -lbl_802D92DC: -/* 802D92DC 002D621C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D92E0 002D6220 48 08 8F 45 */ bl _restgpr_28 -/* 802D92E4 002D6224 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D92E8 002D6228 7C 08 03 A6 */ mtlr r0 -/* 802D92EC 002D622C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D92F0 002D6230 4E 80 00 20 */ blr -/* 802D92F4 002D6234 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D92F8 002D6238 7C 08 02 A6 */ mflr r0 -/* 802D92FC 002D623C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D9300 002D6240 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D9304 002D6244 48 08 8E D9 */ bl _savegpr_29 -/* 802D9308 002D6248 7C 7D 1B 78 */ mr r29, r3 -/* 802D930C 002D624C 7C 9E 23 78 */ mr r30, r4 -/* 802D9310 002D6250 4B FF D4 25 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D9314 002D6254 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D9318 002D6258 40 82 00 0C */ bne lbl_802D9324 -/* 802D931C 002D625C 38 60 00 00 */ li r3, 0 -/* 802D9320 002D6260 48 00 00 28 */ b lbl_802D9348 -lbl_802D9324: -/* 802D9324 002D6264 80 1F 00 04 */ lwz r0, 4(r31) -/* 802D9328 002D6268 54 00 46 F7 */ rlwinm. r0, r0, 8, 0x1b, 0x1b -/* 802D932C 002D626C 40 82 00 10 */ bne lbl_802D933C -/* 802D9330 002D6270 7F C3 F3 78 */ mr r3, r30 -/* 802D9334 002D6274 80 9D 00 38 */ lwz r4, 0x38(r29) -/* 802D9338 002D6278 4B FF 51 C9 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D933C: -/* 802D933C 002D627C 38 00 00 00 */ li r0, 0 -/* 802D9340 002D6280 90 1F 00 10 */ stw r0, 0x10(r31) -/* 802D9344 002D6284 38 60 00 01 */ li r3, 1 -lbl_802D9348: -/* 802D9348 002D6288 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D934C 002D628C 48 08 8E DD */ bl _restgpr_29 -/* 802D9350 002D6290 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D9354 002D6294 7C 08 03 A6 */ mtlr r0 -/* 802D9358 002D6298 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D935C 002D629C 4E 80 00 20 */ blr -/* 802D9360 002D62A0 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 802D9364 002D62A4 7C 08 02 A6 */ mflr r0 -/* 802D9368 002D62A8 90 01 00 64 */ stw r0, 0x64(r1) -/* 802D936C 002D62AC 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D9370 002D62B0 48 08 8E 6D */ bl _savegpr_29 -/* 802D9374 002D62B4 7C 7E 1B 78 */ mr r30, r3 -/* 802D9378 002D62B8 7C 9D 23 78 */ mr r29, r4 -/* 802D937C 002D62BC 80 03 00 50 */ lwz r0, 0x50(r3) -/* 802D9380 002D62C0 28 00 00 00 */ cmplwi r0, 0 -/* 802D9384 002D62C4 40 82 00 18 */ bne lbl_802D939C -/* 802D9388 002D62C8 81 83 00 00 */ lwz r12, 0(r3) -/* 802D938C 002D62CC 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D9390 002D62D0 7D 89 03 A6 */ mtctr r12 -/* 802D9394 002D62D4 4E 80 04 21 */ bctrl -/* 802D9398 002D62D8 48 00 01 68 */ b lbl_802D9500 -lbl_802D939C: -/* 802D939C 002D62DC 4B FF D3 99 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D93A0 002D62E0 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D93A4 002D62E4 40 82 00 0C */ bne lbl_802D93B0 -/* 802D93A8 002D62E8 38 60 FF FF */ li r3, -1 -/* 802D93AC 002D62EC 48 00 01 54 */ b lbl_802D9500 -lbl_802D93B0: -/* 802D93B0 002D62F0 80 1F 00 04 */ lwz r0, 4(r31) -/* 802D93B4 002D62F4 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D93B8 002D62F8 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D93BC 002D62FC 40 82 00 20 */ bne lbl_802D93DC -/* 802D93C0 002D6300 7F C3 F3 78 */ mr r3, r30 -/* 802D93C4 002D6304 7F A4 EB 78 */ mr r4, r29 -/* 802D93C8 002D6308 81 9E 00 00 */ lwz r12, 0(r30) -/* 802D93CC 002D630C 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D93D0 002D6310 7D 89 03 A6 */ mtctr r12 -/* 802D93D4 002D6314 4E 80 04 21 */ bctrl -/* 802D93D8 002D6318 48 00 01 28 */ b lbl_802D9500 -lbl_802D93DC: -/* 802D93DC 002D631C 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b -/* 802D93E0 002D6320 41 82 00 28 */ beq lbl_802D9408 -/* 802D93E4 002D6324 88 BD 00 07 */ lbz r5, 7(r29) -/* 802D93E8 002D6328 88 9D 00 06 */ lbz r4, 6(r29) -/* 802D93EC 002D632C 88 7D 00 04 */ lbz r3, 4(r29) -/* 802D93F0 002D6330 88 1D 00 05 */ lbz r0, 5(r29) -/* 802D93F4 002D6334 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D93F8 002D6338 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D93FC 002D633C 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D9400 002D6340 7C A3 03 78 */ or r3, r5, r0 -/* 802D9404 002D6344 48 00 00 FC */ b lbl_802D9500 -lbl_802D9408: -/* 802D9408 002D6348 38 01 00 2F */ addi r0, r1, 0x2f -/* 802D940C 002D634C 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a -/* 802D9410 002D6350 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a -/* 802D9414 002D6354 41 82 00 44 */ beq lbl_802D9458 -/* 802D9418 002D6358 80 7E 00 68 */ lwz r3, 0x68(r30) -/* 802D941C 002D635C 80 63 00 14 */ lwz r3, 0x14(r3) -/* 802D9420 002D6360 80 1F 00 08 */ lwz r0, 8(r31) -/* 802D9424 002D6364 7C 60 1A 14 */ add r3, r0, r3 -/* 802D9428 002D6368 7F A4 EB 78 */ mr r4, r29 -/* 802D942C 002D636C 38 A0 00 20 */ li r5, 0x20 -/* 802D9430 002D6370 38 C0 00 00 */ li r6, 0 -/* 802D9434 002D6374 38 E0 00 00 */ li r7, 0 -/* 802D9438 002D6378 39 00 00 00 */ li r8, 0 -/* 802D943C 002D637C 39 20 FF FF */ li r9, -1 -/* 802D9440 002D6380 39 40 00 00 */ li r10, 0 -/* 802D9444 002D6384 4B FF 91 71 */ bl JKRAram_NS_aramToMainRam -/* 802D9448 002D6388 7F A3 EB 78 */ mr r3, r29 -/* 802D944C 002D638C 38 80 00 20 */ li r4, 0x20 -/* 802D9450 002D6390 48 06 21 31 */ bl DCInvalidateRange -/* 802D9454 002D6394 48 00 00 6C */ b lbl_802D94C0 -lbl_802D9458: -/* 802D9458 002D6398 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 -/* 802D945C 002D639C 41 82 00 48 */ beq lbl_802D94A4 -/* 802D9460 002D63A0 38 00 00 00 */ li r0, 0 -/* 802D9464 002D63A4 90 01 00 08 */ stw r0, 8(r1) -/* 802D9468 002D63A8 80 7E 00 40 */ lwz r3, 0x40(r30) -/* 802D946C 002D63AC 7F A4 EB 78 */ mr r4, r29 -/* 802D9470 002D63B0 38 A0 00 02 */ li r5, 2 -/* 802D9474 002D63B4 38 C0 00 20 */ li r6, 0x20 -/* 802D9478 002D63B8 38 E0 00 00 */ li r7, 0 -/* 802D947C 002D63BC 39 00 00 01 */ li r8, 1 -/* 802D9480 002D63C0 81 3E 00 6C */ lwz r9, 0x6c(r30) -/* 802D9484 002D63C4 80 1F 00 08 */ lwz r0, 8(r31) -/* 802D9488 002D63C8 7D 29 02 14 */ add r9, r9, r0 -/* 802D948C 002D63CC 39 40 00 00 */ li r10, 0 -/* 802D9490 002D63D0 48 00 07 C5 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D9494 002D63D4 7F A3 EB 78 */ mr r3, r29 -/* 802D9498 002D63D8 38 80 00 20 */ li r4, 0x20 -/* 802D949C 002D63DC 48 06 20 E5 */ bl DCInvalidateRange -/* 802D94A0 002D63E0 48 00 00 20 */ b lbl_802D94C0 -lbl_802D94A4: -/* 802D94A4 002D63E4 3C 60 80 3A */ lis r3, lbl_8039D220@ha -/* 802D94A8 002D63E8 38 63 D2 20 */ addi r3, r3, lbl_8039D220@l -/* 802D94AC 002D63EC 38 80 03 AF */ li r4, 0x3af -/* 802D94B0 002D63F0 38 A3 00 13 */ addi r5, r3, 0x13 -/* 802D94B4 002D63F4 38 C3 00 27 */ addi r6, r3, 0x27 -/* 802D94B8 002D63F8 4C C6 31 82 */ crclr 6 -/* 802D94BC 002D63FC 48 00 8D 41 */ bl JUTException_NS_panic_f -lbl_802D94C0: -/* 802D94C0 002D6400 88 BD 00 07 */ lbz r5, 7(r29) -/* 802D94C4 002D6404 88 9D 00 06 */ lbz r4, 6(r29) -/* 802D94C8 002D6408 88 7D 00 04 */ lbz r3, 4(r29) -/* 802D94CC 002D640C 88 1D 00 05 */ lbz r0, 5(r29) -/* 802D94D0 002D6410 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D94D4 002D6414 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D94D8 002D6418 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D94DC 002D641C 7C BD 03 78 */ or r29, r5, r0 -/* 802D94E0 002D6420 7F C3 F3 78 */ mr r3, r30 -/* 802D94E4 002D6424 7F E4 FB 78 */ mr r4, r31 -/* 802D94E8 002D6428 7F A5 EB 78 */ mr r5, r29 -/* 802D94EC 002D642C 81 9E 00 00 */ lwz r12, 0(r30) -/* 802D94F0 002D6430 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D94F4 002D6434 7D 89 03 A6 */ mtctr r12 -/* 802D94F8 002D6438 4E 80 04 21 */ bctrl -/* 802D94FC 002D643C 7F A3 EB 78 */ mr r3, r29 -lbl_802D9500: -/* 802D9500 002D6440 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D9504 002D6444 48 08 8D 25 */ bl _restgpr_29 -/* 802D9508 002D6448 80 01 00 64 */ lwz r0, 0x64(r1) -/* 802D950C 002D644C 7C 08 03 A6 */ mtlr r0 -/* 802D9510 002D6450 38 21 00 60 */ addi r1, r1, 0x60 -/* 802D9514 002D6454 4E 80 00 20 */ blr - diff --git a/asm/JKernel/JKRDecomp.s b/asm/JKernel/JKRDecomp.s deleted file mode 100644 index 20755718f0..0000000000 --- a/asm/JKernel/JKRDecomp.s +++ /dev/null @@ -1,562 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802db680 - - -.global JKRDecomp_NS_create -JKRDecomp_NS_create: -/* 802DB680 002D85C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB684 002D85C4 7C 08 02 A6 */ mflr r0 -/* 802DB688 002D85C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB68C 002D85CC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB690 002D85D0 7C 7F 1B 78 */ mr r31, r3 -/* 802DB694 002D85D4 80 0D 8F 30 */ lwz r0, lbl_804514B0-_SDA_BASE_(r13) -/* 802DB698 002D85D8 28 00 00 00 */ cmplwi r0, 0 -/* 802DB69C 002D85DC 40 82 00 2C */ bne lbl_802DB6C8 -/* 802DB6A0 002D85E0 38 60 00 7C */ li r3, 0x7c -/* 802DB6A4 002D85E4 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802DB6A8 002D85E8 38 A0 00 00 */ li r5, 0 -/* 802DB6AC 002D85EC 4B FF 35 ED */ bl __nw__FUlP7JKRHeapi -/* 802DB6B0 002D85F0 7C 60 1B 79 */ or. r0, r3, r3 -/* 802DB6B4 002D85F4 41 82 00 10 */ beq lbl_802DB6C4 -/* 802DB6B8 002D85F8 7F E4 FB 78 */ mr r4, r31 -/* 802DB6BC 002D85FC 48 00 00 25 */ bl JKRDecomp -/* 802DB6C0 002D8600 7C 60 1B 78 */ mr r0, r3 -lbl_802DB6C4: -/* 802DB6C4 002D8604 90 0D 8F 30 */ stw r0, lbl_804514B0-_SDA_BASE_(r13) -lbl_802DB6C8: -/* 802DB6C8 002D8608 80 6D 8F 30 */ lwz r3, lbl_804514B0-_SDA_BASE_(r13) -/* 802DB6CC 002D860C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB6D0 002D8610 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB6D4 002D8614 7C 08 03 A6 */ mtlr r0 -/* 802DB6D8 002D8618 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB6DC 002D861C 4E 80 00 20 */ blr - -.global JKRDecomp -JKRDecomp: -/* 802DB6E0 002D8620 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB6E4 002D8624 7C 08 02 A6 */ mflr r0 -/* 802DB6E8 002D8628 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB6EC 002D862C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB6F0 002D8630 7C 7F 1B 78 */ mr r31, r3 -/* 802DB6F4 002D8634 7C 86 23 78 */ mr r6, r4 -/* 802DB6F8 002D8638 38 80 08 00 */ li r4, 0x800 -/* 802DB6FC 002D863C 38 A0 00 10 */ li r5, 0x10 -/* 802DB700 002D8640 4B FF 5E 69 */ bl __ct__9JKRThreadFUlii -/* 802DB704 002D8644 3C 60 80 3D */ lis r3, lbl_803CC4A0@ha -/* 802DB708 002D8648 38 03 C4 A0 */ addi r0, r3, lbl_803CC4A0@l -/* 802DB70C 002D864C 90 1F 00 00 */ stw r0, 0(r31) -/* 802DB710 002D8650 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 802DB714 002D8654 48 06 60 A1 */ bl OSResumeThread -/* 802DB718 002D8658 7F E3 FB 78 */ mr r3, r31 -/* 802DB71C 002D865C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB720 002D8660 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB724 002D8664 7C 08 03 A6 */ mtlr r0 -/* 802DB728 002D8668 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB72C 002D866C 4E 80 00 20 */ blr -/* 802DB730 002D8670 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB734 002D8674 7C 08 02 A6 */ mflr r0 -/* 802DB738 002D8678 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB73C 002D867C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB740 002D8680 93 C1 00 08 */ stw r30, 8(r1) -/* 802DB744 002D8684 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802DB748 002D8688 7C 9F 23 78 */ mr r31, r4 -/* 802DB74C 002D868C 41 82 00 28 */ beq lbl_802DB774 -/* 802DB750 002D8690 3C 80 80 3D */ lis r4, lbl_803CC4A0@ha -/* 802DB754 002D8694 38 04 C4 A0 */ addi r0, r4, lbl_803CC4A0@l -/* 802DB758 002D8698 90 1E 00 00 */ stw r0, 0(r30) -/* 802DB75C 002D869C 38 80 00 00 */ li r4, 0 -/* 802DB760 002D86A0 4B FF 5F F9 */ bl __dt__9JKRThreadFv -/* 802DB764 002D86A4 7F E0 07 35 */ extsh. r0, r31 -/* 802DB768 002D86A8 40 81 00 0C */ ble lbl_802DB774 -/* 802DB76C 002D86AC 7F C3 F3 78 */ mr r3, r30 -/* 802DB770 002D86B0 4B FF 35 CD */ bl __dl__FPv -lbl_802DB774: -/* 802DB774 002D86B4 7F C3 F3 78 */ mr r3, r30 -/* 802DB778 002D86B8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB77C 002D86BC 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DB780 002D86C0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB784 002D86C4 7C 08 03 A6 */ mtlr r0 -/* 802DB788 002D86C8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB78C 002D86CC 4E 80 00 20 */ blr -/* 802DB790 002D86D0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DB794 002D86D4 7C 08 02 A6 */ mflr r0 -/* 802DB798 002D86D8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DB79C 002D86DC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802DB7A0 002D86E0 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802DB7A4 002D86E4 3C 60 80 3D */ lis r3, lbl_803CC480@ha -/* 802DB7A8 002D86E8 38 63 C4 80 */ addi r3, r3, lbl_803CC480@l -/* 802DB7AC 002D86EC 3C 80 80 3D */ lis r4, lbl_803CC460@ha -/* 802DB7B0 002D86F0 38 84 C4 60 */ addi r4, r4, lbl_803CC460@l -/* 802DB7B4 002D86F4 38 A0 00 08 */ li r5, 8 -/* 802DB7B8 002D86F8 48 06 31 DD */ bl OSInitMessageQueue -/* 802DB7BC 002D86FC 3C 60 80 3D */ lis r3, lbl_803CC480@ha -/* 802DB7C0 002D8700 3B E3 C4 80 */ addi r31, r3, lbl_803CC480@l -lbl_802DB7C4: -/* 802DB7C4 002D8704 7F E3 FB 78 */ mr r3, r31 -/* 802DB7C8 002D8708 38 81 00 08 */ addi r4, r1, 8 -/* 802DB7CC 002D870C 38 A0 00 01 */ li r5, 1 -/* 802DB7D0 002D8710 48 06 32 ED */ bl OSReceiveMessage -/* 802DB7D4 002D8714 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DB7D8 002D8718 80 7E 00 04 */ lwz r3, 4(r30) -/* 802DB7DC 002D871C 80 9E 00 08 */ lwz r4, 8(r30) -/* 802DB7E0 002D8720 80 BE 00 0C */ lwz r5, 0xc(r30) -/* 802DB7E4 002D8724 80 DE 00 10 */ lwz r6, 0x10(r30) -/* 802DB7E8 002D8728 48 00 01 F5 */ bl JKRDecomp_NS_decode -/* 802DB7EC 002D872C 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 802DB7F0 002D8730 2C 00 00 00 */ cmpwi r0, 0 -/* 802DB7F4 002D8734 41 82 00 18 */ beq lbl_802DB80C -/* 802DB7F8 002D8738 2C 00 00 01 */ cmpwi r0, 1 -/* 802DB7FC 002D873C 40 82 FF C8 */ bne lbl_802DB7C4 -/* 802DB800 002D8740 80 7E 00 24 */ lwz r3, 0x24(r30) -/* 802DB804 002D8744 4B FF 7D F1 */ bl JKRAramPiece_NS_sendCommand -/* 802DB808 002D8748 4B FF FF BC */ b lbl_802DB7C4 -lbl_802DB80C: -/* 802DB80C 002D874C 81 9E 00 14 */ lwz r12, 0x14(r30) -/* 802DB810 002D8750 28 0C 00 00 */ cmplwi r12, 0 -/* 802DB814 002D8754 41 82 00 14 */ beq lbl_802DB828 -/* 802DB818 002D8758 7F C3 F3 78 */ mr r3, r30 -/* 802DB81C 002D875C 7D 89 03 A6 */ mtctr r12 -/* 802DB820 002D8760 4E 80 04 21 */ bctrl -/* 802DB824 002D8764 4B FF FF A0 */ b lbl_802DB7C4 -lbl_802DB828: -/* 802DB828 002D8768 80 7E 00 1C */ lwz r3, 0x1c(r30) -/* 802DB82C 002D876C 28 03 00 00 */ cmplwi r3, 0 -/* 802DB830 002D8770 41 82 00 14 */ beq lbl_802DB844 -/* 802DB834 002D8774 38 80 00 01 */ li r4, 1 -/* 802DB838 002D8778 38 A0 00 00 */ li r5, 0 -/* 802DB83C 002D877C 48 06 31 B9 */ bl OSSendMessage -/* 802DB840 002D8780 4B FF FF 84 */ b lbl_802DB7C4 -lbl_802DB844: -/* 802DB844 002D8784 38 7E 00 28 */ addi r3, r30, 0x28 -/* 802DB848 002D8788 38 80 00 01 */ li r4, 1 -/* 802DB84C 002D878C 38 A0 00 00 */ li r5, 0 -/* 802DB850 002D8790 48 06 31 A5 */ bl OSSendMessage -/* 802DB854 002D8794 4B FF FF 70 */ b lbl_802DB7C4 - -.global JKRDecomp_NS_prepareCommand -JKRDecomp_NS_prepareCommand: -/* 802DB858 002D8798 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DB85C 002D879C 7C 08 02 A6 */ mflr r0 -/* 802DB860 002D87A0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DB864 002D87A4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB868 002D87A8 48 08 69 6D */ bl _savegpr_27 -/* 802DB86C 002D87AC 7C 7B 1B 78 */ mr r27, r3 -/* 802DB870 002D87B0 7C 9C 23 78 */ mr r28, r4 -/* 802DB874 002D87B4 7C BD 2B 78 */ mr r29, r5 -/* 802DB878 002D87B8 7C DE 33 78 */ mr r30, r6 -/* 802DB87C 002D87BC 7C FF 3B 78 */ mr r31, r7 -/* 802DB880 002D87C0 38 60 00 4C */ li r3, 0x4c -/* 802DB884 002D87C4 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802DB888 002D87C8 38 A0 FF FC */ li r5, -4 -/* 802DB88C 002D87CC 4B FF 34 0D */ bl __nw__FUlP7JKRHeapi -/* 802DB890 002D87D0 7C 64 1B 79 */ or. r4, r3, r3 -/* 802DB894 002D87D4 41 82 00 0C */ beq lbl_802DB8A0 -/* 802DB898 002D87D8 48 00 04 D9 */ bl JKRDecompCommand -/* 802DB89C 002D87DC 7C 64 1B 78 */ mr r4, r3 -lbl_802DB8A0: -/* 802DB8A0 002D87E0 93 64 00 04 */ stw r27, 4(r4) -/* 802DB8A4 002D87E4 93 84 00 08 */ stw r28, 8(r4) -/* 802DB8A8 002D87E8 93 A4 00 0C */ stw r29, 0xc(r4) -/* 802DB8AC 002D87EC 93 C4 00 10 */ stw r30, 0x10(r4) -/* 802DB8B0 002D87F0 93 E4 00 14 */ stw r31, 0x14(r4) -/* 802DB8B4 002D87F4 7C 83 23 78 */ mr r3, r4 -/* 802DB8B8 002D87F8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB8BC 002D87FC 48 08 69 65 */ bl _restgpr_27 -/* 802DB8C0 002D8800 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DB8C4 002D8804 7C 08 03 A6 */ mtlr r0 -/* 802DB8C8 002D8808 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DB8CC 002D880C 4E 80 00 20 */ blr - -.global JKRDecomp_NS_sendCommand -JKRDecomp_NS_sendCommand: -/* 802DB8D0 002D8810 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB8D4 002D8814 7C 08 02 A6 */ mflr r0 -/* 802DB8D8 002D8818 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB8DC 002D881C 7C 64 1B 78 */ mr r4, r3 -/* 802DB8E0 002D8820 3C 60 80 3D */ lis r3, lbl_803CC480@ha -/* 802DB8E4 002D8824 38 63 C4 80 */ addi r3, r3, lbl_803CC480@l -/* 802DB8E8 002D8828 38 A0 00 00 */ li r5, 0 -/* 802DB8EC 002D882C 48 06 31 09 */ bl OSSendMessage -/* 802DB8F0 002D8830 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB8F4 002D8834 7C 08 03 A6 */ mtlr r0 -/* 802DB8F8 002D8838 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB8FC 002D883C 4E 80 00 20 */ blr - -.global JKRDecomp_NS_orderAsync -JKRDecomp_NS_orderAsync: -/* 802DB900 002D8840 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB904 002D8844 7C 08 02 A6 */ mflr r0 -/* 802DB908 002D8848 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB90C 002D884C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB910 002D8850 4B FF FF 49 */ bl JKRDecomp_NS_prepareCommand -/* 802DB914 002D8854 7C 7F 1B 78 */ mr r31, r3 -/* 802DB918 002D8858 4B FF FF B9 */ bl JKRDecomp_NS_sendCommand -/* 802DB91C 002D885C 7F E3 FB 78 */ mr r3, r31 -/* 802DB920 002D8860 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB924 002D8864 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB928 002D8868 7C 08 03 A6 */ mtlr r0 -/* 802DB92C 002D886C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB930 002D8870 4E 80 00 20 */ blr - -.global JKRDecomp_NS_sync -JKRDecomp_NS_sync: -/* 802DB934 002D8874 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB938 002D8878 7C 08 02 A6 */ mflr r0 -/* 802DB93C 002D887C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB940 002D8880 2C 04 00 00 */ cmpwi r4, 0 -/* 802DB944 002D8884 40 82 00 1C */ bne lbl_802DB960 -/* 802DB948 002D8888 38 63 00 28 */ addi r3, r3, 0x28 -/* 802DB94C 002D888C 38 81 00 08 */ addi r4, r1, 8 -/* 802DB950 002D8890 38 A0 00 01 */ li r5, 1 -/* 802DB954 002D8894 48 06 31 69 */ bl OSReceiveMessage -/* 802DB958 002D8898 38 60 00 01 */ li r3, 1 -/* 802DB95C 002D889C 48 00 00 1C */ b lbl_802DB978 -lbl_802DB960: -/* 802DB960 002D88A0 38 63 00 28 */ addi r3, r3, 0x28 -/* 802DB964 002D88A4 38 81 00 08 */ addi r4, r1, 8 -/* 802DB968 002D88A8 38 A0 00 00 */ li r5, 0 -/* 802DB96C 002D88AC 48 06 31 51 */ bl OSReceiveMessage -/* 802DB970 002D88B0 30 03 FF FF */ addic r0, r3, -1 -/* 802DB974 002D88B4 7C 60 19 10 */ subfe r3, r0, r3 -lbl_802DB978: -/* 802DB978 002D88B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB97C 002D88BC 7C 08 03 A6 */ mtlr r0 -/* 802DB980 002D88C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB984 002D88C4 4E 80 00 20 */ blr - -.global JKRDecomp_NS_orderSync -JKRDecomp_NS_orderSync: -/* 802DB988 002D88C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB98C 002D88CC 7C 08 02 A6 */ mflr r0 -/* 802DB990 002D88D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB994 002D88D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB998 002D88D8 93 C1 00 08 */ stw r30, 8(r1) -/* 802DB99C 002D88DC 38 E0 00 00 */ li r7, 0 -/* 802DB9A0 002D88E0 4B FF FF 61 */ bl JKRDecomp_NS_orderAsync -/* 802DB9A4 002D88E4 7C 7F 1B 78 */ mr r31, r3 -/* 802DB9A8 002D88E8 38 80 00 00 */ li r4, 0 -/* 802DB9AC 002D88EC 4B FF FF 89 */ bl JKRDecomp_NS_sync -/* 802DB9B0 002D88F0 7C 7E 1B 78 */ mr r30, r3 -/* 802DB9B4 002D88F4 7F E3 FB 78 */ mr r3, r31 -/* 802DB9B8 002D88F8 38 80 00 01 */ li r4, 1 -/* 802DB9BC 002D88FC 48 00 04 05 */ bl JKRDecompCommand_NS_dtor -/* 802DB9C0 002D8900 7F C3 F3 78 */ mr r3, r30 -/* 802DB9C4 002D8904 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB9C8 002D8908 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DB9CC 002D890C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB9D0 002D8910 7C 08 03 A6 */ mtlr r0 -/* 802DB9D4 002D8914 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB9D8 002D8918 4E 80 00 20 */ blr - -.global JKRDecomp_NS_decode -JKRDecomp_NS_decode: -/* 802DB9DC 002D891C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DB9E0 002D8920 7C 08 02 A6 */ mflr r0 -/* 802DB9E4 002D8924 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DB9E8 002D8928 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB9EC 002D892C 48 08 67 ED */ bl _savegpr_28 -/* 802DB9F0 002D8930 7C 7C 1B 78 */ mr r28, r3 -/* 802DB9F4 002D8934 7C 9D 23 78 */ mr r29, r4 -/* 802DB9F8 002D8938 7C BE 2B 78 */ mr r30, r5 -/* 802DB9FC 002D893C 7C DF 33 78 */ mr r31, r6 -/* 802DBA00 002D8940 48 00 02 F9 */ bl JKRDecomp_NS_checkCompressed -/* 802DBA04 002D8944 2C 03 00 01 */ cmpwi r3, 1 -/* 802DBA08 002D8948 40 82 00 1C */ bne lbl_802DBA24 -/* 802DBA0C 002D894C 7F 83 E3 78 */ mr r3, r28 -/* 802DBA10 002D8950 7F A4 EB 78 */ mr r4, r29 -/* 802DBA14 002D8954 7F C5 F3 78 */ mr r5, r30 -/* 802DBA18 002D8958 7F E6 FB 78 */ mr r6, r31 -/* 802DBA1C 002D895C 48 00 00 3D */ bl JKRDecomp_NS_decodeSZP -/* 802DBA20 002D8960 48 00 00 20 */ b lbl_802DBA40 -lbl_802DBA24: -/* 802DBA24 002D8964 2C 03 00 02 */ cmpwi r3, 2 -/* 802DBA28 002D8968 40 82 00 18 */ bne lbl_802DBA40 -/* 802DBA2C 002D896C 7F 83 E3 78 */ mr r3, r28 -/* 802DBA30 002D8970 7F A4 EB 78 */ mr r4, r29 -/* 802DBA34 002D8974 7F C5 F3 78 */ mr r5, r30 -/* 802DBA38 002D8978 7F E6 FB 78 */ mr r6, r31 -/* 802DBA3C 002D897C 48 00 01 D9 */ bl JKRDecomp_NS_decodeSZS -lbl_802DBA40: -/* 802DBA40 002D8980 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DBA44 002D8984 48 08 67 E1 */ bl _restgpr_28 -/* 802DBA48 002D8988 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DBA4C 002D898C 7C 08 03 A6 */ mtlr r0 -/* 802DBA50 002D8990 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DBA54 002D8994 4E 80 00 20 */ blr - -.global JKRDecomp_NS_decodeSZP -JKRDecomp_NS_decodeSZP: -/* 802DBA58 002D8998 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DBA5C 002D899C 7C 08 02 A6 */ mflr r0 -/* 802DBA60 002D89A0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DBA64 002D89A4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DBA68 002D89A8 48 08 67 6D */ bl _savegpr_27 -/* 802DBA6C 002D89AC 89 23 00 07 */ lbz r9, 7(r3) -/* 802DBA70 002D89B0 89 03 00 06 */ lbz r8, 6(r3) -/* 802DBA74 002D89B4 88 E3 00 04 */ lbz r7, 4(r3) -/* 802DBA78 002D89B8 88 03 00 05 */ lbz r0, 5(r3) -/* 802DBA7C 002D89BC 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802DBA80 002D89C0 50 E0 C0 0E */ rlwimi r0, r7, 0x18, 0, 7 -/* 802DBA84 002D89C4 51 00 44 2E */ rlwimi r0, r8, 8, 0x10, 0x17 -/* 802DBA88 002D89C8 7D 20 03 78 */ or r0, r9, r0 -/* 802DBA8C 002D89CC 89 43 00 0B */ lbz r10, 0xb(r3) -/* 802DBA90 002D89D0 89 23 00 0A */ lbz r9, 0xa(r3) -/* 802DBA94 002D89D4 89 03 00 08 */ lbz r8, 8(r3) -/* 802DBA98 002D89D8 88 E3 00 09 */ lbz r7, 9(r3) -/* 802DBA9C 002D89DC 54 E7 80 1E */ slwi r7, r7, 0x10 -/* 802DBAA0 002D89E0 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7 -/* 802DBAA4 002D89E4 51 27 44 2E */ rlwimi r7, r9, 8, 0x10, 0x17 -/* 802DBAA8 002D89E8 7D 49 3B 78 */ or r9, r10, r7 -/* 802DBAAC 002D89EC 89 83 00 0F */ lbz r12, 0xf(r3) -/* 802DBAB0 002D89F0 89 43 00 0E */ lbz r10, 0xe(r3) -/* 802DBAB4 002D89F4 89 03 00 0C */ lbz r8, 0xc(r3) -/* 802DBAB8 002D89F8 88 E3 00 0D */ lbz r7, 0xd(r3) -/* 802DBABC 002D89FC 54 E7 80 1E */ slwi r7, r7, 0x10 -/* 802DBAC0 002D8A00 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7 -/* 802DBAC4 002D8A04 51 47 44 2E */ rlwimi r7, r10, 8, 0x10, 0x17 -/* 802DBAC8 002D8A08 7D 8C 3B 78 */ or r12, r12, r7 -/* 802DBACC 002D8A0C 39 00 00 00 */ li r8, 0 -/* 802DBAD0 002D8A10 39 40 00 00 */ li r10, 0 -/* 802DBAD4 002D8A14 38 E0 00 10 */ li r7, 0x10 -/* 802DBAD8 002D8A18 28 05 00 00 */ cmplwi r5, 0 -/* 802DBADC 002D8A1C 41 82 01 20 */ beq lbl_802DBBFC -/* 802DBAE0 002D8A20 7C 06 00 40 */ cmplw r6, r0 -/* 802DBAE4 002D8A24 41 81 01 18 */ bgt lbl_802DBBFC -/* 802DBAE8 002D8A28 7C 9F 23 78 */ mr r31, r4 -/* 802DBAEC 002D8A2C 7D 83 62 14 */ add r12, r3, r12 -lbl_802DBAF0: -/* 802DBAF0 002D8A30 28 0A 00 00 */ cmplwi r10, 0 -/* 802DBAF4 002D8A34 40 82 00 30 */ bne lbl_802DBB24 -/* 802DBAF8 002D8A38 7D 43 3A 14 */ add r10, r3, r7 -/* 802DBAFC 002D8A3C 8B CA 00 03 */ lbz r30, 3(r10) -/* 802DBB00 002D8A40 8B AA 00 02 */ lbz r29, 2(r10) -/* 802DBB04 002D8A44 89 6A 00 00 */ lbz r11, 0(r10) -/* 802DBB08 002D8A48 89 4A 00 01 */ lbz r10, 1(r10) -/* 802DBB0C 002D8A4C 55 4A 80 1E */ slwi r10, r10, 0x10 -/* 802DBB10 002D8A50 51 6A C0 0E */ rlwimi r10, r11, 0x18, 0, 7 -/* 802DBB14 002D8A54 53 AA 44 2E */ rlwimi r10, r29, 8, 0x10, 0x17 -/* 802DBB18 002D8A58 7F CB 53 78 */ or r11, r30, r10 -/* 802DBB1C 002D8A5C 39 40 00 20 */ li r10, 0x20 -/* 802DBB20 002D8A60 38 E7 00 04 */ addi r7, r7, 4 -lbl_802DBB24: -/* 802DBB24 002D8A64 55 7D 00 01 */ rlwinm. r29, r11, 0, 0, 0 -/* 802DBB28 002D8A68 41 82 00 34 */ beq lbl_802DBB5C -/* 802DBB2C 002D8A6C 28 06 00 00 */ cmplwi r6, 0 -/* 802DBB30 002D8A70 40 82 00 18 */ bne lbl_802DBB48 -/* 802DBB34 002D8A74 8B AC 00 00 */ lbz r29, 0(r12) -/* 802DBB38 002D8A78 9B BF 00 00 */ stb r29, 0(r31) -/* 802DBB3C 002D8A7C 34 A5 FF FF */ addic. r5, r5, -1 -/* 802DBB40 002D8A80 40 82 00 0C */ bne lbl_802DBB4C -/* 802DBB44 002D8A84 48 00 00 B8 */ b lbl_802DBBFC -lbl_802DBB48: -/* 802DBB48 002D8A88 38 C6 FF FF */ addi r6, r6, -1 -lbl_802DBB4C: -/* 802DBB4C 002D8A8C 39 08 00 01 */ addi r8, r8, 1 -/* 802DBB50 002D8A90 3B FF 00 01 */ addi r31, r31, 1 -/* 802DBB54 002D8A94 39 8C 00 01 */ addi r12, r12, 1 -/* 802DBB58 002D8A98 48 00 00 94 */ b lbl_802DBBEC -lbl_802DBB5C: -/* 802DBB5C 002D8A9C 7F A3 4A 14 */ add r29, r3, r9 -/* 802DBB60 002D8AA0 8B DD 00 00 */ lbz r30, 0(r29) -/* 802DBB64 002D8AA4 8B 9D 00 01 */ lbz r28, 1(r29) -/* 802DBB68 002D8AA8 53 DC 44 2E */ rlwimi r28, r30, 8, 0x10, 0x17 -/* 802DBB6C 002D8AAC 57 9D 05 3E */ clrlwi r29, r28, 0x14 -/* 802DBB70 002D8AB0 7F 7D 40 50 */ subf r27, r29, r8 -/* 802DBB74 002D8AB4 7F 9C 66 71 */ srawi. r28, r28, 0xc -/* 802DBB78 002D8AB8 39 29 00 02 */ addi r9, r9, 2 -/* 802DBB7C 002D8ABC 40 82 00 14 */ bne lbl_802DBB90 -/* 802DBB80 002D8AC0 8B AC 00 00 */ lbz r29, 0(r12) -/* 802DBB84 002D8AC4 3B 9D 00 12 */ addi r28, r29, 0x12 -/* 802DBB88 002D8AC8 39 8C 00 01 */ addi r12, r12, 1 -/* 802DBB8C 002D8ACC 48 00 00 08 */ b lbl_802DBB94 -lbl_802DBB90: -/* 802DBB90 002D8AD0 3B 9C 00 02 */ addi r28, r28, 2 -lbl_802DBB94: -/* 802DBB94 002D8AD4 7F A8 00 50 */ subf r29, r8, r0 -/* 802DBB98 002D8AD8 7C 1C E8 00 */ cmpw r28, r29 -/* 802DBB9C 002D8ADC 40 81 00 08 */ ble lbl_802DBBA4 -/* 802DBBA0 002D8AE0 7F BC EB 78 */ mr r28, r29 -lbl_802DBBA4: -/* 802DBBA4 002D8AE4 7F C4 42 14 */ add r30, r4, r8 -/* 802DBBA8 002D8AE8 7F 89 03 A6 */ mtctr r28 -/* 802DBBAC 002D8AEC 2C 1C 00 00 */ cmpwi r28, 0 -/* 802DBBB0 002D8AF0 40 81 00 3C */ ble lbl_802DBBEC -lbl_802DBBB4: -/* 802DBBB4 002D8AF4 28 06 00 00 */ cmplwi r6, 0 -/* 802DBBB8 002D8AF8 40 82 00 1C */ bne lbl_802DBBD4 -/* 802DBBBC 002D8AFC 3B BB FF FF */ addi r29, r27, -1 -/* 802DBBC0 002D8B00 7F A4 E8 AE */ lbzx r29, r4, r29 -/* 802DBBC4 002D8B04 9B BE 00 00 */ stb r29, 0(r30) -/* 802DBBC8 002D8B08 34 A5 FF FF */ addic. r5, r5, -1 -/* 802DBBCC 002D8B0C 40 82 00 0C */ bne lbl_802DBBD8 -/* 802DBBD0 002D8B10 48 00 00 2C */ b lbl_802DBBFC -lbl_802DBBD4: -/* 802DBBD4 002D8B14 38 C6 FF FF */ addi r6, r6, -1 -lbl_802DBBD8: -/* 802DBBD8 002D8B18 39 08 00 01 */ addi r8, r8, 1 -/* 802DBBDC 002D8B1C 3B FF 00 01 */ addi r31, r31, 1 -/* 802DBBE0 002D8B20 3B DE 00 01 */ addi r30, r30, 1 -/* 802DBBE4 002D8B24 3B 7B 00 01 */ addi r27, r27, 1 -/* 802DBBE8 002D8B28 42 00 FF CC */ bdnz lbl_802DBBB4 -lbl_802DBBEC: -/* 802DBBEC 002D8B2C 55 6B 08 3C */ slwi r11, r11, 1 -/* 802DBBF0 002D8B30 7C 08 00 00 */ cmpw r8, r0 -/* 802DBBF4 002D8B34 39 4A FF FF */ addi r10, r10, -1 -/* 802DBBF8 002D8B38 41 80 FE F8 */ blt lbl_802DBAF0 -lbl_802DBBFC: -/* 802DBBFC 002D8B3C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DBC00 002D8B40 48 08 66 21 */ bl _restgpr_27 -/* 802DBC04 002D8B44 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DBC08 002D8B48 7C 08 03 A6 */ mtlr r0 -/* 802DBC0C 002D8B4C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DBC10 002D8B50 4E 80 00 20 */ blr - -.global JKRDecomp_NS_decodeSZS -JKRDecomp_NS_decodeSZS: -/* 802DBC14 002D8B54 39 20 00 00 */ li r9, 0 -/* 802DBC18 002D8B58 80 03 00 04 */ lwz r0, 4(r3) -/* 802DBC1C 002D8B5C 7C 04 02 14 */ add r0, r4, r0 -/* 802DBC20 002D8B60 7C E6 00 50 */ subf r7, r6, r0 -/* 802DBC24 002D8B64 28 05 00 00 */ cmplwi r5, 0 -/* 802DBC28 002D8B68 4D 82 00 20 */ beqlr -/* 802DBC2C 002D8B6C 80 03 00 00 */ lwz r0, 0(r3) -/* 802DBC30 002D8B70 7C 06 00 40 */ cmplw r6, r0 -/* 802DBC34 002D8B74 4D 81 00 20 */ bgtlr -/* 802DBC38 002D8B78 39 63 00 10 */ addi r11, r3, 0x10 -lbl_802DBC3C: -/* 802DBC3C 002D8B7C 2C 09 00 00 */ cmpwi r9, 0 -/* 802DBC40 002D8B80 40 82 00 10 */ bne lbl_802DBC50 -/* 802DBC44 002D8B84 89 4B 00 00 */ lbz r10, 0(r11) -/* 802DBC48 002D8B88 39 20 00 08 */ li r9, 8 -/* 802DBC4C 002D8B8C 39 6B 00 01 */ addi r11, r11, 1 -lbl_802DBC50: -/* 802DBC50 002D8B90 55 40 06 31 */ rlwinm. r0, r10, 0, 0x18, 0x18 -/* 802DBC54 002D8B94 41 82 00 30 */ beq lbl_802DBC84 -/* 802DBC58 002D8B98 28 06 00 00 */ cmplwi r6, 0 -/* 802DBC5C 002D8B9C 40 82 00 1C */ bne lbl_802DBC78 -/* 802DBC60 002D8BA0 88 0B 00 00 */ lbz r0, 0(r11) -/* 802DBC64 002D8BA4 98 04 00 00 */ stb r0, 0(r4) -/* 802DBC68 002D8BA8 34 A5 FF FF */ addic. r5, r5, -1 -/* 802DBC6C 002D8BAC 38 84 00 01 */ addi r4, r4, 1 -/* 802DBC70 002D8BB0 40 82 00 0C */ bne lbl_802DBC7C -/* 802DBC74 002D8BB4 4E 80 00 20 */ blr -lbl_802DBC78: -/* 802DBC78 002D8BB8 38 C6 FF FF */ addi r6, r6, -1 -lbl_802DBC7C: -/* 802DBC7C 002D8BBC 39 6B 00 01 */ addi r11, r11, 1 -/* 802DBC80 002D8BC0 48 00 00 64 */ b lbl_802DBCE4 -lbl_802DBC84: -/* 802DBC84 002D8BC4 88 0B 00 01 */ lbz r0, 1(r11) -/* 802DBC88 002D8BC8 88 6B 00 00 */ lbz r3, 0(r11) -/* 802DBC8C 002D8BCC 50 60 45 2E */ rlwimi r0, r3, 8, 0x14, 0x17 -/* 802DBC90 002D8BD0 7C 63 26 71 */ srawi. r3, r3, 4 -/* 802DBC94 002D8BD4 7D 00 20 50 */ subf r8, r0, r4 -/* 802DBC98 002D8BD8 39 6B 00 02 */ addi r11, r11, 2 -/* 802DBC9C 002D8BDC 40 82 00 14 */ bne lbl_802DBCB0 -/* 802DBCA0 002D8BE0 88 6B 00 00 */ lbz r3, 0(r11) -/* 802DBCA4 002D8BE4 38 63 00 12 */ addi r3, r3, 0x12 -/* 802DBCA8 002D8BE8 39 6B 00 01 */ addi r11, r11, 1 -/* 802DBCAC 002D8BEC 48 00 00 08 */ b lbl_802DBCB4 -lbl_802DBCB0: -/* 802DBCB0 002D8BF0 38 63 00 02 */ addi r3, r3, 2 -lbl_802DBCB4: -/* 802DBCB4 002D8BF4 28 06 00 00 */ cmplwi r6, 0 -/* 802DBCB8 002D8BF8 40 82 00 1C */ bne lbl_802DBCD4 -/* 802DBCBC 002D8BFC 88 08 FF FF */ lbz r0, -1(r8) -/* 802DBCC0 002D8C00 98 04 00 00 */ stb r0, 0(r4) -/* 802DBCC4 002D8C04 34 A5 FF FF */ addic. r5, r5, -1 -/* 802DBCC8 002D8C08 38 84 00 01 */ addi r4, r4, 1 -/* 802DBCCC 002D8C0C 40 82 00 0C */ bne lbl_802DBCD8 -/* 802DBCD0 002D8C10 4E 80 00 20 */ blr -lbl_802DBCD4: -/* 802DBCD4 002D8C14 38 C6 FF FF */ addi r6, r6, -1 -lbl_802DBCD8: -/* 802DBCD8 002D8C18 34 63 FF FF */ addic. r3, r3, -1 -/* 802DBCDC 002D8C1C 39 08 00 01 */ addi r8, r8, 1 -/* 802DBCE0 002D8C20 40 82 FF D4 */ bne lbl_802DBCB4 -lbl_802DBCE4: -/* 802DBCE4 002D8C24 55 4A 08 3C */ slwi r10, r10, 1 -/* 802DBCE8 002D8C28 7C 04 38 40 */ cmplw r4, r7 -/* 802DBCEC 002D8C2C 39 29 FF FF */ addi r9, r9, -1 -/* 802DBCF0 002D8C30 40 82 FF 4C */ bne lbl_802DBC3C -/* 802DBCF4 002D8C34 4E 80 00 20 */ blr - -.global JKRDecomp_NS_checkCompressed -JKRDecomp_NS_checkCompressed: -/* 802DBCF8 002D8C38 88 83 00 00 */ lbz r4, 0(r3) -/* 802DBCFC 002D8C3C 2C 04 00 59 */ cmpwi r4, 0x59 -/* 802DBD00 002D8C40 40 82 00 40 */ bne lbl_802DBD40 -/* 802DBD04 002D8C44 88 03 00 01 */ lbz r0, 1(r3) -/* 802DBD08 002D8C48 2C 00 00 61 */ cmpwi r0, 0x61 -/* 802DBD0C 002D8C4C 40 82 00 34 */ bne lbl_802DBD40 -/* 802DBD10 002D8C50 88 03 00 03 */ lbz r0, 3(r3) -/* 802DBD14 002D8C54 2C 00 00 30 */ cmpwi r0, 0x30 -/* 802DBD18 002D8C58 40 82 00 28 */ bne lbl_802DBD40 -/* 802DBD1C 002D8C5C 88 03 00 02 */ lbz r0, 2(r3) -/* 802DBD20 002D8C60 2C 00 00 79 */ cmpwi r0, 0x79 -/* 802DBD24 002D8C64 40 82 00 0C */ bne lbl_802DBD30 -/* 802DBD28 002D8C68 38 60 00 01 */ li r3, 1 -/* 802DBD2C 002D8C6C 4E 80 00 20 */ blr -lbl_802DBD30: -/* 802DBD30 002D8C70 2C 00 00 7A */ cmpwi r0, 0x7a -/* 802DBD34 002D8C74 40 82 00 0C */ bne lbl_802DBD40 -/* 802DBD38 002D8C78 38 60 00 02 */ li r3, 2 -/* 802DBD3C 002D8C7C 4E 80 00 20 */ blr -lbl_802DBD40: -/* 802DBD40 002D8C80 2C 04 00 41 */ cmpwi r4, 0x41 -/* 802DBD44 002D8C84 40 82 00 24 */ bne lbl_802DBD68 -/* 802DBD48 002D8C88 88 03 00 01 */ lbz r0, 1(r3) -/* 802DBD4C 002D8C8C 2C 00 00 53 */ cmpwi r0, 0x53 -/* 802DBD50 002D8C90 40 82 00 18 */ bne lbl_802DBD68 -/* 802DBD54 002D8C94 88 03 00 02 */ lbz r0, 2(r3) -/* 802DBD58 002D8C98 2C 00 00 52 */ cmpwi r0, 0x52 -/* 802DBD5C 002D8C9C 40 82 00 0C */ bne lbl_802DBD68 -/* 802DBD60 002D8CA0 38 60 00 03 */ li r3, 3 -/* 802DBD64 002D8CA4 4E 80 00 20 */ blr -lbl_802DBD68: -/* 802DBD68 002D8CA8 38 60 00 00 */ li r3, 0 -/* 802DBD6C 002D8CAC 4E 80 00 20 */ blr - -.global JKRDecompCommand -JKRDecompCommand: -/* 802DBD70 002D8CB0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DBD74 002D8CB4 7C 08 02 A6 */ mflr r0 -/* 802DBD78 002D8CB8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DBD7C 002D8CBC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DBD80 002D8CC0 7C 7F 1B 78 */ mr r31, r3 -/* 802DBD84 002D8CC4 38 7F 00 28 */ addi r3, r31, 0x28 -/* 802DBD88 002D8CC8 38 9F 00 48 */ addi r4, r31, 0x48 -/* 802DBD8C 002D8CCC 38 A0 00 01 */ li r5, 1 -/* 802DBD90 002D8CD0 48 06 2C 05 */ bl OSInitMessageQueue -/* 802DBD94 002D8CD4 38 00 00 00 */ li r0, 0 -/* 802DBD98 002D8CD8 90 1F 00 14 */ stw r0, 0x14(r31) -/* 802DBD9C 002D8CDC 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 802DBDA0 002D8CE0 93 FF 00 18 */ stw r31, 0x18(r31) -/* 802DBDA4 002D8CE4 90 1F 00 20 */ stw r0, 0x20(r31) -/* 802DBDA8 002D8CE8 7F E3 FB 78 */ mr r3, r31 -/* 802DBDAC 002D8CEC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DBDB0 002D8CF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DBDB4 002D8CF4 7C 08 03 A6 */ mtlr r0 -/* 802DBDB8 002D8CF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DBDBC 002D8CFC 4E 80 00 20 */ blr - -.global JKRDecompCommand_NS_dtor -JKRDecompCommand_NS_dtor: -/* 802DBDC0 002D8D00 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DBDC4 002D8D04 7C 08 02 A6 */ mflr r0 -/* 802DBDC8 002D8D08 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DBDCC 002D8D0C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DBDD0 002D8D10 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802DBDD4 002D8D14 41 82 00 10 */ beq lbl_802DBDE4 -/* 802DBDD8 002D8D18 7C 80 07 35 */ extsh. r0, r4 -/* 802DBDDC 002D8D1C 40 81 00 08 */ ble lbl_802DBDE4 -/* 802DBDE0 002D8D20 4B FF 2F 5D */ bl __dl__FPv -lbl_802DBDE4: -/* 802DBDE4 002D8D24 7F E3 FB 78 */ mr r3, r31 -/* 802DBDE8 002D8D28 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DBDEC 002D8D2C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DBDF0 002D8D30 7C 08 03 A6 */ mtlr r0 -/* 802DBDF4 002D8D34 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DBDF8 002D8D38 4E 80 00 20 */ blr - diff --git a/asm/JKernel/JKRDvdAramRipper.s b/asm/JKernel/JKRDvdAramRipper.s index 98b6e41f63..3ef3efac20 100644 --- a/asm/JKernel/JKRDvdAramRipper.s +++ b/asm/JKernel/JKRDvdAramRipper.s @@ -1,984 +1,9 @@ .include "macros.inc" -.section .text, "ax" # 802da874 +.section .text, "ax" # 802DB5E8 - -.global JKRDvdAramRipper_NS_loadToAram -JKRDvdAramRipper_NS_loadToAram: -/* 802DA874 002D77B4 94 21 FE E0 */ stwu r1, -0x120(r1) -/* 802DA878 002D77B8 7C 08 02 A6 */ mflr r0 -/* 802DA87C 002D77BC 90 01 01 24 */ stw r0, 0x124(r1) -/* 802DA880 002D77C0 39 61 01 20 */ addi r11, r1, 0x120 -/* 802DA884 002D77C4 48 08 79 4D */ bl _savegpr_26 -/* 802DA888 002D77C8 7C 7A 1B 78 */ mr r26, r3 -/* 802DA88C 002D77CC 7C 9B 23 78 */ mr r27, r4 -/* 802DA890 002D77D0 7C BC 2B 78 */ mr r28, r5 -/* 802DA894 002D77D4 7C DD 33 78 */ mr r29, r6 -/* 802DA898 002D77D8 7C FE 3B 78 */ mr r30, r7 -/* 802DA89C 002D77DC 7D 1F 43 78 */ mr r31, r8 -/* 802DA8A0 002D77E0 38 61 00 08 */ addi r3, r1, 8 -/* 802DA8A4 002D77E4 4B FF EC E1 */ bl __ct__10JKRDvdFileFv -/* 802DA8A8 002D77E8 38 61 00 08 */ addi r3, r1, 8 -/* 802DA8AC 002D77EC 7F 44 D3 78 */ mr r4, r26 -/* 802DA8B0 002D77F0 4B FF F0 15 */ bl open__10JKRDvdFileFl -/* 802DA8B4 002D77F4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802DA8B8 002D77F8 40 82 00 18 */ bne lbl_802DA8D0 -/* 802DA8BC 002D77FC 38 61 00 08 */ addi r3, r1, 8 -/* 802DA8C0 002D7800 38 80 FF FF */ li r4, -1 -/* 802DA8C4 002D7804 4B FF EE 85 */ bl __dt__10JKRDvdFileFv -/* 802DA8C8 002D7808 38 60 00 00 */ li r3, 0 -/* 802DA8CC 002D780C 48 00 00 34 */ b lbl_802DA900 -lbl_802DA8D0: -/* 802DA8D0 002D7810 38 61 00 08 */ addi r3, r1, 8 -/* 802DA8D4 002D7814 7F 64 DB 78 */ mr r4, r27 -/* 802DA8D8 002D7818 7F 85 E3 78 */ mr r5, r28 -/* 802DA8DC 002D781C 7F A6 EB 78 */ mr r6, r29 -/* 802DA8E0 002D7820 7F C7 F3 78 */ mr r7, r30 -/* 802DA8E4 002D7824 7F E8 FB 78 */ mr r8, r31 -/* 802DA8E8 002D7828 48 00 00 31 */ bl JKRDvdAramRipper_NS_loadToAram_X1_ -/* 802DA8EC 002D782C 7C 7F 1B 78 */ mr r31, r3 -/* 802DA8F0 002D7830 38 61 00 08 */ addi r3, r1, 8 -/* 802DA8F4 002D7834 38 80 FF FF */ li r4, -1 -/* 802DA8F8 002D7838 4B FF EE 51 */ bl __dt__10JKRDvdFileFv -/* 802DA8FC 002D783C 7F E3 FB 78 */ mr r3, r31 -lbl_802DA900: -/* 802DA900 002D7840 39 61 01 20 */ addi r11, r1, 0x120 -/* 802DA904 002D7844 48 08 79 19 */ bl _restgpr_26 -/* 802DA908 002D7848 80 01 01 24 */ lwz r0, 0x124(r1) -/* 802DA90C 002D784C 7C 08 03 A6 */ mtlr r0 -/* 802DA910 002D7850 38 21 01 20 */ addi r1, r1, 0x120 -/* 802DA914 002D7854 4E 80 00 20 */ blr - -.global JKRDvdAramRipper_NS_loadToAram_X1_ -JKRDvdAramRipper_NS_loadToAram_X1_: -/* 802DA918 002D7858 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DA91C 002D785C 7C 08 02 A6 */ mflr r0 -/* 802DA920 002D7860 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DA924 002D7864 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DA928 002D7868 93 C1 00 08 */ stw r30, 8(r1) -/* 802DA92C 002D786C 7C 9E 23 78 */ mr r30, r4 -/* 802DA930 002D7870 7C CA 33 78 */ mr r10, r6 -/* 802DA934 002D7874 7C E0 3B 78 */ mr r0, r7 -/* 802DA938 002D7878 7D 09 43 78 */ mr r9, r8 -/* 802DA93C 002D787C 38 C0 00 00 */ li r6, 0 -/* 802DA940 002D7880 7D 47 53 78 */ mr r7, r10 -/* 802DA944 002D7884 7C 08 03 78 */ mr r8, r0 -/* 802DA948 002D7888 48 00 00 79 */ bl JKRDvdAramRipper_NS_loadToAram_Async -/* 802DA94C 002D788C 7C 7F 1B 78 */ mr r31, r3 -/* 802DA950 002D7890 38 80 00 00 */ li r4, 0 -/* 802DA954 002D7894 48 00 04 F5 */ bl JKRDvdAramRipper_NS_syncAram -/* 802DA958 002D7898 80 1F 00 48 */ lwz r0, 0x48(r31) -/* 802DA95C 002D789C 2C 00 00 00 */ cmpwi r0, 0 -/* 802DA960 002D78A0 40 80 00 18 */ bge lbl_802DA978 -/* 802DA964 002D78A4 7F E3 FB 78 */ mr r3, r31 -/* 802DA968 002D78A8 38 80 00 01 */ li r4, 1 -/* 802DA96C 002D78AC 48 00 05 F1 */ bl JKRADCommand_NS_dtor -/* 802DA970 002D78B0 38 60 00 00 */ li r3, 0 -/* 802DA974 002D78B4 48 00 00 34 */ b lbl_802DA9A8 -lbl_802DA978: -/* 802DA978 002D78B8 28 1E 00 00 */ cmplwi r30, 0 -/* 802DA97C 002D78BC 41 82 00 18 */ beq lbl_802DA994 -/* 802DA980 002D78C0 7F E3 FB 78 */ mr r3, r31 -/* 802DA984 002D78C4 38 80 00 01 */ li r4, 1 -/* 802DA988 002D78C8 48 00 05 D5 */ bl JKRADCommand_NS_dtor -/* 802DA98C 002D78CC 38 60 FF FF */ li r3, -1 -/* 802DA990 002D78D0 48 00 00 18 */ b lbl_802DA9A8 -lbl_802DA994: -/* 802DA994 002D78D4 83 DF 00 30 */ lwz r30, 0x30(r31) -/* 802DA998 002D78D8 7F E3 FB 78 */ mr r3, r31 -/* 802DA99C 002D78DC 38 80 00 01 */ li r4, 1 -/* 802DA9A0 002D78E0 48 00 05 BD */ bl JKRADCommand_NS_dtor -/* 802DA9A4 002D78E4 7F C3 F3 78 */ mr r3, r30 -lbl_802DA9A8: -/* 802DA9A8 002D78E8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DA9AC 002D78EC 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DA9B0 002D78F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DA9B4 002D78F4 7C 08 03 A6 */ mtlr r0 -/* 802DA9B8 002D78F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DA9BC 002D78FC 4E 80 00 20 */ blr - -.global JKRDvdAramRipper_NS_loadToAram_Async -JKRDvdAramRipper_NS_loadToAram_Async: -/* 802DA9C0 002D7900 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802DA9C4 002D7904 7C 08 02 A6 */ mflr r0 -/* 802DA9C8 002D7908 90 01 00 34 */ stw r0, 0x34(r1) -/* 802DA9CC 002D790C 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DA9D0 002D7910 48 08 77 F9 */ bl func_803621C8 -/* 802DA9D4 002D7914 7C 78 1B 78 */ mr r24, r3 -/* 802DA9D8 002D7918 7C 99 23 78 */ mr r25, r4 -/* 802DA9DC 002D791C 7C BA 2B 78 */ mr r26, r5 -/* 802DA9E0 002D7920 7C DB 33 78 */ mr r27, r6 -/* 802DA9E4 002D7924 7C FC 3B 78 */ mr r28, r7 -/* 802DA9E8 002D7928 7D 1D 43 78 */ mr r29, r8 -/* 802DA9EC 002D792C 7D 3E 4B 78 */ mr r30, r9 -/* 802DA9F0 002D7930 38 60 00 54 */ li r3, 0x54 -/* 802DA9F4 002D7934 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802DA9F8 002D7938 38 A0 FF FC */ li r5, -4 -/* 802DA9FC 002D793C 4B FF 42 9D */ bl __nw__FUlP7JKRHeapi -/* 802DAA00 002D7940 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802DAA04 002D7944 41 82 00 0C */ beq lbl_802DAA10 -/* 802DAA08 002D7948 48 00 05 15 */ bl JKRADCommand -/* 802DAA0C 002D794C 7C 7F 1B 78 */ mr r31, r3 -lbl_802DAA10: -/* 802DAA10 002D7950 93 1F 00 28 */ stw r24, 0x28(r31) -/* 802DAA14 002D7954 93 3F 00 2C */ stw r25, 0x2c(r31) -/* 802DAA18 002D7958 38 00 00 00 */ li r0, 0 -/* 802DAA1C 002D795C 90 1F 00 30 */ stw r0, 0x30(r31) -/* 802DAA20 002D7960 93 5F 00 34 */ stw r26, 0x34(r31) -/* 802DAA24 002D7964 93 7F 00 38 */ stw r27, 0x38(r31) -/* 802DAA28 002D7968 93 9F 00 3C */ stw r28, 0x3c(r31) -/* 802DAA2C 002D796C 93 BF 00 40 */ stw r29, 0x40(r31) -/* 802DAA30 002D7970 93 DF 00 44 */ stw r30, 0x44(r31) -/* 802DAA34 002D7974 7F E3 FB 78 */ mr r3, r31 -/* 802DAA38 002D7978 48 00 00 3D */ bl JKRDvdAramRipper_NS_callCommand_Async -/* 802DAA3C 002D797C 28 03 00 00 */ cmplwi r3, 0 -/* 802DAA40 002D7980 40 82 00 18 */ bne lbl_802DAA58 -/* 802DAA44 002D7984 7F E3 FB 78 */ mr r3, r31 -/* 802DAA48 002D7988 38 80 00 01 */ li r4, 1 -/* 802DAA4C 002D798C 48 00 05 11 */ bl JKRADCommand_NS_dtor -/* 802DAA50 002D7990 38 60 00 00 */ li r3, 0 -/* 802DAA54 002D7994 48 00 00 08 */ b lbl_802DAA5C -lbl_802DAA58: -/* 802DAA58 002D7998 7F E3 FB 78 */ mr r3, r31 -lbl_802DAA5C: -/* 802DAA5C 002D799C 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DAA60 002D79A0 48 08 77 B5 */ bl func_80362214 -/* 802DAA64 002D79A4 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802DAA68 002D79A8 7C 08 03 A6 */ mtlr r0 -/* 802DAA6C 002D79AC 38 21 00 30 */ addi r1, r1, 0x30 -/* 802DAA70 002D79B0 4E 80 00 20 */ blr - -.global JKRDvdAramRipper_NS_callCommand_Async -JKRDvdAramRipper_NS_callCommand_Async: -/* 802DAA74 002D79B4 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802DAA78 002D79B8 7C 08 02 A6 */ mflr r0 -/* 802DAA7C 002D79BC 90 01 00 74 */ stw r0, 0x74(r1) -/* 802DAA80 002D79C0 39 61 00 70 */ addi r11, r1, 0x70 -/* 802DAA84 002D79C4 48 08 77 49 */ bl func_803621CC -/* 802DAA88 002D79C8 7C 7D 1B 78 */ mr r29, r3 -/* 802DAA8C 002D79CC 3B E0 00 01 */ li r31, 1 -/* 802DAA90 002D79D0 83 C3 00 28 */ lwz r30, 0x28(r3) -/* 802DAA94 002D79D4 3B 40 00 00 */ li r26, 0 -/* 802DAA98 002D79D8 38 7E 00 34 */ addi r3, r30, 0x34 -/* 802DAA9C 002D79DC 48 06 45 A5 */ bl OSLockMutex -/* 802DAAA0 002D79E0 80 7D 00 44 */ lwz r3, 0x44(r29) -/* 802DAAA4 002D79E4 28 03 00 00 */ cmplwi r3, 0 -/* 802DAAA8 002D79E8 41 82 00 0C */ beq lbl_802DAAB4 -/* 802DAAAC 002D79EC 38 00 00 00 */ li r0, 0 -/* 802DAAB0 002D79F0 90 03 00 00 */ stw r0, 0(r3) -lbl_802DAAB4: -/* 802DAAB4 002D79F4 80 1E 00 50 */ lwz r0, 0x50(r30) -/* 802DAAB8 002D79F8 28 00 00 00 */ cmplwi r0, 0 -/* 802DAABC 002D79FC 41 82 00 0C */ beq lbl_802DAAC8 -/* 802DAAC0 002D7A00 3B E0 00 00 */ li r31, 0 -/* 802DAAC4 002D7A04 48 00 02 DC */ b lbl_802DADA0 -lbl_802DAAC8: -/* 802DAAC8 002D7A08 48 06 61 BD */ bl OSGetCurrentThread -/* 802DAACC 002D7A0C 90 7E 00 50 */ stw r3, 0x50(r30) -/* 802DAAD0 002D7A10 38 60 00 10 */ li r3, 0x10 -/* 802DAAD4 002D7A14 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802DAAD8 002D7A18 38 A0 FF FC */ li r5, -4 -/* 802DAADC 002D7A1C 4B FF 41 BD */ bl __nw__FUlP7JKRHeapi -/* 802DAAE0 002D7A20 7C 7C 1B 79 */ or. r28, r3, r3 -/* 802DAAE4 002D7A24 41 82 00 10 */ beq lbl_802DAAF4 -/* 802DAAE8 002D7A28 7F C4 F3 78 */ mr r4, r30 -/* 802DAAEC 002D7A2C 48 00 1B 4D */ bl JSUFileInputStream -/* 802DAAF0 002D7A30 7C 7C 1B 78 */ mr r28, r3 -lbl_802DAAF4: -/* 802DAAF4 002D7A34 93 9E 00 54 */ stw r28, 0x54(r30) -/* 802DAAF8 002D7A38 7F C3 F3 78 */ mr r3, r30 -/* 802DAAFC 002D7A3C 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DAB00 002D7A40 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802DAB04 002D7A44 7D 89 03 A6 */ mtctr r12 -/* 802DAB08 002D7A48 4E 80 04 21 */ bctrl -/* 802DAB0C 002D7A4C 80 1D 00 40 */ lwz r0, 0x40(r29) -/* 802DAB10 002D7A50 28 00 00 00 */ cmplwi r0, 0 -/* 802DAB14 002D7A54 41 82 00 10 */ beq lbl_802DAB24 -/* 802DAB18 002D7A58 7C 03 00 40 */ cmplw r3, r0 -/* 802DAB1C 002D7A5C 40 81 00 08 */ ble lbl_802DAB24 -/* 802DAB20 002D7A60 7C 03 03 78 */ mr r3, r0 -lbl_802DAB24: -/* 802DAB24 002D7A64 38 03 00 1F */ addi r0, r3, 0x1f -/* 802DAB28 002D7A68 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a -/* 802DAB2C 002D7A6C 80 1D 00 34 */ lwz r0, 0x34(r29) -/* 802DAB30 002D7A70 2C 00 00 01 */ cmpwi r0, 1 -/* 802DAB34 002D7A74 40 82 00 C8 */ bne lbl_802DABFC -/* 802DAB38 002D7A78 38 01 00 27 */ addi r0, r1, 0x27 -/* 802DAB3C 002D7A7C 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a -lbl_802DAB40: -/* 802DAB40 002D7A80 38 7E 00 5C */ addi r3, r30, 0x5c -/* 802DAB44 002D7A84 7F 24 CB 78 */ mr r4, r25 -/* 802DAB48 002D7A88 38 A0 00 20 */ li r5, 0x20 -/* 802DAB4C 002D7A8C 38 C0 00 00 */ li r6, 0 -/* 802DAB50 002D7A90 38 E0 00 02 */ li r7, 2 -/* 802DAB54 002D7A94 48 06 E2 F1 */ bl DVDReadPrio -/* 802DAB58 002D7A98 2C 03 00 00 */ cmpwi r3, 0 -/* 802DAB5C 002D7A9C 40 80 00 40 */ bge lbl_802DAB9C -/* 802DAB60 002D7AA0 88 0D 83 50 */ lbz r0, lbl_804508D0-_SDA_BASE_(r13) -/* 802DAB64 002D7AA4 28 00 00 00 */ cmplwi r0, 0 -/* 802DAB68 002D7AA8 40 82 00 2C */ bne lbl_802DAB94 -/* 802DAB6C 002D7AAC 28 1C 00 00 */ cmplwi r28, 0 -/* 802DAB70 002D7AB0 41 82 00 1C */ beq lbl_802DAB8C -/* 802DAB74 002D7AB4 7F 83 E3 78 */ mr r3, r28 -/* 802DAB78 002D7AB8 38 80 00 01 */ li r4, 1 -/* 802DAB7C 002D7ABC 81 9C 00 00 */ lwz r12, 0(r28) -/* 802DAB80 002D7AC0 81 8C 00 08 */ lwz r12, 8(r12) -/* 802DAB84 002D7AC4 7D 89 03 A6 */ mtctr r12 -/* 802DAB88 002D7AC8 4E 80 04 21 */ bctrl -lbl_802DAB8C: -/* 802DAB8C 002D7ACC 38 60 00 00 */ li r3, 0 -/* 802DAB90 002D7AD0 48 00 02 30 */ b lbl_802DADC0 -lbl_802DAB94: -/* 802DAB94 002D7AD4 48 07 1E 31 */ bl VIWaitForRetrace -/* 802DAB98 002D7AD8 4B FF FF A8 */ b lbl_802DAB40 -lbl_802DAB9C: -/* 802DAB9C 002D7ADC 7F 23 CB 78 */ mr r3, r25 -/* 802DABA0 002D7AE0 38 80 00 20 */ li r4, 0x20 -/* 802DABA4 002D7AE4 48 06 09 DD */ bl DCInvalidateRange -/* 802DABA8 002D7AE8 7F 23 CB 78 */ mr r3, r25 -/* 802DABAC 002D7AEC 48 00 11 4D */ bl JKRDecomp_NS_checkCompressed -/* 802DABB0 002D7AF0 2C 03 00 03 */ cmpwi r3, 3 -/* 802DABB4 002D7AF4 40 82 00 08 */ bne lbl_802DABBC -/* 802DABB8 002D7AF8 38 60 00 00 */ li r3, 0 -lbl_802DABBC: -/* 802DABBC 002D7AFC 7C 7A 1B 78 */ mr r26, r3 -/* 802DABC0 002D7B00 88 B9 00 07 */ lbz r5, 7(r25) -/* 802DABC4 002D7B04 88 99 00 06 */ lbz r4, 6(r25) -/* 802DABC8 002D7B08 88 79 00 04 */ lbz r3, 4(r25) -/* 802DABCC 002D7B0C 88 19 00 05 */ lbz r0, 5(r25) -/* 802DABD0 002D7B10 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802DABD4 002D7B14 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802DABD8 002D7B18 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802DABDC 002D7B1C 7C A0 03 78 */ or r0, r5, r0 -/* 802DABE0 002D7B20 7C 19 03 78 */ mr r25, r0 -/* 802DABE4 002D7B24 80 7D 00 40 */ lwz r3, 0x40(r29) -/* 802DABE8 002D7B28 28 03 00 00 */ cmplwi r3, 0 -/* 802DABEC 002D7B2C 41 82 00 10 */ beq lbl_802DABFC -/* 802DABF0 002D7B30 7C 00 18 40 */ cmplw r0, r3 -/* 802DABF4 002D7B34 40 81 00 08 */ ble lbl_802DABFC -/* 802DABF8 002D7B38 7C 79 1B 78 */ mr r25, r3 -lbl_802DABFC: -/* 802DABFC 002D7B3C 2C 1A 00 00 */ cmpwi r26, 0 -/* 802DAC00 002D7B40 40 82 00 0C */ bne lbl_802DAC0C -/* 802DAC04 002D7B44 38 00 00 00 */ li r0, 0 -/* 802DAC08 002D7B48 90 1D 00 34 */ stw r0, 0x34(r29) -lbl_802DAC0C: -/* 802DAC0C 002D7B4C 80 1D 00 34 */ lwz r0, 0x34(r29) -/* 802DAC10 002D7B50 2C 00 00 01 */ cmpwi r0, 1 -/* 802DAC14 002D7B54 40 82 00 80 */ bne lbl_802DAC94 -/* 802DAC18 002D7B58 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 802DAC1C 002D7B5C 28 00 00 00 */ cmplwi r0, 0 -/* 802DAC20 002D7B60 40 82 00 44 */ bne lbl_802DAC64 -/* 802DAC24 002D7B64 80 1D 00 30 */ lwz r0, 0x30(r29) -/* 802DAC28 002D7B68 28 00 00 00 */ cmplwi r0, 0 -/* 802DAC2C 002D7B6C 40 82 00 38 */ bne lbl_802DAC64 -/* 802DAC30 002D7B70 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802DAC34 002D7B74 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802DAC38 002D7B78 7F 24 CB 78 */ mr r4, r25 -/* 802DAC3C 002D7B7C 38 A0 00 00 */ li r5, 0 -/* 802DAC40 002D7B80 4B FF 83 7D */ bl JKRAramHeap_NS_alloc -/* 802DAC44 002D7B84 90 7D 00 30 */ stw r3, 0x30(r29) -/* 802DAC48 002D7B88 80 7D 00 30 */ lwz r3, 0x30(r29) -/* 802DAC4C 002D7B8C 28 03 00 00 */ cmplwi r3, 0 -/* 802DAC50 002D7B90 41 82 00 0C */ beq lbl_802DAC5C -/* 802DAC54 002D7B94 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802DAC58 002D7B98 90 1D 00 2C */ stw r0, 0x2c(r29) -lbl_802DAC5C: -/* 802DAC5C 002D7B9C 80 1D 00 30 */ lwz r0, 0x30(r29) -/* 802DAC60 002D7BA0 90 1E 00 4C */ stw r0, 0x4c(r30) -lbl_802DAC64: -/* 802DAC64 002D7BA4 80 7D 00 30 */ lwz r3, 0x30(r29) -/* 802DAC68 002D7BA8 28 03 00 00 */ cmplwi r3, 0 -/* 802DAC6C 002D7BAC 41 82 00 0C */ beq lbl_802DAC78 -/* 802DAC70 002D7BB0 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802DAC74 002D7BB4 90 1D 00 2C */ stw r0, 0x2c(r29) -lbl_802DAC78: -/* 802DAC78 002D7BB8 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 802DAC7C 002D7BBC 28 00 00 00 */ cmplwi r0, 0 -/* 802DAC80 002D7BC0 40 82 00 74 */ bne lbl_802DACF4 -/* 802DAC84 002D7BC4 38 00 00 00 */ li r0, 0 -/* 802DAC88 002D7BC8 90 1E 00 50 */ stw r0, 0x50(r30) -/* 802DAC8C 002D7BCC 38 60 00 00 */ li r3, 0 -/* 802DAC90 002D7BD0 48 00 01 30 */ b lbl_802DADC0 -lbl_802DAC94: -/* 802DAC94 002D7BD4 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 802DAC98 002D7BD8 28 00 00 00 */ cmplwi r0, 0 -/* 802DAC9C 002D7BDC 40 82 00 28 */ bne lbl_802DACC4 -/* 802DACA0 002D7BE0 80 1D 00 30 */ lwz r0, 0x30(r29) -/* 802DACA4 002D7BE4 28 00 00 00 */ cmplwi r0, 0 -/* 802DACA8 002D7BE8 40 82 00 1C */ bne lbl_802DACC4 -/* 802DACAC 002D7BEC 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) -/* 802DACB0 002D7BF0 80 63 00 94 */ lwz r3, 0x94(r3) -/* 802DACB4 002D7BF4 7F 64 DB 78 */ mr r4, r27 -/* 802DACB8 002D7BF8 38 A0 00 00 */ li r5, 0 -/* 802DACBC 002D7BFC 4B FF 83 01 */ bl JKRAramHeap_NS_alloc -/* 802DACC0 002D7C00 90 7D 00 30 */ stw r3, 0x30(r29) -lbl_802DACC4: -/* 802DACC4 002D7C04 80 7D 00 30 */ lwz r3, 0x30(r29) -/* 802DACC8 002D7C08 28 03 00 00 */ cmplwi r3, 0 -/* 802DACCC 002D7C0C 41 82 00 0C */ beq lbl_802DACD8 -/* 802DACD0 002D7C10 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802DACD4 002D7C14 90 1D 00 2C */ stw r0, 0x2c(r29) -lbl_802DACD8: -/* 802DACD8 002D7C18 80 1D 00 2C */ lwz r0, 0x2c(r29) -/* 802DACDC 002D7C1C 28 00 00 00 */ cmplwi r0, 0 -/* 802DACE0 002D7C20 40 82 00 14 */ bne lbl_802DACF4 -/* 802DACE4 002D7C24 38 00 00 00 */ li r0, 0 -/* 802DACE8 002D7C28 90 1E 00 50 */ stw r0, 0x50(r30) -/* 802DACEC 002D7C2C 38 60 00 00 */ li r3, 0 -/* 802DACF0 002D7C30 48 00 00 D0 */ b lbl_802DADC0 -lbl_802DACF4: -/* 802DACF4 002D7C34 2C 1A 00 00 */ cmpwi r26, 0 -/* 802DACF8 002D7C38 40 82 00 24 */ bne lbl_802DAD1C -/* 802DACFC 002D7C3C 80 9D 00 2C */ lwz r4, 0x2c(r29) -/* 802DAD00 002D7C40 80 DD 00 3C */ lwz r6, 0x3c(r29) -/* 802DAD04 002D7C44 7F 83 E3 78 */ mr r3, r28 -/* 802DAD08 002D7C48 7C A6 D8 50 */ subf r5, r6, r27 -/* 802DAD0C 002D7C4C 80 FD 00 44 */ lwz r7, 0x44(r29) -/* 802DAD10 002D7C50 4B FF 91 C1 */ bl JKRAramStream_NS_write_StreamToAram_Async -/* 802DAD14 002D7C54 90 7D 00 50 */ stw r3, 0x50(r29) -/* 802DAD18 002D7C58 48 00 00 5C */ b lbl_802DAD74 -lbl_802DAD1C: -/* 802DAD1C 002D7C5C 2C 1A 00 01 */ cmpwi r26, 1 -/* 802DAD20 002D7C60 40 82 00 24 */ bne lbl_802DAD44 -/* 802DAD24 002D7C64 80 9D 00 2C */ lwz r4, 0x2c(r29) -/* 802DAD28 002D7C68 80 DD 00 3C */ lwz r6, 0x3c(r29) -/* 802DAD2C 002D7C6C 7F 83 E3 78 */ mr r3, r28 -/* 802DAD30 002D7C70 7C A6 D8 50 */ subf r5, r6, r27 -/* 802DAD34 002D7C74 80 FD 00 44 */ lwz r7, 0x44(r29) -/* 802DAD38 002D7C78 4B FF 91 99 */ bl JKRAramStream_NS_write_StreamToAram_Async -/* 802DAD3C 002D7C7C 90 7D 00 50 */ stw r3, 0x50(r29) -/* 802DAD40 002D7C80 48 00 00 34 */ b lbl_802DAD74 -lbl_802DAD44: -/* 802DAD44 002D7C84 2C 1A 00 02 */ cmpwi r26, 2 -/* 802DAD48 002D7C88 40 82 00 2C */ bne lbl_802DAD74 -/* 802DAD4C 002D7C8C 38 00 00 00 */ li r0, 0 -/* 802DAD50 002D7C90 90 1D 00 50 */ stw r0, 0x50(r29) -/* 802DAD54 002D7C94 80 7D 00 28 */ lwz r3, 0x28(r29) -/* 802DAD58 002D7C98 80 9D 00 2C */ lwz r4, 0x2c(r29) -/* 802DAD5C 002D7C9C 7F 65 DB 78 */ mr r5, r27 -/* 802DAD60 002D7CA0 7F 26 CB 78 */ mr r6, r25 -/* 802DAD64 002D7CA4 80 FD 00 3C */ lwz r7, 0x3c(r29) -/* 802DAD68 002D7CA8 39 00 00 00 */ li r8, 0 -/* 802DAD6C 002D7CAC 81 3D 00 44 */ lwz r9, 0x44(r29) -/* 802DAD70 002D7CB0 48 00 02 79 */ bl JKRDecompressFromDVDToAram -lbl_802DAD74: -/* 802DAD74 002D7CB4 81 9D 00 38 */ lwz r12, 0x38(r29) -/* 802DAD78 002D7CB8 28 0C 00 00 */ cmplwi r12, 0 -/* 802DAD7C 002D7CBC 40 82 00 18 */ bne lbl_802DAD94 -/* 802DAD80 002D7CC0 3C 60 80 43 */ lis r3, lbl_804343B4@ha -/* 802DAD84 002D7CC4 38 63 43 B4 */ addi r3, r3, lbl_804343B4@l -/* 802DAD88 002D7CC8 7F A4 EB 78 */ mr r4, r29 -/* 802DAD8C 002D7CCC 48 00 11 C1 */ bl append__10JSUPtrListFP10JSUPtrLink -/* 802DAD90 002D7CD0 48 00 00 10 */ b lbl_802DADA0 -lbl_802DAD94: -/* 802DAD94 002D7CD4 7F A3 EB 78 */ mr r3, r29 -/* 802DAD98 002D7CD8 7D 89 03 A6 */ mtctr r12 -/* 802DAD9C 002D7CDC 4E 80 04 21 */ bctrl -lbl_802DADA0: -/* 802DADA0 002D7CE0 38 7E 00 34 */ addi r3, r30, 0x34 -/* 802DADA4 002D7CE4 48 06 43 79 */ bl OSUnlockMutex -/* 802DADA8 002D7CE8 57 E0 06 3E */ clrlwi r0, r31, 0x18 -/* 802DADAC 002D7CEC 28 00 00 01 */ cmplwi r0, 1 -/* 802DADB0 002D7CF0 40 82 00 0C */ bne lbl_802DADBC -/* 802DADB4 002D7CF4 7F A3 EB 78 */ mr r3, r29 -/* 802DADB8 002D7CF8 48 00 00 08 */ b lbl_802DADC0 -lbl_802DADBC: -/* 802DADBC 002D7CFC 38 60 00 00 */ li r3, 0 -lbl_802DADC0: -/* 802DADC0 002D7D00 39 61 00 70 */ addi r11, r1, 0x70 -/* 802DADC4 002D7D04 48 08 74 55 */ bl func_80362218 -/* 802DADC8 002D7D08 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802DADCC 002D7D0C 7C 08 03 A6 */ mtlr r0 -/* 802DADD0 002D7D10 38 21 00 70 */ addi r1, r1, 0x70 -/* 802DADD4 002D7D14 4E 80 00 20 */ blr -/* 802DADD8 002D7D18 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DADDC 002D7D1C 7C 08 02 A6 */ mflr r0 -/* 802DADE0 002D7D20 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DADE4 002D7D24 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DADE8 002D7D28 93 C1 00 08 */ stw r30, 8(r1) -/* 802DADEC 002D7D2C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802DADF0 002D7D30 7C 9F 23 78 */ mr r31, r4 -/* 802DADF4 002D7D34 41 82 00 38 */ beq lbl_802DAE2C -/* 802DADF8 002D7D38 3C 80 80 3D */ lis r4, lbl_803CC518@ha -/* 802DADFC 002D7D3C 38 04 C5 18 */ addi r0, r4, lbl_803CC518@l -/* 802DAE00 002D7D40 90 1E 00 00 */ stw r0, 0(r30) -/* 802DAE04 002D7D44 41 82 00 18 */ beq lbl_802DAE1C -/* 802DAE08 002D7D48 3C 80 80 3D */ lis r4, lbl_803CC4B0@ha -/* 802DAE0C 002D7D4C 38 04 C4 B0 */ addi r0, r4, lbl_803CC4B0@l -/* 802DAE10 002D7D50 90 1E 00 00 */ stw r0, 0(r30) -/* 802DAE14 002D7D54 38 80 00 00 */ li r4, 0 -/* 802DAE18 002D7D58 48 00 14 25 */ bl JSUInputStream_NS_dtor -lbl_802DAE1C: -/* 802DAE1C 002D7D5C 7F E0 07 35 */ extsh. r0, r31 -/* 802DAE20 002D7D60 40 81 00 0C */ ble lbl_802DAE2C -/* 802DAE24 002D7D64 7F C3 F3 78 */ mr r3, r30 -/* 802DAE28 002D7D68 4B FF 3F 15 */ bl __dl__FPv -lbl_802DAE2C: -/* 802DAE2C 002D7D6C 7F C3 F3 78 */ mr r3, r30 -/* 802DAE30 002D7D70 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DAE34 002D7D74 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DAE38 002D7D78 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DAE3C 002D7D7C 7C 08 03 A6 */ mtlr r0 -/* 802DAE40 002D7D80 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DAE44 002D7D84 4E 80 00 20 */ blr - -.global JKRDvdAramRipper_NS_syncAram -JKRDvdAramRipper_NS_syncAram: -/* 802DAE48 002D7D88 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DAE4C 002D7D8C 7C 08 02 A6 */ mflr r0 -/* 802DAE50 002D7D90 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DAE54 002D7D94 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DAE58 002D7D98 48 08 73 85 */ bl _savegpr_29 -/* 802DAE5C 002D7D9C 7C 7D 1B 78 */ mr r29, r3 -/* 802DAE60 002D7DA0 7C 9E 23 78 */ mr r30, r4 -/* 802DAE64 002D7DA4 83 E3 00 28 */ lwz r31, 0x28(r3) -/* 802DAE68 002D7DA8 38 7F 00 34 */ addi r3, r31, 0x34 -/* 802DAE6C 002D7DAC 48 06 41 D5 */ bl OSLockMutex -/* 802DAE70 002D7DB0 80 7D 00 50 */ lwz r3, 0x50(r29) -/* 802DAE74 002D7DB4 28 03 00 00 */ cmplwi r3, 0 -/* 802DAE78 002D7DB8 41 82 00 38 */ beq lbl_802DAEB0 -/* 802DAE7C 002D7DBC 7F C4 F3 78 */ mr r4, r30 -/* 802DAE80 002D7DC0 4B FF 91 21 */ bl JKRAramStream_NS_sync -/* 802DAE84 002D7DC4 30 03 FF FF */ addic r0, r3, -1 -/* 802DAE88 002D7DC8 7C 00 01 10 */ subfe r0, r0, r0 -/* 802DAE8C 002D7DCC 90 1D 00 48 */ stw r0, 0x48(r29) -/* 802DAE90 002D7DD0 2C 1E 00 00 */ cmpwi r30, 0 -/* 802DAE94 002D7DD4 41 82 00 1C */ beq lbl_802DAEB0 -/* 802DAE98 002D7DD8 28 03 00 00 */ cmplwi r3, 0 -/* 802DAE9C 002D7DDC 40 82 00 14 */ bne lbl_802DAEB0 -/* 802DAEA0 002D7DE0 38 7F 00 34 */ addi r3, r31, 0x34 -/* 802DAEA4 002D7DE4 48 06 42 79 */ bl OSUnlockMutex -/* 802DAEA8 002D7DE8 38 60 00 00 */ li r3, 0 -/* 802DAEAC 002D7DEC 48 00 00 58 */ b lbl_802DAF04 -lbl_802DAEB0: -/* 802DAEB0 002D7DF0 3C 60 80 43 */ lis r3, lbl_804343B4@ha -/* 802DAEB4 002D7DF4 38 63 43 B4 */ addi r3, r3, lbl_804343B4@l -/* 802DAEB8 002D7DF8 7F A4 EB 78 */ mr r4, r29 -/* 802DAEBC 002D7DFC 48 00 12 A1 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802DAEC0 002D7E00 80 7D 00 50 */ lwz r3, 0x50(r29) -/* 802DAEC4 002D7E04 28 03 00 00 */ cmplwi r3, 0 -/* 802DAEC8 002D7E08 41 82 00 08 */ beq lbl_802DAED0 -/* 802DAECC 002D7E0C 4B FF 3E 71 */ bl __dl__FPv -lbl_802DAED0: -/* 802DAED0 002D7E10 80 7F 00 54 */ lwz r3, 0x54(r31) -/* 802DAED4 002D7E14 28 03 00 00 */ cmplwi r3, 0 -/* 802DAED8 002D7E18 41 82 00 18 */ beq lbl_802DAEF0 -/* 802DAEDC 002D7E1C 38 80 00 01 */ li r4, 1 -/* 802DAEE0 002D7E20 81 83 00 00 */ lwz r12, 0(r3) -/* 802DAEE4 002D7E24 81 8C 00 08 */ lwz r12, 8(r12) -/* 802DAEE8 002D7E28 7D 89 03 A6 */ mtctr r12 -/* 802DAEEC 002D7E2C 4E 80 04 21 */ bctrl -lbl_802DAEF0: -/* 802DAEF0 002D7E30 38 00 00 00 */ li r0, 0 -/* 802DAEF4 002D7E34 90 1F 00 50 */ stw r0, 0x50(r31) -/* 802DAEF8 002D7E38 38 7F 00 34 */ addi r3, r31, 0x34 -/* 802DAEFC 002D7E3C 48 06 42 21 */ bl OSUnlockMutex -/* 802DAF00 002D7E40 38 60 00 01 */ li r3, 1 -lbl_802DAF04: -/* 802DAF04 002D7E44 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DAF08 002D7E48 48 08 73 21 */ bl _restgpr_29 -/* 802DAF0C 002D7E4C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DAF10 002D7E50 7C 08 03 A6 */ mtlr r0 -/* 802DAF14 002D7E54 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DAF18 002D7E58 4E 80 00 20 */ blr - -.global JKRADCommand -JKRADCommand: -/* 802DAF1C 002D7E5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DAF20 002D7E60 7C 08 02 A6 */ mflr r0 -/* 802DAF24 002D7E64 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DAF28 002D7E68 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DAF2C 002D7E6C 7C 7F 1B 78 */ mr r31, r3 -/* 802DAF30 002D7E70 7F E4 FB 78 */ mr r4, r31 -/* 802DAF34 002D7E74 48 00 0E C9 */ bl __ct__10JSUPtrLinkFPv -/* 802DAF38 002D7E78 38 00 00 00 */ li r0, 0 -/* 802DAF3C 002D7E7C 90 1F 00 48 */ stw r0, 0x48(r31) -/* 802DAF40 002D7E80 98 1F 00 4C */ stb r0, 0x4c(r31) -/* 802DAF44 002D7E84 7F E3 FB 78 */ mr r3, r31 -/* 802DAF48 002D7E88 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DAF4C 002D7E8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DAF50 002D7E90 7C 08 03 A6 */ mtlr r0 -/* 802DAF54 002D7E94 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DAF58 002D7E98 4E 80 00 20 */ blr - -.global JKRADCommand_NS_dtor -JKRADCommand_NS_dtor: -/* 802DAF5C 002D7E9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DAF60 002D7EA0 7C 08 02 A6 */ mflr r0 -/* 802DAF64 002D7EA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DAF68 002D7EA8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DAF6C 002D7EAC 93 C1 00 08 */ stw r30, 8(r1) -/* 802DAF70 002D7EB0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802DAF74 002D7EB4 7C 9F 23 78 */ mr r31, r4 -/* 802DAF78 002D7EB8 41 82 00 54 */ beq lbl_802DAFCC -/* 802DAF7C 002D7EBC 88 1E 00 4C */ lbz r0, 0x4c(r30) -/* 802DAF80 002D7EC0 28 00 00 01 */ cmplwi r0, 1 -/* 802DAF84 002D7EC4 40 82 00 24 */ bne lbl_802DAFA8 -/* 802DAF88 002D7EC8 80 7E 00 28 */ lwz r3, 0x28(r30) -/* 802DAF8C 002D7ECC 28 03 00 00 */ cmplwi r3, 0 -/* 802DAF90 002D7ED0 41 82 00 18 */ beq lbl_802DAFA8 -/* 802DAF94 002D7ED4 38 80 00 01 */ li r4, 1 -/* 802DAF98 002D7ED8 81 83 00 00 */ lwz r12, 0(r3) -/* 802DAF9C 002D7EDC 81 8C 00 08 */ lwz r12, 8(r12) -/* 802DAFA0 002D7EE0 7D 89 03 A6 */ mtctr r12 -/* 802DAFA4 002D7EE4 4E 80 04 21 */ bctrl -lbl_802DAFA8: -/* 802DAFA8 002D7EE8 28 1E 00 00 */ cmplwi r30, 0 -/* 802DAFAC 002D7EEC 41 82 00 10 */ beq lbl_802DAFBC -/* 802DAFB0 002D7EF0 7F C3 F3 78 */ mr r3, r30 -/* 802DAFB4 002D7EF4 38 80 00 00 */ li r4, 0 -/* 802DAFB8 002D7EF8 48 00 0E 5D */ bl __dt__10JSUPtrLinkFv -lbl_802DAFBC: -/* 802DAFBC 002D7EFC 7F E0 07 35 */ extsh. r0, r31 -/* 802DAFC0 002D7F00 40 81 00 0C */ ble lbl_802DAFCC -/* 802DAFC4 002D7F04 7F C3 F3 78 */ mr r3, r30 -/* 802DAFC8 002D7F08 4B FF 3D 75 */ bl __dl__FPv -lbl_802DAFCC: -/* 802DAFCC 002D7F0C 7F C3 F3 78 */ mr r3, r30 -/* 802DAFD0 002D7F10 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DAFD4 002D7F14 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DAFD8 002D7F18 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DAFDC 002D7F1C 7C 08 03 A6 */ mtlr r0 -/* 802DAFE0 002D7F20 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DAFE4 002D7F24 4E 80 00 20 */ blr - -.global JKRDecompressFromDVDToAram -JKRDecompressFromDVDToAram: -/* 802DAFE8 002D7F28 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802DAFEC 002D7F2C 7C 08 02 A6 */ mflr r0 -/* 802DAFF0 002D7F30 90 01 00 34 */ stw r0, 0x34(r1) -/* 802DAFF4 002D7F34 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DAFF8 002D7F38 48 08 71 D1 */ bl func_803621C8 -/* 802DAFFC 002D7F3C 7C 79 1B 78 */ mr r25, r3 -/* 802DB000 002D7F40 7C 9A 23 78 */ mr r26, r4 -/* 802DB004 002D7F44 7C BB 2B 78 */ mr r27, r5 -/* 802DB008 002D7F48 7C DC 33 78 */ mr r28, r6 -/* 802DB00C 002D7F4C 7C FD 3B 78 */ mr r29, r7 -/* 802DB010 002D7F50 7D 1E 43 78 */ mr r30, r8 -/* 802DB014 002D7F54 7D 3F 4B 78 */ mr r31, r9 -/* 802DB018 002D7F58 48 06 26 DD */ bl __RAS_OSDisableInterrupts_begin -/* 802DB01C 002D7F5C 7C 78 1B 78 */ mr r24, r3 -/* 802DB020 002D7F60 88 0D 8F 24 */ lbz r0, lbl_804514A4-_SDA_BASE_(r13) -/* 802DB024 002D7F64 28 00 00 00 */ cmplwi r0, 0 -/* 802DB028 002D7F68 40 82 00 18 */ bne lbl_802DB040 -/* 802DB02C 002D7F6C 3C 60 80 43 */ lis r3, lbl_804343C0@ha -/* 802DB030 002D7F70 38 63 43 C0 */ addi r3, r3, lbl_804343C0@l -/* 802DB034 002D7F74 48 06 3F D5 */ bl OSInitMutex -/* 802DB038 002D7F78 38 00 00 01 */ li r0, 1 -/* 802DB03C 002D7F7C 98 0D 8F 24 */ stb r0, lbl_804514A4-_SDA_BASE_(r13) -lbl_802DB040: -/* 802DB040 002D7F80 7F 03 C3 78 */ mr r3, r24 -/* 802DB044 002D7F84 48 06 26 D9 */ bl OSRestoreInterrupts -/* 802DB048 002D7F88 3C 60 80 43 */ lis r3, lbl_804343C0@ha -/* 802DB04C 002D7F8C 38 63 43 C0 */ addi r3, r3, lbl_804343C0@l -/* 802DB050 002D7F90 48 06 3F F1 */ bl OSLockMutex -/* 802DB054 002D7F94 83 0D 83 54 */ lwz r24, lbl_804508D4-_SDA_BASE_(r13) -/* 802DB058 002D7F98 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802DB05C 002D7F9C 7F 04 C3 78 */ mr r4, r24 -/* 802DB060 002D7FA0 38 A0 00 20 */ li r5, 0x20 -/* 802DB064 002D7FA4 4B FF 34 71 */ bl alloc__7JKRHeapFUli -/* 802DB068 002D7FA8 90 6D 8E E8 */ stw r3, lbl_80451468-_SDA_BASE_(r13) -/* 802DB06C 002D7FAC 7C 03 C2 14 */ add r0, r3, r24 -/* 802DB070 002D7FB0 90 0D 8E EC */ stw r0, lbl_8045146C-_SDA_BASE_(r13) -/* 802DB074 002D7FB4 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802DB078 002D7FB8 38 80 11 20 */ li r4, 0x1120 -/* 802DB07C 002D7FBC 38 A0 00 00 */ li r5, 0 -/* 802DB080 002D7FC0 4B FF 34 55 */ bl alloc__7JKRHeapFUli -/* 802DB084 002D7FC4 90 6D 8E F0 */ stw r3, lbl_80451470-_SDA_BASE_(r13) -/* 802DB088 002D7FC8 38 03 11 20 */ addi r0, r3, 0x1120 -/* 802DB08C 002D7FCC 90 0D 8E F4 */ stw r0, lbl_80451474-_SDA_BASE_(r13) -/* 802DB090 002D7FD0 90 6D 8E F8 */ stw r3, lbl_80451478-_SDA_BASE_(r13) -/* 802DB094 002D7FD4 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802DB098 002D7FD8 38 80 01 00 */ li r4, 0x100 -/* 802DB09C 002D7FDC 38 A0 00 20 */ li r5, 0x20 -/* 802DB0A0 002D7FE0 4B FF 34 35 */ bl alloc__7JKRHeapFUli -/* 802DB0A4 002D7FE4 90 6D 8E FC */ stw r3, lbl_8045147C-_SDA_BASE_(r13) -/* 802DB0A8 002D7FE8 38 03 01 00 */ addi r0, r3, 0x100 -/* 802DB0AC 002D7FEC 90 0D 8F 00 */ stw r0, lbl_80451480-_SDA_BASE_(r13) -/* 802DB0B0 002D7FF0 90 6D 8F 04 */ stw r3, lbl_80451484-_SDA_BASE_(r13) -/* 802DB0B4 002D7FF4 93 2D 8F 14 */ stw r25, lbl_80451494-_SDA_BASE_(r13) -/* 802DB0B8 002D7FF8 93 CD 8F 08 */ stw r30, lbl_80451488-_SDA_BASE_(r13) -/* 802DB0BC 002D7FFC 7C 1E D8 50 */ subf r0, r30, r27 -/* 802DB0C0 002D8000 90 0D 8F 0C */ stw r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB0C4 002D8004 93 AD 8F 18 */ stw r29, lbl_80451498-_SDA_BASE_(r13) -/* 802DB0C8 002D8008 38 00 00 00 */ li r0, 0 -/* 802DB0CC 002D800C 90 0D 8F 1C */ stw r0, lbl_8045149C-_SDA_BASE_(r13) -/* 802DB0D0 002D8010 93 8D 8F 20 */ stw r28, lbl_804514A0-_SDA_BASE_(r13) -/* 802DB0D4 002D8014 28 1F 00 00 */ cmplwi r31, 0 -/* 802DB0D8 002D8018 41 82 00 0C */ beq lbl_802DB0E4 -/* 802DB0DC 002D801C 7F E3 FB 78 */ mr r3, r31 -/* 802DB0E0 002D8020 48 00 00 08 */ b lbl_802DB0E8 -lbl_802DB0E4: -/* 802DB0E4 002D8024 38 6D 8F 2C */ addi r3, r13, lbl_804514AC-_SDA_BASE_ -lbl_802DB0E8: -/* 802DB0E8 002D8028 90 6D 8F 28 */ stw r3, lbl_804514A8-_SDA_BASE_(r13) -/* 802DB0EC 002D802C 38 00 00 00 */ li r0, 0 -/* 802DB0F0 002D8030 90 03 00 00 */ stw r0, 0(r3) -/* 802DB0F4 002D8034 48 00 02 F5 */ bl firstSrcData_X2_ -/* 802DB0F8 002D8038 28 03 00 00 */ cmplwi r3, 0 -/* 802DB0FC 002D803C 41 82 00 14 */ beq lbl_802DB110 -/* 802DB100 002D8040 7F 44 D3 78 */ mr r4, r26 -/* 802DB104 002D8044 48 00 00 5D */ bl decompSZS_subroutine_X2_ -/* 802DB108 002D8048 7C 79 1B 78 */ mr r25, r3 -/* 802DB10C 002D804C 48 00 00 08 */ b lbl_802DB114 -lbl_802DB110: -/* 802DB110 002D8050 3B 20 FF FF */ li r25, -1 -lbl_802DB114: -/* 802DB114 002D8054 80 6D 8E E8 */ lwz r3, lbl_80451468-_SDA_BASE_(r13) -/* 802DB118 002D8058 38 80 00 00 */ li r4, 0 -/* 802DB11C 002D805C 4B FF 33 E5 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802DB120 002D8060 80 6D 8E F0 */ lwz r3, lbl_80451470-_SDA_BASE_(r13) -/* 802DB124 002D8064 38 80 00 00 */ li r4, 0 -/* 802DB128 002D8068 4B FF 33 D9 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802DB12C 002D806C 80 6D 8E FC */ lwz r3, lbl_8045147C-_SDA_BASE_(r13) -/* 802DB130 002D8070 38 80 00 00 */ li r4, 0 -/* 802DB134 002D8074 4B FF 33 CD */ bl free__7JKRHeapFPvP7JKRHeap -/* 802DB138 002D8078 3C 60 80 43 */ lis r3, lbl_804343C0@ha -/* 802DB13C 002D807C 38 63 43 C0 */ addi r3, r3, lbl_804343C0@l -/* 802DB140 002D8080 48 06 3F DD */ bl OSUnlockMutex -/* 802DB144 002D8084 7F 23 CB 78 */ mr r3, r25 -/* 802DB148 002D8088 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DB14C 002D808C 48 08 70 C9 */ bl func_80362214 -/* 802DB150 002D8090 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802DB154 002D8094 7C 08 03 A6 */ mtlr r0 -/* 802DB158 002D8098 38 21 00 30 */ addi r1, r1, 0x30 -/* 802DB15C 002D809C 4E 80 00 20 */ blr - -.global decompSZS_subroutine_X2_ -decompSZS_subroutine_X2_: -/* 802DB160 002D80A0 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802DB164 002D80A4 7C 08 02 A6 */ mflr r0 -/* 802DB168 002D80A8 90 01 00 34 */ stw r0, 0x34(r1) -/* 802DB16C 002D80AC 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DB170 002D80B0 48 08 70 55 */ bl func_803621C4 -/* 802DB174 002D80B4 7C 98 23 78 */ mr r24, r4 -/* 802DB178 002D80B8 3B A0 00 00 */ li r29, 0 -/* 802DB17C 002D80BC 3B 80 00 00 */ li r28, 0 -/* 802DB180 002D80C0 3B 40 00 00 */ li r26, 0 -/* 802DB184 002D80C4 7F 19 C3 78 */ mr r25, r24 -/* 802DB188 002D80C8 88 03 00 00 */ lbz r0, 0(r3) -/* 802DB18C 002D80CC 2C 00 00 59 */ cmpwi r0, 0x59 -/* 802DB190 002D80D0 40 82 00 28 */ bne lbl_802DB1B8 -/* 802DB194 002D80D4 88 03 00 01 */ lbz r0, 1(r3) -/* 802DB198 002D80D8 2C 00 00 61 */ cmpwi r0, 0x61 -/* 802DB19C 002D80DC 40 82 00 1C */ bne lbl_802DB1B8 -/* 802DB1A0 002D80E0 88 03 00 02 */ lbz r0, 2(r3) -/* 802DB1A4 002D80E4 2C 00 00 7A */ cmpwi r0, 0x7a -/* 802DB1A8 002D80E8 40 82 00 10 */ bne lbl_802DB1B8 -/* 802DB1AC 002D80EC 88 03 00 03 */ lbz r0, 3(r3) -/* 802DB1B0 002D80F0 2C 00 00 30 */ cmpwi r0, 0x30 -/* 802DB1B4 002D80F4 41 82 00 0C */ beq lbl_802DB1C0 -lbl_802DB1B8: -/* 802DB1B8 002D80F8 38 60 FF FF */ li r3, -1 -/* 802DB1BC 002D80FC 48 00 02 14 */ b lbl_802DB3D0 -lbl_802DB1C0: -/* 802DB1C0 002D8100 80 8D 8F 18 */ lwz r4, lbl_80451498-_SDA_BASE_(r13) -/* 802DB1C4 002D8104 80 03 00 04 */ lwz r0, 4(r3) -/* 802DB1C8 002D8108 7C 04 00 50 */ subf r0, r4, r0 -/* 802DB1CC 002D810C 7F F8 02 14 */ add r31, r24, r0 -/* 802DB1D0 002D8110 80 0D 8F 20 */ lwz r0, lbl_804514A0-_SDA_BASE_(r13) -/* 802DB1D4 002D8114 7C 18 02 14 */ add r0, r24, r0 -/* 802DB1D8 002D8118 7C 1F 00 40 */ cmplw r31, r0 -/* 802DB1DC 002D811C 40 81 00 08 */ ble lbl_802DB1E4 -/* 802DB1E0 002D8120 7C 1F 03 78 */ mr r31, r0 -lbl_802DB1E4: -/* 802DB1E4 002D8124 3A E3 00 10 */ addi r23, r3, 0x10 -lbl_802DB1E8: -/* 802DB1E8 002D8128 2C 1D 00 00 */ cmpwi r29, 0 -/* 802DB1EC 002D812C 40 82 00 34 */ bne lbl_802DB220 -/* 802DB1F0 002D8130 80 0D 8F 10 */ lwz r0, lbl_80451490-_SDA_BASE_(r13) -/* 802DB1F4 002D8134 7C 17 00 40 */ cmplw r23, r0 -/* 802DB1F8 002D8138 40 81 00 1C */ ble lbl_802DB214 -/* 802DB1FC 002D813C 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB200 002D8140 28 00 00 00 */ cmplwi r0, 0 -/* 802DB204 002D8144 41 82 00 10 */ beq lbl_802DB214 -/* 802DB208 002D8148 7E E3 BB 78 */ mr r3, r23 -/* 802DB20C 002D814C 48 00 02 91 */ bl nextSrcData_X2_ -/* 802DB210 002D8150 7C 77 1B 78 */ mr r23, r3 -lbl_802DB214: -/* 802DB214 002D8154 8B 97 00 00 */ lbz r28, 0(r23) -/* 802DB218 002D8158 3B A0 00 08 */ li r29, 8 -/* 802DB21C 002D815C 3A F7 00 01 */ addi r23, r23, 1 -lbl_802DB220: -/* 802DB220 002D8160 57 80 06 31 */ rlwinm. r0, r28, 0, 0x18, 0x18 -/* 802DB224 002D8164 41 82 00 94 */ beq lbl_802DB2B8 -/* 802DB228 002D8168 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) -/* 802DB22C 002D816C 80 0D 8F 18 */ lwz r0, lbl_80451498-_SDA_BASE_(r13) -/* 802DB230 002D8170 7C 03 00 40 */ cmplw r3, r0 -/* 802DB234 002D8174 41 80 00 44 */ blt lbl_802DB278 -/* 802DB238 002D8178 88 97 00 00 */ lbz r4, 0(r23) -/* 802DB23C 002D817C 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) -/* 802DB240 002D8180 38 03 00 01 */ addi r0, r3, 1 -/* 802DB244 002D8184 90 0D 8F 04 */ stw r0, lbl_80451484-_SDA_BASE_(r13) -/* 802DB248 002D8188 98 83 00 00 */ stb r4, 0(r3) -/* 802DB24C 002D818C 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) -/* 802DB250 002D8190 80 0D 8F 00 */ lwz r0, lbl_80451480-_SDA_BASE_(r13) -/* 802DB254 002D8194 7C 03 00 40 */ cmplw r3, r0 -/* 802DB258 002D8198 3B 18 00 01 */ addi r24, r24, 1 -/* 802DB25C 002D819C 3B 5A 00 01 */ addi r26, r26, 1 -/* 802DB260 002D81A0 40 82 00 10 */ bne lbl_802DB270 -/* 802DB264 002D81A4 7F 23 CB 78 */ mr r3, r25 -/* 802DB268 002D81A8 48 00 03 19 */ bl dmaBufferFlush -/* 802DB26C 002D81AC 7F 39 1A 14 */ add r25, r25, r3 -lbl_802DB270: -/* 802DB270 002D81B0 7C 18 F8 40 */ cmplw r24, r31 -/* 802DB274 002D81B4 41 82 01 48 */ beq lbl_802DB3BC -lbl_802DB278: -/* 802DB278 002D81B8 88 97 00 00 */ lbz r4, 0(r23) -/* 802DB27C 002D81BC 80 6D 8E F8 */ lwz r3, lbl_80451478-_SDA_BASE_(r13) -/* 802DB280 002D81C0 38 03 00 01 */ addi r0, r3, 1 -/* 802DB284 002D81C4 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) -/* 802DB288 002D81C8 98 83 00 00 */ stb r4, 0(r3) -/* 802DB28C 002D81CC 80 6D 8E F8 */ lwz r3, lbl_80451478-_SDA_BASE_(r13) -/* 802DB290 002D81D0 80 0D 8E F4 */ lwz r0, lbl_80451474-_SDA_BASE_(r13) -/* 802DB294 002D81D4 7C 03 00 40 */ cmplw r3, r0 -/* 802DB298 002D81D8 40 82 00 0C */ bne lbl_802DB2A4 -/* 802DB29C 002D81DC 80 0D 8E F0 */ lwz r0, lbl_80451470-_SDA_BASE_(r13) -/* 802DB2A0 002D81E0 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) -lbl_802DB2A4: -/* 802DB2A4 002D81E4 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) -/* 802DB2A8 002D81E8 38 03 00 01 */ addi r0, r3, 1 -/* 802DB2AC 002D81EC 90 0D 8F 1C */ stw r0, lbl_8045149C-_SDA_BASE_(r13) -/* 802DB2B0 002D81F0 3A F7 00 01 */ addi r23, r23, 1 -/* 802DB2B4 002D81F4 48 00 00 F8 */ b lbl_802DB3AC -lbl_802DB2B8: -/* 802DB2B8 002D81F8 88 77 00 00 */ lbz r3, 0(r23) -/* 802DB2BC 002D81FC 88 97 00 01 */ lbz r4, 1(r23) -/* 802DB2C0 002D8200 50 64 45 2E */ rlwimi r4, r3, 8, 0x14, 0x17 -/* 802DB2C4 002D8204 7C 7B 26 70 */ srawi r27, r3, 4 -/* 802DB2C8 002D8208 80 0D 8E F8 */ lwz r0, lbl_80451478-_SDA_BASE_(r13) -/* 802DB2CC 002D820C 7C 64 00 50 */ subf r3, r4, r0 -/* 802DB2D0 002D8210 3B C3 FF FF */ addi r30, r3, -1 -/* 802DB2D4 002D8214 80 6D 8E F0 */ lwz r3, lbl_80451470-_SDA_BASE_(r13) -/* 802DB2D8 002D8218 7C 1E 18 40 */ cmplw r30, r3 -/* 802DB2DC 002D821C 3A F7 00 02 */ addi r23, r23, 2 -/* 802DB2E0 002D8220 40 80 00 10 */ bge lbl_802DB2F0 -/* 802DB2E4 002D8224 80 0D 8E F4 */ lwz r0, lbl_80451474-_SDA_BASE_(r13) -/* 802DB2E8 002D8228 7C 03 00 50 */ subf r0, r3, r0 -/* 802DB2EC 002D822C 7F DE 02 14 */ add r30, r30, r0 -lbl_802DB2F0: -/* 802DB2F0 002D8230 2C 1B 00 00 */ cmpwi r27, 0 -/* 802DB2F4 002D8234 40 82 00 14 */ bne lbl_802DB308 -/* 802DB2F8 002D8238 88 77 00 00 */ lbz r3, 0(r23) -/* 802DB2FC 002D823C 3B 63 00 12 */ addi r27, r3, 0x12 -/* 802DB300 002D8240 3A F7 00 01 */ addi r23, r23, 1 -/* 802DB304 002D8244 48 00 00 08 */ b lbl_802DB30C -lbl_802DB308: -/* 802DB308 002D8248 3B 7B 00 02 */ addi r27, r27, 2 -lbl_802DB30C: -/* 802DB30C 002D824C 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) -/* 802DB310 002D8250 80 0D 8F 18 */ lwz r0, lbl_80451498-_SDA_BASE_(r13) -/* 802DB314 002D8254 7C 03 00 40 */ cmplw r3, r0 -/* 802DB318 002D8258 41 80 00 44 */ blt lbl_802DB35C -/* 802DB31C 002D825C 88 9E 00 00 */ lbz r4, 0(r30) -/* 802DB320 002D8260 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) -/* 802DB324 002D8264 38 03 00 01 */ addi r0, r3, 1 -/* 802DB328 002D8268 90 0D 8F 04 */ stw r0, lbl_80451484-_SDA_BASE_(r13) -/* 802DB32C 002D826C 98 83 00 00 */ stb r4, 0(r3) -/* 802DB330 002D8270 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) -/* 802DB334 002D8274 80 0D 8F 00 */ lwz r0, lbl_80451480-_SDA_BASE_(r13) -/* 802DB338 002D8278 7C 03 00 40 */ cmplw r3, r0 -/* 802DB33C 002D827C 3B 18 00 01 */ addi r24, r24, 1 -/* 802DB340 002D8280 3B 5A 00 01 */ addi r26, r26, 1 -/* 802DB344 002D8284 40 82 00 10 */ bne lbl_802DB354 -/* 802DB348 002D8288 7F 23 CB 78 */ mr r3, r25 -/* 802DB34C 002D828C 48 00 02 35 */ bl dmaBufferFlush -/* 802DB350 002D8290 7F 39 1A 14 */ add r25, r25, r3 -lbl_802DB354: -/* 802DB354 002D8294 7C 18 F8 40 */ cmplw r24, r31 -/* 802DB358 002D8298 41 82 00 54 */ beq lbl_802DB3AC -lbl_802DB35C: -/* 802DB35C 002D829C 88 9E 00 00 */ lbz r4, 0(r30) -/* 802DB360 002D82A0 80 6D 8E F8 */ lwz r3, lbl_80451478-_SDA_BASE_(r13) -/* 802DB364 002D82A4 38 03 00 01 */ addi r0, r3, 1 -/* 802DB368 002D82A8 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) -/* 802DB36C 002D82AC 98 83 00 00 */ stb r4, 0(r3) -/* 802DB370 002D82B0 80 0D 8E F8 */ lwz r0, lbl_80451478-_SDA_BASE_(r13) -/* 802DB374 002D82B4 80 6D 8E F4 */ lwz r3, lbl_80451474-_SDA_BASE_(r13) -/* 802DB378 002D82B8 7C 00 18 40 */ cmplw r0, r3 -/* 802DB37C 002D82BC 40 82 00 0C */ bne lbl_802DB388 -/* 802DB380 002D82C0 80 0D 8E F0 */ lwz r0, lbl_80451470-_SDA_BASE_(r13) -/* 802DB384 002D82C4 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) -lbl_802DB388: -/* 802DB388 002D82C8 3B DE 00 01 */ addi r30, r30, 1 -/* 802DB38C 002D82CC 7C 1E 18 40 */ cmplw r30, r3 -/* 802DB390 002D82D0 40 82 00 08 */ bne lbl_802DB398 -/* 802DB394 002D82D4 83 CD 8E F0 */ lwz r30, lbl_80451470-_SDA_BASE_(r13) -lbl_802DB398: -/* 802DB398 002D82D8 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) -/* 802DB39C 002D82DC 38 03 00 01 */ addi r0, r3, 1 -/* 802DB3A0 002D82E0 90 0D 8F 1C */ stw r0, lbl_8045149C-_SDA_BASE_(r13) -/* 802DB3A4 002D82E4 37 7B FF FF */ addic. r27, r27, -1 -/* 802DB3A8 002D82E8 40 82 FF 64 */ bne lbl_802DB30C -lbl_802DB3AC: -/* 802DB3AC 002D82EC 57 9C 08 3C */ slwi r28, r28, 1 -/* 802DB3B0 002D82F0 7C 18 F8 40 */ cmplw r24, r31 -/* 802DB3B4 002D82F4 3B BD FF FF */ addi r29, r29, -1 -/* 802DB3B8 002D82F8 41 80 FE 30 */ blt lbl_802DB1E8 -lbl_802DB3BC: -/* 802DB3BC 002D82FC 7F 23 CB 78 */ mr r3, r25 -/* 802DB3C0 002D8300 48 00 01 C1 */ bl dmaBufferFlush -/* 802DB3C4 002D8304 80 6D 8F 28 */ lwz r3, lbl_804514A8-_SDA_BASE_(r13) -/* 802DB3C8 002D8308 93 43 00 00 */ stw r26, 0(r3) -/* 802DB3CC 002D830C 38 60 00 00 */ li r3, 0 -lbl_802DB3D0: -/* 802DB3D0 002D8310 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DB3D4 002D8314 48 08 6E 3D */ bl func_80362210 -/* 802DB3D8 002D8318 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802DB3DC 002D831C 7C 08 03 A6 */ mtlr r0 -/* 802DB3E0 002D8320 38 21 00 30 */ addi r1, r1, 0x30 -/* 802DB3E4 002D8324 4E 80 00 20 */ blr - -.global firstSrcData_X2_ -firstSrcData_X2_: -/* 802DB3E8 002D8328 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB3EC 002D832C 7C 08 02 A6 */ mflr r0 -/* 802DB3F0 002D8330 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB3F4 002D8334 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB3F8 002D8338 93 C1 00 08 */ stw r30, 8(r1) -/* 802DB3FC 002D833C 80 6D 8E EC */ lwz r3, lbl_8045146C-_SDA_BASE_(r13) -/* 802DB400 002D8340 38 03 FF E7 */ addi r0, r3, -25 -/* 802DB404 002D8344 90 0D 8F 10 */ stw r0, lbl_80451490-_SDA_BASE_(r13) -/* 802DB408 002D8348 80 0D 8E E8 */ lwz r0, lbl_80451468-_SDA_BASE_(r13) -/* 802DB40C 002D834C 7C 1E 03 78 */ mr r30, r0 -/* 802DB410 002D8350 7C 60 18 50 */ subf r3, r0, r3 -/* 802DB414 002D8354 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB418 002D8358 7C 00 18 40 */ cmplw r0, r3 -/* 802DB41C 002D835C 7C 7F 1B 78 */ mr r31, r3 -/* 802DB420 002D8360 40 80 00 08 */ bge lbl_802DB428 -/* 802DB424 002D8364 7C 1F 03 78 */ mr r31, r0 -lbl_802DB428: -/* 802DB428 002D8368 80 6D 8F 14 */ lwz r3, lbl_80451494-_SDA_BASE_(r13) -/* 802DB42C 002D836C 38 63 00 5C */ addi r3, r3, 0x5c -/* 802DB430 002D8370 7F C4 F3 78 */ mr r4, r30 -/* 802DB434 002D8374 7F E5 FB 78 */ mr r5, r31 -/* 802DB438 002D8378 38 C0 00 00 */ li r6, 0 -/* 802DB43C 002D837C 38 E0 00 02 */ li r7, 2 -/* 802DB440 002D8380 48 06 DA 05 */ bl DVDReadPrio -/* 802DB444 002D8384 2C 03 00 00 */ cmpwi r3, 0 -/* 802DB448 002D8388 40 80 00 20 */ bge lbl_802DB468 -/* 802DB44C 002D838C 88 0D 83 50 */ lbz r0, lbl_804508D0-_SDA_BASE_(r13) -/* 802DB450 002D8390 28 00 00 00 */ cmplwi r0, 0 -/* 802DB454 002D8394 40 82 00 0C */ bne lbl_802DB460 -/* 802DB458 002D8398 38 60 00 00 */ li r3, 0 -/* 802DB45C 002D839C 48 00 00 28 */ b lbl_802DB484 -lbl_802DB460: -/* 802DB460 002D83A0 48 07 15 65 */ bl VIWaitForRetrace -/* 802DB464 002D83A4 4B FF FF C4 */ b lbl_802DB428 -lbl_802DB468: -/* 802DB468 002D83A8 80 0D 8F 08 */ lwz r0, lbl_80451488-_SDA_BASE_(r13) -/* 802DB46C 002D83AC 7C 00 FA 14 */ add r0, r0, r31 -/* 802DB470 002D83B0 90 0D 8F 08 */ stw r0, lbl_80451488-_SDA_BASE_(r13) -/* 802DB474 002D83B4 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB478 002D83B8 7C 1F 00 50 */ subf r0, r31, r0 -/* 802DB47C 002D83BC 90 0D 8F 0C */ stw r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB480 002D83C0 7F C3 F3 78 */ mr r3, r30 -lbl_802DB484: -/* 802DB484 002D83C4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB488 002D83C8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DB48C 002D83CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB490 002D83D0 7C 08 03 A6 */ mtlr r0 -/* 802DB494 002D83D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB498 002D83D8 4E 80 00 20 */ blr - -.global nextSrcData_X2_ -nextSrcData_X2_: -/* 802DB49C 002D83DC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DB4A0 002D83E0 7C 08 02 A6 */ mflr r0 -/* 802DB4A4 002D83E4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DB4A8 002D83E8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB4AC 002D83EC 48 08 6D 31 */ bl _savegpr_29 -/* 802DB4B0 002D83F0 7C 64 1B 78 */ mr r4, r3 -/* 802DB4B4 002D83F4 80 0D 8E EC */ lwz r0, lbl_8045146C-_SDA_BASE_(r13) -/* 802DB4B8 002D83F8 7F C4 00 50 */ subf r30, r4, r0 -/* 802DB4BC 002D83FC 57 C5 06 FF */ clrlwi. r5, r30, 0x1b -/* 802DB4C0 002D8400 41 82 00 14 */ beq lbl_802DB4D4 -/* 802DB4C4 002D8404 80 6D 8E E8 */ lwz r3, lbl_80451468-_SDA_BASE_(r13) -/* 802DB4C8 002D8408 38 03 00 20 */ addi r0, r3, 0x20 -/* 802DB4CC 002D840C 7F A5 00 50 */ subf r29, r5, r0 -/* 802DB4D0 002D8410 48 00 00 08 */ b lbl_802DB4D8 -lbl_802DB4D4: -/* 802DB4D4 002D8414 83 AD 8E E8 */ lwz r29, lbl_80451468-_SDA_BASE_(r13) -lbl_802DB4D8: -/* 802DB4D8 002D8418 7F A3 EB 78 */ mr r3, r29 -/* 802DB4DC 002D841C 7F C5 F3 78 */ mr r5, r30 -/* 802DB4E0 002D8420 4B D2 80 61 */ bl func_80003540 -/* 802DB4E4 002D8424 7F DD F2 14 */ add r30, r29, r30 -/* 802DB4E8 002D8428 80 0D 8E EC */ lwz r0, lbl_8045146C-_SDA_BASE_(r13) -/* 802DB4EC 002D842C 7F FE 00 50 */ subf r31, r30, r0 -/* 802DB4F0 002D8430 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB4F4 002D8434 7C 1F 00 40 */ cmplw r31, r0 -/* 802DB4F8 002D8438 40 81 00 08 */ ble lbl_802DB500 -/* 802DB4FC 002D843C 7C 1F 03 78 */ mr r31, r0 -lbl_802DB500: -/* 802DB500 002D8440 80 6D 8F 14 */ lwz r3, lbl_80451494-_SDA_BASE_(r13) -/* 802DB504 002D8444 38 63 00 5C */ addi r3, r3, 0x5c -/* 802DB508 002D8448 7F C4 F3 78 */ mr r4, r30 -/* 802DB50C 002D844C 7F E5 FB 78 */ mr r5, r31 -/* 802DB510 002D8450 80 CD 8F 08 */ lwz r6, lbl_80451488-_SDA_BASE_(r13) -/* 802DB514 002D8454 38 E0 00 02 */ li r7, 2 -/* 802DB518 002D8458 48 06 D9 2D */ bl DVDReadPrio -/* 802DB51C 002D845C 2C 03 00 00 */ cmpwi r3, 0 -/* 802DB520 002D8460 40 80 00 20 */ bge lbl_802DB540 -/* 802DB524 002D8464 88 0D 83 50 */ lbz r0, lbl_804508D0-_SDA_BASE_(r13) -/* 802DB528 002D8468 28 00 00 00 */ cmplwi r0, 0 -/* 802DB52C 002D846C 40 82 00 0C */ bne lbl_802DB538 -/* 802DB530 002D8470 38 60 00 00 */ li r3, 0 -/* 802DB534 002D8474 48 00 00 34 */ b lbl_802DB568 -lbl_802DB538: -/* 802DB538 002D8478 48 07 14 8D */ bl VIWaitForRetrace -/* 802DB53C 002D847C 4B FF FF C4 */ b lbl_802DB500 -lbl_802DB540: -/* 802DB540 002D8480 80 0D 8F 08 */ lwz r0, lbl_80451488-_SDA_BASE_(r13) -/* 802DB544 002D8484 7C 00 FA 14 */ add r0, r0, r31 -/* 802DB548 002D8488 90 0D 8F 08 */ stw r0, lbl_80451488-_SDA_BASE_(r13) -/* 802DB54C 002D848C 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB550 002D8490 7C 1F 00 51 */ subf. r0, r31, r0 -/* 802DB554 002D8494 90 0D 8F 0C */ stw r0, lbl_8045148C-_SDA_BASE_(r13) -/* 802DB558 002D8498 40 82 00 0C */ bne lbl_802DB564 -/* 802DB55C 002D849C 7C 1E FA 14 */ add r0, r30, r31 -/* 802DB560 002D84A0 90 0D 8F 10 */ stw r0, lbl_80451490-_SDA_BASE_(r13) -lbl_802DB564: -/* 802DB564 002D84A4 7F A3 EB 78 */ mr r3, r29 -lbl_802DB568: -/* 802DB568 002D84A8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DB56C 002D84AC 48 08 6C BD */ bl _restgpr_29 -/* 802DB570 002D84B0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DB574 002D84B4 7C 08 03 A6 */ mtlr r0 -/* 802DB578 002D84B8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DB57C 002D84BC 4E 80 00 20 */ blr - -.global dmaBufferFlush -dmaBufferFlush: -/* 802DB580 002D84C0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DB584 002D84C4 7C 08 02 A6 */ mflr r0 -/* 802DB588 002D84C8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DB58C 002D84CC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DB590 002D84D0 7C 65 1B 78 */ mr r5, r3 -/* 802DB594 002D84D4 80 0D 8F 04 */ lwz r0, lbl_80451484-_SDA_BASE_(r13) -/* 802DB598 002D84D8 80 8D 8E FC */ lwz r4, lbl_8045147C-_SDA_BASE_(r13) -/* 802DB59C 002D84DC 7C 00 20 40 */ cmplw r0, r4 -/* 802DB5A0 002D84E0 40 82 00 0C */ bne lbl_802DB5AC -/* 802DB5A4 002D84E4 38 60 00 00 */ li r3, 0 -/* 802DB5A8 002D84E8 48 00 00 2C */ b lbl_802DB5D4 -lbl_802DB5AC: -/* 802DB5AC 002D84EC 7C 64 00 50 */ subf r3, r4, r0 -/* 802DB5B0 002D84F0 38 03 00 1F */ addi r0, r3, 0x1f -/* 802DB5B4 002D84F4 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a -/* 802DB5B8 002D84F8 38 60 00 00 */ li r3, 0 -/* 802DB5BC 002D84FC 7F E6 FB 78 */ mr r6, r31 -/* 802DB5C0 002D8500 38 E0 00 00 */ li r7, 0 -/* 802DB5C4 002D8504 4B FF 82 75 */ bl JKRAramPiece_NS_orderSync -/* 802DB5C8 002D8508 80 0D 8E FC */ lwz r0, lbl_8045147C-_SDA_BASE_(r13) -/* 802DB5CC 002D850C 90 0D 8F 04 */ stw r0, lbl_80451484-_SDA_BASE_(r13) -/* 802DB5D0 002D8510 7F E3 FB 78 */ mr r3, r31 -lbl_802DB5D4: -/* 802DB5D4 002D8514 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DB5D8 002D8518 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DB5DC 002D851C 7C 08 03 A6 */ mtlr r0 -/* 802DB5E0 002D8520 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DB5E4 002D8524 4E 80 00 20 */ blr +.global __sinit_JKRDvdAramRipper_cpp +__sinit_JKRDvdAramRipper_cpp: /* 802DB5E8 002D8528 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802DB5EC 002D852C 7C 08 02 A6 */ mflr r0 /* 802DB5F0 002D8530 90 01 00 14 */ stw r0, 0x14(r1) @@ -998,6 +23,7 @@ lbl_802DB5D4: /* 802DB620 002D8560 7C 08 03 A6 */ mtlr r0 /* 802DB624 002D8564 38 21 00 10 */ addi r1, r1, 0x10 /* 802DB628 002D8568 4E 80 00 20 */ blr + .global JSUList_NS_dtor_X9_ JSUList_NS_dtor_X9_: /* 802DB62C 002D856C 94 21 FF F0 */ stwu r1, -0x10(r1) diff --git a/asm/JKernel/JKRDvdArchive.s b/asm/JKernel/JKRDvdArchive.s deleted file mode 100644 index 2fbee2de7e..0000000000 --- a/asm/JKernel/JKRDvdArchive.s +++ /dev/null @@ -1,844 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802d7bf0 - - -.global JKRDvdArchive -JKRDvdArchive: -/* 802D7BF0 002D4B30 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D7BF4 002D4B34 7C 08 02 A6 */ mflr r0 -/* 802D7BF8 002D4B38 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D7BFC 002D4B3C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7C00 002D4B40 48 08 A5 DD */ bl _savegpr_29 -/* 802D7C04 002D4B44 7C 7D 1B 78 */ mr r29, r3 -/* 802D7C08 002D4B48 7C 9E 23 78 */ mr r30, r4 -/* 802D7C0C 002D4B4C 7C BF 2B 78 */ mr r31, r5 -/* 802D7C10 002D4B50 38 A0 00 03 */ li r5, 3 -/* 802D7C14 002D4B54 4B FF E6 81 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D7C18 002D4B58 3C 60 80 3D */ lis r3, lbl_803CC398@ha -/* 802D7C1C 002D4B5C 38 03 C3 98 */ addi r0, r3, lbl_803CC398@l -/* 802D7C20 002D4B60 90 1D 00 00 */ stw r0, 0(r29) -/* 802D7C24 002D4B64 93 FD 00 60 */ stw r31, 0x60(r29) -/* 802D7C28 002D4B68 7F A3 EB 78 */ mr r3, r29 -/* 802D7C2C 002D4B6C 7F C4 F3 78 */ mr r4, r30 -/* 802D7C30 002D4B70 48 00 01 85 */ bl JKRDvdArchive_NS_open -/* 802D7C34 002D4B74 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D7C38 002D4B78 40 82 00 0C */ bne lbl_802D7C44 -/* 802D7C3C 002D4B7C 7F A3 EB 78 */ mr r3, r29 -/* 802D7C40 002D4B80 48 00 00 40 */ b lbl_802D7C80 -lbl_802D7C44: -/* 802D7C44 002D4B84 3C 60 52 41 */ lis r3, 0x52415243@ha -/* 802D7C48 002D4B88 38 03 52 43 */ addi r0, r3, 0x52415243@l -/* 802D7C4C 002D4B8C 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 802D7C50 002D4B90 80 9D 00 54 */ lwz r4, 0x54(r29) -/* 802D7C54 002D4B94 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D7C58 002D4B98 80 03 00 04 */ lwz r0, 4(r3) -/* 802D7C5C 002D4B9C 7C 04 02 14 */ add r0, r4, r0 -/* 802D7C60 002D4BA0 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D7C64 002D4BA4 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D7C68 002D4BA8 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D7C6C 002D4BAC 38 9D 00 18 */ addi r4, r29, 0x18 -/* 802D7C70 002D4BB0 48 00 43 81 */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D7C74 002D4BB4 38 00 00 01 */ li r0, 1 -/* 802D7C78 002D4BB8 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D7C7C 002D4BBC 7F A3 EB 78 */ mr r3, r29 -lbl_802D7C80: -/* 802D7C80 002D4BC0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7C84 002D4BC4 48 08 A5 A5 */ bl _restgpr_29 -/* 802D7C88 002D4BC8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D7C8C 002D4BCC 7C 08 03 A6 */ mtlr r0 -/* 802D7C90 002D4BD0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D7C94 002D4BD4 4E 80 00 20 */ blr -/* 802D7C98 002D4BD8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D7C9C 002D4BDC 7C 08 02 A6 */ mflr r0 -/* 802D7CA0 002D4BE0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D7CA4 002D4BE4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7CA8 002D4BE8 48 08 A5 31 */ bl _savegpr_28 -/* 802D7CAC 002D4BEC 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802D7CB0 002D4BF0 7C 9C 23 78 */ mr r28, r4 -/* 802D7CB4 002D4BF4 41 82 00 E4 */ beq lbl_802D7D98 -/* 802D7CB8 002D4BF8 3C 60 80 3D */ lis r3, lbl_803CC398@ha -/* 802D7CBC 002D4BFC 38 03 C3 98 */ addi r0, r3, lbl_803CC398@l -/* 802D7CC0 002D4C00 90 1F 00 00 */ stw r0, 0(r31) -/* 802D7CC4 002D4C04 88 1F 00 30 */ lbz r0, 0x30(r31) -/* 802D7CC8 002D4C08 28 00 00 01 */ cmplwi r0, 1 -/* 802D7CCC 002D4C0C 40 82 00 B0 */ bne lbl_802D7D7C -/* 802D7CD0 002D4C10 80 1F 00 44 */ lwz r0, 0x44(r31) -/* 802D7CD4 002D4C14 28 00 00 00 */ cmplwi r0, 0 -/* 802D7CD8 002D4C18 41 82 00 4C */ beq lbl_802D7D24 -/* 802D7CDC 002D4C1C 83 DF 00 4C */ lwz r30, 0x4c(r31) -/* 802D7CE0 002D4C20 3B A0 00 00 */ li r29, 0 -/* 802D7CE4 002D4C24 48 00 00 20 */ b lbl_802D7D04 -lbl_802D7CE8: -/* 802D7CE8 002D4C28 80 7E 00 10 */ lwz r3, 0x10(r30) -/* 802D7CEC 002D4C2C 28 03 00 00 */ cmplwi r3, 0 -/* 802D7CF0 002D4C30 41 82 00 0C */ beq lbl_802D7CFC -/* 802D7CF4 002D4C34 80 9F 00 38 */ lwz r4, 0x38(r31) -/* 802D7CF8 002D4C38 4B FF 68 09 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D7CFC: -/* 802D7CFC 002D4C3C 3B DE 00 14 */ addi r30, r30, 0x14 -/* 802D7D00 002D4C40 3B BD 00 01 */ addi r29, r29, 1 -lbl_802D7D04: -/* 802D7D04 002D4C44 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D7D08 002D4C48 80 03 00 08 */ lwz r0, 8(r3) -/* 802D7D0C 002D4C4C 7C 1D 00 40 */ cmplw r29, r0 -/* 802D7D10 002D4C50 41 80 FF D8 */ blt lbl_802D7CE8 -/* 802D7D14 002D4C54 80 9F 00 38 */ lwz r4, 0x38(r31) -/* 802D7D18 002D4C58 4B FF 67 E9 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D7D1C 002D4C5C 38 00 00 00 */ li r0, 0 -/* 802D7D20 002D4C60 90 1F 00 44 */ stw r0, 0x44(r31) -lbl_802D7D24: -/* 802D7D24 002D4C64 80 7F 00 50 */ lwz r3, 0x50(r31) -/* 802D7D28 002D4C68 28 03 00 00 */ cmplwi r3, 0 -/* 802D7D2C 002D4C6C 41 82 00 14 */ beq lbl_802D7D40 -/* 802D7D30 002D4C70 38 80 00 00 */ li r4, 0 -/* 802D7D34 002D4C74 4B FF 67 CD */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D7D38 002D4C78 38 00 00 00 */ li r0, 0 -/* 802D7D3C 002D4C7C 90 1F 00 50 */ stw r0, 0x50(r31) -lbl_802D7D40: -/* 802D7D40 002D4C80 80 7F 00 68 */ lwz r3, 0x68(r31) -/* 802D7D44 002D4C84 28 03 00 00 */ cmplwi r3, 0 -/* 802D7D48 002D4C88 41 82 00 1C */ beq lbl_802D7D64 -/* 802D7D4C 002D4C8C 41 82 00 18 */ beq lbl_802D7D64 -/* 802D7D50 002D4C90 38 80 00 01 */ li r4, 1 -/* 802D7D54 002D4C94 81 83 00 00 */ lwz r12, 0(r3) -/* 802D7D58 002D4C98 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D7D5C 002D4C9C 7D 89 03 A6 */ mtctr r12 -/* 802D7D60 002D4CA0 4E 80 04 21 */ bctrl -lbl_802D7D64: -/* 802D7D64 002D4CA4 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D7D68 002D4CA8 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D7D6C 002D4CAC 38 9F 00 18 */ addi r4, r31, 0x18 -/* 802D7D70 002D4CB0 48 00 43 ED */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D7D74 002D4CB4 38 00 00 00 */ li r0, 0 -/* 802D7D78 002D4CB8 98 1F 00 30 */ stb r0, 0x30(r31) -lbl_802D7D7C: -/* 802D7D7C 002D4CBC 7F E3 FB 78 */ mr r3, r31 -/* 802D7D80 002D4CC0 38 80 00 00 */ li r4, 0 -/* 802D7D84 002D4CC4 4B FF E5 B1 */ bl __dt__10JKRArchiveFv -/* 802D7D88 002D4CC8 7F 80 07 35 */ extsh. r0, r28 -/* 802D7D8C 002D4CCC 40 81 00 0C */ ble lbl_802D7D98 -/* 802D7D90 002D4CD0 7F E3 FB 78 */ mr r3, r31 -/* 802D7D94 002D4CD4 4B FF 6F A9 */ bl __dl__FPv -lbl_802D7D98: -/* 802D7D98 002D4CD8 7F E3 FB 78 */ mr r3, r31 -/* 802D7D9C 002D4CDC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7DA0 002D4CE0 48 08 A4 85 */ bl _restgpr_28 -/* 802D7DA4 002D4CE4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D7DA8 002D4CE8 7C 08 03 A6 */ mtlr r0 -/* 802D7DAC 002D4CEC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D7DB0 002D4CF0 4E 80 00 20 */ blr - -.global JKRDvdArchive_NS_open -JKRDvdArchive_NS_open: -/* 802D7DB4 002D4CF4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D7DB8 002D4CF8 7C 08 02 A6 */ mflr r0 -/* 802D7DBC 002D4CFC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D7DC0 002D4D00 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D7DC4 002D4D04 48 08 A4 15 */ bl _savegpr_28 -/* 802D7DC8 002D4D08 7C 7D 1B 78 */ mr r29, r3 -/* 802D7DCC 002D4D0C 7C 9C 23 78 */ mr r28, r4 -/* 802D7DD0 002D4D10 38 00 00 00 */ li r0, 0 -/* 802D7DD4 002D4D14 90 03 00 44 */ stw r0, 0x44(r3) -/* 802D7DD8 002D4D18 90 03 00 64 */ stw r0, 0x64(r3) -/* 802D7DDC 002D4D1C 90 03 00 48 */ stw r0, 0x48(r3) -/* 802D7DE0 002D4D20 90 03 00 4C */ stw r0, 0x4c(r3) -/* 802D7DE4 002D4D24 90 03 00 54 */ stw r0, 0x54(r3) -/* 802D7DE8 002D4D28 38 60 00 F8 */ li r3, 0xf8 -/* 802D7DEC 002D4D2C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) -/* 802D7DF0 002D4D30 38 A0 00 00 */ li r5, 0 -/* 802D7DF4 002D4D34 4B FF 6E A5 */ bl __nw__FUlP7JKRHeapi -/* 802D7DF8 002D4D38 7C 60 1B 79 */ or. r0, r3, r3 -/* 802D7DFC 002D4D3C 41 82 00 10 */ beq lbl_802D7E0C -/* 802D7E00 002D4D40 7F 84 E3 78 */ mr r4, r28 -/* 802D7E04 002D4D44 48 00 18 9D */ bl __ct__10JKRDvdFileFl -/* 802D7E08 002D4D48 7C 60 1B 78 */ mr r0, r3 -lbl_802D7E0C: -/* 802D7E0C 002D4D4C 90 1D 00 68 */ stw r0, 0x68(r29) -/* 802D7E10 002D4D50 80 1D 00 68 */ lwz r0, 0x68(r29) -/* 802D7E14 002D4D54 28 00 00 00 */ cmplwi r0, 0 -/* 802D7E18 002D4D58 40 82 00 14 */ bne lbl_802D7E2C -/* 802D7E1C 002D4D5C 38 00 00 00 */ li r0, 0 -/* 802D7E20 002D4D60 98 1D 00 3C */ stb r0, 0x3c(r29) -/* 802D7E24 002D4D64 38 60 00 00 */ li r3, 0 -/* 802D7E28 002D4D68 48 00 02 10 */ b lbl_802D8038 -lbl_802D7E2C: -/* 802D7E2C 002D4D6C 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D7E30 002D4D70 38 80 00 20 */ li r4, 0x20 -/* 802D7E34 002D4D74 38 A0 00 20 */ li r5, 0x20 -/* 802D7E38 002D4D78 4B FF 66 9D */ bl alloc__7JKRHeapFUli -/* 802D7E3C 002D4D7C 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D7E40 002D4D80 40 82 00 10 */ bne lbl_802D7E50 -/* 802D7E44 002D4D84 38 00 00 00 */ li r0, 0 -/* 802D7E48 002D4D88 98 1D 00 3C */ stb r0, 0x3c(r29) -/* 802D7E4C 002D4D8C 48 00 01 9C */ b lbl_802D7FE8 -lbl_802D7E50: -/* 802D7E50 002D4D90 38 00 00 00 */ li r0, 0 -/* 802D7E54 002D4D94 90 01 00 08 */ stw r0, 8(r1) -/* 802D7E58 002D4D98 7F 83 E3 78 */ mr r3, r28 -/* 802D7E5C 002D4D9C 7F C4 F3 78 */ mr r4, r30 -/* 802D7E60 002D4DA0 38 A0 00 01 */ li r5, 1 -/* 802D7E64 002D4DA4 38 C0 00 20 */ li r6, 0x20 -/* 802D7E68 002D4DA8 38 E0 00 00 */ li r7, 0 -/* 802D7E6C 002D4DAC 39 00 00 01 */ li r8, 1 -/* 802D7E70 002D4DB0 39 20 00 00 */ li r9, 0 -/* 802D7E74 002D4DB4 39 5D 00 5C */ addi r10, r29, 0x5c -/* 802D7E78 002D4DB8 48 00 1D DD */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D7E7C 002D4DBC 7F C3 F3 78 */ mr r3, r30 -/* 802D7E80 002D4DC0 38 80 00 20 */ li r4, 0x20 -/* 802D7E84 002D4DC4 48 06 36 FD */ bl DCInvalidateRange -/* 802D7E88 002D4DC8 80 1D 00 60 */ lwz r0, 0x60(r29) -/* 802D7E8C 002D4DCC 2C 00 00 01 */ cmpwi r0, 1 -/* 802D7E90 002D4DD0 3B E0 FF E0 */ li r31, -32 -/* 802D7E94 002D4DD4 40 82 00 08 */ bne lbl_802D7E9C -/* 802D7E98 002D4DD8 3B E0 00 20 */ li r31, 0x20 -lbl_802D7E9C: -/* 802D7E9C 002D4DDC 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 802D7EA0 002D4DE0 7F E4 FB 78 */ mr r4, r31 -/* 802D7EA4 002D4DE4 80 BD 00 38 */ lwz r5, 0x38(r29) -/* 802D7EA8 002D4DE8 4B FF 65 CD */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D7EAC 002D4DEC 90 7D 00 44 */ stw r3, 0x44(r29) -/* 802D7EB0 002D4DF0 80 9D 00 44 */ lwz r4, 0x44(r29) -/* 802D7EB4 002D4DF4 28 04 00 00 */ cmplwi r4, 0 -/* 802D7EB8 002D4DF8 40 82 00 10 */ bne lbl_802D7EC8 -/* 802D7EBC 002D4DFC 38 00 00 00 */ li r0, 0 -/* 802D7EC0 002D4E00 98 1D 00 3C */ stb r0, 0x3c(r29) -/* 802D7EC4 002D4E04 48 00 01 24 */ b lbl_802D7FE8 -lbl_802D7EC8: -/* 802D7EC8 002D4E08 38 00 00 00 */ li r0, 0 -/* 802D7ECC 002D4E0C 90 01 00 08 */ stw r0, 8(r1) -/* 802D7ED0 002D4E10 7F 83 E3 78 */ mr r3, r28 -/* 802D7ED4 002D4E14 38 A0 00 01 */ li r5, 1 -/* 802D7ED8 002D4E18 80 DE 00 0C */ lwz r6, 0xc(r30) -/* 802D7EDC 002D4E1C 38 E0 00 00 */ li r7, 0 -/* 802D7EE0 002D4E20 39 00 00 01 */ li r8, 1 -/* 802D7EE4 002D4E24 39 20 00 20 */ li r9, 0x20 -/* 802D7EE8 002D4E28 39 40 00 00 */ li r10, 0 -/* 802D7EEC 002D4E2C 48 00 1D 69 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D7EF0 002D4E30 80 7D 00 44 */ lwz r3, 0x44(r29) -/* 802D7EF4 002D4E34 80 9E 00 0C */ lwz r4, 0xc(r30) -/* 802D7EF8 002D4E38 48 06 36 89 */ bl DCInvalidateRange -/* 802D7EFC 002D4E3C 80 7D 00 44 */ lwz r3, 0x44(r29) -/* 802D7F00 002D4E40 80 03 00 04 */ lwz r0, 4(r3) -/* 802D7F04 002D4E44 7C 03 02 14 */ add r0, r3, r0 -/* 802D7F08 002D4E48 90 1D 00 48 */ stw r0, 0x48(r29) -/* 802D7F0C 002D4E4C 80 7D 00 44 */ lwz r3, 0x44(r29) -/* 802D7F10 002D4E50 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802D7F14 002D4E54 7C 03 02 14 */ add r0, r3, r0 -/* 802D7F18 002D4E58 90 1D 00 4C */ stw r0, 0x4c(r29) -/* 802D7F1C 002D4E5C 80 7D 00 44 */ lwz r3, 0x44(r29) -/* 802D7F20 002D4E60 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802D7F24 002D4E64 7C 03 02 14 */ add r0, r3, r0 -/* 802D7F28 002D4E68 90 1D 00 54 */ stw r0, 0x54(r29) -/* 802D7F2C 002D4E6C 38 00 00 00 */ li r0, 0 -/* 802D7F30 002D4E70 90 1D 00 50 */ stw r0, 0x50(r29) -/* 802D7F34 002D4E74 38 80 00 00 */ li r4, 0 -/* 802D7F38 002D4E78 80 BD 00 4C */ lwz r5, 0x4c(r29) -/* 802D7F3C 002D4E7C 80 7D 00 44 */ lwz r3, 0x44(r29) -/* 802D7F40 002D4E80 80 03 00 08 */ lwz r0, 8(r3) -/* 802D7F44 002D4E84 7C 09 03 A6 */ mtctr r0 -/* 802D7F48 002D4E88 28 00 00 00 */ cmplwi r0, 0 -/* 802D7F4C 002D4E8C 40 81 00 28 */ ble lbl_802D7F74 -lbl_802D7F50: -/* 802D7F50 002D4E90 80 05 00 04 */ lwz r0, 4(r5) -/* 802D7F54 002D4E94 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D7F58 002D4E98 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f -/* 802D7F5C 002D4E9C 41 82 00 10 */ beq lbl_802D7F6C -/* 802D7F60 002D4EA0 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d -/* 802D7F64 002D4EA4 7C 80 03 78 */ or r0, r4, r0 -/* 802D7F68 002D4EA8 54 04 06 3E */ clrlwi r4, r0, 0x18 -lbl_802D7F6C: -/* 802D7F6C 002D4EAC 38 A5 00 14 */ addi r5, r5, 0x14 -/* 802D7F70 002D4EB0 42 00 FF E0 */ bdnz lbl_802D7F50 -lbl_802D7F74: -/* 802D7F74 002D4EB4 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802D7F78 002D4EB8 41 82 00 60 */ beq lbl_802D7FD8 -/* 802D7F7C 002D4EBC 7F E3 FB 78 */ mr r3, r31 -/* 802D7F80 002D4EC0 48 08 D1 51 */ bl func_803650D0 -/* 802D7F84 002D4EC4 7C 64 1B 78 */ mr r4, r3 -/* 802D7F88 002D4EC8 80 BD 00 38 */ lwz r5, 0x38(r29) -/* 802D7F8C 002D4ECC 80 7D 00 44 */ lwz r3, 0x44(r29) -/* 802D7F90 002D4ED0 80 03 00 08 */ lwz r0, 8(r3) -/* 802D7F94 002D4ED4 54 03 10 3A */ slwi r3, r0, 2 -/* 802D7F98 002D4ED8 4B FF 64 DD */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D7F9C 002D4EDC 90 7D 00 50 */ stw r3, 0x50(r29) -/* 802D7FA0 002D4EE0 80 7D 00 50 */ lwz r3, 0x50(r29) -/* 802D7FA4 002D4EE4 28 03 00 00 */ cmplwi r3, 0 -/* 802D7FA8 002D4EE8 40 82 00 1C */ bne lbl_802D7FC4 -/* 802D7FAC 002D4EEC 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D7FB0 002D4EF0 80 9D 00 44 */ lwz r4, 0x44(r29) -/* 802D7FB4 002D4EF4 4B FF 65 95 */ bl free__7JKRHeapFPv -/* 802D7FB8 002D4EF8 38 00 00 00 */ li r0, 0 -/* 802D7FBC 002D4EFC 98 1D 00 3C */ stb r0, 0x3c(r29) -/* 802D7FC0 002D4F00 48 00 00 28 */ b lbl_802D7FE8 -lbl_802D7FC4: -/* 802D7FC4 002D4F04 38 80 00 00 */ li r4, 0 -/* 802D7FC8 002D4F08 80 BD 00 44 */ lwz r5, 0x44(r29) -/* 802D7FCC 002D4F0C 80 05 00 08 */ lwz r0, 8(r5) -/* 802D7FD0 002D4F10 54 05 10 3A */ slwi r5, r0, 2 -/* 802D7FD4 002D4F14 4B D2 B4 85 */ bl func_80003458 -lbl_802D7FD8: -/* 802D7FD8 002D4F18 80 7E 00 08 */ lwz r3, 8(r30) -/* 802D7FDC 002D4F1C 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802D7FE0 002D4F20 7C 03 02 14 */ add r0, r3, r0 -/* 802D7FE4 002D4F24 90 1D 00 64 */ stw r0, 0x64(r29) -lbl_802D7FE8: -/* 802D7FE8 002D4F28 28 1E 00 00 */ cmplwi r30, 0 -/* 802D7FEC 002D4F2C 41 82 00 10 */ beq lbl_802D7FFC -/* 802D7FF0 002D4F30 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802D7FF4 002D4F34 7F C4 F3 78 */ mr r4, r30 -/* 802D7FF8 002D4F38 4B FF 65 51 */ bl free__7JKRHeapFPv -lbl_802D7FFC: -/* 802D7FFC 002D4F3C 88 1D 00 3C */ lbz r0, 0x3c(r29) -/* 802D8000 002D4F40 28 00 00 00 */ cmplwi r0, 0 -/* 802D8004 002D4F44 40 82 00 30 */ bne lbl_802D8034 -/* 802D8008 002D4F48 80 7D 00 68 */ lwz r3, 0x68(r29) -/* 802D800C 002D4F4C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8010 002D4F50 41 82 00 1C */ beq lbl_802D802C -/* 802D8014 002D4F54 41 82 00 18 */ beq lbl_802D802C -/* 802D8018 002D4F58 38 80 00 01 */ li r4, 1 -/* 802D801C 002D4F5C 81 83 00 00 */ lwz r12, 0(r3) -/* 802D8020 002D4F60 81 8C 00 08 */ lwz r12, 8(r12) -/* 802D8024 002D4F64 7D 89 03 A6 */ mtctr r12 -/* 802D8028 002D4F68 4E 80 04 21 */ bctrl -lbl_802D802C: -/* 802D802C 002D4F6C 38 60 00 00 */ li r3, 0 -/* 802D8030 002D4F70 48 00 00 08 */ b lbl_802D8038 -lbl_802D8034: -/* 802D8034 002D4F74 38 60 00 01 */ li r3, 1 -lbl_802D8038: -/* 802D8038 002D4F78 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D803C 002D4F7C 48 08 A1 E9 */ bl _restgpr_28 -/* 802D8040 002D4F80 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D8044 002D4F84 7C 08 03 A6 */ mtlr r0 -/* 802D8048 002D4F88 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D804C 002D4F8C 4E 80 00 20 */ blr -/* 802D8050 002D4F90 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D8054 002D4F94 7C 08 02 A6 */ mflr r0 -/* 802D8058 002D4F98 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D805C 002D4F9C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8060 002D4FA0 48 08 A1 79 */ bl _savegpr_28 -/* 802D8064 002D4FA4 7C 7C 1B 78 */ mr r28, r3 -/* 802D8068 002D4FA8 7C 9D 23 78 */ mr r29, r4 -/* 802D806C 002D4FAC 7C BE 2B 79 */ or. r30, r5, r5 -/* 802D8070 002D4FB0 40 82 00 08 */ bne lbl_802D8078 -/* 802D8074 002D4FB4 3B C1 00 0C */ addi r30, r1, 0xc -lbl_802D8078: -/* 802D8078 002D4FB8 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D807C 002D4FBC 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D8080 002D4FC0 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D8084 002D4FC4 40 82 00 0C */ bne lbl_802D8090 -/* 802D8088 002D4FC8 3B E0 00 00 */ li r31, 0 -/* 802D808C 002D4FCC 48 00 00 18 */ b lbl_802D80A4 -lbl_802D8090: -/* 802D8090 002D4FD0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 -/* 802D8094 002D4FD4 41 82 00 0C */ beq lbl_802D80A0 -/* 802D8098 002D4FD8 3B E0 00 02 */ li r31, 2 -/* 802D809C 002D4FDC 48 00 00 08 */ b lbl_802D80A4 -lbl_802D80A0: -/* 802D80A0 002D4FE0 3B E0 00 01 */ li r31, 1 -lbl_802D80A4: -/* 802D80A4 002D4FE4 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 802D80A8 002D4FE8 28 00 00 00 */ cmplwi r0, 0 -/* 802D80AC 002D4FEC 40 82 00 70 */ bne lbl_802D811C -/* 802D80B0 002D4FF0 80 7C 00 40 */ lwz r3, 0x40(r28) -/* 802D80B4 002D4FF4 80 9C 00 64 */ lwz r4, 0x64(r28) -/* 802D80B8 002D4FF8 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D80BC 002D4FFC 7C 84 02 14 */ add r4, r4, r0 -/* 802D80C0 002D5000 80 BD 00 0C */ lwz r5, 0xc(r29) -/* 802D80C4 002D5004 80 DC 00 38 */ lwz r6, 0x38(r28) -/* 802D80C8 002D5008 7F E7 FB 78 */ mr r7, r31 -/* 802D80CC 002D500C 81 1C 00 5C */ lwz r8, 0x5c(r28) -/* 802D80D0 002D5010 39 21 00 08 */ addi r9, r1, 8 -/* 802D80D4 002D5014 48 00 03 A1 */ bl JKRDvdArchive_NS_fetchResource_subroutine_X1_ -/* 802D80D8 002D5018 90 7E 00 00 */ stw r3, 0(r30) -/* 802D80DC 002D501C 28 03 00 00 */ cmplwi r3, 0 -/* 802D80E0 002D5020 40 82 00 0C */ bne lbl_802D80EC -/* 802D80E4 002D5024 38 60 00 00 */ li r3, 0 -/* 802D80E8 002D5028 48 00 00 68 */ b lbl_802D8150 -lbl_802D80EC: -/* 802D80EC 002D502C 80 01 00 08 */ lwz r0, 8(r1) -/* 802D80F0 002D5030 90 1D 00 10 */ stw r0, 0x10(r29) -/* 802D80F4 002D5034 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D80F8 002D5038 40 82 00 54 */ bne lbl_802D814C -/* 802D80FC 002D503C 7F 83 E3 78 */ mr r3, r28 -/* 802D8100 002D5040 7F A4 EB 78 */ mr r4, r29 -/* 802D8104 002D5044 80 BE 00 00 */ lwz r5, 0(r30) -/* 802D8108 002D5048 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D810C 002D504C 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D8110 002D5050 7D 89 03 A6 */ mtctr r12 -/* 802D8114 002D5054 4E 80 04 21 */ bctrl -/* 802D8118 002D5058 48 00 00 34 */ b lbl_802D814C -lbl_802D811C: -/* 802D811C 002D505C 2C 1F 00 02 */ cmpwi r31, 2 -/* 802D8120 002D5060 40 82 00 24 */ bne lbl_802D8144 -/* 802D8124 002D5064 7F 83 E3 78 */ mr r3, r28 -/* 802D8128 002D5068 7F A4 EB 78 */ mr r4, r29 -/* 802D812C 002D506C 81 9C 00 00 */ lwz r12, 0(r28) -/* 802D8130 002D5070 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D8134 002D5074 7D 89 03 A6 */ mtctr r12 -/* 802D8138 002D5078 4E 80 04 21 */ bctrl -/* 802D813C 002D507C 90 7E 00 00 */ stw r3, 0(r30) -/* 802D8140 002D5080 48 00 00 0C */ b lbl_802D814C -lbl_802D8144: -/* 802D8144 002D5084 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 802D8148 002D5088 90 1E 00 00 */ stw r0, 0(r30) -lbl_802D814C: -/* 802D814C 002D508C 80 7D 00 10 */ lwz r3, 0x10(r29) -lbl_802D8150: -/* 802D8150 002D5090 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8154 002D5094 48 08 A0 D1 */ bl _restgpr_28 -/* 802D8158 002D5098 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D815C 002D509C 7C 08 03 A6 */ mtlr r0 -/* 802D8160 002D50A0 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D8164 002D50A4 4E 80 00 20 */ blr -/* 802D8168 002D50A8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D816C 002D50AC 7C 08 02 A6 */ mflr r0 -/* 802D8170 002D50B0 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D8174 002D50B4 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8178 002D50B8 48 08 A0 5D */ bl _savegpr_27 -/* 802D817C 002D50BC 7C 69 1B 78 */ mr r9, r3 -/* 802D8180 002D50C0 7C 9B 23 78 */ mr r27, r4 -/* 802D8184 002D50C4 7C BC 2B 78 */ mr r28, r5 -/* 802D8188 002D50C8 7C DD 33 78 */ mr r29, r6 -/* 802D818C 002D50CC 7C FE 3B 78 */ mr r30, r7 -/* 802D8190 002D50D0 80 A6 00 0C */ lwz r5, 0xc(r6) -/* 802D8194 002D50D4 7C BF 2B 78 */ mr r31, r5 -/* 802D8198 002D50D8 80 06 00 04 */ lwz r0, 4(r6) -/* 802D819C 002D50DC 54 03 46 3E */ srwi r3, r0, 0x18 -/* 802D81A0 002D50E0 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D81A4 002D50E4 40 82 00 0C */ bne lbl_802D81B0 -/* 802D81A8 002D50E8 39 00 00 00 */ li r8, 0 -/* 802D81AC 002D50EC 48 00 00 18 */ b lbl_802D81C4 -lbl_802D81B0: -/* 802D81B0 002D50F0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 -/* 802D81B4 002D50F4 41 82 00 0C */ beq lbl_802D81C0 -/* 802D81B8 002D50F8 39 00 00 02 */ li r8, 2 -/* 802D81BC 002D50FC 48 00 00 08 */ b lbl_802D81C4 -lbl_802D81C0: -/* 802D81C0 002D5100 39 00 00 01 */ li r8, 1 -lbl_802D81C4: -/* 802D81C4 002D5104 80 1D 00 10 */ lwz r0, 0x10(r29) -/* 802D81C8 002D5108 28 00 00 00 */ cmplwi r0, 0 -/* 802D81CC 002D510C 40 82 00 30 */ bne lbl_802D81FC -/* 802D81D0 002D5110 57 9C 00 34 */ rlwinm r28, r28, 0, 0, 0x1a -/* 802D81D4 002D5114 80 69 00 40 */ lwz r3, 0x40(r9) -/* 802D81D8 002D5118 80 89 00 64 */ lwz r4, 0x64(r9) -/* 802D81DC 002D511C 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D81E0 002D5120 7C 84 02 14 */ add r4, r4, r0 -/* 802D81E4 002D5124 7F 66 DB 78 */ mr r6, r27 -/* 802D81E8 002D5128 7F 87 E3 78 */ mr r7, r28 -/* 802D81EC 002D512C 81 29 00 5C */ lwz r9, 0x5c(r9) -/* 802D81F0 002D5130 48 00 00 7D */ bl JKRDvdArchive_NS_fetchResource_subroutine -/* 802D81F4 002D5134 7C 7F 1B 78 */ mr r31, r3 -/* 802D81F8 002D5138 48 00 00 4C */ b lbl_802D8244 -lbl_802D81FC: -/* 802D81FC 002D513C 2C 08 00 02 */ cmpwi r8, 2 -/* 802D8200 002D5140 40 82 00 28 */ bne lbl_802D8228 -/* 802D8204 002D5144 7D 23 4B 78 */ mr r3, r9 -/* 802D8208 002D5148 7F A4 EB 78 */ mr r4, r29 -/* 802D820C 002D514C 81 89 00 00 */ lwz r12, 0(r9) -/* 802D8210 002D5150 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D8214 002D5154 7D 89 03 A6 */ mtctr r12 -/* 802D8218 002D5158 4E 80 04 21 */ bctrl -/* 802D821C 002D515C 28 03 00 00 */ cmplwi r3, 0 -/* 802D8220 002D5160 41 82 00 08 */ beq lbl_802D8228 -/* 802D8224 002D5164 7C 7F 1B 78 */ mr r31, r3 -lbl_802D8228: -/* 802D8228 002D5168 7C 1F E0 40 */ cmplw r31, r28 -/* 802D822C 002D516C 40 81 00 08 */ ble lbl_802D8234 -/* 802D8230 002D5170 7F 9F E3 78 */ mr r31, r28 -lbl_802D8234: -/* 802D8234 002D5174 7F 63 DB 78 */ mr r3, r27 -/* 802D8238 002D5178 80 9D 00 10 */ lwz r4, 0x10(r29) -/* 802D823C 002D517C 7F E5 FB 78 */ mr r5, r31 -/* 802D8240 002D5180 4B FF 68 D9 */ bl copyMemory__7JKRHeapFPvPvUl -lbl_802D8244: -/* 802D8244 002D5184 28 1E 00 00 */ cmplwi r30, 0 -/* 802D8248 002D5188 41 82 00 08 */ beq lbl_802D8250 -/* 802D824C 002D518C 93 FE 00 00 */ stw r31, 0(r30) -lbl_802D8250: -/* 802D8250 002D5190 7F 63 DB 78 */ mr r3, r27 -/* 802D8254 002D5194 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D8258 002D5198 48 08 9F C9 */ bl _restgpr_27 -/* 802D825C 002D519C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D8260 002D51A0 7C 08 03 A6 */ mtlr r0 -/* 802D8264 002D51A4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D8268 002D51A8 4E 80 00 20 */ blr - -.global JKRDvdArchive_NS_fetchResource_subroutine -JKRDvdArchive_NS_fetchResource_subroutine: -/* 802D826C 002D51AC 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802D8270 002D51B0 7C 08 02 A6 */ mflr r0 -/* 802D8274 002D51B4 90 01 00 74 */ stw r0, 0x74(r1) -/* 802D8278 002D51B8 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D827C 002D51BC 48 08 9F 55 */ bl _savegpr_26 -/* 802D8280 002D51C0 7C 7D 1B 78 */ mr r29, r3 -/* 802D8284 002D51C4 7C 9E 23 78 */ mr r30, r4 -/* 802D8288 002D51C8 7C BA 2B 78 */ mr r26, r5 -/* 802D828C 002D51CC 7C DF 33 78 */ mr r31, r6 -/* 802D8290 002D51D0 38 1A 00 1F */ addi r0, r26, 0x1f -/* 802D8294 002D51D4 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a -/* 802D8298 002D51D8 54 FB 00 34 */ rlwinm r27, r7, 0, 0, 0x1a -/* 802D829C 002D51DC 2C 09 00 01 */ cmpwi r9, 1 -/* 802D82A0 002D51E0 41 82 01 80 */ beq lbl_802D8420 -/* 802D82A4 002D51E4 40 80 00 10 */ bge lbl_802D82B4 -/* 802D82A8 002D51E8 2C 09 00 00 */ cmpwi r9, 0 -/* 802D82AC 002D51EC 40 80 00 14 */ bge lbl_802D82C0 -/* 802D82B0 002D51F0 48 00 01 8C */ b lbl_802D843C -lbl_802D82B4: -/* 802D82B4 002D51F4 2C 09 00 03 */ cmpwi r9, 3 -/* 802D82B8 002D51F8 40 80 01 84 */ bge lbl_802D843C -/* 802D82BC 002D51FC 48 00 01 18 */ b lbl_802D83D4 -lbl_802D82C0: -/* 802D82C0 002D5200 2C 08 00 00 */ cmpwi r8, 0 -/* 802D82C4 002D5204 41 82 00 14 */ beq lbl_802D82D8 -/* 802D82C8 002D5208 41 80 01 0C */ blt lbl_802D83D4 -/* 802D82CC 002D520C 2C 08 00 03 */ cmpwi r8, 3 -/* 802D82D0 002D5210 40 80 01 04 */ bge lbl_802D83D4 -/* 802D82D4 002D5214 48 00 00 50 */ b lbl_802D8324 -lbl_802D82D8: -/* 802D82D8 002D5218 7C 1C D8 40 */ cmplw r28, r27 -/* 802D82DC 002D521C 40 81 00 08 */ ble lbl_802D82E4 -/* 802D82E0 002D5220 7F 7C DB 78 */ mr r28, r27 -lbl_802D82E4: -/* 802D82E4 002D5224 38 00 00 00 */ li r0, 0 -/* 802D82E8 002D5228 90 01 00 08 */ stw r0, 8(r1) -/* 802D82EC 002D522C 7F A3 EB 78 */ mr r3, r29 -/* 802D82F0 002D5230 7F E4 FB 78 */ mr r4, r31 -/* 802D82F4 002D5234 38 A0 00 00 */ li r5, 0 -/* 802D82F8 002D5238 7F 86 E3 78 */ mr r6, r28 -/* 802D82FC 002D523C 38 E0 00 00 */ li r7, 0 -/* 802D8300 002D5240 39 00 00 01 */ li r8, 1 -/* 802D8304 002D5244 7F C9 F3 78 */ mr r9, r30 -/* 802D8308 002D5248 39 40 00 00 */ li r10, 0 -/* 802D830C 002D524C 48 00 19 49 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8310 002D5250 7F E3 FB 78 */ mr r3, r31 -/* 802D8314 002D5254 7F 84 E3 78 */ mr r4, r28 -/* 802D8318 002D5258 48 06 32 69 */ bl DCInvalidateRange -/* 802D831C 002D525C 7F 83 E3 78 */ mr r3, r28 -/* 802D8320 002D5260 48 00 01 3C */ b lbl_802D845C -lbl_802D8324: -/* 802D8324 002D5264 38 01 00 2F */ addi r0, r1, 0x2f -/* 802D8328 002D5268 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a -/* 802D832C 002D526C 38 00 00 00 */ li r0, 0 -/* 802D8330 002D5270 90 01 00 08 */ stw r0, 8(r1) -/* 802D8334 002D5274 7F 84 E3 78 */ mr r4, r28 -/* 802D8338 002D5278 38 A0 00 02 */ li r5, 2 -/* 802D833C 002D527C 38 C0 00 20 */ li r6, 0x20 -/* 802D8340 002D5280 38 E0 00 00 */ li r7, 0 -/* 802D8344 002D5284 39 00 00 01 */ li r8, 1 -/* 802D8348 002D5288 7F C9 F3 78 */ mr r9, r30 -/* 802D834C 002D528C 39 40 00 00 */ li r10, 0 -/* 802D8350 002D5290 48 00 19 05 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8354 002D5294 7F 83 E3 78 */ mr r3, r28 -/* 802D8358 002D5298 38 80 00 20 */ li r4, 0x20 -/* 802D835C 002D529C 48 06 32 25 */ bl DCInvalidateRange -/* 802D8360 002D52A0 88 BC 00 07 */ lbz r5, 7(r28) -/* 802D8364 002D52A4 88 9C 00 06 */ lbz r4, 6(r28) -/* 802D8368 002D52A8 88 7C 00 04 */ lbz r3, 4(r28) -/* 802D836C 002D52AC 88 1C 00 05 */ lbz r0, 5(r28) -/* 802D8370 002D52B0 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D8374 002D52B4 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D8378 002D52B8 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D837C 002D52BC 7C BC 03 78 */ or r28, r5, r0 -/* 802D8380 002D52C0 38 1C 00 1F */ addi r0, r28, 0x1f -/* 802D8384 002D52C4 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a -/* 802D8388 002D52C8 7C 1A D8 40 */ cmplw r26, r27 -/* 802D838C 002D52CC 40 81 00 08 */ ble lbl_802D8394 -/* 802D8390 002D52D0 7F 7A DB 78 */ mr r26, r27 -lbl_802D8394: -/* 802D8394 002D52D4 38 00 00 00 */ li r0, 0 -/* 802D8398 002D52D8 90 01 00 08 */ stw r0, 8(r1) -/* 802D839C 002D52DC 7F A3 EB 78 */ mr r3, r29 -/* 802D83A0 002D52E0 7F E4 FB 78 */ mr r4, r31 -/* 802D83A4 002D52E4 38 A0 00 01 */ li r5, 1 -/* 802D83A8 002D52E8 7F 46 D3 78 */ mr r6, r26 -/* 802D83AC 002D52EC 38 E0 00 00 */ li r7, 0 -/* 802D83B0 002D52F0 39 00 00 01 */ li r8, 1 -/* 802D83B4 002D52F4 7F C9 F3 78 */ mr r9, r30 -/* 802D83B8 002D52F8 39 40 00 00 */ li r10, 0 -/* 802D83BC 002D52FC 48 00 18 99 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D83C0 002D5300 7F E3 FB 78 */ mr r3, r31 -/* 802D83C4 002D5304 7F 44 D3 78 */ mr r4, r26 -/* 802D83C8 002D5308 48 06 31 B9 */ bl DCInvalidateRange -/* 802D83CC 002D530C 7F 83 E3 78 */ mr r3, r28 -/* 802D83D0 002D5310 48 00 00 8C */ b lbl_802D845C -lbl_802D83D4: -/* 802D83D4 002D5314 7C 1A D8 40 */ cmplw r26, r27 -/* 802D83D8 002D5318 40 81 00 08 */ ble lbl_802D83E0 -/* 802D83DC 002D531C 7F 7A DB 78 */ mr r26, r27 -lbl_802D83E0: -/* 802D83E0 002D5320 38 00 00 00 */ li r0, 0 -/* 802D83E4 002D5324 90 01 00 08 */ stw r0, 8(r1) -/* 802D83E8 002D5328 7F A3 EB 78 */ mr r3, r29 -/* 802D83EC 002D532C 7F E4 FB 78 */ mr r4, r31 -/* 802D83F0 002D5330 38 A0 00 01 */ li r5, 1 -/* 802D83F4 002D5334 7F 46 D3 78 */ mr r6, r26 -/* 802D83F8 002D5338 38 E0 00 00 */ li r7, 0 -/* 802D83FC 002D533C 39 00 00 01 */ li r8, 1 -/* 802D8400 002D5340 7F C9 F3 78 */ mr r9, r30 -/* 802D8404 002D5344 39 40 00 00 */ li r10, 0 -/* 802D8408 002D5348 48 00 18 4D */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D840C 002D534C 7F E3 FB 78 */ mr r3, r31 -/* 802D8410 002D5350 7F 44 D3 78 */ mr r4, r26 -/* 802D8414 002D5354 48 06 31 6D */ bl DCInvalidateRange -/* 802D8418 002D5358 7F 43 D3 78 */ mr r3, r26 -/* 802D841C 002D535C 48 00 00 40 */ b lbl_802D845C -lbl_802D8420: -/* 802D8420 002D5360 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha -/* 802D8424 002D5364 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l -/* 802D8428 002D5368 38 80 02 89 */ li r4, 0x289 -/* 802D842C 002D536C 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D8430 002D5370 38 C3 00 15 */ addi r6, r3, 0x15 -/* 802D8434 002D5374 4C C6 31 82 */ crclr 6 -/* 802D8438 002D5378 48 00 9D C5 */ bl JUTException_NS_panic_f -lbl_802D843C: -/* 802D843C 002D537C 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha -/* 802D8440 002D5380 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l -/* 802D8444 002D5384 38 80 02 8D */ li r4, 0x28d -/* 802D8448 002D5388 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D844C 002D538C 38 C3 00 3A */ addi r6, r3, 0x3a -/* 802D8450 002D5390 4C C6 31 82 */ crclr 6 -/* 802D8454 002D5394 48 00 9D A9 */ bl JUTException_NS_panic_f -/* 802D8458 002D5398 38 60 00 00 */ li r3, 0 -lbl_802D845C: -/* 802D845C 002D539C 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D8460 002D53A0 48 08 9D BD */ bl _restgpr_26 -/* 802D8464 002D53A4 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802D8468 002D53A8 7C 08 03 A6 */ mtlr r0 -/* 802D846C 002D53AC 38 21 00 70 */ addi r1, r1, 0x70 -/* 802D8470 002D53B0 4E 80 00 20 */ blr - -.global JKRDvdArchive_NS_fetchResource_subroutine_X1_ -JKRDvdArchive_NS_fetchResource_subroutine_X1_: -/* 802D8474 002D53B4 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802D8478 002D53B8 7C 08 02 A6 */ mflr r0 -/* 802D847C 002D53BC 90 01 00 74 */ stw r0, 0x74(r1) -/* 802D8480 002D53C0 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D8484 002D53C4 48 08 9D 49 */ bl func_803621CC -/* 802D8488 002D53C8 7C 7D 1B 78 */ mr r29, r3 -/* 802D848C 002D53CC 7C 9E 23 78 */ mr r30, r4 -/* 802D8490 002D53D0 7C B9 2B 78 */ mr r25, r5 -/* 802D8494 002D53D4 7C DA 33 78 */ mr r26, r6 -/* 802D8498 002D53D8 7D 3F 4B 78 */ mr r31, r9 -/* 802D849C 002D53DC 38 19 00 1F */ addi r0, r25, 0x1f -/* 802D84A0 002D53E0 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a -/* 802D84A4 002D53E4 2C 08 00 01 */ cmpwi r8, 1 -/* 802D84A8 002D53E8 41 82 01 9C */ beq lbl_802D8644 -/* 802D84AC 002D53EC 40 80 00 10 */ bge lbl_802D84BC -/* 802D84B0 002D53F0 2C 08 00 00 */ cmpwi r8, 0 -/* 802D84B4 002D53F4 40 80 00 14 */ bge lbl_802D84C8 -/* 802D84B8 002D53F8 48 00 01 A8 */ b lbl_802D8660 -lbl_802D84BC: -/* 802D84BC 002D53FC 2C 08 00 03 */ cmpwi r8, 3 -/* 802D84C0 002D5400 40 80 01 A0 */ bge lbl_802D8660 -/* 802D84C4 002D5404 48 00 01 28 */ b lbl_802D85EC -lbl_802D84C8: -/* 802D84C8 002D5408 2C 07 00 00 */ cmpwi r7, 0 -/* 802D84CC 002D540C 41 82 00 14 */ beq lbl_802D84E0 -/* 802D84D0 002D5410 41 80 01 1C */ blt lbl_802D85EC -/* 802D84D4 002D5414 2C 07 00 03 */ cmpwi r7, 3 -/* 802D84D8 002D5418 40 80 01 14 */ bge lbl_802D85EC -/* 802D84DC 002D541C 48 00 00 5C */ b lbl_802D8538 -lbl_802D84E0: -/* 802D84E0 002D5420 7F 63 DB 78 */ mr r3, r27 -/* 802D84E4 002D5424 38 80 00 20 */ li r4, 0x20 -/* 802D84E8 002D5428 7F 45 D3 78 */ mr r5, r26 -/* 802D84EC 002D542C 4B FF 5F 89 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D84F0 002D5430 7C 7C 1B 78 */ mr r28, r3 -/* 802D84F4 002D5434 38 00 00 00 */ li r0, 0 -/* 802D84F8 002D5438 90 01 00 08 */ stw r0, 8(r1) -/* 802D84FC 002D543C 7F A3 EB 78 */ mr r3, r29 -/* 802D8500 002D5440 7F 84 E3 78 */ mr r4, r28 -/* 802D8504 002D5444 38 A0 00 00 */ li r5, 0 -/* 802D8508 002D5448 7F 66 DB 78 */ mr r6, r27 -/* 802D850C 002D544C 38 E0 00 00 */ li r7, 0 -/* 802D8510 002D5450 39 00 00 01 */ li r8, 1 -/* 802D8514 002D5454 7F C9 F3 78 */ mr r9, r30 -/* 802D8518 002D5458 39 40 00 00 */ li r10, 0 -/* 802D851C 002D545C 48 00 17 39 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8520 002D5460 7F 83 E3 78 */ mr r3, r28 -/* 802D8524 002D5464 7F 64 DB 78 */ mr r4, r27 -/* 802D8528 002D5468 48 06 30 59 */ bl DCInvalidateRange -/* 802D852C 002D546C 93 9F 00 00 */ stw r28, 0(r31) -/* 802D8530 002D5470 7F 63 DB 78 */ mr r3, r27 -/* 802D8534 002D5474 48 00 01 4C */ b lbl_802D8680 -lbl_802D8538: -/* 802D8538 002D5478 38 01 00 2F */ addi r0, r1, 0x2f -/* 802D853C 002D547C 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a -/* 802D8540 002D5480 38 00 00 00 */ li r0, 0 -/* 802D8544 002D5484 90 01 00 08 */ stw r0, 8(r1) -/* 802D8548 002D5488 7F 64 DB 78 */ mr r4, r27 -/* 802D854C 002D548C 38 A0 00 02 */ li r5, 2 -/* 802D8550 002D5490 38 C0 00 20 */ li r6, 0x20 -/* 802D8554 002D5494 38 E0 00 00 */ li r7, 0 -/* 802D8558 002D5498 39 00 00 01 */ li r8, 1 -/* 802D855C 002D549C 7F C9 F3 78 */ mr r9, r30 -/* 802D8560 002D54A0 39 40 00 00 */ li r10, 0 -/* 802D8564 002D54A4 48 00 16 F1 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8568 002D54A8 7F 63 DB 78 */ mr r3, r27 -/* 802D856C 002D54AC 38 80 00 20 */ li r4, 0x20 -/* 802D8570 002D54B0 48 06 30 11 */ bl DCInvalidateRange -/* 802D8574 002D54B4 88 BB 00 07 */ lbz r5, 7(r27) -/* 802D8578 002D54B8 88 9B 00 06 */ lbz r4, 6(r27) -/* 802D857C 002D54BC 88 7B 00 04 */ lbz r3, 4(r27) -/* 802D8580 002D54C0 88 1B 00 05 */ lbz r0, 5(r27) -/* 802D8584 002D54C4 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D8588 002D54C8 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D858C 002D54CC 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D8590 002D54D0 7C BC 03 78 */ or r28, r5, r0 -/* 802D8594 002D54D4 7F 83 E3 78 */ mr r3, r28 -/* 802D8598 002D54D8 38 80 00 20 */ li r4, 0x20 -/* 802D859C 002D54DC 7F 45 D3 78 */ mr r5, r26 -/* 802D85A0 002D54E0 4B FF 5E D5 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D85A4 002D54E4 7C 7B 1B 78 */ mr r27, r3 -/* 802D85A8 002D54E8 38 00 00 00 */ li r0, 0 -/* 802D85AC 002D54EC 90 01 00 08 */ stw r0, 8(r1) -/* 802D85B0 002D54F0 7F A3 EB 78 */ mr r3, r29 -/* 802D85B4 002D54F4 7F 64 DB 78 */ mr r4, r27 -/* 802D85B8 002D54F8 38 A0 00 01 */ li r5, 1 -/* 802D85BC 002D54FC 7F 86 E3 78 */ mr r6, r28 -/* 802D85C0 002D5500 38 E0 00 00 */ li r7, 0 -/* 802D85C4 002D5504 39 00 00 01 */ li r8, 1 -/* 802D85C8 002D5508 7F C9 F3 78 */ mr r9, r30 -/* 802D85CC 002D550C 39 40 00 00 */ li r10, 0 -/* 802D85D0 002D5510 48 00 16 85 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D85D4 002D5514 7F 63 DB 78 */ mr r3, r27 -/* 802D85D8 002D5518 7F 84 E3 78 */ mr r4, r28 -/* 802D85DC 002D551C 48 06 2F A5 */ bl DCInvalidateRange -/* 802D85E0 002D5520 93 7F 00 00 */ stw r27, 0(r31) -/* 802D85E4 002D5524 7F 83 E3 78 */ mr r3, r28 -/* 802D85E8 002D5528 48 00 00 98 */ b lbl_802D8680 -lbl_802D85EC: -/* 802D85EC 002D552C 7F 63 DB 78 */ mr r3, r27 -/* 802D85F0 002D5530 38 80 00 20 */ li r4, 0x20 -/* 802D85F4 002D5534 7F 45 D3 78 */ mr r5, r26 -/* 802D85F8 002D5538 4B FF 5E 7D */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D85FC 002D553C 7C 7C 1B 78 */ mr r28, r3 -/* 802D8600 002D5540 38 00 00 00 */ li r0, 0 -/* 802D8604 002D5544 90 01 00 08 */ stw r0, 8(r1) -/* 802D8608 002D5548 7F A3 EB 78 */ mr r3, r29 -/* 802D860C 002D554C 7F 84 E3 78 */ mr r4, r28 -/* 802D8610 002D5550 38 A0 00 01 */ li r5, 1 -/* 802D8614 002D5554 7F 26 CB 78 */ mr r6, r25 -/* 802D8618 002D5558 38 E0 00 00 */ li r7, 0 -/* 802D861C 002D555C 39 00 00 01 */ li r8, 1 -/* 802D8620 002D5560 7F C9 F3 78 */ mr r9, r30 -/* 802D8624 002D5564 39 40 00 00 */ li r10, 0 -/* 802D8628 002D5568 48 00 16 2D */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D862C 002D556C 7F 83 E3 78 */ mr r3, r28 -/* 802D8630 002D5570 7F 24 CB 78 */ mr r4, r25 -/* 802D8634 002D5574 48 06 2F 4D */ bl DCInvalidateRange -/* 802D8638 002D5578 93 9F 00 00 */ stw r28, 0(r31) -/* 802D863C 002D557C 7F 63 DB 78 */ mr r3, r27 -/* 802D8640 002D5580 48 00 00 40 */ b lbl_802D8680 -lbl_802D8644: -/* 802D8644 002D5584 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha -/* 802D8648 002D5588 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l -/* 802D864C 002D558C 38 80 02 F2 */ li r4, 0x2f2 -/* 802D8650 002D5590 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D8654 002D5594 38 C3 00 4C */ addi r6, r3, 0x4c -/* 802D8658 002D5598 4C C6 31 82 */ crclr 6 -/* 802D865C 002D559C 48 00 9B A1 */ bl JUTException_NS_panic_f -lbl_802D8660: -/* 802D8660 002D55A0 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha -/* 802D8664 002D55A4 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l -/* 802D8668 002D55A8 38 80 02 F6 */ li r4, 0x2f6 -/* 802D866C 002D55AC 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D8670 002D55B0 38 C3 00 3A */ addi r6, r3, 0x3a -/* 802D8674 002D55B4 4C C6 31 82 */ crclr 6 -/* 802D8678 002D55B8 48 00 9B 85 */ bl JUTException_NS_panic_f -/* 802D867C 002D55BC 38 60 00 00 */ li r3, 0 -lbl_802D8680: -/* 802D8680 002D55C0 39 61 00 70 */ addi r11, r1, 0x70 -/* 802D8684 002D55C4 48 08 9B 95 */ bl func_80362218 -/* 802D8688 002D55C8 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802D868C 002D55CC 7C 08 03 A6 */ mtlr r0 -/* 802D8690 002D55D0 38 21 00 70 */ addi r1, r1, 0x70 -/* 802D8694 002D55D4 4E 80 00 20 */ blr -/* 802D8698 002D55D8 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 802D869C 002D55DC 7C 08 02 A6 */ mflr r0 -/* 802D86A0 002D55E0 90 01 00 64 */ stw r0, 0x64(r1) -/* 802D86A4 002D55E4 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D86A8 002D55E8 48 08 9B 35 */ bl _savegpr_29 -/* 802D86AC 002D55EC 7C 7F 1B 78 */ mr r31, r3 -/* 802D86B0 002D55F0 7C 9E 23 78 */ mr r30, r4 -/* 802D86B4 002D55F4 80 03 00 50 */ lwz r0, 0x50(r3) -/* 802D86B8 002D55F8 28 00 00 00 */ cmplwi r0, 0 -/* 802D86BC 002D55FC 40 82 00 18 */ bne lbl_802D86D4 -/* 802D86C0 002D5600 81 83 00 00 */ lwz r12, 0(r3) -/* 802D86C4 002D5604 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D86C8 002D5608 7D 89 03 A6 */ mtctr r12 -/* 802D86CC 002D560C 4E 80 04 21 */ bctrl -/* 802D86D0 002D5610 48 00 00 EC */ b lbl_802D87BC -lbl_802D86D4: -/* 802D86D4 002D5614 4B FF E0 61 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D86D8 002D5618 7C 7D 1B 79 */ or. r29, r3, r3 -/* 802D86DC 002D561C 40 82 00 0C */ bne lbl_802D86E8 -/* 802D86E0 002D5620 38 60 FF FF */ li r3, -1 -/* 802D86E4 002D5624 48 00 00 D8 */ b lbl_802D87BC -lbl_802D86E8: -/* 802D86E8 002D5628 80 1D 00 04 */ lwz r0, 4(r29) -/* 802D86EC 002D562C 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D86F0 002D5630 40 82 00 20 */ bne lbl_802D8710 -/* 802D86F4 002D5634 7F E3 FB 78 */ mr r3, r31 -/* 802D86F8 002D5638 7F C4 F3 78 */ mr r4, r30 -/* 802D86FC 002D563C 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D8700 002D5640 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D8704 002D5644 7D 89 03 A6 */ mtctr r12 -/* 802D8708 002D5648 4E 80 04 21 */ bctrl -/* 802D870C 002D564C 48 00 00 B0 */ b lbl_802D87BC -lbl_802D8710: -/* 802D8710 002D5650 7F E3 FB 78 */ mr r3, r31 -/* 802D8714 002D5654 7F A4 EB 78 */ mr r4, r29 -/* 802D8718 002D5658 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D871C 002D565C 81 8C 00 4C */ lwz r12, 0x4c(r12) -/* 802D8720 002D5660 7D 89 03 A6 */ mtctr r12 -/* 802D8724 002D5664 4E 80 04 21 */ bctrl -/* 802D8728 002D5668 28 03 00 00 */ cmplwi r3, 0 -/* 802D872C 002D566C 41 82 00 08 */ beq lbl_802D8734 -/* 802D8730 002D5670 48 00 00 8C */ b lbl_802D87BC -lbl_802D8734: -/* 802D8734 002D5674 38 01 00 2F */ addi r0, r1, 0x2f -/* 802D8738 002D5678 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a -/* 802D873C 002D567C 38 00 00 00 */ li r0, 0 -/* 802D8740 002D5680 90 01 00 08 */ stw r0, 8(r1) -/* 802D8744 002D5684 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 802D8748 002D5688 7F C4 F3 78 */ mr r4, r30 -/* 802D874C 002D568C 38 A0 00 02 */ li r5, 2 -/* 802D8750 002D5690 38 C0 00 20 */ li r6, 0x20 -/* 802D8754 002D5694 38 E0 00 00 */ li r7, 0 -/* 802D8758 002D5698 39 00 00 01 */ li r8, 1 -/* 802D875C 002D569C 81 3F 00 64 */ lwz r9, 0x64(r31) -/* 802D8760 002D56A0 80 1D 00 08 */ lwz r0, 8(r29) -/* 802D8764 002D56A4 7D 29 02 14 */ add r9, r9, r0 -/* 802D8768 002D56A8 39 40 00 00 */ li r10, 0 -/* 802D876C 002D56AC 48 00 14 E9 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D8770 002D56B0 7F C3 F3 78 */ mr r3, r30 -/* 802D8774 002D56B4 38 80 00 20 */ li r4, 0x20 -/* 802D8778 002D56B8 48 06 2E 09 */ bl DCInvalidateRange -/* 802D877C 002D56BC 88 BE 00 07 */ lbz r5, 7(r30) -/* 802D8780 002D56C0 88 9E 00 06 */ lbz r4, 6(r30) -/* 802D8784 002D56C4 88 7E 00 04 */ lbz r3, 4(r30) -/* 802D8788 002D56C8 88 1E 00 05 */ lbz r0, 5(r30) -/* 802D878C 002D56CC 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D8790 002D56D0 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D8794 002D56D4 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D8798 002D56D8 7C BE 03 78 */ or r30, r5, r0 -/* 802D879C 002D56DC 7F E3 FB 78 */ mr r3, r31 -/* 802D87A0 002D56E0 7F A4 EB 78 */ mr r4, r29 -/* 802D87A4 002D56E4 7F C5 F3 78 */ mr r5, r30 -/* 802D87A8 002D56E8 81 9F 00 00 */ lwz r12, 0(r31) -/* 802D87AC 002D56EC 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802D87B0 002D56F0 7D 89 03 A6 */ mtctr r12 -/* 802D87B4 002D56F4 4E 80 04 21 */ bctrl -/* 802D87B8 002D56F8 7F C3 F3 78 */ mr r3, r30 -lbl_802D87BC: -/* 802D87BC 002D56FC 39 61 00 60 */ addi r11, r1, 0x60 -/* 802D87C0 002D5700 48 08 9A 69 */ bl _restgpr_29 -/* 802D87C4 002D5704 80 01 00 64 */ lwz r0, 0x64(r1) -/* 802D87C8 002D5708 7C 08 03 A6 */ mtlr r0 -/* 802D87CC 002D570C 38 21 00 60 */ addi r1, r1, 0x60 -/* 802D87D0 002D5710 4E 80 00 20 */ blr - diff --git a/asm/JKernel/JKRDvdRipper.s b/asm/JKernel/JKRDvdRipper.s index 9a71d0b48d..71b4ffc991 100644 --- a/asm/JKernel/JKRDvdRipper.s +++ b/asm/JKernel/JKRDvdRipper.s @@ -1,913 +1,9 @@ .include "macros.inc" -.section .text, "ax" # 802d9b98 +.section .text, "ax" # 802DA7DC - -.global JKRDvdRipper_NS_loadToMainRAM -JKRDvdRipper_NS_loadToMainRAM: -/* 802D9B98 002D6AD8 94 21 FE D0 */ stwu r1, -0x130(r1) -/* 802D9B9C 002D6ADC 7C 08 02 A6 */ mflr r0 -/* 802D9BA0 002D6AE0 90 01 01 34 */ stw r0, 0x134(r1) -/* 802D9BA4 002D6AE4 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D9BA8 002D6AE8 48 08 86 1D */ bl func_803621C4 -/* 802D9BAC 002D6AEC 7C 77 1B 78 */ mr r23, r3 -/* 802D9BB0 002D6AF0 7C 98 23 78 */ mr r24, r4 -/* 802D9BB4 002D6AF4 7C B9 2B 78 */ mr r25, r5 -/* 802D9BB8 002D6AF8 7C DA 33 78 */ mr r26, r6 -/* 802D9BBC 002D6AFC 7C FB 3B 78 */ mr r27, r7 -/* 802D9BC0 002D6B00 7D 1C 43 78 */ mr r28, r8 -/* 802D9BC4 002D6B04 7D 3D 4B 78 */ mr r29, r9 -/* 802D9BC8 002D6B08 7D 5E 53 78 */ mr r30, r10 -/* 802D9BCC 002D6B0C 83 E1 01 38 */ lwz r31, 0x138(r1) -/* 802D9BD0 002D6B10 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9BD4 002D6B14 4B FF F9 B1 */ bl __ct__10JKRDvdFileFv -/* 802D9BD8 002D6B18 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9BDC 002D6B1C 7E E4 BB 78 */ mr r4, r23 -/* 802D9BE0 002D6B20 4B FF FC 71 */ bl open__10JKRDvdFileFPCc -/* 802D9BE4 002D6B24 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D9BE8 002D6B28 40 82 00 18 */ bne lbl_802D9C00 -/* 802D9BEC 002D6B2C 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9BF0 002D6B30 38 80 FF FF */ li r4, -1 -/* 802D9BF4 002D6B34 4B FF FB 55 */ bl __dt__10JKRDvdFileFv -/* 802D9BF8 002D6B38 38 60 00 00 */ li r3, 0 -/* 802D9BFC 002D6B3C 48 00 00 40 */ b lbl_802D9C3C -lbl_802D9C00: -/* 802D9C00 002D6B40 93 E1 00 08 */ stw r31, 8(r1) -/* 802D9C04 002D6B44 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9C08 002D6B48 7F 04 C3 78 */ mr r4, r24 -/* 802D9C0C 002D6B4C 7F 25 CB 78 */ mr r5, r25 -/* 802D9C10 002D6B50 7F 46 D3 78 */ mr r6, r26 -/* 802D9C14 002D6B54 7F 67 DB 78 */ mr r7, r27 -/* 802D9C18 002D6B58 7F 88 E3 78 */ mr r8, r28 -/* 802D9C1C 002D6B5C 7F A9 EB 78 */ mr r9, r29 -/* 802D9C20 002D6B60 7F CA F3 78 */ mr r10, r30 -/* 802D9C24 002D6B64 48 00 00 ED */ bl JKRDvdRipper_NS_loadToMainRAM_X2_ -/* 802D9C28 002D6B68 7C 7F 1B 78 */ mr r31, r3 -/* 802D9C2C 002D6B6C 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9C30 002D6B70 38 80 FF FF */ li r4, -1 -/* 802D9C34 002D6B74 4B FF FB 15 */ bl __dt__10JKRDvdFileFv -/* 802D9C38 002D6B78 7F E3 FB 78 */ mr r3, r31 -lbl_802D9C3C: -/* 802D9C3C 002D6B7C 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D9C40 002D6B80 48 08 85 D1 */ bl func_80362210 -/* 802D9C44 002D6B84 80 01 01 34 */ lwz r0, 0x134(r1) -/* 802D9C48 002D6B88 7C 08 03 A6 */ mtlr r0 -/* 802D9C4C 002D6B8C 38 21 01 30 */ addi r1, r1, 0x130 -/* 802D9C50 002D6B90 4E 80 00 20 */ blr - -.global JKRDvdRipper_NS_loadToMainRAM_X1_ -JKRDvdRipper_NS_loadToMainRAM_X1_: -/* 802D9C54 002D6B94 94 21 FE D0 */ stwu r1, -0x130(r1) -/* 802D9C58 002D6B98 7C 08 02 A6 */ mflr r0 -/* 802D9C5C 002D6B9C 90 01 01 34 */ stw r0, 0x134(r1) -/* 802D9C60 002D6BA0 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D9C64 002D6BA4 48 08 85 61 */ bl func_803621C4 -/* 802D9C68 002D6BA8 7C 77 1B 78 */ mr r23, r3 -/* 802D9C6C 002D6BAC 7C 98 23 78 */ mr r24, r4 -/* 802D9C70 002D6BB0 7C B9 2B 78 */ mr r25, r5 -/* 802D9C74 002D6BB4 7C DA 33 78 */ mr r26, r6 -/* 802D9C78 002D6BB8 7C FB 3B 78 */ mr r27, r7 -/* 802D9C7C 002D6BBC 7D 1C 43 78 */ mr r28, r8 -/* 802D9C80 002D6BC0 7D 3D 4B 78 */ mr r29, r9 -/* 802D9C84 002D6BC4 7D 5E 53 78 */ mr r30, r10 -/* 802D9C88 002D6BC8 83 E1 01 38 */ lwz r31, 0x138(r1) -/* 802D9C8C 002D6BCC 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9C90 002D6BD0 4B FF F8 F5 */ bl __ct__10JKRDvdFileFv -/* 802D9C94 002D6BD4 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9C98 002D6BD8 7E E4 BB 78 */ mr r4, r23 -/* 802D9C9C 002D6BDC 4B FF FC 29 */ bl open__10JKRDvdFileFl -/* 802D9CA0 002D6BE0 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D9CA4 002D6BE4 40 82 00 18 */ bne lbl_802D9CBC -/* 802D9CA8 002D6BE8 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9CAC 002D6BEC 38 80 FF FF */ li r4, -1 -/* 802D9CB0 002D6BF0 4B FF FA 99 */ bl __dt__10JKRDvdFileFv -/* 802D9CB4 002D6BF4 38 60 00 00 */ li r3, 0 -/* 802D9CB8 002D6BF8 48 00 00 40 */ b lbl_802D9CF8 -lbl_802D9CBC: -/* 802D9CBC 002D6BFC 93 E1 00 08 */ stw r31, 8(r1) -/* 802D9CC0 002D6C00 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9CC4 002D6C04 7F 04 C3 78 */ mr r4, r24 -/* 802D9CC8 002D6C08 7F 25 CB 78 */ mr r5, r25 -/* 802D9CCC 002D6C0C 7F 46 D3 78 */ mr r6, r26 -/* 802D9CD0 002D6C10 7F 67 DB 78 */ mr r7, r27 -/* 802D9CD4 002D6C14 7F 88 E3 78 */ mr r8, r28 -/* 802D9CD8 002D6C18 7F A9 EB 78 */ mr r9, r29 -/* 802D9CDC 002D6C1C 7F CA F3 78 */ mr r10, r30 -/* 802D9CE0 002D6C20 48 00 00 31 */ bl JKRDvdRipper_NS_loadToMainRAM_X2_ -/* 802D9CE4 002D6C24 7C 7F 1B 78 */ mr r31, r3 -/* 802D9CE8 002D6C28 38 61 00 10 */ addi r3, r1, 0x10 -/* 802D9CEC 002D6C2C 38 80 FF FF */ li r4, -1 -/* 802D9CF0 002D6C30 4B FF FA 59 */ bl __dt__10JKRDvdFileFv -/* 802D9CF4 002D6C34 7F E3 FB 78 */ mr r3, r31 -lbl_802D9CF8: -/* 802D9CF8 002D6C38 39 61 01 30 */ addi r11, r1, 0x130 -/* 802D9CFC 002D6C3C 48 08 85 15 */ bl func_80362210 -/* 802D9D00 002D6C40 80 01 01 34 */ lwz r0, 0x134(r1) -/* 802D9D04 002D6C44 7C 08 03 A6 */ mtlr r0 -/* 802D9D08 002D6C48 38 21 01 30 */ addi r1, r1, 0x130 -/* 802D9D0C 002D6C4C 4E 80 00 20 */ blr - -.global JKRDvdRipper_NS_loadToMainRAM_X2_ -JKRDvdRipper_NS_loadToMainRAM_X2_: -/* 802D9D10 002D6C50 94 21 FF 40 */ stwu r1, -0xc0(r1) -/* 802D9D14 002D6C54 7C 08 02 A6 */ mflr r0 -/* 802D9D18 002D6C58 90 01 00 C4 */ stw r0, 0xc4(r1) -/* 802D9D1C 002D6C5C 39 61 00 C0 */ addi r11, r1, 0xc0 -/* 802D9D20 002D6C60 48 08 84 91 */ bl func_803621B0 -/* 802D9D24 002D6C64 7C 76 1B 78 */ mr r22, r3 -/* 802D9D28 002D6C68 7C 9C 23 78 */ mr r28, r4 -/* 802D9D2C 002D6C6C 7C B5 2B 78 */ mr r21, r5 -/* 802D9D30 002D6C70 7C DF 33 78 */ mr r31, r6 -/* 802D9D34 002D6C74 7C F4 3B 78 */ mr r20, r7 -/* 802D9D38 002D6C78 7D 12 43 78 */ mr r18, r8 -/* 802D9D3C 002D6C7C 7D 3E 4B 78 */ mr r30, r9 -/* 802D9D40 002D6C80 7D 53 53 78 */ mr r19, r10 -/* 802D9D44 002D6C84 82 E1 00 C8 */ lwz r23, 0xc8(r1) -/* 802D9D48 002D6C88 3B 20 00 00 */ li r25, 0 -/* 802D9D4C 002D6C8C 3B 60 00 00 */ li r27, 0 -/* 802D9D50 002D6C90 3B A0 00 00 */ li r29, 0 -/* 802D9D54 002D6C94 81 83 00 00 */ lwz r12, 0(r3) -/* 802D9D58 002D6C98 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802D9D5C 002D6C9C 7D 89 03 A6 */ mtctr r12 -/* 802D9D60 002D6CA0 4E 80 04 21 */ bctrl -/* 802D9D64 002D6CA4 38 03 00 1F */ addi r0, r3, 0x1f -/* 802D9D68 002D6CA8 54 18 00 34 */ rlwinm r24, r0, 0, 0, 0x1a -/* 802D9D6C 002D6CAC 2C 15 00 01 */ cmpwi r21, 1 -/* 802D9D70 002D6CB0 40 82 00 94 */ bne lbl_802D9E04 -/* 802D9D74 002D6CB4 38 01 00 67 */ addi r0, r1, 0x67 -/* 802D9D78 002D6CB8 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a -lbl_802D9D7C: -/* 802D9D7C 002D6CBC 38 76 00 5C */ addi r3, r22, 0x5c -/* 802D9D80 002D6CC0 7F 44 D3 78 */ mr r4, r26 -/* 802D9D84 002D6CC4 38 A0 00 20 */ li r5, 0x20 -/* 802D9D88 002D6CC8 38 C0 00 00 */ li r6, 0 -/* 802D9D8C 002D6CCC 38 E0 00 02 */ li r7, 2 -/* 802D9D90 002D6CD0 48 06 F0 B5 */ bl DVDReadPrio -/* 802D9D94 002D6CD4 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9D98 002D6CD8 40 80 00 28 */ bge lbl_802D9DC0 -/* 802D9D9C 002D6CDC 2C 03 FF FD */ cmpwi r3, -3 -/* 802D9DA0 002D6CE0 41 82 00 10 */ beq lbl_802D9DB0 -/* 802D9DA4 002D6CE4 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) -/* 802D9DA8 002D6CE8 28 00 00 00 */ cmplwi r0, 0 -/* 802D9DAC 002D6CEC 40 82 00 0C */ bne lbl_802D9DB8 -lbl_802D9DB0: -/* 802D9DB0 002D6CF0 38 60 00 00 */ li r3, 0 -/* 802D9DB4 002D6CF4 48 00 04 18 */ b lbl_802DA1CC -lbl_802D9DB8: -/* 802D9DB8 002D6CF8 48 07 2C 0D */ bl VIWaitForRetrace -/* 802D9DBC 002D6CFC 4B FF FF C0 */ b lbl_802D9D7C -lbl_802D9DC0: -/* 802D9DC0 002D6D00 7F 43 D3 78 */ mr r3, r26 -/* 802D9DC4 002D6D04 38 80 00 20 */ li r4, 0x20 -/* 802D9DC8 002D6D08 48 06 17 B9 */ bl DCInvalidateRange -/* 802D9DCC 002D6D0C 7F 43 D3 78 */ mr r3, r26 -/* 802D9DD0 002D6D10 48 00 1F 29 */ bl JKRDecomp_NS_checkCompressed -/* 802D9DD4 002D6D14 2C 03 00 03 */ cmpwi r3, 3 -/* 802D9DD8 002D6D18 40 82 00 08 */ bne lbl_802D9DE0 -/* 802D9DDC 002D6D1C 38 60 00 00 */ li r3, 0 -lbl_802D9DE0: -/* 802D9DE0 002D6D20 7C 7B 1B 78 */ mr r27, r3 -/* 802D9DE4 002D6D24 88 BA 00 07 */ lbz r5, 7(r26) -/* 802D9DE8 002D6D28 88 9A 00 06 */ lbz r4, 6(r26) -/* 802D9DEC 002D6D2C 88 7A 00 04 */ lbz r3, 4(r26) -/* 802D9DF0 002D6D30 88 1A 00 05 */ lbz r0, 5(r26) -/* 802D9DF4 002D6D34 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D9DF8 002D6D38 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D9DFC 002D6D3C 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D9E00 002D6D40 7C BA 03 78 */ or r26, r5, r0 -lbl_802D9E04: -/* 802D9E04 002D6D44 28 13 00 00 */ cmplwi r19, 0 -/* 802D9E08 002D6D48 41 82 00 08 */ beq lbl_802D9E10 -/* 802D9E0C 002D6D4C 93 73 00 00 */ stw r27, 0(r19) -lbl_802D9E10: -/* 802D9E10 002D6D50 2C 15 00 01 */ cmpwi r21, 1 -/* 802D9E14 002D6D54 40 82 00 9C */ bne lbl_802D9EB0 -/* 802D9E18 002D6D58 2C 1B 00 00 */ cmpwi r27, 0 -/* 802D9E1C 002D6D5C 41 82 00 94 */ beq lbl_802D9EB0 -/* 802D9E20 002D6D60 28 1F 00 00 */ cmplwi r31, 0 -/* 802D9E24 002D6D64 41 82 00 10 */ beq lbl_802D9E34 -/* 802D9E28 002D6D68 7C 1A F8 40 */ cmplw r26, r31 -/* 802D9E2C 002D6D6C 40 81 00 08 */ ble lbl_802D9E34 -/* 802D9E30 002D6D70 7F FA FB 78 */ mr r26, r31 -lbl_802D9E34: -/* 802D9E34 002D6D74 28 1C 00 00 */ cmplwi r28, 0 -/* 802D9E38 002D6D78 40 82 00 28 */ bne lbl_802D9E60 -/* 802D9E3C 002D6D7C 7F 43 D3 78 */ mr r3, r26 -/* 802D9E40 002D6D80 2C 12 00 01 */ cmpwi r18, 1 -/* 802D9E44 002D6D84 38 80 FF E0 */ li r4, -32 -/* 802D9E48 002D6D88 40 82 00 08 */ bne lbl_802D9E50 -/* 802D9E4C 002D6D8C 38 80 00 20 */ li r4, 0x20 -lbl_802D9E50: -/* 802D9E50 002D6D90 7E 85 A3 78 */ mr r5, r20 -/* 802D9E54 002D6D94 4B FF 46 21 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D9E58 002D6D98 7C 7C 1B 78 */ mr r28, r3 -/* 802D9E5C 002D6D9C 3B 20 00 01 */ li r25, 1 -lbl_802D9E60: -/* 802D9E60 002D6DA0 28 1C 00 00 */ cmplwi r28, 0 -/* 802D9E64 002D6DA4 40 82 00 0C */ bne lbl_802D9E70 -/* 802D9E68 002D6DA8 38 60 00 00 */ li r3, 0 -/* 802D9E6C 002D6DAC 48 00 03 60 */ b lbl_802DA1CC -lbl_802D9E70: -/* 802D9E70 002D6DB0 2C 1B 00 01 */ cmpwi r27, 1 -/* 802D9E74 002D6DB4 40 82 00 8C */ bne lbl_802D9F00 -/* 802D9E78 002D6DB8 7F 03 C3 78 */ mr r3, r24 -/* 802D9E7C 002D6DBC 38 80 00 20 */ li r4, 0x20 -/* 802D9E80 002D6DC0 7E 85 A3 78 */ mr r5, r20 -/* 802D9E84 002D6DC4 4B FF 45 F1 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D9E88 002D6DC8 7C 7D 1B 79 */ or. r29, r3, r3 -/* 802D9E8C 002D6DCC 40 82 00 74 */ bne lbl_802D9F00 -/* 802D9E90 002D6DD0 57 20 06 3E */ clrlwi r0, r25, 0x18 -/* 802D9E94 002D6DD4 28 00 00 01 */ cmplwi r0, 1 -/* 802D9E98 002D6DD8 40 82 00 68 */ bne lbl_802D9F00 -/* 802D9E9C 002D6DDC 7F 83 E3 78 */ mr r3, r28 -/* 802D9EA0 002D6DE0 38 80 00 00 */ li r4, 0 -/* 802D9EA4 002D6DE4 4B FF 46 5D */ bl free__7JKRHeapFPvP7JKRHeap -/* 802D9EA8 002D6DE8 38 60 00 00 */ li r3, 0 -/* 802D9EAC 002D6DEC 48 00 03 20 */ b lbl_802DA1CC -lbl_802D9EB0: -/* 802D9EB0 002D6DF0 28 1C 00 00 */ cmplwi r28, 0 -/* 802D9EB4 002D6DF4 40 82 00 3C */ bne lbl_802D9EF0 -/* 802D9EB8 002D6DF8 7C 7E C0 50 */ subf r3, r30, r24 -/* 802D9EBC 002D6DFC 28 1F 00 00 */ cmplwi r31, 0 -/* 802D9EC0 002D6E00 41 82 00 10 */ beq lbl_802D9ED0 -/* 802D9EC4 002D6E04 7C 03 F8 40 */ cmplw r3, r31 -/* 802D9EC8 002D6E08 40 81 00 08 */ ble lbl_802D9ED0 -/* 802D9ECC 002D6E0C 7F E3 FB 78 */ mr r3, r31 -lbl_802D9ED0: -/* 802D9ED0 002D6E10 2C 12 00 01 */ cmpwi r18, 1 -/* 802D9ED4 002D6E14 38 80 FF E0 */ li r4, -32 -/* 802D9ED8 002D6E18 40 82 00 08 */ bne lbl_802D9EE0 -/* 802D9EDC 002D6E1C 38 80 00 20 */ li r4, 0x20 -lbl_802D9EE0: -/* 802D9EE0 002D6E20 7E 85 A3 78 */ mr r5, r20 -/* 802D9EE4 002D6E24 4B FF 45 91 */ bl alloc__7JKRHeapFUliP7JKRHeap -/* 802D9EE8 002D6E28 7C 7C 1B 78 */ mr r28, r3 -/* 802D9EEC 002D6E2C 3B 20 00 01 */ li r25, 1 -lbl_802D9EF0: -/* 802D9EF0 002D6E30 28 1C 00 00 */ cmplwi r28, 0 -/* 802D9EF4 002D6E34 40 82 00 0C */ bne lbl_802D9F00 -/* 802D9EF8 002D6E38 38 60 00 00 */ li r3, 0 -/* 802D9EFC 002D6E3C 48 00 02 D0 */ b lbl_802DA1CC -lbl_802D9F00: -/* 802D9F00 002D6E40 2C 1B 00 00 */ cmpwi r27, 0 -/* 802D9F04 002D6E44 40 82 01 8C */ bne lbl_802DA090 -/* 802D9F08 002D6E48 38 60 00 00 */ li r3, 0 -/* 802D9F0C 002D6E4C 28 1E 00 00 */ cmplwi r30, 0 -/* 802D9F10 002D6E50 41 82 00 8C */ beq lbl_802D9F9C -/* 802D9F14 002D6E54 38 01 00 27 */ addi r0, r1, 0x27 -/* 802D9F18 002D6E58 54 13 00 34 */ rlwinm r19, r0, 0, 0, 0x1a -/* 802D9F1C 002D6E5C 7F D2 F3 78 */ mr r18, r30 -lbl_802D9F20: -/* 802D9F20 002D6E60 38 76 00 5C */ addi r3, r22, 0x5c -/* 802D9F24 002D6E64 7E 64 9B 78 */ mr r4, r19 -/* 802D9F28 002D6E68 38 A0 00 20 */ li r5, 0x20 -/* 802D9F2C 002D6E6C 7E 46 93 78 */ mr r6, r18 -/* 802D9F30 002D6E70 38 E0 00 02 */ li r7, 2 -/* 802D9F34 002D6E74 48 06 EF 11 */ bl DVDReadPrio -/* 802D9F38 002D6E78 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9F3C 002D6E7C 40 80 00 40 */ bge lbl_802D9F7C -/* 802D9F40 002D6E80 2C 03 FF FD */ cmpwi r3, -3 -/* 802D9F44 002D6E84 41 82 00 10 */ beq lbl_802D9F54 -/* 802D9F48 002D6E88 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) -/* 802D9F4C 002D6E8C 28 00 00 00 */ cmplwi r0, 0 -/* 802D9F50 002D6E90 40 82 00 24 */ bne lbl_802D9F74 -lbl_802D9F54: -/* 802D9F54 002D6E94 57 20 06 3E */ clrlwi r0, r25, 0x18 -/* 802D9F58 002D6E98 28 00 00 01 */ cmplwi r0, 1 -/* 802D9F5C 002D6E9C 40 82 00 10 */ bne lbl_802D9F6C -/* 802D9F60 002D6EA0 7F 83 E3 78 */ mr r3, r28 -/* 802D9F64 002D6EA4 38 80 00 00 */ li r4, 0 -/* 802D9F68 002D6EA8 4B FF 45 99 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D9F6C: -/* 802D9F6C 002D6EAC 38 60 00 00 */ li r3, 0 -/* 802D9F70 002D6EB0 48 00 02 5C */ b lbl_802DA1CC -lbl_802D9F74: -/* 802D9F74 002D6EB4 48 07 2A 51 */ bl VIWaitForRetrace -/* 802D9F78 002D6EB8 4B FF FF A8 */ b lbl_802D9F20 -lbl_802D9F7C: -/* 802D9F7C 002D6EBC 7E 63 9B 78 */ mr r3, r19 -/* 802D9F80 002D6EC0 38 80 00 20 */ li r4, 0x20 -/* 802D9F84 002D6EC4 48 06 15 FD */ bl DCInvalidateRange -/* 802D9F88 002D6EC8 7E 63 9B 78 */ mr r3, r19 -/* 802D9F8C 002D6ECC 48 00 1D 6D */ bl JKRDecomp_NS_checkCompressed -/* 802D9F90 002D6ED0 2C 03 00 03 */ cmpwi r3, 3 -/* 802D9F94 002D6ED4 40 82 00 08 */ bne lbl_802D9F9C -/* 802D9F98 002D6ED8 38 60 00 00 */ li r3, 0 -lbl_802D9F9C: -/* 802D9F9C 002D6EDC 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9FA0 002D6EE0 41 82 00 14 */ beq lbl_802D9FB4 -/* 802D9FA4 002D6EE4 2C 15 00 02 */ cmpwi r21, 2 -/* 802D9FA8 002D6EE8 41 82 00 0C */ beq lbl_802D9FB4 -/* 802D9FAC 002D6EEC 2C 15 00 00 */ cmpwi r21, 0 -/* 802D9FB0 002D6EF0 40 82 00 90 */ bne lbl_802DA040 -lbl_802D9FB4: -/* 802D9FB4 002D6EF4 7E 7E C0 50 */ subf r19, r30, r24 -/* 802D9FB8 002D6EF8 28 1F 00 00 */ cmplwi r31, 0 -/* 802D9FBC 002D6EFC 41 82 00 10 */ beq lbl_802D9FCC -/* 802D9FC0 002D6F00 7C 1F 98 40 */ cmplw r31, r19 -/* 802D9FC4 002D6F04 40 80 00 08 */ bge lbl_802D9FCC -/* 802D9FC8 002D6F08 7F F3 FB 78 */ mr r19, r31 -lbl_802D9FCC: -/* 802D9FCC 002D6F0C 7F D2 F3 78 */ mr r18, r30 -lbl_802D9FD0: -/* 802D9FD0 002D6F10 38 76 00 5C */ addi r3, r22, 0x5c -/* 802D9FD4 002D6F14 7F 84 E3 78 */ mr r4, r28 -/* 802D9FD8 002D6F18 7E 65 9B 78 */ mr r5, r19 -/* 802D9FDC 002D6F1C 7E 46 93 78 */ mr r6, r18 -/* 802D9FE0 002D6F20 38 E0 00 02 */ li r7, 2 -/* 802D9FE4 002D6F24 48 06 EE 61 */ bl DVDReadPrio -/* 802D9FE8 002D6F28 2C 03 00 00 */ cmpwi r3, 0 -/* 802D9FEC 002D6F2C 40 80 00 40 */ bge lbl_802DA02C -/* 802D9FF0 002D6F30 2C 03 FF FD */ cmpwi r3, -3 -/* 802D9FF4 002D6F34 41 82 00 10 */ beq lbl_802DA004 -/* 802D9FF8 002D6F38 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) -/* 802D9FFC 002D6F3C 28 00 00 00 */ cmplwi r0, 0 -/* 802DA000 002D6F40 40 82 00 24 */ bne lbl_802DA024 -lbl_802DA004: -/* 802DA004 002D6F44 57 20 06 3E */ clrlwi r0, r25, 0x18 -/* 802DA008 002D6F48 28 00 00 01 */ cmplwi r0, 1 -/* 802DA00C 002D6F4C 40 82 00 10 */ bne lbl_802DA01C -/* 802DA010 002D6F50 7F 83 E3 78 */ mr r3, r28 -/* 802DA014 002D6F54 38 80 00 00 */ li r4, 0 -/* 802DA018 002D6F58 4B FF 44 E9 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802DA01C: -/* 802DA01C 002D6F5C 38 60 00 00 */ li r3, 0 -/* 802DA020 002D6F60 48 00 01 AC */ b lbl_802DA1CC -lbl_802DA024: -/* 802DA024 002D6F64 48 07 29 A1 */ bl VIWaitForRetrace -/* 802DA028 002D6F68 4B FF FF A8 */ b lbl_802D9FD0 -lbl_802DA02C: -/* 802DA02C 002D6F6C 28 17 00 00 */ cmplwi r23, 0 -/* 802DA030 002D6F70 41 82 00 08 */ beq lbl_802DA038 -/* 802DA034 002D6F74 92 77 00 00 */ stw r19, 0(r23) -lbl_802DA038: -/* 802DA038 002D6F78 7F 83 E3 78 */ mr r3, r28 -/* 802DA03C 002D6F7C 48 00 01 90 */ b lbl_802DA1CC -lbl_802DA040: -/* 802DA040 002D6F80 2C 03 00 02 */ cmpwi r3, 2 -/* 802DA044 002D6F84 40 82 00 28 */ bne lbl_802DA06C -/* 802DA048 002D6F88 7E C3 B3 78 */ mr r3, r22 -/* 802DA04C 002D6F8C 7F 84 E3 78 */ mr r4, r28 -/* 802DA050 002D6F90 7F 05 C3 78 */ mr r5, r24 -/* 802DA054 002D6F94 7F E6 FB 78 */ mr r6, r31 -/* 802DA058 002D6F98 38 E0 00 00 */ li r7, 0 -/* 802DA05C 002D6F9C 7F C8 F3 78 */ mr r8, r30 -/* 802DA060 002D6FA0 7E E9 BB 78 */ mr r9, r23 -/* 802DA064 002D6FA4 48 00 01 81 */ bl JKRDecompressFromDVD -/* 802DA068 002D6FA8 48 00 00 20 */ b lbl_802DA088 -lbl_802DA06C: -/* 802DA06C 002D6FAC 3C 60 80 3A */ lis r3, lbl_8039D290@ha -/* 802DA070 002D6FB0 38 63 D2 90 */ addi r3, r3, lbl_8039D290@l -/* 802DA074 002D6FB4 38 80 01 43 */ li r4, 0x143 -/* 802DA078 002D6FB8 38 A3 00 11 */ addi r5, r3, 0x11 -/* 802DA07C 002D6FBC 38 C3 00 14 */ addi r6, r3, 0x14 -/* 802DA080 002D6FC0 4C C6 31 82 */ crclr 6 -/* 802DA084 002D6FC4 48 00 81 79 */ bl JUTException_NS_panic_f -lbl_802DA088: -/* 802DA088 002D6FC8 7F 83 E3 78 */ mr r3, r28 -/* 802DA08C 002D6FCC 48 00 01 40 */ b lbl_802DA1CC -lbl_802DA090: -/* 802DA090 002D6FD0 2C 1B 00 01 */ cmpwi r27, 1 -/* 802DA094 002D6FD4 40 82 00 D0 */ bne lbl_802DA164 -/* 802DA098 002D6FD8 28 1E 00 00 */ cmplwi r30, 0 -/* 802DA09C 002D6FDC 41 82 00 20 */ beq lbl_802DA0BC -/* 802DA0A0 002D6FE0 3C 60 80 3A */ lis r3, lbl_8039D290@ha -/* 802DA0A4 002D6FE4 38 63 D2 90 */ addi r3, r3, lbl_8039D290@l -/* 802DA0A8 002D6FE8 38 80 01 4D */ li r4, 0x14d -/* 802DA0AC 002D6FEC 38 A3 00 11 */ addi r5, r3, 0x11 -/* 802DA0B0 002D6FF0 38 C3 00 38 */ addi r6, r3, 0x38 -/* 802DA0B4 002D6FF4 4C C6 31 82 */ crclr 6 -/* 802DA0B8 002D6FF8 48 00 81 45 */ bl JUTException_NS_panic_f -lbl_802DA0BC: -/* 802DA0BC 002D6FFC 38 76 00 5C */ addi r3, r22, 0x5c -/* 802DA0C0 002D7000 7F A4 EB 78 */ mr r4, r29 -/* 802DA0C4 002D7004 7F 05 C3 78 */ mr r5, r24 -/* 802DA0C8 002D7008 38 C0 00 00 */ li r6, 0 -/* 802DA0CC 002D700C 38 E0 00 02 */ li r7, 2 -/* 802DA0D0 002D7010 48 06 ED 75 */ bl DVDReadPrio -/* 802DA0D4 002D7014 2C 03 00 00 */ cmpwi r3, 0 -/* 802DA0D8 002D7018 40 80 00 4C */ bge lbl_802DA124 -/* 802DA0DC 002D701C 2C 03 FF FD */ cmpwi r3, -3 -/* 802DA0E0 002D7020 41 82 00 10 */ beq lbl_802DA0F0 -/* 802DA0E4 002D7024 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) -/* 802DA0E8 002D7028 28 00 00 00 */ cmplwi r0, 0 -/* 802DA0EC 002D702C 40 82 00 30 */ bne lbl_802DA11C -lbl_802DA0F0: -/* 802DA0F0 002D7030 57 20 06 3E */ clrlwi r0, r25, 0x18 -/* 802DA0F4 002D7034 28 00 00 01 */ cmplwi r0, 1 -/* 802DA0F8 002D7038 40 82 00 10 */ bne lbl_802DA108 -/* 802DA0FC 002D703C 7F 83 E3 78 */ mr r3, r28 -/* 802DA100 002D7040 38 80 00 00 */ li r4, 0 -/* 802DA104 002D7044 4B FF 43 FD */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802DA108: -/* 802DA108 002D7048 7F A3 EB 78 */ mr r3, r29 -/* 802DA10C 002D704C 38 80 00 00 */ li r4, 0 -/* 802DA110 002D7050 4B FF 43 F1 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802DA114 002D7054 38 60 00 00 */ li r3, 0 -/* 802DA118 002D7058 48 00 00 B4 */ b lbl_802DA1CC -lbl_802DA11C: -/* 802DA11C 002D705C 48 07 28 A9 */ bl VIWaitForRetrace -/* 802DA120 002D7060 4B FF FF 9C */ b lbl_802DA0BC -lbl_802DA124: -/* 802DA124 002D7064 7F A3 EB 78 */ mr r3, r29 -/* 802DA128 002D7068 7F 04 C3 78 */ mr r4, r24 -/* 802DA12C 002D706C 48 06 14 55 */ bl DCInvalidateRange -/* 802DA130 002D7070 7F A3 EB 78 */ mr r3, r29 -/* 802DA134 002D7074 7F 84 E3 78 */ mr r4, r28 -/* 802DA138 002D7078 7F 45 D3 78 */ mr r5, r26 -/* 802DA13C 002D707C 7F C6 F3 78 */ mr r6, r30 -/* 802DA140 002D7080 48 00 18 49 */ bl JKRDecomp_NS_orderSync -/* 802DA144 002D7084 7F A3 EB 78 */ mr r3, r29 -/* 802DA148 002D7088 38 80 00 00 */ li r4, 0 -/* 802DA14C 002D708C 4B FF 43 B5 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802DA150 002D7090 28 17 00 00 */ cmplwi r23, 0 -/* 802DA154 002D7094 41 82 00 08 */ beq lbl_802DA15C -/* 802DA158 002D7098 93 57 00 00 */ stw r26, 0(r23) -lbl_802DA15C: -/* 802DA15C 002D709C 7F 83 E3 78 */ mr r3, r28 -/* 802DA160 002D70A0 48 00 00 6C */ b lbl_802DA1CC -lbl_802DA164: -/* 802DA164 002D70A4 2C 1B 00 02 */ cmpwi r27, 2 -/* 802DA168 002D70A8 40 82 00 4C */ bne lbl_802DA1B4 -/* 802DA16C 002D70AC 7E C3 B3 78 */ mr r3, r22 -/* 802DA170 002D70B0 7F 84 E3 78 */ mr r4, r28 -/* 802DA174 002D70B4 7F 05 C3 78 */ mr r5, r24 -/* 802DA178 002D70B8 7F 46 D3 78 */ mr r6, r26 -/* 802DA17C 002D70BC 7F C7 F3 78 */ mr r7, r30 -/* 802DA180 002D70C0 39 00 00 00 */ li r8, 0 -/* 802DA184 002D70C4 7E E9 BB 78 */ mr r9, r23 -/* 802DA188 002D70C8 48 00 00 5D */ bl JKRDecompressFromDVD -/* 802DA18C 002D70CC 28 03 00 00 */ cmplwi r3, 0 -/* 802DA190 002D70D0 41 82 00 1C */ beq lbl_802DA1AC -/* 802DA194 002D70D4 57 20 06 3F */ clrlwi. r0, r25, 0x18 -/* 802DA198 002D70D8 41 82 00 10 */ beq lbl_802DA1A8 -/* 802DA19C 002D70DC 7F 83 E3 78 */ mr r3, r28 -/* 802DA1A0 002D70E0 38 80 00 00 */ li r4, 0 -/* 802DA1A4 002D70E4 4B FF 43 5D */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802DA1A8: -/* 802DA1A8 002D70E8 3B 80 00 00 */ li r28, 0 -lbl_802DA1AC: -/* 802DA1AC 002D70EC 7F 83 E3 78 */ mr r3, r28 -/* 802DA1B0 002D70F0 48 00 00 1C */ b lbl_802DA1CC -lbl_802DA1B4: -/* 802DA1B4 002D70F4 57 20 06 3F */ clrlwi. r0, r25, 0x18 -/* 802DA1B8 002D70F8 41 82 00 10 */ beq lbl_802DA1C8 -/* 802DA1BC 002D70FC 7F 83 E3 78 */ mr r3, r28 -/* 802DA1C0 002D7100 38 80 00 00 */ li r4, 0 -/* 802DA1C4 002D7104 4B FF 43 3D */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802DA1C8: -/* 802DA1C8 002D7108 38 60 00 00 */ li r3, 0 -lbl_802DA1CC: -/* 802DA1CC 002D710C 39 61 00 C0 */ addi r11, r1, 0xc0 -/* 802DA1D0 002D7110 48 08 80 2D */ bl func_803621FC -/* 802DA1D4 002D7114 80 01 00 C4 */ lwz r0, 0xc4(r1) -/* 802DA1D8 002D7118 7C 08 03 A6 */ mtlr r0 -/* 802DA1DC 002D711C 38 21 00 C0 */ addi r1, r1, 0xc0 -/* 802DA1E0 002D7120 4E 80 00 20 */ blr - -.global JKRDecompressFromDVD -JKRDecompressFromDVD: -/* 802DA1E4 002D7124 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802DA1E8 002D7128 7C 08 02 A6 */ mflr r0 -/* 802DA1EC 002D712C 90 01 00 34 */ stw r0, 0x34(r1) -/* 802DA1F0 002D7130 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DA1F4 002D7134 48 08 7F D5 */ bl func_803621C8 -/* 802DA1F8 002D7138 7C 79 1B 78 */ mr r25, r3 -/* 802DA1FC 002D713C 7C 9A 23 78 */ mr r26, r4 -/* 802DA200 002D7140 7C BB 2B 78 */ mr r27, r5 -/* 802DA204 002D7144 7C DC 33 78 */ mr r28, r6 -/* 802DA208 002D7148 7C FD 3B 78 */ mr r29, r7 -/* 802DA20C 002D714C 7D 1E 43 78 */ mr r30, r8 -/* 802DA210 002D7150 7D 3F 4B 78 */ mr r31, r9 -/* 802DA214 002D7154 48 06 34 E1 */ bl __RAS_OSDisableInterrupts_begin -/* 802DA218 002D7158 7C 78 1B 78 */ mr r24, r3 -/* 802DA21C 002D715C 88 0D 8E D8 */ lbz r0, lbl_80451458-_SDA_BASE_(r13) -/* 802DA220 002D7160 28 00 00 00 */ cmplwi r0, 0 -/* 802DA224 002D7164 40 82 00 18 */ bne lbl_802DA23C -/* 802DA228 002D7168 3C 60 80 43 */ lis r3, lbl_80434390@ha -/* 802DA22C 002D716C 38 63 43 90 */ addi r3, r3, lbl_80434390@l -/* 802DA230 002D7170 48 06 4D D9 */ bl OSInitMutex -/* 802DA234 002D7174 38 00 00 01 */ li r0, 1 -/* 802DA238 002D7178 98 0D 8E D8 */ stb r0, lbl_80451458-_SDA_BASE_(r13) -lbl_802DA23C: -/* 802DA23C 002D717C 7F 03 C3 78 */ mr r3, r24 -/* 802DA240 002D7180 48 06 34 DD */ bl OSRestoreInterrupts -/* 802DA244 002D7184 3C 60 80 43 */ lis r3, lbl_80434390@ha -/* 802DA248 002D7188 38 63 43 90 */ addi r3, r3, lbl_80434390@l -/* 802DA24C 002D718C 48 06 4D F5 */ bl OSLockMutex -/* 802DA250 002D7190 83 0D 83 4C */ lwz r24, lbl_804508CC-_SDA_BASE_(r13) -/* 802DA254 002D7194 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802DA258 002D7198 7F 04 C3 78 */ mr r4, r24 -/* 802DA25C 002D719C 38 A0 FF E0 */ li r5, -32 -/* 802DA260 002D71A0 4B FF 42 75 */ bl alloc__7JKRHeapFUli -/* 802DA264 002D71A4 90 6D 8E A8 */ stw r3, lbl_80451428-_SDA_BASE_(r13) -/* 802DA268 002D71A8 7C 03 C2 14 */ add r0, r3, r24 -/* 802DA26C 002D71AC 90 0D 8E AC */ stw r0, lbl_8045142C-_SDA_BASE_(r13) -/* 802DA270 002D71B0 28 1D 00 00 */ cmplwi r29, 0 -/* 802DA274 002D71B4 41 82 00 28 */ beq lbl_802DA29C -/* 802DA278 002D71B8 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) -/* 802DA27C 002D71BC 38 80 11 20 */ li r4, 0x1120 -/* 802DA280 002D71C0 38 A0 FF FC */ li r5, -4 -/* 802DA284 002D71C4 4B FF 42 51 */ bl alloc__7JKRHeapFUli -/* 802DA288 002D71C8 90 6D 8E B0 */ stw r3, lbl_80451430-_SDA_BASE_(r13) -/* 802DA28C 002D71CC 38 03 11 20 */ addi r0, r3, 0x1120 -/* 802DA290 002D71D0 90 0D 8E B4 */ stw r0, lbl_80451434-_SDA_BASE_(r13) -/* 802DA294 002D71D4 90 6D 8E B8 */ stw r3, lbl_80451438-_SDA_BASE_(r13) -/* 802DA298 002D71D8 48 00 00 0C */ b lbl_802DA2A4 -lbl_802DA29C: -/* 802DA29C 002D71DC 38 00 00 00 */ li r0, 0 -/* 802DA2A0 002D71E0 90 0D 8E B0 */ stw r0, lbl_80451430-_SDA_BASE_(r13) -lbl_802DA2A4: -/* 802DA2A4 002D71E4 93 2D 8E C8 */ stw r25, lbl_80451448-_SDA_BASE_(r13) -/* 802DA2A8 002D71E8 93 CD 8E BC */ stw r30, lbl_8045143C-_SDA_BASE_(r13) -/* 802DA2AC 002D71EC 7C 1E D8 50 */ subf r0, r30, r27 -/* 802DA2B0 002D71F0 90 0D 8E C0 */ stw r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA2B4 002D71F4 93 AD 8E CC */ stw r29, lbl_8045144C-_SDA_BASE_(r13) -/* 802DA2B8 002D71F8 38 00 00 00 */ li r0, 0 -/* 802DA2BC 002D71FC 90 0D 8E D0 */ stw r0, lbl_80451450-_SDA_BASE_(r13) -/* 802DA2C0 002D7200 93 8D 8E D4 */ stw r28, lbl_80451454-_SDA_BASE_(r13) -/* 802DA2C4 002D7204 28 1F 00 00 */ cmplwi r31, 0 -/* 802DA2C8 002D7208 41 82 00 0C */ beq lbl_802DA2D4 -/* 802DA2CC 002D720C 7F E3 FB 78 */ mr r3, r31 -/* 802DA2D0 002D7210 48 00 00 08 */ b lbl_802DA2D8 -lbl_802DA2D4: -/* 802DA2D4 002D7214 38 6D 8E E0 */ addi r3, r13, lbl_80451460-_SDA_BASE_ -lbl_802DA2D8: -/* 802DA2D8 002D7218 90 6D 8E DC */ stw r3, lbl_8045145C-_SDA_BASE_(r13) -/* 802DA2DC 002D721C 38 00 00 00 */ li r0, 0 -/* 802DA2E0 002D7220 90 03 00 00 */ stw r0, 0(r3) -/* 802DA2E4 002D7224 48 00 03 29 */ bl firstSrcData_X1_ -/* 802DA2E8 002D7228 28 03 00 00 */ cmplwi r3, 0 -/* 802DA2EC 002D722C 41 82 00 10 */ beq lbl_802DA2FC -/* 802DA2F0 002D7230 7F 44 D3 78 */ mr r4, r26 -/* 802DA2F4 002D7234 48 00 00 69 */ bl decompSZS_subroutine_X1_ -/* 802DA2F8 002D7238 48 00 00 08 */ b lbl_802DA300 -lbl_802DA2FC: -/* 802DA2FC 002D723C 38 60 FF FF */ li r3, -1 -lbl_802DA300: -/* 802DA300 002D7240 7C 78 1B 78 */ mr r24, r3 -/* 802DA304 002D7244 80 6D 8E A8 */ lwz r3, lbl_80451428-_SDA_BASE_(r13) -/* 802DA308 002D7248 38 80 00 00 */ li r4, 0 -/* 802DA30C 002D724C 4B FF 41 F5 */ bl free__7JKRHeapFPvP7JKRHeap -/* 802DA310 002D7250 80 6D 8E B0 */ lwz r3, lbl_80451430-_SDA_BASE_(r13) -/* 802DA314 002D7254 28 03 00 00 */ cmplwi r3, 0 -/* 802DA318 002D7258 41 82 00 0C */ beq lbl_802DA324 -/* 802DA31C 002D725C 38 80 00 00 */ li r4, 0 -/* 802DA320 002D7260 4B FF 41 E1 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802DA324: -/* 802DA324 002D7264 7F 43 D3 78 */ mr r3, r26 -/* 802DA328 002D7268 80 8D 8E DC */ lwz r4, lbl_8045145C-_SDA_BASE_(r13) -/* 802DA32C 002D726C 80 84 00 00 */ lwz r4, 0(r4) -/* 802DA330 002D7270 48 06 13 09 */ bl DCStoreRangeNoSync -/* 802DA334 002D7274 3C 60 80 43 */ lis r3, lbl_80434390@ha -/* 802DA338 002D7278 38 63 43 90 */ addi r3, r3, lbl_80434390@l -/* 802DA33C 002D727C 48 06 4D E1 */ bl OSUnlockMutex -/* 802DA340 002D7280 7F 03 C3 78 */ mr r3, r24 -/* 802DA344 002D7284 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DA348 002D7288 48 08 7E CD */ bl func_80362214 -/* 802DA34C 002D728C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802DA350 002D7290 7C 08 03 A6 */ mtlr r0 -/* 802DA354 002D7294 38 21 00 30 */ addi r1, r1, 0x30 -/* 802DA358 002D7298 4E 80 00 20 */ blr - -.global decompSZS_subroutine_X1_ -decompSZS_subroutine_X1_: -/* 802DA35C 002D729C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DA360 002D72A0 7C 08 02 A6 */ mflr r0 -/* 802DA364 002D72A4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DA368 002D72A8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DA36C 002D72AC 48 08 7E 71 */ bl _savegpr_29 -/* 802DA370 002D72B0 7C 9D 23 78 */ mr r29, r4 -/* 802DA374 002D72B4 38 80 00 00 */ li r4, 0 -/* 802DA378 002D72B8 38 00 00 00 */ li r0, 0 -/* 802DA37C 002D72BC 3B C0 00 00 */ li r30, 0 -/* 802DA380 002D72C0 88 A3 00 00 */ lbz r5, 0(r3) -/* 802DA384 002D72C4 2C 05 00 59 */ cmpwi r5, 0x59 -/* 802DA388 002D72C8 40 82 00 28 */ bne lbl_802DA3B0 -/* 802DA38C 002D72CC 88 A3 00 01 */ lbz r5, 1(r3) -/* 802DA390 002D72D0 2C 05 00 61 */ cmpwi r5, 0x61 -/* 802DA394 002D72D4 40 82 00 1C */ bne lbl_802DA3B0 -/* 802DA398 002D72D8 88 A3 00 02 */ lbz r5, 2(r3) -/* 802DA39C 002D72DC 2C 05 00 7A */ cmpwi r5, 0x7a -/* 802DA3A0 002D72E0 40 82 00 10 */ bne lbl_802DA3B0 -/* 802DA3A4 002D72E4 88 A3 00 03 */ lbz r5, 3(r3) -/* 802DA3A8 002D72E8 2C 05 00 30 */ cmpwi r5, 0x30 -/* 802DA3AC 002D72EC 41 82 00 0C */ beq lbl_802DA3B8 -lbl_802DA3B0: -/* 802DA3B0 002D72F0 38 60 FF FF */ li r3, -1 -/* 802DA3B4 002D72F4 48 00 02 40 */ b lbl_802DA5F4 -lbl_802DA3B8: -/* 802DA3B8 002D72F8 80 CD 8E CC */ lwz r6, lbl_8045144C-_SDA_BASE_(r13) -/* 802DA3BC 002D72FC 80 A3 00 04 */ lwz r5, 4(r3) -/* 802DA3C0 002D7300 7C A6 28 50 */ subf r5, r6, r5 -/* 802DA3C4 002D7304 7F FD 2A 14 */ add r31, r29, r5 -/* 802DA3C8 002D7308 80 AD 8E D4 */ lwz r5, lbl_80451454-_SDA_BASE_(r13) -/* 802DA3CC 002D730C 7C BD 2A 14 */ add r5, r29, r5 -/* 802DA3D0 002D7310 7C 1F 28 40 */ cmplw r31, r5 -/* 802DA3D4 002D7314 40 81 00 08 */ ble lbl_802DA3DC -/* 802DA3D8 002D7318 7C BF 2B 78 */ mr r31, r5 -lbl_802DA3DC: -/* 802DA3DC 002D731C 38 63 00 10 */ addi r3, r3, 0x10 -lbl_802DA3E0: -/* 802DA3E0 002D7320 2C 04 00 00 */ cmpwi r4, 0 -/* 802DA3E4 002D7324 40 82 00 3C */ bne lbl_802DA420 -/* 802DA3E8 002D7328 80 0D 8E C4 */ lwz r0, lbl_80451444-_SDA_BASE_(r13) -/* 802DA3EC 002D732C 7C 03 00 40 */ cmplw r3, r0 -/* 802DA3F0 002D7330 40 81 00 24 */ ble lbl_802DA414 -/* 802DA3F4 002D7334 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA3F8 002D7338 28 00 00 00 */ cmplwi r0, 0 -/* 802DA3FC 002D733C 41 82 00 18 */ beq lbl_802DA414 -/* 802DA400 002D7340 48 00 02 D9 */ bl nextSrcData_X1_ -/* 802DA404 002D7344 28 03 00 00 */ cmplwi r3, 0 -/* 802DA408 002D7348 40 82 00 0C */ bne lbl_802DA414 -/* 802DA40C 002D734C 38 60 FF FF */ li r3, -1 -/* 802DA410 002D7350 48 00 01 E4 */ b lbl_802DA5F4 -lbl_802DA414: -/* 802DA414 002D7354 88 03 00 00 */ lbz r0, 0(r3) -/* 802DA418 002D7358 38 80 00 08 */ li r4, 8 -/* 802DA41C 002D735C 38 63 00 01 */ addi r3, r3, 1 -lbl_802DA420: -/* 802DA420 002D7360 54 05 06 31 */ rlwinm. r5, r0, 0, 0x18, 0x18 -/* 802DA424 002D7364 41 82 00 94 */ beq lbl_802DA4B8 -/* 802DA428 002D7368 80 CD 8E CC */ lwz r6, lbl_8045144C-_SDA_BASE_(r13) -/* 802DA42C 002D736C 28 06 00 00 */ cmplwi r6, 0 -/* 802DA430 002D7370 41 82 00 5C */ beq lbl_802DA48C -/* 802DA434 002D7374 80 AD 8E D0 */ lwz r5, lbl_80451450-_SDA_BASE_(r13) -/* 802DA438 002D7378 7C 05 30 40 */ cmplw r5, r6 -/* 802DA43C 002D737C 41 80 00 1C */ blt lbl_802DA458 -/* 802DA440 002D7380 88 A3 00 00 */ lbz r5, 0(r3) -/* 802DA444 002D7384 98 BD 00 00 */ stb r5, 0(r29) -/* 802DA448 002D7388 3B BD 00 01 */ addi r29, r29, 1 -/* 802DA44C 002D738C 7C 1D F8 40 */ cmplw r29, r31 -/* 802DA450 002D7390 3B DE 00 01 */ addi r30, r30, 1 -/* 802DA454 002D7394 41 82 01 94 */ beq lbl_802DA5E8 -lbl_802DA458: -/* 802DA458 002D7398 88 E3 00 00 */ lbz r7, 0(r3) -/* 802DA45C 002D739C 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) -/* 802DA460 002D73A0 38 A6 00 01 */ addi r5, r6, 1 -/* 802DA464 002D73A4 90 AD 8E B8 */ stw r5, lbl_80451438-_SDA_BASE_(r13) -/* 802DA468 002D73A8 98 E6 00 00 */ stb r7, 0(r6) -/* 802DA46C 002D73AC 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) -/* 802DA470 002D73B0 80 AD 8E B4 */ lwz r5, lbl_80451434-_SDA_BASE_(r13) -/* 802DA474 002D73B4 7C 06 28 40 */ cmplw r6, r5 -/* 802DA478 002D73B8 40 82 00 0C */ bne lbl_802DA484 -/* 802DA47C 002D73BC 80 AD 8E B0 */ lwz r5, lbl_80451430-_SDA_BASE_(r13) -/* 802DA480 002D73C0 90 AD 8E B8 */ stw r5, lbl_80451438-_SDA_BASE_(r13) -lbl_802DA484: -/* 802DA484 002D73C4 38 63 00 01 */ addi r3, r3, 1 -/* 802DA488 002D73C8 48 00 00 20 */ b lbl_802DA4A8 -lbl_802DA48C: -/* 802DA48C 002D73CC 88 A3 00 00 */ lbz r5, 0(r3) -/* 802DA490 002D73D0 98 BD 00 00 */ stb r5, 0(r29) -/* 802DA494 002D73D4 3B BD 00 01 */ addi r29, r29, 1 -/* 802DA498 002D73D8 7C 1D F8 40 */ cmplw r29, r31 -/* 802DA49C 002D73DC 38 63 00 01 */ addi r3, r3, 1 -/* 802DA4A0 002D73E0 3B DE 00 01 */ addi r30, r30, 1 -/* 802DA4A4 002D73E4 41 82 01 44 */ beq lbl_802DA5E8 -lbl_802DA4A8: -/* 802DA4A8 002D73E8 80 AD 8E D0 */ lwz r5, lbl_80451450-_SDA_BASE_(r13) -/* 802DA4AC 002D73EC 38 A5 00 01 */ addi r5, r5, 1 -/* 802DA4B0 002D73F0 90 AD 8E D0 */ stw r5, lbl_80451450-_SDA_BASE_(r13) -/* 802DA4B4 002D73F4 48 00 01 24 */ b lbl_802DA5D8 -lbl_802DA4B8: -/* 802DA4B8 002D73F8 88 C3 00 00 */ lbz r6, 0(r3) -/* 802DA4BC 002D73FC 88 E3 00 01 */ lbz r7, 1(r3) -/* 802DA4C0 002D7400 50 C7 45 2E */ rlwimi r7, r6, 8, 0x14, 0x17 -/* 802DA4C4 002D7404 7C C5 26 70 */ srawi r5, r6, 4 -/* 802DA4C8 002D7408 81 0D 8E CC */ lwz r8, lbl_8045144C-_SDA_BASE_(r13) -/* 802DA4CC 002D740C 28 08 00 00 */ cmplwi r8, 0 -/* 802DA4D0 002D7410 38 63 00 02 */ addi r3, r3, 2 -/* 802DA4D4 002D7414 41 82 00 2C */ beq lbl_802DA500 -/* 802DA4D8 002D7418 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) -/* 802DA4DC 002D741C 7C C7 30 50 */ subf r6, r7, r6 -/* 802DA4E0 002D7420 39 26 FF FF */ addi r9, r6, -1 -/* 802DA4E4 002D7424 80 ED 8E B0 */ lwz r7, lbl_80451430-_SDA_BASE_(r13) -/* 802DA4E8 002D7428 7C 09 38 40 */ cmplw r9, r7 -/* 802DA4EC 002D742C 40 80 00 1C */ bge lbl_802DA508 -/* 802DA4F0 002D7430 80 CD 8E B4 */ lwz r6, lbl_80451434-_SDA_BASE_(r13) -/* 802DA4F4 002D7434 7C C7 30 50 */ subf r6, r7, r6 -/* 802DA4F8 002D7438 7D 29 32 14 */ add r9, r9, r6 -/* 802DA4FC 002D743C 48 00 00 0C */ b lbl_802DA508 -lbl_802DA500: -/* 802DA500 002D7440 7C C7 E8 50 */ subf r6, r7, r29 -/* 802DA504 002D7444 39 26 FF FF */ addi r9, r6, -1 -lbl_802DA508: -/* 802DA508 002D7448 2C 05 00 00 */ cmpwi r5, 0 -/* 802DA50C 002D744C 40 82 00 14 */ bne lbl_802DA520 -/* 802DA510 002D7450 88 A3 00 00 */ lbz r5, 0(r3) -/* 802DA514 002D7454 38 A5 00 12 */ addi r5, r5, 0x12 -/* 802DA518 002D7458 38 63 00 01 */ addi r3, r3, 1 -/* 802DA51C 002D745C 48 00 00 08 */ b lbl_802DA524 -lbl_802DA520: -/* 802DA520 002D7460 38 A5 00 02 */ addi r5, r5, 2 -lbl_802DA524: -/* 802DA524 002D7464 28 08 00 00 */ cmplwi r8, 0 -/* 802DA528 002D7468 41 82 00 80 */ beq lbl_802DA5A8 -lbl_802DA52C: -/* 802DA52C 002D746C 80 ED 8E D0 */ lwz r7, lbl_80451450-_SDA_BASE_(r13) -/* 802DA530 002D7470 80 CD 8E CC */ lwz r6, lbl_8045144C-_SDA_BASE_(r13) -/* 802DA534 002D7474 7C 07 30 40 */ cmplw r7, r6 -/* 802DA538 002D7478 41 80 00 1C */ blt lbl_802DA554 -/* 802DA53C 002D747C 88 C9 00 00 */ lbz r6, 0(r9) -/* 802DA540 002D7480 98 DD 00 00 */ stb r6, 0(r29) -/* 802DA544 002D7484 3B BD 00 01 */ addi r29, r29, 1 -/* 802DA548 002D7488 7C 1D F8 40 */ cmplw r29, r31 -/* 802DA54C 002D748C 3B DE 00 01 */ addi r30, r30, 1 -/* 802DA550 002D7490 41 82 00 88 */ beq lbl_802DA5D8 -lbl_802DA554: -/* 802DA554 002D7494 89 09 00 00 */ lbz r8, 0(r9) -/* 802DA558 002D7498 80 ED 8E B8 */ lwz r7, lbl_80451438-_SDA_BASE_(r13) -/* 802DA55C 002D749C 38 C7 00 01 */ addi r6, r7, 1 -/* 802DA560 002D74A0 90 CD 8E B8 */ stw r6, lbl_80451438-_SDA_BASE_(r13) -/* 802DA564 002D74A4 99 07 00 00 */ stb r8, 0(r7) -/* 802DA568 002D74A8 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) -/* 802DA56C 002D74AC 80 ED 8E B4 */ lwz r7, lbl_80451434-_SDA_BASE_(r13) -/* 802DA570 002D74B0 7C 06 38 40 */ cmplw r6, r7 -/* 802DA574 002D74B4 40 82 00 0C */ bne lbl_802DA580 -/* 802DA578 002D74B8 80 CD 8E B0 */ lwz r6, lbl_80451430-_SDA_BASE_(r13) -/* 802DA57C 002D74BC 90 CD 8E B8 */ stw r6, lbl_80451438-_SDA_BASE_(r13) -lbl_802DA580: -/* 802DA580 002D74C0 39 29 00 01 */ addi r9, r9, 1 -/* 802DA584 002D74C4 7C 09 38 40 */ cmplw r9, r7 -/* 802DA588 002D74C8 40 82 00 08 */ bne lbl_802DA590 -/* 802DA58C 002D74CC 81 2D 8E B0 */ lwz r9, lbl_80451430-_SDA_BASE_(r13) -lbl_802DA590: -/* 802DA590 002D74D0 80 CD 8E D0 */ lwz r6, lbl_80451450-_SDA_BASE_(r13) -/* 802DA594 002D74D4 38 C6 00 01 */ addi r6, r6, 1 -/* 802DA598 002D74D8 90 CD 8E D0 */ stw r6, lbl_80451450-_SDA_BASE_(r13) -/* 802DA59C 002D74DC 34 A5 FF FF */ addic. r5, r5, -1 -/* 802DA5A0 002D74E0 40 82 FF 8C */ bne lbl_802DA52C -/* 802DA5A4 002D74E4 48 00 00 34 */ b lbl_802DA5D8 -lbl_802DA5A8: -/* 802DA5A8 002D74E8 88 C9 00 00 */ lbz r6, 0(r9) -/* 802DA5AC 002D74EC 98 DD 00 00 */ stb r6, 0(r29) -/* 802DA5B0 002D74F0 3B BD 00 01 */ addi r29, r29, 1 -/* 802DA5B4 002D74F4 7C 1D F8 40 */ cmplw r29, r31 -/* 802DA5B8 002D74F8 3B DE 00 01 */ addi r30, r30, 1 -/* 802DA5BC 002D74FC 41 82 00 1C */ beq lbl_802DA5D8 -/* 802DA5C0 002D7500 80 CD 8E D0 */ lwz r6, lbl_80451450-_SDA_BASE_(r13) -/* 802DA5C4 002D7504 38 C6 00 01 */ addi r6, r6, 1 -/* 802DA5C8 002D7508 90 CD 8E D0 */ stw r6, lbl_80451450-_SDA_BASE_(r13) -/* 802DA5CC 002D750C 34 A5 FF FF */ addic. r5, r5, -1 -/* 802DA5D0 002D7510 39 29 00 01 */ addi r9, r9, 1 -/* 802DA5D4 002D7514 40 82 FF D4 */ bne lbl_802DA5A8 -lbl_802DA5D8: -/* 802DA5D8 002D7518 54 00 08 3C */ slwi r0, r0, 1 -/* 802DA5DC 002D751C 7C 1D F8 40 */ cmplw r29, r31 -/* 802DA5E0 002D7520 38 84 FF FF */ addi r4, r4, -1 -/* 802DA5E4 002D7524 41 80 FD FC */ blt lbl_802DA3E0 -lbl_802DA5E8: -/* 802DA5E8 002D7528 80 6D 8E DC */ lwz r3, lbl_8045145C-_SDA_BASE_(r13) -/* 802DA5EC 002D752C 93 C3 00 00 */ stw r30, 0(r3) -/* 802DA5F0 002D7530 38 60 00 00 */ li r3, 0 -lbl_802DA5F4: -/* 802DA5F4 002D7534 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DA5F8 002D7538 48 08 7C 31 */ bl _restgpr_29 -/* 802DA5FC 002D753C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DA600 002D7540 7C 08 03 A6 */ mtlr r0 -/* 802DA604 002D7544 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DA608 002D7548 4E 80 00 20 */ blr - -.global firstSrcData_X1_ -firstSrcData_X1_: -/* 802DA60C 002D754C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DA610 002D7550 7C 08 02 A6 */ mflr r0 -/* 802DA614 002D7554 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DA618 002D7558 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DA61C 002D755C 48 08 7B C1 */ bl _savegpr_29 -/* 802DA620 002D7560 80 6D 8E AC */ lwz r3, lbl_8045142C-_SDA_BASE_(r13) -/* 802DA624 002D7564 38 03 FF E7 */ addi r0, r3, -25 -/* 802DA628 002D7568 90 0D 8E C4 */ stw r0, lbl_80451444-_SDA_BASE_(r13) -/* 802DA62C 002D756C 80 0D 8E A8 */ lwz r0, lbl_80451428-_SDA_BASE_(r13) -/* 802DA630 002D7570 7C 1D 03 78 */ mr r29, r0 -/* 802DA634 002D7574 7C 60 18 50 */ subf r3, r0, r3 -/* 802DA638 002D7578 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA63C 002D757C 7C 00 18 40 */ cmplw r0, r3 -/* 802DA640 002D7580 7C 7F 1B 78 */ mr r31, r3 -/* 802DA644 002D7584 40 80 00 08 */ bge lbl_802DA64C -/* 802DA648 002D7588 7C 1F 03 78 */ mr r31, r0 -lbl_802DA64C: -/* 802DA64C 002D758C 7F FE FB 78 */ mr r30, r31 -lbl_802DA650: -/* 802DA650 002D7590 80 6D 8E C8 */ lwz r3, lbl_80451448-_SDA_BASE_(r13) -/* 802DA654 002D7594 38 63 00 5C */ addi r3, r3, 0x5c -/* 802DA658 002D7598 7F A4 EB 78 */ mr r4, r29 -/* 802DA65C 002D759C 7F C5 F3 78 */ mr r5, r30 -/* 802DA660 002D75A0 80 CD 8E BC */ lwz r6, lbl_8045143C-_SDA_BASE_(r13) -/* 802DA664 002D75A4 38 E0 00 02 */ li r7, 2 -/* 802DA668 002D75A8 48 06 E7 DD */ bl DVDReadPrio -/* 802DA66C 002D75AC 2C 03 00 00 */ cmpwi r3, 0 -/* 802DA670 002D75B0 40 80 00 28 */ bge lbl_802DA698 -/* 802DA674 002D75B4 2C 03 FF FD */ cmpwi r3, -3 -/* 802DA678 002D75B8 41 82 00 10 */ beq lbl_802DA688 -/* 802DA67C 002D75BC 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) -/* 802DA680 002D75C0 28 00 00 00 */ cmplwi r0, 0 -/* 802DA684 002D75C4 40 82 00 0C */ bne lbl_802DA690 -lbl_802DA688: -/* 802DA688 002D75C8 38 60 00 00 */ li r3, 0 -/* 802DA68C 002D75CC 48 00 00 34 */ b lbl_802DA6C0 -lbl_802DA690: -/* 802DA690 002D75D0 48 07 23 35 */ bl VIWaitForRetrace -/* 802DA694 002D75D4 4B FF FF BC */ b lbl_802DA650 -lbl_802DA698: -/* 802DA698 002D75D8 7F A3 EB 78 */ mr r3, r29 -/* 802DA69C 002D75DC 7F E4 FB 78 */ mr r4, r31 -/* 802DA6A0 002D75E0 48 06 0E E1 */ bl DCInvalidateRange -/* 802DA6A4 002D75E4 80 0D 8E BC */ lwz r0, lbl_8045143C-_SDA_BASE_(r13) -/* 802DA6A8 002D75E8 7C 00 FA 14 */ add r0, r0, r31 -/* 802DA6AC 002D75EC 90 0D 8E BC */ stw r0, lbl_8045143C-_SDA_BASE_(r13) -/* 802DA6B0 002D75F0 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA6B4 002D75F4 7C 1F 00 50 */ subf r0, r31, r0 -/* 802DA6B8 002D75F8 90 0D 8E C0 */ stw r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA6BC 002D75FC 7F A3 EB 78 */ mr r3, r29 -lbl_802DA6C0: -/* 802DA6C0 002D7600 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DA6C4 002D7604 48 08 7B 65 */ bl _restgpr_29 -/* 802DA6C8 002D7608 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DA6CC 002D760C 7C 08 03 A6 */ mtlr r0 -/* 802DA6D0 002D7610 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DA6D4 002D7614 4E 80 00 20 */ blr - -.global nextSrcData_X1_ -nextSrcData_X1_: -/* 802DA6D8 002D7618 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DA6DC 002D761C 7C 08 02 A6 */ mflr r0 -/* 802DA6E0 002D7620 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DA6E4 002D7624 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DA6E8 002D7628 48 08 7A F1 */ bl _savegpr_28 -/* 802DA6EC 002D762C 7C 64 1B 78 */ mr r4, r3 -/* 802DA6F0 002D7630 80 0D 8E AC */ lwz r0, lbl_8045142C-_SDA_BASE_(r13) -/* 802DA6F4 002D7634 7F A4 00 50 */ subf r29, r4, r0 -/* 802DA6F8 002D7638 57 A5 06 FF */ clrlwi. r5, r29, 0x1b -/* 802DA6FC 002D763C 41 82 00 14 */ beq lbl_802DA710 -/* 802DA700 002D7640 80 6D 8E A8 */ lwz r3, lbl_80451428-_SDA_BASE_(r13) -/* 802DA704 002D7644 38 03 00 20 */ addi r0, r3, 0x20 -/* 802DA708 002D7648 7F 85 00 50 */ subf r28, r5, r0 -/* 802DA70C 002D764C 48 00 00 08 */ b lbl_802DA714 -lbl_802DA710: -/* 802DA710 002D7650 83 8D 8E A8 */ lwz r28, lbl_80451428-_SDA_BASE_(r13) -lbl_802DA714: -/* 802DA714 002D7654 7F 83 E3 78 */ mr r3, r28 -/* 802DA718 002D7658 7F A5 EB 78 */ mr r5, r29 -/* 802DA71C 002D765C 4B D2 8E 25 */ bl func_80003540 -/* 802DA720 002D7660 7F BC EA 14 */ add r29, r28, r29 -/* 802DA724 002D7664 80 0D 8E AC */ lwz r0, lbl_8045142C-_SDA_BASE_(r13) -/* 802DA728 002D7668 7F DD 00 50 */ subf r30, r29, r0 -/* 802DA72C 002D766C 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA730 002D7670 7C 1E 00 40 */ cmplw r30, r0 -/* 802DA734 002D7674 40 81 00 08 */ ble lbl_802DA73C -/* 802DA738 002D7678 7C 1E 03 78 */ mr r30, r0 -lbl_802DA73C: -.global JKRDvdRipper_NS_isErrorRetry -/* 802DA73C 002D767C 3C 60 80 2E */ lis r3, JKRDvdRipper_NS_isErrorRetry@ha -.global JKRDvdRipper_NS_isErrorRetry -/* 802DA740 002D7680 3B E3 A7 D4 */ addi r31, r3, JKRDvdRipper_NS_isErrorRetry@l -lbl_802DA744: -/* 802DA744 002D7684 80 6D 8E C8 */ lwz r3, lbl_80451448-_SDA_BASE_(r13) -/* 802DA748 002D7688 38 63 00 5C */ addi r3, r3, 0x5c -/* 802DA74C 002D768C 7F A4 EB 78 */ mr r4, r29 -/* 802DA750 002D7690 7F C5 F3 78 */ mr r5, r30 -/* 802DA754 002D7694 80 CD 8E BC */ lwz r6, lbl_8045143C-_SDA_BASE_(r13) -/* 802DA758 002D7698 38 E0 00 02 */ li r7, 2 -/* 802DA75C 002D769C 48 06 E6 E9 */ bl DVDReadPrio -/* 802DA760 002D76A0 2C 03 00 00 */ cmpwi r3, 0 -/* 802DA764 002D76A4 40 80 00 24 */ bge lbl_802DA788 -/* 802DA768 002D76A8 2C 03 FF FD */ cmpwi r3, -3 -/* 802DA76C 002D76AC 41 82 00 0C */ beq lbl_802DA778 -/* 802DA770 002D76B0 28 1F 00 00 */ cmplwi r31, 0 -/* 802DA774 002D76B4 40 82 00 0C */ bne lbl_802DA780 -lbl_802DA778: -/* 802DA778 002D76B8 38 60 00 00 */ li r3, 0 -/* 802DA77C 002D76BC 48 00 00 40 */ b lbl_802DA7BC -lbl_802DA780: -/* 802DA780 002D76C0 48 07 22 45 */ bl VIWaitForRetrace -/* 802DA784 002D76C4 4B FF FF C0 */ b lbl_802DA744 -lbl_802DA788: -/* 802DA788 002D76C8 7F A3 EB 78 */ mr r3, r29 -/* 802DA78C 002D76CC 7F C4 F3 78 */ mr r4, r30 -/* 802DA790 002D76D0 48 06 0D F1 */ bl DCInvalidateRange -/* 802DA794 002D76D4 80 0D 8E BC */ lwz r0, lbl_8045143C-_SDA_BASE_(r13) -/* 802DA798 002D76D8 7C 00 F2 14 */ add r0, r0, r30 -/* 802DA79C 002D76DC 90 0D 8E BC */ stw r0, lbl_8045143C-_SDA_BASE_(r13) -/* 802DA7A0 002D76E0 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA7A4 002D76E4 7C 1E 00 51 */ subf. r0, r30, r0 -/* 802DA7A8 002D76E8 90 0D 8E C0 */ stw r0, lbl_80451440-_SDA_BASE_(r13) -/* 802DA7AC 002D76EC 40 82 00 0C */ bne lbl_802DA7B8 -/* 802DA7B0 002D76F0 7C 1D F2 14 */ add r0, r29, r30 -/* 802DA7B4 002D76F4 90 0D 8E C4 */ stw r0, lbl_80451444-_SDA_BASE_(r13) -lbl_802DA7B8: -/* 802DA7B8 002D76F8 7F 83 E3 78 */ mr r3, r28 -lbl_802DA7BC: -/* 802DA7BC 002D76FC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DA7C0 002D7700 48 08 7A 65 */ bl _restgpr_28 -/* 802DA7C4 002D7704 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DA7C8 002D7708 7C 08 03 A6 */ mtlr r0 -/* 802DA7CC 002D770C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DA7D0 002D7710 4E 80 00 20 */ blr -.global JKRDvdRipper_NS_isErrorRetry -JKRDvdRipper_NS_isErrorRetry: -/* 802DA7D4 002D7714 88 6D 83 48 */ lbz r3, lbl_804508C8-_SDA_BASE_(r13) -/* 802DA7D8 002D7718 4E 80 00 20 */ blr +.global __sinit_JKRDvdRipper_cpp +__sinit_JKRDvdRipper_cpp: /* 802DA7DC 002D771C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802DA7E0 002D7720 7C 08 02 A6 */ mflr r0 /* 802DA7E4 002D7724 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/asm/JKernel/JKRFileLoader.s b/asm/JKernel/JKRFileLoader.s index e3d4f1e371..68387295d7 100644 --- a/asm/JKernel/JKRFileLoader.s +++ b/asm/JKernel/JKRFileLoader.s @@ -2,75 +2,6 @@ .section .text, "ax" # 802D45A0 - -.global fetchVolumeName__13JKRFileLoaderFPclPCc -fetchVolumeName__13JKRFileLoaderFPclPCc: -/* 802D44C4 002D1404 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D44C8 002D1408 7C 08 02 A6 */ mflr r0 -/* 802D44CC 002D140C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D44D0 002D1410 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D44D4 002D1414 48 08 DD 09 */ bl _savegpr_29 -/* 802D44D8 002D1418 7C 7D 1B 78 */ mr r29, r3 -/* 802D44DC 002D141C 7C 9E 23 78 */ mr r30, r4 -/* 802D44E0 002D1420 7C BF 2B 78 */ mr r31, r5 -/* 802D44E4 002D1424 7F E3 FB 78 */ mr r3, r31 -/* 802D44E8 002D1428 3C 80 80 3A */ lis r4, lbl_8039D150@ha -/* 802D44EC 002D142C 38 84 D1 50 */ addi r4, r4, lbl_8039D150@l -/* 802D44F0 002D1430 48 09 44 A5 */ bl strcmp -/* 802D44F4 002D1434 2C 03 00 00 */ cmpwi r3, 0 -/* 802D44F8 002D1438 40 82 00 18 */ bne lbl_802D4510 -/* 802D44FC 002D143C 7F A3 EB 78 */ mr r3, r29 -/* 802D4500 002D1440 38 8D 83 40 */ addi r4, r13, lbl_804508C0-_SDA_BASE_ -/* 802D4504 002D1444 48 09 46 29 */ bl strcpy -/* 802D4508 002D1448 38 6D 83 40 */ addi r3, r13, lbl_804508C0-_SDA_BASE_ -/* 802D450C 002D144C 48 00 00 7C */ b lbl_802D4588 -lbl_802D4510: -/* 802D4510 002D1450 3C 60 80 3D */ lis r3, lbl_803D2D18@ha -/* 802D4514 002D1454 38 63 2D 18 */ addi r3, r3, lbl_803D2D18@l -/* 802D4518 002D1458 3B FF 00 01 */ addi r31, r31, 1 -/* 802D451C 002D145C 48 00 00 38 */ b lbl_802D4554 -lbl_802D4520: -/* 802D4520 002D1460 2C 1E 00 01 */ cmpwi r30, 1 -/* 802D4524 002D1464 40 81 00 2C */ ble lbl_802D4550 -/* 802D4528 002D1468 7C 80 07 74 */ extsb r0, r4 -/* 802D452C 002D146C 2C 00 FF FF */ cmpwi r0, -1 -/* 802D4530 002D1470 40 82 00 0C */ bne lbl_802D453C -/* 802D4534 002D1474 38 00 FF FF */ li r0, -1 -/* 802D4538 002D1478 48 00 00 0C */ b lbl_802D4544 -lbl_802D453C: -/* 802D453C 002D147C 54 00 06 3E */ clrlwi r0, r0, 0x18 -/* 802D4540 002D1480 7C 03 00 AE */ lbzx r0, r3, r0 -lbl_802D4544: -/* 802D4544 002D1484 98 1D 00 00 */ stb r0, 0(r29) -/* 802D4548 002D1488 3B BD 00 01 */ addi r29, r29, 1 -/* 802D454C 002D148C 3B DE FF FF */ addi r30, r30, -1 -lbl_802D4550: -/* 802D4550 002D1490 3B FF 00 01 */ addi r31, r31, 1 -lbl_802D4554: -/* 802D4554 002D1494 88 9F 00 00 */ lbz r4, 0(r31) -/* 802D4558 002D1498 7C 80 07 75 */ extsb. r0, r4 -/* 802D455C 002D149C 41 82 00 10 */ beq lbl_802D456C -/* 802D4560 002D14A0 7C 80 07 74 */ extsb r0, r4 -/* 802D4564 002D14A4 2C 00 00 2F */ cmpwi r0, 0x2f -/* 802D4568 002D14A8 40 82 FF B8 */ bne lbl_802D4520 -lbl_802D456C: -/* 802D456C 002D14AC 38 00 00 00 */ li r0, 0 -/* 802D4570 002D14B0 98 1D 00 00 */ stb r0, 0(r29) -/* 802D4574 002D14B4 88 1F 00 00 */ lbz r0, 0(r31) -/* 802D4578 002D14B8 7C 00 07 75 */ extsb. r0, r0 -/* 802D457C 002D14BC 40 82 00 08 */ bne lbl_802D4584 -/* 802D4580 002D14C0 3B ED 83 40 */ addi r31, r13, lbl_804508C0-_SDA_BASE_ -lbl_802D4584: -/* 802D4584 002D14C4 7F E3 FB 78 */ mr r3, r31 -lbl_802D4588: -/* 802D4588 002D14C8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D458C 002D14CC 48 08 DC 9D */ bl _restgpr_29 -/* 802D4590 002D14D0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D4594 002D14D4 7C 08 03 A6 */ mtlr r0 -/* 802D4598 002D14D8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D459C 002D14DC 4E 80 00 20 */ blr - - .global __sinit_JKRFileLoader_cpp __sinit_JKRFileLoader_cpp: /* 802D45A0 002D14E0 94 21 FF F0 */ stwu r1, -0x10(r1) diff --git a/asm/JKernel/JKRMemArchive.s b/asm/JKernel/JKRMemArchive.s deleted file mode 100644 index 86b9f5ef44..0000000000 --- a/asm/JKernel/JKRMemArchive.s +++ /dev/null @@ -1,504 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802d69b8 - - -.global JKRMemArchive -JKRMemArchive: -/* 802D69B8 002D38F8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D69BC 002D38FC 7C 08 02 A6 */ mflr r0 -/* 802D69C0 002D3900 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D69C4 002D3904 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D69C8 002D3908 48 08 B8 15 */ bl _savegpr_29 -/* 802D69CC 002D390C 7C 7D 1B 78 */ mr r29, r3 -/* 802D69D0 002D3910 7C 9E 23 78 */ mr r30, r4 -/* 802D69D4 002D3914 7C BF 2B 78 */ mr r31, r5 -/* 802D69D8 002D3918 38 A0 00 01 */ li r5, 1 -/* 802D69DC 002D391C 4B FF F8 B9 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D69E0 002D3920 3C 60 80 3D */ lis r3, lbl_803CC2D8@ha -/* 802D69E4 002D3924 38 03 C2 D8 */ addi r0, r3, lbl_803CC2D8@l -/* 802D69E8 002D3928 90 1D 00 00 */ stw r0, 0(r29) -/* 802D69EC 002D392C 38 00 00 00 */ li r0, 0 -/* 802D69F0 002D3930 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D69F4 002D3934 93 FD 00 60 */ stw r31, 0x60(r29) -/* 802D69F8 002D3938 7F A3 EB 78 */ mr r3, r29 -/* 802D69FC 002D393C 7F C4 F3 78 */ mr r4, r30 -/* 802D6A00 002D3940 80 BD 00 60 */ lwz r5, 0x60(r29) -/* 802D6A04 002D3944 48 00 01 C9 */ bl JKRMemArchive_NS_open -/* 802D6A08 002D3948 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6A0C 002D394C 40 82 00 0C */ bne lbl_802D6A18 -/* 802D6A10 002D3950 7F A3 EB 78 */ mr r3, r29 -/* 802D6A14 002D3954 48 00 00 40 */ b lbl_802D6A54 -lbl_802D6A18: -/* 802D6A18 002D3958 3C 60 52 41 */ lis r3, 0x52415243@ha -/* 802D6A1C 002D395C 38 03 52 43 */ addi r0, r3, 0x52415243@l -/* 802D6A20 002D3960 90 1D 00 2C */ stw r0, 0x2c(r29) -/* 802D6A24 002D3964 80 9D 00 54 */ lwz r4, 0x54(r29) -/* 802D6A28 002D3968 80 7D 00 48 */ lwz r3, 0x48(r29) -/* 802D6A2C 002D396C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6A30 002D3970 7C 04 02 14 */ add r0, r4, r0 -/* 802D6A34 002D3974 90 1D 00 28 */ stw r0, 0x28(r29) -/* 802D6A38 002D3978 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D6A3C 002D397C 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D6A40 002D3980 38 9D 00 18 */ addi r4, r29, 0x18 -/* 802D6A44 002D3984 48 00 55 AD */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D6A48 002D3988 38 00 00 01 */ li r0, 1 -/* 802D6A4C 002D398C 98 1D 00 30 */ stb r0, 0x30(r29) -/* 802D6A50 002D3990 7F A3 EB 78 */ mr r3, r29 -lbl_802D6A54: -/* 802D6A54 002D3994 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6A58 002D3998 48 08 B7 D1 */ bl _restgpr_29 -/* 802D6A5C 002D399C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6A60 002D39A0 7C 08 03 A6 */ mtlr r0 -/* 802D6A64 002D39A4 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6A68 002D39A8 4E 80 00 20 */ blr - -.global JKRMemArchive_X1_ -JKRMemArchive_X1_: -/* 802D6A6C 002D39AC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6A70 002D39B0 7C 08 02 A6 */ mflr r0 -/* 802D6A74 002D39B4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6A78 002D39B8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6A7C 002D39BC 48 08 B7 5D */ bl _savegpr_28 -/* 802D6A80 002D39C0 7C 7C 1B 78 */ mr r28, r3 -/* 802D6A84 002D39C4 7C 9D 23 78 */ mr r29, r4 -/* 802D6A88 002D39C8 7C BE 2B 78 */ mr r30, r5 -/* 802D6A8C 002D39CC 7C DF 33 78 */ mr r31, r6 -/* 802D6A90 002D39D0 38 A0 00 01 */ li r5, 1 -/* 802D6A94 002D39D4 4B FF F8 01 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode -/* 802D6A98 002D39D8 3C 60 80 3D */ lis r3, lbl_803CC2D8@ha -/* 802D6A9C 002D39DC 38 03 C2 D8 */ addi r0, r3, lbl_803CC2D8@l -/* 802D6AA0 002D39E0 90 1C 00 00 */ stw r0, 0(r28) -/* 802D6AA4 002D39E4 38 00 00 00 */ li r0, 0 -/* 802D6AA8 002D39E8 98 1C 00 30 */ stb r0, 0x30(r28) -/* 802D6AAC 002D39EC 7F 83 E3 78 */ mr r3, r28 -/* 802D6AB0 002D39F0 7F A4 EB 78 */ mr r4, r29 -/* 802D6AB4 002D39F4 7F C5 F3 78 */ mr r5, r30 -/* 802D6AB8 002D39F8 7F E6 FB 78 */ mr r6, r31 -/* 802D6ABC 002D39FC 48 00 02 75 */ bl JKRMemArchive_NS_open_X1_ -/* 802D6AC0 002D3A00 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802D6AC4 002D3A04 40 82 00 0C */ bne lbl_802D6AD0 -/* 802D6AC8 002D3A08 7F 83 E3 78 */ mr r3, r28 -/* 802D6ACC 002D3A0C 48 00 00 40 */ b lbl_802D6B0C -lbl_802D6AD0: -/* 802D6AD0 002D3A10 3C 60 52 41 */ lis r3, 0x52415243@ha -/* 802D6AD4 002D3A14 38 03 52 43 */ addi r0, r3, 0x52415243@l -/* 802D6AD8 002D3A18 90 1C 00 2C */ stw r0, 0x2c(r28) -/* 802D6ADC 002D3A1C 80 9C 00 54 */ lwz r4, 0x54(r28) -/* 802D6AE0 002D3A20 80 7C 00 48 */ lwz r3, 0x48(r28) -/* 802D6AE4 002D3A24 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6AE8 002D3A28 7C 04 02 14 */ add r0, r4, r0 -/* 802D6AEC 002D3A2C 90 1C 00 28 */ stw r0, 0x28(r28) -/* 802D6AF0 002D3A30 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D6AF4 002D3A34 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D6AF8 002D3A38 38 9C 00 18 */ addi r4, r28, 0x18 -/* 802D6AFC 002D3A3C 48 00 54 F5 */ bl prepend__10JSUPtrListFP10JSUPtrLink -/* 802D6B00 002D3A40 38 00 00 01 */ li r0, 1 -/* 802D6B04 002D3A44 98 1C 00 30 */ stb r0, 0x30(r28) -/* 802D6B08 002D3A48 7F 83 E3 78 */ mr r3, r28 -lbl_802D6B0C: -/* 802D6B0C 002D3A4C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6B10 002D3A50 48 08 B7 15 */ bl _restgpr_28 -/* 802D6B14 002D3A54 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6B18 002D3A58 7C 08 03 A6 */ mtlr r0 -/* 802D6B1C 002D3A5C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6B20 002D3A60 4E 80 00 20 */ blr -/* 802D6B24 002D3A64 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6B28 002D3A68 7C 08 02 A6 */ mflr r0 -/* 802D6B2C 002D3A6C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6B30 002D3A70 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D6B34 002D3A74 93 C1 00 08 */ stw r30, 8(r1) -/* 802D6B38 002D3A78 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802D6B3C 002D3A7C 7C 9F 23 78 */ mr r31, r4 -/* 802D6B40 002D3A80 41 82 00 70 */ beq lbl_802D6BB0 -/* 802D6B44 002D3A84 3C 60 80 3D */ lis r3, lbl_803CC2D8@ha -/* 802D6B48 002D3A88 38 03 C2 D8 */ addi r0, r3, lbl_803CC2D8@l -/* 802D6B4C 002D3A8C 90 1E 00 00 */ stw r0, 0(r30) -/* 802D6B50 002D3A90 88 1E 00 30 */ lbz r0, 0x30(r30) -/* 802D6B54 002D3A94 28 00 00 01 */ cmplwi r0, 1 -/* 802D6B58 002D3A98 40 82 00 3C */ bne lbl_802D6B94 -/* 802D6B5C 002D3A9C 88 1E 00 6C */ lbz r0, 0x6c(r30) -/* 802D6B60 002D3AA0 28 00 00 00 */ cmplwi r0, 0 -/* 802D6B64 002D3AA4 41 82 00 18 */ beq lbl_802D6B7C -/* 802D6B68 002D3AA8 80 7E 00 64 */ lwz r3, 0x64(r30) -/* 802D6B6C 002D3AAC 28 03 00 00 */ cmplwi r3, 0 -/* 802D6B70 002D3AB0 41 82 00 0C */ beq lbl_802D6B7C -/* 802D6B74 002D3AB4 80 9E 00 38 */ lwz r4, 0x38(r30) -/* 802D6B78 002D3AB8 4B FF 79 89 */ bl free__7JKRHeapFPvP7JKRHeap -lbl_802D6B7C: -/* 802D6B7C 002D3ABC 3C 60 80 43 */ lis r3, lbl_80434354@ha -/* 802D6B80 002D3AC0 38 63 43 54 */ addi r3, r3, lbl_80434354@l -/* 802D6B84 002D3AC4 38 9E 00 18 */ addi r4, r30, 0x18 -/* 802D6B88 002D3AC8 48 00 55 D5 */ bl remove__10JSUPtrListFP10JSUPtrLink -/* 802D6B8C 002D3ACC 38 00 00 00 */ li r0, 0 -/* 802D6B90 002D3AD0 98 1E 00 30 */ stb r0, 0x30(r30) -lbl_802D6B94: -/* 802D6B94 002D3AD4 7F C3 F3 78 */ mr r3, r30 -/* 802D6B98 002D3AD8 38 80 00 00 */ li r4, 0 -/* 802D6B9C 002D3ADC 4B FF F7 99 */ bl __dt__10JKRArchiveFv -/* 802D6BA0 002D3AE0 7F E0 07 35 */ extsh. r0, r31 -/* 802D6BA4 002D3AE4 40 81 00 0C */ ble lbl_802D6BB0 -/* 802D6BA8 002D3AE8 7F C3 F3 78 */ mr r3, r30 -/* 802D6BAC 002D3AEC 4B FF 81 91 */ bl __dl__FPv -lbl_802D6BB0: -/* 802D6BB0 002D3AF0 7F C3 F3 78 */ mr r3, r30 -/* 802D6BB4 002D3AF4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6BB8 002D3AF8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D6BBC 002D3AFC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6BC0 002D3B00 7C 08 03 A6 */ mtlr r0 -/* 802D6BC4 002D3B04 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6BC8 002D3B08 4E 80 00 20 */ blr - -.global JKRMemArchive_NS_open -JKRMemArchive_NS_open: -/* 802D6BCC 002D3B0C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6BD0 002D3B10 7C 08 02 A6 */ mflr r0 -/* 802D6BD4 002D3B14 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6BD8 002D3B18 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802D6BDC 002D3B1C 7C 7F 1B 78 */ mr r31, r3 -/* 802D6BE0 002D3B20 38 00 00 00 */ li r0, 0 -/* 802D6BE4 002D3B24 90 03 00 64 */ stw r0, 0x64(r3) -/* 802D6BE8 002D3B28 90 03 00 44 */ stw r0, 0x44(r3) -/* 802D6BEC 002D3B2C 90 03 00 68 */ stw r0, 0x68(r3) -/* 802D6BF0 002D3B30 90 03 00 48 */ stw r0, 0x48(r3) -/* 802D6BF4 002D3B34 90 03 00 4C */ stw r0, 0x4c(r3) -/* 802D6BF8 002D3B38 90 03 00 54 */ stw r0, 0x54(r3) -/* 802D6BFC 002D3B3C 98 03 00 6C */ stb r0, 0x6c(r3) -/* 802D6C00 002D3B40 90 A3 00 60 */ stw r5, 0x60(r3) -/* 802D6C04 002D3B44 80 03 00 60 */ lwz r0, 0x60(r3) -/* 802D6C08 002D3B48 2C 00 00 01 */ cmpwi r0, 1 -/* 802D6C0C 002D3B4C 40 82 00 4C */ bne lbl_802D6C58 -/* 802D6C10 002D3B50 38 01 00 14 */ addi r0, r1, 0x14 -/* 802D6C14 002D3B54 90 01 00 08 */ stw r0, 8(r1) -/* 802D6C18 002D3B58 7C 83 23 78 */ mr r3, r4 -/* 802D6C1C 002D3B5C 38 80 00 00 */ li r4, 0 -/* 802D6C20 002D3B60 38 A0 00 01 */ li r5, 1 -/* 802D6C24 002D3B64 38 C0 00 00 */ li r6, 0 -/* 802D6C28 002D3B68 80 FF 00 38 */ lwz r7, 0x38(r31) -/* 802D6C2C 002D3B6C 39 00 00 01 */ li r8, 1 -/* 802D6C30 002D3B70 39 20 00 00 */ li r9, 0 -/* 802D6C34 002D3B74 39 5F 00 5C */ addi r10, r31, 0x5c -/* 802D6C38 002D3B78 48 00 30 1D */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D6C3C 002D3B7C 90 7F 00 64 */ stw r3, 0x64(r31) -/* 802D6C40 002D3B80 80 7F 00 64 */ lwz r3, 0x64(r31) -/* 802D6C44 002D3B84 28 03 00 00 */ cmplwi r3, 0 -/* 802D6C48 002D3B88 41 82 00 54 */ beq lbl_802D6C9C -/* 802D6C4C 002D3B8C 80 81 00 14 */ lwz r4, 0x14(r1) -/* 802D6C50 002D3B90 48 06 49 31 */ bl DCInvalidateRange -/* 802D6C54 002D3B94 48 00 00 48 */ b lbl_802D6C9C -lbl_802D6C58: -/* 802D6C58 002D3B98 38 01 00 10 */ addi r0, r1, 0x10 -/* 802D6C5C 002D3B9C 90 01 00 08 */ stw r0, 8(r1) -/* 802D6C60 002D3BA0 7C 83 23 78 */ mr r3, r4 -/* 802D6C64 002D3BA4 38 80 00 00 */ li r4, 0 -/* 802D6C68 002D3BA8 38 A0 00 01 */ li r5, 1 -/* 802D6C6C 002D3BAC 38 C0 00 00 */ li r6, 0 -/* 802D6C70 002D3BB0 80 FF 00 38 */ lwz r7, 0x38(r31) -/* 802D6C74 002D3BB4 39 00 00 02 */ li r8, 2 -/* 802D6C78 002D3BB8 39 20 00 00 */ li r9, 0 -/* 802D6C7C 002D3BBC 39 5F 00 5C */ addi r10, r31, 0x5c -/* 802D6C80 002D3BC0 48 00 2F D5 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ -/* 802D6C84 002D3BC4 90 7F 00 64 */ stw r3, 0x64(r31) -/* 802D6C88 002D3BC8 80 7F 00 64 */ lwz r3, 0x64(r31) -/* 802D6C8C 002D3BCC 28 03 00 00 */ cmplwi r3, 0 -/* 802D6C90 002D3BD0 41 82 00 0C */ beq lbl_802D6C9C -/* 802D6C94 002D3BD4 80 81 00 10 */ lwz r4, 0x10(r1) -/* 802D6C98 002D3BD8 48 06 48 E9 */ bl DCInvalidateRange -lbl_802D6C9C: -/* 802D6C9C 002D3BDC 80 7F 00 64 */ lwz r3, 0x64(r31) -/* 802D6CA0 002D3BE0 28 03 00 00 */ cmplwi r3, 0 -/* 802D6CA4 002D3BE4 40 82 00 10 */ bne lbl_802D6CB4 -/* 802D6CA8 002D3BE8 38 00 00 00 */ li r0, 0 -/* 802D6CAC 002D3BEC 98 1F 00 3C */ stb r0, 0x3c(r31) -/* 802D6CB0 002D3BF0 48 00 00 60 */ b lbl_802D6D10 -lbl_802D6CB4: -/* 802D6CB4 002D3BF4 80 03 00 08 */ lwz r0, 8(r3) -/* 802D6CB8 002D3BF8 7C 03 02 14 */ add r0, r3, r0 -/* 802D6CBC 002D3BFC 90 1F 00 44 */ stw r0, 0x44(r31) -/* 802D6CC0 002D3C00 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D6CC4 002D3C04 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6CC8 002D3C08 7C 03 02 14 */ add r0, r3, r0 -/* 802D6CCC 002D3C0C 90 1F 00 48 */ stw r0, 0x48(r31) -/* 802D6CD0 002D3C10 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D6CD4 002D3C14 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802D6CD8 002D3C18 7C 03 02 14 */ add r0, r3, r0 -/* 802D6CDC 002D3C1C 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 802D6CE0 002D3C20 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D6CE4 002D3C24 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802D6CE8 002D3C28 7C 03 02 14 */ add r0, r3, r0 -/* 802D6CEC 002D3C2C 90 1F 00 54 */ stw r0, 0x54(r31) -/* 802D6CF0 002D3C30 80 9F 00 64 */ lwz r4, 0x64(r31) -/* 802D6CF4 002D3C34 80 64 00 0C */ lwz r3, 0xc(r4) -/* 802D6CF8 002D3C38 80 04 00 08 */ lwz r0, 8(r4) -/* 802D6CFC 002D3C3C 7C 00 1A 14 */ add r0, r0, r3 -/* 802D6D00 002D3C40 7C 04 02 14 */ add r0, r4, r0 -/* 802D6D04 002D3C44 90 1F 00 68 */ stw r0, 0x68(r31) -/* 802D6D08 002D3C48 38 00 00 01 */ li r0, 1 -/* 802D6D0C 002D3C4C 98 1F 00 6C */ stb r0, 0x6c(r31) -lbl_802D6D10: -/* 802D6D10 002D3C50 88 7F 00 3C */ lbz r3, 0x3c(r31) -/* 802D6D14 002D3C54 30 03 FF FF */ addic r0, r3, -1 -/* 802D6D18 002D3C58 7C 60 19 10 */ subfe r3, r0, r3 -/* 802D6D1C 002D3C5C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802D6D20 002D3C60 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6D24 002D3C64 7C 08 03 A6 */ mtlr r0 -/* 802D6D28 002D3C68 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6D2C 002D3C6C 4E 80 00 20 */ blr - -.global JKRMemArchive_NS_open_X1_ -JKRMemArchive_NS_open_X1_: -/* 802D6D30 002D3C70 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6D34 002D3C74 7C 08 02 A6 */ mflr r0 -/* 802D6D38 002D3C78 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6D3C 002D3C7C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D6D40 002D3C80 7C 7F 1B 78 */ mr r31, r3 -/* 802D6D44 002D3C84 90 83 00 64 */ stw r4, 0x64(r3) -/* 802D6D48 002D3C88 80 63 00 64 */ lwz r3, 0x64(r3) -/* 802D6D4C 002D3C8C 80 03 00 08 */ lwz r0, 8(r3) -/* 802D6D50 002D3C90 7C 03 02 14 */ add r0, r3, r0 -/* 802D6D54 002D3C94 90 1F 00 44 */ stw r0, 0x44(r31) -/* 802D6D58 002D3C98 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D6D5C 002D3C9C 80 03 00 04 */ lwz r0, 4(r3) -/* 802D6D60 002D3CA0 7C 03 02 14 */ add r0, r3, r0 -/* 802D6D64 002D3CA4 90 1F 00 48 */ stw r0, 0x48(r31) -/* 802D6D68 002D3CA8 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D6D6C 002D3CAC 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802D6D70 002D3CB0 7C 03 02 14 */ add r0, r3, r0 -/* 802D6D74 002D3CB4 90 1F 00 4C */ stw r0, 0x4c(r31) -/* 802D6D78 002D3CB8 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 802D6D7C 002D3CBC 80 03 00 14 */ lwz r0, 0x14(r3) -/* 802D6D80 002D3CC0 7C 03 02 14 */ add r0, r3, r0 -/* 802D6D84 002D3CC4 90 1F 00 54 */ stw r0, 0x54(r31) -/* 802D6D88 002D3CC8 80 BF 00 64 */ lwz r5, 0x64(r31) -/* 802D6D8C 002D3CCC 80 65 00 0C */ lwz r3, 0xc(r5) -/* 802D6D90 002D3CD0 80 05 00 08 */ lwz r0, 8(r5) -/* 802D6D94 002D3CD4 7C 00 1A 14 */ add r0, r0, r3 -/* 802D6D98 002D3CD8 7C 05 02 14 */ add r0, r5, r0 -/* 802D6D9C 002D3CDC 90 1F 00 68 */ stw r0, 0x68(r31) -/* 802D6DA0 002D3CE0 20 06 00 01 */ subfic r0, r6, 1 -/* 802D6DA4 002D3CE4 7C 00 00 34 */ cntlzw r0, r0 -/* 802D6DA8 002D3CE8 54 00 D9 7E */ srwi r0, r0, 5 -/* 802D6DAC 002D3CEC 98 1F 00 6C */ stb r0, 0x6c(r31) -/* 802D6DB0 002D3CF0 7C 83 23 78 */ mr r3, r4 -/* 802D6DB4 002D3CF4 4B FF 7A 89 */ bl findFromRoot__7JKRHeapFPv -/* 802D6DB8 002D3CF8 90 7F 00 38 */ stw r3, 0x38(r31) -/* 802D6DBC 002D3CFC 38 00 00 00 */ li r0, 0 -/* 802D6DC0 002D3D00 90 1F 00 5C */ stw r0, 0x5c(r31) -/* 802D6DC4 002D3D04 38 60 00 01 */ li r3, 1 -/* 802D6DC8 002D3D08 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D6DCC 002D3D0C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6DD0 002D3D10 7C 08 03 A6 */ mtlr r0 -/* 802D6DD4 002D3D14 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6DD8 002D3D18 4E 80 00 20 */ blr -/* 802D6DDC 002D3D1C 80 04 00 10 */ lwz r0, 0x10(r4) -/* 802D6DE0 002D3D20 28 00 00 00 */ cmplwi r0, 0 -/* 802D6DE4 002D3D24 40 82 00 14 */ bne lbl_802D6DF8 -/* 802D6DE8 002D3D28 80 63 00 68 */ lwz r3, 0x68(r3) -/* 802D6DEC 002D3D2C 80 04 00 08 */ lwz r0, 8(r4) -/* 802D6DF0 002D3D30 7C 03 02 14 */ add r0, r3, r0 -/* 802D6DF4 002D3D34 90 04 00 10 */ stw r0, 0x10(r4) -lbl_802D6DF8: -/* 802D6DF8 002D3D38 28 05 00 00 */ cmplwi r5, 0 -/* 802D6DFC 002D3D3C 41 82 00 0C */ beq lbl_802D6E08 -/* 802D6E00 002D3D40 80 04 00 0C */ lwz r0, 0xc(r4) -/* 802D6E04 002D3D44 90 05 00 00 */ stw r0, 0(r5) -lbl_802D6E08: -/* 802D6E08 002D3D48 80 64 00 10 */ lwz r3, 0x10(r4) -/* 802D6E0C 002D3D4C 4E 80 00 20 */ blr -/* 802D6E10 002D3D50 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802D6E14 002D3D54 7C 08 02 A6 */ mflr r0 -/* 802D6E18 002D3D58 90 01 00 24 */ stw r0, 0x24(r1) -/* 802D6E1C 002D3D5C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6E20 002D3D60 48 08 B3 BD */ bl _savegpr_29 -/* 802D6E24 002D3D64 7C 9D 23 78 */ mr r29, r4 -/* 802D6E28 002D3D68 7C A8 2B 78 */ mr r8, r5 -/* 802D6E2C 002D3D6C 7C FE 3B 78 */ mr r30, r7 -/* 802D6E30 002D3D70 83 E6 00 0C */ lwz r31, 0xc(r6) -/* 802D6E34 002D3D74 7C 1F 40 40 */ cmplw r31, r8 -/* 802D6E38 002D3D78 40 81 00 08 */ ble lbl_802D6E40 -/* 802D6E3C 002D3D7C 7D 1F 43 78 */ mr r31, r8 -lbl_802D6E40: -/* 802D6E40 002D3D80 80 86 00 10 */ lwz r4, 0x10(r6) -/* 802D6E44 002D3D84 28 04 00 00 */ cmplwi r4, 0 -/* 802D6E48 002D3D88 41 82 00 14 */ beq lbl_802D6E5C -/* 802D6E4C 002D3D8C 7F A3 EB 78 */ mr r3, r29 -/* 802D6E50 002D3D90 7F E5 FB 78 */ mr r5, r31 -/* 802D6E54 002D3D94 4B D2 C6 ED */ bl func_80003540 -/* 802D6E58 002D3D98 48 00 00 50 */ b lbl_802D6EA8 -lbl_802D6E5C: -/* 802D6E5C 002D3D9C 80 06 00 04 */ lwz r0, 4(r6) -/* 802D6E60 002D3DA0 54 04 46 3E */ srwi r4, r0, 0x18 -/* 802D6E64 002D3DA4 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D6E68 002D3DA8 40 82 00 0C */ bne lbl_802D6E74 -/* 802D6E6C 002D3DAC 38 E0 00 00 */ li r7, 0 -/* 802D6E70 002D3DB0 48 00 00 18 */ b lbl_802D6E88 -lbl_802D6E74: -/* 802D6E74 002D3DB4 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18 -/* 802D6E78 002D3DB8 41 82 00 0C */ beq lbl_802D6E84 -/* 802D6E7C 002D3DBC 38 E0 00 02 */ li r7, 2 -/* 802D6E80 002D3DC0 48 00 00 08 */ b lbl_802D6E88 -lbl_802D6E84: -/* 802D6E84 002D3DC4 38 E0 00 01 */ li r7, 1 -lbl_802D6E88: -/* 802D6E88 002D3DC8 80 63 00 68 */ lwz r3, 0x68(r3) -/* 802D6E8C 002D3DCC 80 06 00 08 */ lwz r0, 8(r6) -/* 802D6E90 002D3DD0 7C 63 02 14 */ add r3, r3, r0 -/* 802D6E94 002D3DD4 7F E4 FB 78 */ mr r4, r31 -/* 802D6E98 002D3DD8 7F A5 EB 78 */ mr r5, r29 -/* 802D6E9C 002D3DDC 7D 06 43 78 */ mr r6, r8 -/* 802D6EA0 002D3DE0 48 00 00 BD */ bl JKRMemArchive_NS_fetchResource_subroutine -/* 802D6EA4 002D3DE4 7C 7F 1B 78 */ mr r31, r3 -lbl_802D6EA8: -/* 802D6EA8 002D3DE8 28 1E 00 00 */ cmplwi r30, 0 -/* 802D6EAC 002D3DEC 41 82 00 08 */ beq lbl_802D6EB4 -/* 802D6EB0 002D3DF0 93 FE 00 00 */ stw r31, 0(r30) -lbl_802D6EB4: -/* 802D6EB4 002D3DF4 7F A3 EB 78 */ mr r3, r29 -/* 802D6EB8 002D3DF8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802D6EBC 002D3DFC 48 08 B3 6D */ bl _restgpr_29 -/* 802D6EC0 002D3E00 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802D6EC4 002D3E04 7C 08 03 A6 */ mtlr r0 -/* 802D6EC8 002D3E08 38 21 00 20 */ addi r1, r1, 0x20 -/* 802D6ECC 002D3E0C 4E 80 00 20 */ blr -/* 802D6ED0 002D3E10 80 03 00 44 */ lwz r0, 0x44(r3) -/* 802D6ED4 002D3E14 28 00 00 00 */ cmplwi r0, 0 -/* 802D6ED8 002D3E18 4D 82 00 20 */ beqlr -/* 802D6EDC 002D3E1C 88 03 00 3C */ lbz r0, 0x3c(r3) -/* 802D6EE0 002D3E20 28 00 00 01 */ cmplwi r0, 1 -/* 802D6EE4 002D3E24 4D 82 00 20 */ beqlr -/* 802D6EE8 002D3E28 80 C3 00 4C */ lwz r6, 0x4c(r3) -/* 802D6EEC 002D3E2C 38 E0 00 00 */ li r7, 0 -/* 802D6EF0 002D3E30 38 A0 00 00 */ li r5, 0 -/* 802D6EF4 002D3E34 48 00 00 18 */ b lbl_802D6F0C -lbl_802D6EF8: -/* 802D6EF8 002D3E38 80 06 00 10 */ lwz r0, 0x10(r6) -/* 802D6EFC 002D3E3C 28 00 00 00 */ cmplwi r0, 0 -/* 802D6F00 002D3E40 41 82 00 08 */ beq lbl_802D6F08 -/* 802D6F04 002D3E44 90 A6 00 10 */ stw r5, 0x10(r6) -lbl_802D6F08: -/* 802D6F08 002D3E48 38 E7 00 01 */ addi r7, r7, 1 -lbl_802D6F0C: -/* 802D6F0C 002D3E4C 80 83 00 44 */ lwz r4, 0x44(r3) -/* 802D6F10 002D3E50 80 04 00 08 */ lwz r0, 8(r4) -/* 802D6F14 002D3E54 7C 07 00 40 */ cmplw r7, r0 -/* 802D6F18 002D3E58 41 80 FF E0 */ blt lbl_802D6EF8 -/* 802D6F1C 002D3E5C 4E 80 00 20 */ blr -/* 802D6F20 002D3E60 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6F24 002D3E64 7C 08 02 A6 */ mflr r0 -/* 802D6F28 002D3E68 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6F2C 002D3E6C 4B FF F8 09 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D6F30 002D3E70 28 03 00 00 */ cmplwi r3, 0 -/* 802D6F34 002D3E74 40 82 00 0C */ bne lbl_802D6F40 -/* 802D6F38 002D3E78 38 60 00 00 */ li r3, 0 -/* 802D6F3C 002D3E7C 48 00 00 10 */ b lbl_802D6F4C -lbl_802D6F40: -/* 802D6F40 002D3E80 38 00 00 00 */ li r0, 0 -/* 802D6F44 002D3E84 90 03 00 10 */ stw r0, 0x10(r3) -/* 802D6F48 002D3E88 38 60 00 01 */ li r3, 1 -lbl_802D6F4C: -/* 802D6F4C 002D3E8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D6F50 002D3E90 7C 08 03 A6 */ mtlr r0 -/* 802D6F54 002D3E94 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D6F58 002D3E98 4E 80 00 20 */ blr - -.global JKRMemArchive_NS_fetchResource_subroutine -JKRMemArchive_NS_fetchResource_subroutine: -/* 802D6F5C 002D3E9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D6F60 002D3EA0 7C 08 02 A6 */ mflr r0 -/* 802D6F64 002D3EA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D6F68 002D3EA8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D6F6C 002D3EAC 7C 68 1B 78 */ mr r8, r3 -/* 802D6F70 002D3EB0 7C 9F 23 78 */ mr r31, r4 -/* 802D6F74 002D3EB4 2C 07 00 00 */ cmpwi r7, 0 -/* 802D6F78 002D3EB8 41 82 00 14 */ beq lbl_802D6F8C -/* 802D6F7C 002D3EBC 41 80 00 80 */ blt lbl_802D6FFC -/* 802D6F80 002D3EC0 2C 07 00 03 */ cmpwi r7, 3 -/* 802D6F84 002D3EC4 40 80 00 78 */ bge lbl_802D6FFC -/* 802D6F88 002D3EC8 48 00 00 28 */ b lbl_802D6FB0 -lbl_802D6F8C: -/* 802D6F8C 002D3ECC 7C 1F 30 40 */ cmplw r31, r6 -/* 802D6F90 002D3ED0 40 81 00 08 */ ble lbl_802D6F98 -/* 802D6F94 002D3ED4 7C DF 33 78 */ mr r31, r6 -lbl_802D6F98: -/* 802D6F98 002D3ED8 7C A3 2B 78 */ mr r3, r5 -/* 802D6F9C 002D3EDC 7D 04 43 78 */ mr r4, r8 -/* 802D6FA0 002D3EE0 7F E5 FB 78 */ mr r5, r31 -/* 802D6FA4 002D3EE4 4B D2 C5 9D */ bl func_80003540 -/* 802D6FA8 002D3EE8 7F E3 FB 78 */ mr r3, r31 -/* 802D6FAC 002D3EEC 48 00 00 70 */ b lbl_802D701C -lbl_802D6FB0: -/* 802D6FB0 002D3EF0 88 E8 00 07 */ lbz r7, 7(r8) -/* 802D6FB4 002D3EF4 88 88 00 06 */ lbz r4, 6(r8) -/* 802D6FB8 002D3EF8 88 68 00 04 */ lbz r3, 4(r8) -/* 802D6FBC 002D3EFC 88 08 00 05 */ lbz r0, 5(r8) -/* 802D6FC0 002D3F00 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D6FC4 002D3F04 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D6FC8 002D3F08 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D6FCC 002D3F0C 7C E0 03 78 */ or r0, r7, r0 -/* 802D6FD0 002D3F10 7C 1F 03 78 */ mr r31, r0 -/* 802D6FD4 002D3F14 7C 00 30 40 */ cmplw r0, r6 -/* 802D6FD8 002D3F18 40 81 00 08 */ ble lbl_802D6FE0 -/* 802D6FDC 002D3F1C 7C DF 33 78 */ mr r31, r6 -lbl_802D6FE0: -/* 802D6FE0 002D3F20 7D 03 43 78 */ mr r3, r8 -/* 802D6FE4 002D3F24 7C A4 2B 78 */ mr r4, r5 -/* 802D6FE8 002D3F28 7F E5 FB 78 */ mr r5, r31 -/* 802D6FEC 002D3F2C 38 C0 00 00 */ li r6, 0 -/* 802D6FF0 002D3F30 48 00 49 99 */ bl JKRDecomp_NS_orderSync -/* 802D6FF4 002D3F34 7F E3 FB 78 */ mr r3, r31 -/* 802D6FF8 002D3F38 48 00 00 24 */ b lbl_802D701C -lbl_802D6FFC: -/* 802D6FFC 002D3F3C 3C 60 80 3A */ lis r3, lbl_8039D160@ha -/* 802D7000 002D3F40 38 63 D1 60 */ addi r3, r3, lbl_8039D160@l -/* 802D7004 002D3F44 38 80 02 D3 */ li r4, 0x2d3 -/* 802D7008 002D3F48 38 A3 00 12 */ addi r5, r3, 0x12 -/* 802D700C 002D3F4C 38 C3 00 15 */ addi r6, r3, 0x15 -/* 802D7010 002D3F50 4C C6 31 82 */ crclr 6 -/* 802D7014 002D3F54 48 00 B1 E9 */ bl JUTException_NS_panic_f -/* 802D7018 002D3F58 38 60 00 00 */ li r3, 0 -lbl_802D701C: -/* 802D701C 002D3F5C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D7020 002D3F60 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D7024 002D3F64 7C 08 03 A6 */ mtlr r0 -/* 802D7028 002D3F68 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D702C 002D3F6C 4E 80 00 20 */ blr -/* 802D7030 002D3F70 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802D7034 002D3F74 7C 08 02 A6 */ mflr r0 -/* 802D7038 002D3F78 90 01 00 14 */ stw r0, 0x14(r1) -/* 802D703C 002D3F7C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802D7040 002D3F80 93 C1 00 08 */ stw r30, 8(r1) -/* 802D7044 002D3F84 7C 7E 1B 78 */ mr r30, r3 -/* 802D7048 002D3F88 7C 9F 23 78 */ mr r31, r4 -/* 802D704C 002D3F8C 4B FF F6 E9 */ bl findPtrResource__10JKRArchiveCFPCv -/* 802D7050 002D3F90 28 03 00 00 */ cmplwi r3, 0 -/* 802D7054 002D3F94 40 82 00 0C */ bne lbl_802D7060 -/* 802D7058 002D3F98 38 60 FF FF */ li r3, -1 -/* 802D705C 002D3F9C 48 00 00 4C */ b lbl_802D70A8 -lbl_802D7060: -/* 802D7060 002D3FA0 80 03 00 04 */ lwz r0, 4(r3) -/* 802D7064 002D3FA4 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d -/* 802D7068 002D3FA8 40 82 00 20 */ bne lbl_802D7088 -/* 802D706C 002D3FAC 7F C3 F3 78 */ mr r3, r30 -/* 802D7070 002D3FB0 7F E4 FB 78 */ mr r4, r31 -/* 802D7074 002D3FB4 81 9E 00 00 */ lwz r12, 0(r30) -/* 802D7078 002D3FB8 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802D707C 002D3FBC 7D 89 03 A6 */ mtctr r12 -/* 802D7080 002D3FC0 4E 80 04 21 */ bctrl -/* 802D7084 002D3FC4 48 00 00 24 */ b lbl_802D70A8 -lbl_802D7088: -/* 802D7088 002D3FC8 88 BF 00 07 */ lbz r5, 7(r31) -/* 802D708C 002D3FCC 88 9F 00 06 */ lbz r4, 6(r31) -/* 802D7090 002D3FD0 88 7F 00 04 */ lbz r3, 4(r31) -/* 802D7094 002D3FD4 88 1F 00 05 */ lbz r0, 5(r31) -/* 802D7098 002D3FD8 54 00 80 1E */ slwi r0, r0, 0x10 -/* 802D709C 002D3FDC 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 -/* 802D70A0 002D3FE0 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 -/* 802D70A4 002D3FE4 7C A3 03 78 */ or r3, r5, r0 -lbl_802D70A8: -/* 802D70A8 002D3FE8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802D70AC 002D3FEC 83 C1 00 08 */ lwz r30, 8(r1) -/* 802D70B0 002D3FF0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802D70B4 002D3FF4 7C 08 03 A6 */ mtlr r0 -/* 802D70B8 002D3FF8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802D70BC 002D3FFC 4E 80 00 20 */ blr - diff --git a/asm/JSupport/JSUFileStream.s b/asm/JSupport/JSUFileStream.s index 5bea7728ac..24014c74f5 100644 --- a/asm/JSupport/JSUFileStream.s +++ b/asm/JSupport/JSUFileStream.s @@ -3,8 +3,8 @@ .section .text, "ax" # 802dc638 -.global JSUFileInputStream -JSUFileInputStream: +.global JSUFileInputStream_ct +JSUFileInputStream_ct: /* 802DC638 002D9578 3C A0 80 3C */ lis r5, lbl_803C2DF8@ha /* 802DC63C 002D957C 38 05 2D F8 */ addi r0, r5, lbl_803C2DF8@l /* 802DC640 002D9580 90 03 00 00 */ stw r0, 0(r3) diff --git a/asm/JUtility/JUTCacheFont.s b/asm/JUtility/JUTCacheFont.s index 1a52ad7c87..77ea40cc03 100644 --- a/asm/JUtility/JUTCacheFont.s +++ b/asm/JUtility/JUTCacheFont.s @@ -410,7 +410,7 @@ lbl_802DD700: /* 802DD710 002DA650 80 1C 00 74 */ lwz r0, 0x74(r28) /* 802DD714 002DA654 7C 84 00 50 */ subf r4, r4, r0 /* 802DD718 002DA658 38 A0 00 00 */ li r5, 0 -/* 802DD71C 002DA65C 4B FF 58 A1 */ bl JKRAramHeap_NS_alloc +/* 802DD71C 002DA65C 4B FF 58 A1 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode /* 802DD720 002DA660 90 7C 00 AC */ stw r3, 0xac(r28) /* 802DD724 002DA664 80 1C 00 AC */ lwz r0, 0xac(r28) /* 802DD728 002DA668 28 00 00 00 */ cmplwi r0, 0 @@ -625,7 +625,7 @@ lbl_802DD9EC: /* 802DDA14 002DA954 39 00 00 00 */ li r8, 0 /* 802DDA18 002DA958 39 20 FF FF */ li r9, -1 /* 802DDA1C 002DA95C 39 40 00 00 */ li r10, 0 -/* 802DDA20 002DA960 4B FF 49 1D */ bl JKRAram_NS_mainRamToAram +/* 802DDA20 002DA960 4B FF 49 1D */ bl mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl /* 802DDA24 002DA964 28 03 00 00 */ cmplwi r3, 0 /* 802DDA28 002DA968 40 82 00 24 */ bne lbl_802DDA4C /* 802DDA2C 002DA96C 3C 60 80 3A */ lis r3, lbl_8039D2F0@ha @@ -796,7 +796,7 @@ lbl_802DDC40: /* 802DDC70 002DABB0 39 00 00 00 */ li r8, 0 /* 802DDC74 002DABB4 39 20 FF FF */ li r9, -1 /* 802DDC78 002DABB8 39 40 00 00 */ li r10, 0 -/* 802DDC7C 002DABBC 4B FF 49 39 */ bl JKRAram_NS_aramToMainRam +/* 802DDC7C 002DABBC 4B FF 49 39 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl /* 802DDC80 002DABC0 38 7F 00 20 */ addi r3, r31, 0x20 /* 802DDC84 002DABC4 38 9F 00 40 */ addi r4, r31, 0x40 /* 802DDC88 002DABC8 A0 BF 00 1A */ lhz r5, 0x1a(r31) diff --git a/asm/d/d_lib.s b/asm/d/d_lib.s index 7d80a2fd61..f7cc96e0cc 100644 --- a/asm/d/d_lib.s +++ b/asm/d/d_lib.s @@ -526,7 +526,7 @@ dLib_getExpandSizeFromAramArchive: /* 80032754 0002F694 93 CC FF F8 */ stw r30, -8(r12) /* 80032758 0002F698 7C 7E 1B 78 */ mr r30, r3 /* 8003275C 0002F69C 7C 9F 23 78 */ mr r31, r4 -/* 80032760 0002F6A0 48 2A 50 BD */ bl JKRAramArchive_NS_getAramAddress +/* 80032760 0002F6A0 48 2A 50 BD */ bl getAramAddress__14JKRAramArchiveFPCc /* 80032764 0002F6A4 28 03 00 00 */ cmplwi r3, 0 /* 80032768 0002F6A8 40 82 00 0C */ bne lbl_80032774 /* 8003276C 0002F6AC 38 60 00 00 */ li r3, 0 @@ -539,7 +539,7 @@ lbl_80032774: /* 80032784 0002F6C4 39 00 00 00 */ li r8, 0 /* 80032788 0002F6C8 39 20 FF FF */ li r9, -1 /* 8003278C 0002F6CC 39 40 00 00 */ li r10, 0 -/* 80032790 0002F6D0 48 29 FE 25 */ bl JKRAram_NS_aramToMainRam +/* 80032790 0002F6D0 48 29 FE 25 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl /* 80032794 0002F6D4 7F C3 F3 78 */ mr r3, r30 /* 80032798 0002F6D8 7F E4 FB 78 */ mr r4, r31 /* 8003279C 0002F6DC 38 A0 00 00 */ li r5, 0 diff --git a/asm/d/d_resorce.s b/asm/d/d_resorce.s index a50c7be23d..db6f62e070 100644 --- a/asm/d/d_resorce.s +++ b/asm/d/d_resorce.s @@ -2552,7 +2552,7 @@ lbl_8003C540: /* 8003C550 00039490 7F 84 E3 78 */ mr r4, r28 /* 8003C554 00039494 7F A5 EB 78 */ mr r5, r29 /* 8003C558 00039498 38 C0 00 00 */ li r6, 0 -/* 8003C55C 0003949C 48 29 A5 11 */ bl JKRMemArchive_X1_ +/* 8003C55C 0003949C 48 29 A5 11 */ bl __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag /* 8003C560 000394A0 7C 7F 1B 78 */ mr r31, r3 lbl_8003C564: /* 8003C564 000394A4 28 1F 00 00 */ cmplwi r31, 0 diff --git a/asm/d/s/d_s_logo.s b/asm/d/s/d_s_logo.s index 52e35d930c..98b9d82781 100644 --- a/asm/d/s/d_s_logo.s +++ b/asm/d/s/d_s_logo.s @@ -1614,13 +1614,13 @@ lbl_80257830: /* 80257830 00254770 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) /* 80257834 00254774 83 63 00 94 */ lwz r27, 0x94(r3) /* 80257838 00254778 7F 63 DB 78 */ mr r3, r27 -/* 8025783C 0025477C 48 07 B9 71 */ bl JKRAramHeap_NS_getTotalFreeSize +/* 8025783C 0025477C 48 07 B9 71 */ bl getTotalFreeSize__11JKRAramHeapFv /* 80257840 00254780 7C 7C 1B 78 */ mr r28, r3 /* 80257844 00254784 4B DB D1 AD */ bl mDoExt_getMesgFont /* 80257848 00254788 4B DB D3 59 */ bl mDoExt_getSubFont /* 8025784C 0025478C 4B DB D2 B9 */ bl mDoExt_getRubyFont /* 80257850 00254790 7F 63 DB 78 */ mr r3, r27 -/* 80257854 00254794 48 07 B9 59 */ bl JKRAramHeap_NS_getTotalFreeSize +/* 80257854 00254794 48 07 B9 59 */ bl getTotalFreeSize__11JKRAramHeapFv /* 80257858 00254798 7C 63 E0 50 */ subf r3, r3, r28 /* 8025785C 0025479C 4B DB D5 01 */ bl mDoExt_setAraCacheSize /* 80257860 002547A0 80 7F 02 A0 */ lwz r3, 0x2a0(r31) diff --git a/asm/m/Do/dvd/m_Do_dvd_thread.s b/asm/m/Do/dvd/m_Do_dvd_thread.s index bfb223f991..f4f192f053 100644 --- a/asm/m/Do/dvd/m_Do_dvd_thread.s +++ b/asm/m/Do/dvd/m_Do_dvd_thread.s @@ -568,7 +568,7 @@ lbl_80015F70: /* 80015F90 00012ED0 41 82 00 14 */ beq lbl_80015FA4 /* 80015F94 00012ED4 80 9A 00 18 */ lwz r4, 0x18(r26) /* 80015F98 00012ED8 38 A0 00 01 */ li r5, 1 -/* 80015F9C 00012EDC 48 2C 0A 1D */ bl JKRMemArchive +/* 80015F9C 00012EDC 48 2C 0A 1D */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection /* 80015FA0 00012EE0 7C 60 1B 78 */ mr r0, r3 lbl_80015FA4: /* 80015FA4 00012EE4 7C 19 03 78 */ mr r25, r0 @@ -582,7 +582,7 @@ lbl_80015FAC: /* 80015FC0 00012F00 41 82 00 14 */ beq lbl_80015FD4 /* 80015FC4 00012F04 80 9A 00 18 */ lwz r4, 0x18(r26) /* 80015FC8 00012F08 38 A0 00 02 */ li r5, 2 -/* 80015FCC 00012F0C 48 2C 09 ED */ bl JKRMemArchive +/* 80015FCC 00012F0C 48 2C 09 ED */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection /* 80015FD0 00012F10 7C 60 1B 78 */ mr r0, r3 lbl_80015FD4: /* 80015FD4 00012F14 7C 19 03 78 */ mr r25, r0 @@ -963,7 +963,7 @@ lbl_800164EC: lbl_8001651C: /* 8001651C 0001345C 39 20 00 00 */ li r9, 0 /* 80016520 00013460 39 40 00 00 */ li r10, 0 -/* 80016524 00013464 48 2C 37 31 */ bl JKRDvdRipper_NS_loadToMainRAM_X1_ +/* 80016524 00013464 48 2C 37 31 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl /* 80016528 00013468 90 7E 00 1C */ stw r3, 0x1c(r30) /* 8001652C 0001346C 80 9E 00 1C */ lwz r4, 0x1c(r30) /* 80016530 00013470 28 04 00 00 */ cmplwi r4, 0 diff --git a/asm/m/Do/m_Do_machine.s b/asm/m/Do/m_Do_machine.s index d5ae8a6609..85d01a18cd 100644 --- a/asm/m/Do/m_Do_machine.s +++ b/asm/m/Do/m_Do_machine.s @@ -1016,7 +1016,7 @@ lbl_8000BED4: /* 8000BFE4 00008F24 38 60 00 00 */ li r3, 0 /* 8000BFE8 00008F28 38 80 20 00 */ li r4, 0x2000 /* 8000BFEC 00008F2C 80 AD 8D F0 */ lwz r5, lbl_80451370-_SDA_BASE_(r13) -/* 8000BFF0 00008F30 48 2C 80 45 */ bl JKRAramStream_NS_setTransBuffer +/* 8000BFF0 00008F30 48 2C 80 45 */ bl setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap /* 8000BFF4 00008F34 38 60 00 00 */ li r3, 0 /* 8000BFF8 00008F38 48 2C 5A 1D */ bl createManager__15JKRThreadSwitchFP7JKRHeap /* 8000BFFC 00008F3C 38 60 00 7C */ li r3, 0x7c diff --git a/asm/m/Do/machine/m_Do_machine_exception.s b/asm/m/Do/machine/m_Do_machine_exception.s index 92c046efb1..e2eed8ad28 100644 --- a/asm/m/Do/machine/m_Do_machine_exception.s +++ b/asm/m/Do/machine/m_Do_machine_exception.s @@ -116,7 +116,7 @@ dispHeapInfo: /* 80017F10 00014E50 80 63 00 94 */ lwz r3, 0x94(r3) /* 80017F14 00014E54 28 03 00 00 */ cmplwi r3, 0 /* 80017F18 00014E58 41 82 00 08 */ beq lbl_80017F20 -/* 80017F1C 00014E5C 48 2B B2 FD */ bl JKRAramHeap_NS_dump +/* 80017F1C 00014E5C 48 2B B2 FD */ bl dump__11JKRAramHeapFv lbl_80017F20: /* 80017F20 00014E60 48 24 A5 51 */ bl DynamicModuleControlBase_NS_dump /* 80017F24 00014E64 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha diff --git a/include/JSystem/JKernel/JKRAram/JKRAram.h b/include/JSystem/JKernel/JKRAram/JKRAram.h new file mode 100644 index 0000000000..8bbf87c10d --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/JKRAram.h @@ -0,0 +1,81 @@ +#ifndef __JKRARAM_H__ +#define __JKRARAM_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRThread/JKRThread.h" + +// JKRExpandSwitch +#include "JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h" +#include "global.h" + +#include "JSystem/JKernel/JKRAramHeap/JKRAramHeap.h" + +class JKRHeap; +class JKRAramBlock; +class JKRAram : public JKRThread { + private: + JKRAram(u32, u32, long); + virtual ~JKRAram(); + + /* vt[03] */ void* run(void); /* override */ + + public: + void* getAudioMemory() { + return this->mAudioMemoryPtr; + } + u32 getAudioMemSize() { + return this->mAudioMemorySize; + } + + private: + void* mAudioMemoryPtr; + u32 mAudioMemorySize; + void* mGraphMemoryPtr; + u32 mGraphMemorySize; + void* mAramMemoryPtr; + u32 mAramMemorySize; + JKRAramHeap* mAramHeap; + u32 field_0x9c; + u32 field_0xa0; + + public: + static void create(u32, u32, long, long, long); + static void checkOkAddress(u8*, u32, JKRAramBlock*, u32); + static void changeGroupIdIfNeed(u8*, int); + static void mainRamToAram(u8*, u32, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); + static void aramToMainRam(u32, u8*, u32, JKRExpandSwitch, u32, JKRHeap*, int, u32*); + + static JKRAram* getManager() { + return lbl_804513C8; + } + + static JKRAramHeap* getAramHeap() { + return getManager()->mAramHeap; + } + + static u8 decideAramGroupId(int groupId) { + JKRAramHeap* heap; + u8 finalGroupId; + + if (groupId < 0) { + return getAramHeap()->getCurrentGroupID(); + } + + return (u8)groupId; + } + + static u32 getSZSBufferSize() { + return lbl_804508B8; + } + + void setSZSBufferSize(u32 size) { + lbl_804508B8 = size; + } +}; + +void JKRDecompressFromAramToMainRam(u32, void*, u32, u32, u32, u32*); +static void decompSZS_subroutine(u8*, u8*); +static void firstSrcData(void); +static void nextSrcData(u8*); + +#endif diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D1FA4.s b/include/JSystem/JKernel/JKRAram/asm/func_802D1FA4.s new file mode 100644 index 0000000000..51f01a0935 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D1FA4.s @@ -0,0 +1,43 @@ +/* create__7JKRAramFUlUllll __ct__7JKRAramFUlUll::create(unsigned long, unsigned long, long, long, long) */ +/* JKRAram_NS_create */ +/* 802D1FA4 002CEEE4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D1FA8 002CEEE8 7C 08 02 A6 */ mflr r0 +/* 802D1FAC 002CEEEC 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D1FB0 002CEEF0 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D1FB4 002CEEF4 48 09 02 21 */ bl _savegpr_27 +/* 802D1FB8 002CEEF8 7C 7B 1B 78 */ mr r27, r3 +/* 802D1FBC 002CEEFC 7C 9C 23 78 */ mr r28, r4 +/* 802D1FC0 002CEF00 7C BD 2B 78 */ mr r29, r5 +/* 802D1FC4 002CEF04 7C DE 33 78 */ mr r30, r6 +/* 802D1FC8 002CEF08 7C FF 3B 78 */ mr r31, r7 +/* 802D1FCC 002CEF0C 80 0D 8E 48 */ lwz r0, lbl_804513C8-_SDA_BASE_(r13) +/* 802D1FD0 002CEF10 28 00 00 00 */ cmplwi r0, 0 +/* 802D1FD4 002CEF14 40 82 00 34 */ bne lbl_802D2008 +/* 802D1FD8 002CEF18 38 60 00 A4 */ li r3, 0xa4 +/* 802D1FDC 002CEF1C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D1FE0 002CEF20 38 A0 00 00 */ li r5, 0 +/* 802D1FE4 002CEF24 4B FF CC B5 */ bl __nw__FUlP7JKRHeapi +/* 802D1FE8 002CEF28 7C 60 1B 79 */ or. r0, r3, r3 +/* 802D1FEC 002CEF2C 41 82 00 18 */ beq lbl_802D2004 +/* 802D1FF0 002CEF30 7F 64 DB 78 */ mr r4, r27 +/* 802D1FF4 002CEF34 7F 85 E3 78 */ mr r5, r28 +/* 802D1FF8 002CEF38 7F E6 FB 78 */ mr r6, r31 +/* 802D1FFC 002CEF3C 48 00 00 45 */ bl __ct__7JKRAramFUlUll +/* 802D2000 002CEF40 7C 60 1B 78 */ mr r0, r3 +lbl_802D2004: +/* 802D2004 002CEF44 90 0D 8E 48 */ stw r0, lbl_804513C8-_SDA_BASE_(r13) +lbl_802D2008: +/* 802D2008 002CEF48 7F A3 EB 78 */ mr r3, r29 +/* 802D200C 002CEF4C 48 00 1B 3D */ bl create__13JKRAramStreamFl +/* 802D2010 002CEF50 7F C3 F3 78 */ mr r3, r30 +/* 802D2014 002CEF54 48 00 96 6D */ bl create__9JKRDecompFl +/* 802D2018 002CEF58 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802D201C 002CEF5C 80 63 00 2C */ lwz r3, 0x2c(r3) +/* 802D2020 002CEF60 48 06 F7 95 */ bl OSResumeThread +/* 802D2024 002CEF64 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802D2028 002CEF68 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D202C 002CEF6C 48 09 01 F5 */ bl _restgpr_27 +/* 802D2030 002CEF70 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D2034 002CEF74 7C 08 03 A6 */ mtlr r0 +/* 802D2038 002CEF78 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D203C 002CEF7C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2040.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2040.s new file mode 100644 index 0000000000..50ff23d956 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2040.s @@ -0,0 +1,74 @@ +/* __ct__7JKRAramFUlUll __ct__7JKRAramFUlUll::__ct(unsigned long, unsigned long, long) */ +/* JKRAram */ +/* 802D2040 002CEF80 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D2044 002CEF84 7C 08 02 A6 */ mflr r0 +/* 802D2048 002CEF88 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D204C 002CEF8C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2050 002CEF90 48 09 01 89 */ bl _savegpr_28 +/* 802D2054 002CEF94 7C 7C 1B 78 */ mr r28, r3 +/* 802D2058 002CEF98 7C 9D 23 78 */ mr r29, r4 +/* 802D205C 002CEF9C 7C BE 2B 78 */ mr r30, r5 +/* 802D2060 002CEFA0 38 80 0C 00 */ li r4, 0xc00 +/* 802D2064 002CEFA4 38 A0 00 10 */ li r5, 0x10 +/* 802D2068 002CEFA8 4B FF F5 01 */ bl __ct__9JKRThreadFUlii +/* 802D206C 002CEFAC 3C 60 80 3D */ lis r3, lbl_803CC158@ha +/* 802D2070 002CEFB0 38 03 C1 58 */ addi r0, r3, lbl_803CC158@l +/* 802D2074 002CEFB4 90 1C 00 00 */ stw r0, 0(r28) +/* 802D2078 002CEFB8 38 7C 00 98 */ addi r3, r28, 0x98 +/* 802D207C 002CEFBC 38 80 00 03 */ li r4, 3 +/* 802D2080 002CEFC0 48 07 E6 AD */ bl ARInit +/* 802D2084 002CEFC4 7C 7F 1B 78 */ mr r31, r3 +/* 802D2088 002CEFC8 48 08 01 DD */ bl ARQInit +/* 802D208C 002CEFCC 48 07 E7 65 */ bl ARGetSize +/* 802D2090 002CEFD0 93 BC 00 80 */ stw r29, 0x80(r28) +/* 802D2094 002CEFD4 3C 1E 00 01 */ addis r0, r30, 1 +/* 802D2098 002CEFD8 28 00 FF FF */ cmplwi r0, 0xffff +/* 802D209C 002CEFDC 40 82 00 1C */ bne lbl_802D20B8 +/* 802D20A0 002CEFE0 7C 1D 18 50 */ subf r0, r29, r3 +/* 802D20A4 002CEFE4 7C 1F 00 50 */ subf r0, r31, r0 +/* 802D20A8 002CEFE8 90 1C 00 88 */ stw r0, 0x88(r28) +/* 802D20AC 002CEFEC 38 00 00 00 */ li r0, 0 +/* 802D20B0 002CEFF0 90 1C 00 90 */ stw r0, 0x90(r28) +/* 802D20B4 002CEFF4 48 00 00 18 */ b lbl_802D20CC +lbl_802D20B8: +/* 802D20B8 002CEFF8 93 DC 00 88 */ stw r30, 0x88(r28) +/* 802D20BC 002CEFFC 7C 1D F2 14 */ add r0, r29, r30 +/* 802D20C0 002CF000 7C 00 18 50 */ subf r0, r0, r3 +/* 802D20C4 002CF004 7C 1F 00 50 */ subf r0, r31, r0 +/* 802D20C8 002CF008 90 1C 00 90 */ stw r0, 0x90(r28) +lbl_802D20CC: +/* 802D20CC 002CF00C 80 7C 00 80 */ lwz r3, 0x80(r28) +/* 802D20D0 002CF010 48 07 E5 F5 */ bl ARAlloc +/* 802D20D4 002CF014 90 7C 00 7C */ stw r3, 0x7c(r28) +/* 802D20D8 002CF018 80 7C 00 88 */ lwz r3, 0x88(r28) +/* 802D20DC 002CF01C 48 07 E5 E9 */ bl ARAlloc +/* 802D20E0 002CF020 90 7C 00 84 */ stw r3, 0x84(r28) +/* 802D20E4 002CF024 80 7C 00 90 */ lwz r3, 0x90(r28) +/* 802D20E8 002CF028 28 03 00 00 */ cmplwi r3, 0 +/* 802D20EC 002CF02C 41 82 00 10 */ beq lbl_802D20FC +/* 802D20F0 002CF030 48 07 E5 D5 */ bl ARAlloc +/* 802D20F4 002CF034 90 7C 00 8C */ stw r3, 0x8c(r28) +/* 802D20F8 002CF038 48 00 00 0C */ b lbl_802D2104 +lbl_802D20FC: +/* 802D20FC 002CF03C 38 00 00 00 */ li r0, 0 +/* 802D2100 002CF040 90 1C 00 8C */ stw r0, 0x8c(r28) +lbl_802D2104: +/* 802D2104 002CF044 38 60 00 44 */ li r3, 0x44 +/* 802D2108 002CF048 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D210C 002CF04C 38 A0 00 00 */ li r5, 0 +/* 802D2110 002CF050 4B FF CB 89 */ bl __nw__FUlP7JKRHeapi +/* 802D2114 002CF054 7C 60 1B 79 */ or. r0, r3, r3 +/* 802D2118 002CF058 41 82 00 14 */ beq lbl_802D212C +/* 802D211C 002CF05C 80 9C 00 84 */ lwz r4, 0x84(r28) +/* 802D2120 002CF060 80 BC 00 88 */ lwz r5, 0x88(r28) +/* 802D2124 002CF064 48 00 0D 21 */ bl __ct__11JKRAramHeapFUlUl +/* 802D2128 002CF068 7C 60 1B 78 */ mr r0, r3 +lbl_802D212C: +/* 802D212C 002CF06C 90 1C 00 94 */ stw r0, 0x94(r28) +/* 802D2130 002CF070 7F 83 E3 78 */ mr r3, r28 +/* 802D2134 002CF074 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2138 002CF078 48 09 00 ED */ bl _restgpr_28 +/* 802D213C 002CF07C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D2140 002CF080 7C 08 03 A6 */ mtlr r0 +/* 802D2144 002CF084 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D2148 002CF088 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D214C.s b/include/JSystem/JKernel/JKRAram/asm/func_802D214C.s new file mode 100644 index 0000000000..b2529a2dc4 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D214C.s @@ -0,0 +1,40 @@ +/* __dt__7JKRAramFv __ct__7JKRAramFUlUll::__dt(void) */ +/* missing reference */ +/* 802D214C 002CF08C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D2150 002CF090 7C 08 02 A6 */ mflr r0 +/* 802D2154 002CF094 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D2158 002CF098 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D215C 002CF09C 93 C1 00 08 */ stw r30, 8(r1) +/* 802D2160 002CF0A0 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D2164 002CF0A4 7C 9F 23 78 */ mr r31, r4 +/* 802D2168 002CF0A8 41 82 00 58 */ beq lbl_802D21C0 +/* 802D216C 002CF0AC 3C 60 80 3D */ lis r3, lbl_803CC158@ha +/* 802D2170 002CF0B0 38 03 C1 58 */ addi r0, r3, lbl_803CC158@l +/* 802D2174 002CF0B4 90 1E 00 00 */ stw r0, 0(r30) +/* 802D2178 002CF0B8 38 00 00 00 */ li r0, 0 +/* 802D217C 002CF0BC 90 0D 8E 48 */ stw r0, lbl_804513C8-_SDA_BASE_(r13) +/* 802D2180 002CF0C0 80 7E 00 94 */ lwz r3, 0x94(r30) +/* 802D2184 002CF0C4 28 03 00 00 */ cmplwi r3, 0 +/* 802D2188 002CF0C8 41 82 00 1C */ beq lbl_802D21A4 +/* 802D218C 002CF0CC 41 82 00 18 */ beq lbl_802D21A4 +/* 802D2190 002CF0D0 38 80 00 01 */ li r4, 1 +/* 802D2194 002CF0D4 81 83 00 00 */ lwz r12, 0(r3) +/* 802D2198 002CF0D8 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D219C 002CF0DC 7D 89 03 A6 */ mtctr r12 +/* 802D21A0 002CF0E0 4E 80 04 21 */ bctrl +lbl_802D21A4: +/* 802D21A4 002CF0E4 7F C3 F3 78 */ mr r3, r30 +/* 802D21A8 002CF0E8 38 80 00 00 */ li r4, 0 +/* 802D21AC 002CF0EC 4B FF F5 AD */ bl __dt__9JKRThreadFv +/* 802D21B0 002CF0F0 7F E0 07 35 */ extsh. r0, r31 +/* 802D21B4 002CF0F4 40 81 00 0C */ ble lbl_802D21C0 +/* 802D21B8 002CF0F8 7F C3 F3 78 */ mr r3, r30 +/* 802D21BC 002CF0FC 4B FF CB 81 */ bl __dl__FPv +lbl_802D21C0: +/* 802D21C0 002CF100 7F C3 F3 78 */ mr r3, r30 +/* 802D21C4 002CF104 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D21C8 002CF108 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D21CC 002CF10C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D21D0 002CF110 7C 08 03 A6 */ mtlr r0 +/* 802D21D4 002CF114 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D21D8 002CF118 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D21DC.s b/include/JSystem/JKernel/JKRAram/asm/func_802D21DC.s new file mode 100644 index 0000000000..618d7471b9 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D21DC.s @@ -0,0 +1,31 @@ +/* run__7JKRAramFv __ct__7JKRAramFUlUll::run(void) */ +/* missing reference */ +/* 802D21DC 002CF11C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D21E0 002CF120 7C 08 02 A6 */ mflr r0 +/* 802D21E4 002CF124 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D21E8 002CF128 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D21EC 002CF12C 48 08 FF F1 */ bl _savegpr_29 +/* 802D21F0 002CF130 3C 60 80 3D */ lis r3, lbl_803CC138@ha +/* 802D21F4 002CF134 38 63 C1 38 */ addi r3, r3, lbl_803CC138@l +/* 802D21F8 002CF138 3C 80 80 3D */ lis r4, lbl_803CC128@ha +/* 802D21FC 002CF13C 38 84 C1 28 */ addi r4, r4, lbl_803CC128@l +/* 802D2200 002CF140 38 A0 00 04 */ li r5, 4 +/* 802D2204 002CF144 48 06 C7 91 */ bl OSInitMessageQueue +/* 802D2208 002CF148 3C 60 80 3D */ lis r3, lbl_803CC138@ha +/* 802D220C 002CF14C 3B E3 C1 38 */ addi r31, r3, lbl_803CC138@l +lbl_802D2210: +/* 802D2210 002CF150 7F E3 FB 78 */ mr r3, r31 +/* 802D2214 002CF154 38 81 00 08 */ addi r4, r1, 8 +/* 802D2218 002CF158 38 A0 00 01 */ li r5, 1 +/* 802D221C 002CF15C 48 06 C8 A1 */ bl OSReceiveMessage +/* 802D2220 002CF160 80 61 00 08 */ lwz r3, 8(r1) +/* 802D2224 002CF164 83 C3 00 00 */ lwz r30, 0(r3) +/* 802D2228 002CF168 83 A3 00 04 */ lwz r29, 4(r3) +/* 802D222C 002CF16C 4B FF CB 11 */ bl __dl__FPv +/* 802D2230 002CF170 2C 1E 00 01 */ cmpwi r30, 1 +/* 802D2234 002CF174 41 82 00 08 */ beq lbl_802D223C +/* 802D2238 002CF178 4B FF FF D8 */ b lbl_802D2210 +lbl_802D223C: +/* 802D223C 002CF17C 7F A3 EB 78 */ mr r3, r29 +/* 802D2240 002CF180 48 00 16 8D */ bl startDMA__12JKRAramPieceFP12JKRAMCommand +/* 802D2244 002CF184 4B FF FF CC */ b lbl_802D2210 diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2248.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2248.s new file mode 100644 index 0000000000..90c431714f --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2248.s @@ -0,0 +1,41 @@ +/* checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl __ct__7JKRAramFUlUll::checkOkAddress(unsigned char *, unsigned long, JKRAramBlock *, unsigned long) */ +/* JKRAram_NS_checkOkAddress */ +/* 802D2248 002CF188 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D224C 002CF18C 7C 08 02 A6 */ mflr r0 +/* 802D2250 002CF190 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D2254 002CF194 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D2258 002CF198 93 C1 00 08 */ stw r30, 8(r1) +/* 802D225C 002CF19C 7C BE 2B 78 */ mr r30, r5 +/* 802D2260 002CF1A0 7C DF 33 78 */ mr r31, r6 +/* 802D2264 002CF1A4 54 60 06 FF */ clrlwi. r0, r3, 0x1b +/* 802D2268 002CF1A8 41 82 00 28 */ beq lbl_802D2290 +/* 802D226C 002CF1AC 54 80 06 FF */ clrlwi. r0, r4, 0x1b +/* 802D2270 002CF1B0 41 82 00 20 */ beq lbl_802D2290 +/* 802D2274 002CF1B4 3C 60 80 3A */ lis r3, lbl_8039D078@ha +/* 802D2278 002CF1B8 38 63 D0 78 */ addi r3, r3, lbl_8039D078@l +/* 802D227C 002CF1BC 38 80 00 DB */ li r4, 0xdb +/* 802D2280 002CF1C0 38 A3 00 0C */ addi r5, r3, 0xc +/* 802D2284 002CF1C4 38 C3 00 0F */ addi r6, r3, 0xf +/* 802D2288 002CF1C8 4C C6 31 82 */ crclr 6 +/* 802D228C 002CF1CC 48 00 FF 71 */ bl JUTException_NS_panic_f +lbl_802D2290: +/* 802D2290 002CF1D0 28 1E 00 00 */ cmplwi r30, 0 +/* 802D2294 002CF1D4 41 82 00 30 */ beq lbl_802D22C4 +/* 802D2298 002CF1D8 80 1E 00 14 */ lwz r0, 0x14(r30) +/* 802D229C 002CF1DC 7C 1F 02 14 */ add r0, r31, r0 +/* 802D22A0 002CF1E0 54 00 06 FF */ clrlwi. r0, r0, 0x1b +/* 802D22A4 002CF1E4 41 82 00 20 */ beq lbl_802D22C4 +/* 802D22A8 002CF1E8 3C 60 80 3A */ lis r3, lbl_8039D078@ha +/* 802D22AC 002CF1EC 38 63 D0 78 */ addi r3, r3, lbl_8039D078@l +/* 802D22B0 002CF1F0 38 80 00 E3 */ li r4, 0xe3 +/* 802D22B4 002CF1F4 38 A3 00 0C */ addi r5, r3, 0xc +/* 802D22B8 002CF1F8 38 C3 00 0F */ addi r6, r3, 0xf +/* 802D22BC 002CF1FC 4C C6 31 82 */ crclr 6 +/* 802D22C0 002CF200 48 00 FF 3D */ bl JUTException_NS_panic_f +lbl_802D22C4: +/* 802D22C4 002CF204 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D22C8 002CF208 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D22CC 002CF20C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D22D0 002CF210 7C 08 03 A6 */ mtlr r0 +/* 802D22D4 002CF214 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D22D8 002CF218 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D22DC.s b/include/JSystem/JKernel/JKRAram/asm/func_802D22DC.s new file mode 100644 index 0000000000..e32a9b73a4 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D22DC.s @@ -0,0 +1,27 @@ +/* changeGroupIdIfNeed__7JKRAramFPUci __ct__7JKRAramFUlUll::changeGroupIdIfNeed(unsigned char *, int) */ +/* JKRAram_NS_changeGroupIdIfNeed */ +/* 802D22DC 002CF21C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D22E0 002CF220 7C 08 02 A6 */ mflr r0 +/* 802D22E4 002CF224 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D22E8 002CF228 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D22EC 002CF22C 93 C1 00 08 */ stw r30, 8(r1) +/* 802D22F0 002CF230 7C 7E 1B 78 */ mr r30, r3 +/* 802D22F4 002CF234 7C 9F 23 78 */ mr r31, r4 +/* 802D22F8 002CF238 80 6D 8D F4 */ lwz r3, lbl_80451374-_SDA_BASE_(r13) +/* 802D22FC 002CF23C 81 83 00 00 */ lwz r12, 0(r3) +/* 802D2300 002CF240 81 8C 00 10 */ lwz r12, 0x10(r12) +/* 802D2304 002CF244 7D 89 03 A6 */ mtctr r12 +/* 802D2308 002CF248 4E 80 04 21 */ bctrl +/* 802D230C 002CF24C 3C 03 BA A8 */ addis r0, r3, 0xbaa8 +/* 802D2310 002CF250 28 00 50 48 */ cmplwi r0, 0x5048 +/* 802D2314 002CF254 40 82 00 10 */ bne lbl_802D2324 +/* 802D2318 002CF258 2C 1F 00 00 */ cmpwi r31, 0 +/* 802D231C 002CF25C 41 80 00 08 */ blt lbl_802D2324 +/* 802D2320 002CF260 9B FE FF F3 */ stb r31, -0xd(r30) +lbl_802D2324: +/* 802D2324 002CF264 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D2328 002CF268 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D232C 002CF26C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D2330 002CF270 7C 08 03 A6 */ mtlr r0 +/* 802D2334 002CF274 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D2338 002CF278 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D233C.s b/include/JSystem/JKernel/JKRAram/asm/func_802D233C.s new file mode 100644 index 0000000000..ae27dc2a59 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D233C.s @@ -0,0 +1,184 @@ +/* mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl __ct__7JKRAramFUlUll::mainRamToAram(unsigned char *, unsigned long, unsigned long, JKRExpandSwitch, unsigned long, JKRHeap *, int, unsigned long *) */ +/* JKRAram_NS_mainRamToAram */ +/* 802D233C 002CF27C 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D2340 002CF280 7C 08 02 A6 */ mflr r0 +/* 802D2344 002CF284 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D2348 002CF288 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D234C 002CF28C 48 08 FE 79 */ bl func_803621C4 +/* 802D2350 002CF290 7C 7E 1B 78 */ mr r30, r3 +/* 802D2354 002CF294 7C 98 23 78 */ mr r24, r4 +/* 802D2358 002CF298 7C BF 2B 78 */ mr r31, r5 +/* 802D235C 002CF29C 7C D7 33 78 */ mr r23, r6 +/* 802D2360 002CF2A0 7C F9 3B 78 */ mr r25, r7 +/* 802D2364 002CF2A4 7D 1A 43 78 */ mr r26, r8 +/* 802D2368 002CF2A8 7D 3B 4B 78 */ mr r27, r9 +/* 802D236C 002CF2AC 7D 5C 53 78 */ mr r28, r10 +/* 802D2370 002CF2B0 3B A0 00 00 */ li r29, 0 +/* 802D2374 002CF2B4 38 A0 00 00 */ li r5, 0 +/* 802D2378 002CF2B8 38 C0 00 00 */ li r6, 0 +/* 802D237C 002CF2BC 4B FF FE CD */ bl checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl +/* 802D2380 002CF2C0 2C 17 00 01 */ cmpwi r23, 1 +/* 802D2384 002CF2C4 40 82 00 20 */ bne lbl_802D23A4 +/* 802D2388 002CF2C8 7F C3 F3 78 */ mr r3, r30 +/* 802D238C 002CF2CC 48 00 99 6D */ bl checkCompressed__9JKRDecompFPUc +/* 802D2390 002CF2D0 2C 03 00 03 */ cmpwi r3, 3 +/* 802D2394 002CF2D4 40 82 00 08 */ bne lbl_802D239C +/* 802D2398 002CF2D8 38 60 00 00 */ li r3, 0 +lbl_802D239C: +/* 802D239C 002CF2DC 30 03 FF FF */ addic r0, r3, -1 +/* 802D23A0 002CF2E0 7E E0 19 10 */ subfe r23, r0, r3 +lbl_802D23A4: +/* 802D23A4 002CF2E4 2C 17 00 01 */ cmpwi r23, 1 +/* 802D23A8 002CF2E8 40 82 01 54 */ bne lbl_802D24FC +/* 802D23AC 002CF2EC 88 BE 00 07 */ lbz r5, 7(r30) +/* 802D23B0 002CF2F0 88 9E 00 06 */ lbz r4, 6(r30) +/* 802D23B4 002CF2F4 88 7E 00 04 */ lbz r3, 4(r30) +/* 802D23B8 002CF2F8 88 1E 00 05 */ lbz r0, 5(r30) +/* 802D23BC 002CF2FC 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D23C0 002CF300 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D23C4 002CF304 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D23C8 002CF308 7C B7 03 78 */ or r23, r5, r0 +/* 802D23CC 002CF30C 28 19 00 00 */ cmplwi r25, 0 +/* 802D23D0 002CF310 41 82 00 0C */ beq lbl_802D23DC +/* 802D23D4 002CF314 7C 19 B8 40 */ cmplw r25, r23 +/* 802D23D8 002CF318 40 81 00 0C */ ble lbl_802D23E4 +lbl_802D23DC: +/* 802D23DC 002CF31C 38 17 00 1F */ addi r0, r23, 0x1f +/* 802D23E0 002CF320 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a +lbl_802D23E4: +/* 802D23E4 002CF324 28 18 00 00 */ cmplwi r24, 0 +/* 802D23E8 002CF328 40 82 00 50 */ bne lbl_802D2438 +/* 802D23EC 002CF32C 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802D23F0 002CF330 80 63 00 94 */ lwz r3, 0x94(r3) +/* 802D23F4 002CF334 7F 24 CB 78 */ mr r4, r25 +/* 802D23F8 002CF338 38 A0 00 00 */ li r5, 0 +/* 802D23FC 002CF33C 48 00 0B C1 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode +/* 802D2400 002CF340 7C 7D 1B 78 */ mr r29, r3 +/* 802D2404 002CF344 28 03 00 00 */ cmplwi r3, 0 +/* 802D2408 002CF348 40 82 00 0C */ bne lbl_802D2414 +/* 802D240C 002CF34C 38 60 00 00 */ li r3, 0 +/* 802D2410 002CF350 48 00 01 8C */ b lbl_802D259C +lbl_802D2414: +/* 802D2414 002CF354 2C 1B 00 00 */ cmpwi r27, 0 +/* 802D2418 002CF358 40 80 00 14 */ bge lbl_802D242C +/* 802D241C 002CF35C 80 8D 8E 48 */ lwz r4, lbl_804513C8-_SDA_BASE_(r13) +/* 802D2420 002CF360 80 84 00 94 */ lwz r4, 0x94(r4) +/* 802D2424 002CF364 88 04 00 40 */ lbz r0, 0x40(r4) +/* 802D2428 002CF368 48 00 00 08 */ b lbl_802D2430 +lbl_802D242C: +/* 802D242C 002CF36C 57 60 06 3E */ clrlwi r0, r27, 0x18 +lbl_802D2430: +/* 802D2430 002CF370 98 03 00 20 */ stb r0, 0x20(r3) +/* 802D2434 002CF374 83 03 00 14 */ lwz r24, 0x14(r3) +lbl_802D2438: +/* 802D2438 002CF378 28 1F 00 00 */ cmplwi r31, 0 +/* 802D243C 002CF37C 41 82 00 0C */ beq lbl_802D2448 +/* 802D2440 002CF380 7C 1F B8 40 */ cmplw r31, r23 +/* 802D2444 002CF384 40 81 00 0C */ ble lbl_802D2450 +lbl_802D2448: +/* 802D2448 002CF388 38 17 00 1F */ addi r0, r23, 0x1f +/* 802D244C 002CF38C 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a +lbl_802D2450: +/* 802D2450 002CF390 7C 1F C8 40 */ cmplw r31, r25 +/* 802D2454 002CF394 40 81 00 08 */ ble lbl_802D245C +/* 802D2458 002CF398 7F 3F CB 78 */ mr r31, r25 +lbl_802D245C: +/* 802D245C 002CF39C 7F 23 CB 78 */ mr r3, r25 +/* 802D2460 002CF3A0 38 80 FF E0 */ li r4, -32 +/* 802D2464 002CF3A4 7F 45 D3 78 */ mr r5, r26 +/* 802D2468 002CF3A8 4B FF C0 0D */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D246C 002CF3AC 7C 77 1B 79 */ or. r23, r3, r3 +/* 802D2470 002CF3B0 40 82 00 30 */ bne lbl_802D24A0 +/* 802D2474 002CF3B4 28 1D 00 00 */ cmplwi r29, 0 +/* 802D2478 002CF3B8 41 82 00 20 */ beq lbl_802D2498 +/* 802D247C 002CF3BC 41 82 00 1C */ beq lbl_802D2498 +/* 802D2480 002CF3C0 7F A3 EB 78 */ mr r3, r29 +/* 802D2484 002CF3C4 38 80 00 01 */ li r4, 1 +/* 802D2488 002CF3C8 81 9D 00 00 */ lwz r12, 0(r29) +/* 802D248C 002CF3CC 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D2490 002CF3D0 7D 89 03 A6 */ mtctr r12 +/* 802D2494 002CF3D4 4E 80 04 21 */ bctrl +lbl_802D2498: +/* 802D2498 002CF3D8 38 60 00 00 */ li r3, 0 +/* 802D249C 002CF3DC 48 00 01 00 */ b lbl_802D259C +lbl_802D24A0: +/* 802D24A0 002CF3E0 7F C3 F3 78 */ mr r3, r30 +/* 802D24A4 002CF3E4 7E E4 BB 78 */ mr r4, r23 +/* 802D24A8 002CF3E8 7F 25 CB 78 */ mr r5, r25 +/* 802D24AC 002CF3EC 38 C0 00 00 */ li r6, 0 +/* 802D24B0 002CF3F0 48 00 94 D9 */ bl orderSync__9JKRDecompFPUcPUcUlUl +/* 802D24B4 002CF3F4 38 60 00 00 */ li r3, 0 +/* 802D24B8 002CF3F8 7E E4 BB 78 */ mr r4, r23 +/* 802D24BC 002CF3FC 7F 05 C3 78 */ mr r5, r24 +/* 802D24C0 002CF400 7F E6 FB 78 */ mr r6, r31 +/* 802D24C4 002CF404 7F A7 EB 78 */ mr r7, r29 +/* 802D24C8 002CF408 48 00 13 71 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D24CC 002CF40C 7E E3 BB 78 */ mr r3, r23 +/* 802D24D0 002CF410 7F 44 D3 78 */ mr r4, r26 +/* 802D24D4 002CF414 4B FF C0 2D */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D24D8 002CF418 28 1D 00 00 */ cmplwi r29, 0 +/* 802D24DC 002CF41C 40 82 00 0C */ bne lbl_802D24E8 +/* 802D24E0 002CF420 38 60 FF FF */ li r3, -1 +/* 802D24E4 002CF424 48 00 00 08 */ b lbl_802D24EC +lbl_802D24E8: +/* 802D24E8 002CF428 7F A3 EB 78 */ mr r3, r29 +lbl_802D24EC: +/* 802D24EC 002CF42C 28 1C 00 00 */ cmplwi r28, 0 +/* 802D24F0 002CF430 41 82 00 AC */ beq lbl_802D259C +/* 802D24F4 002CF434 93 FC 00 00 */ stw r31, 0(r28) +/* 802D24F8 002CF438 48 00 00 A4 */ b lbl_802D259C +lbl_802D24FC: +/* 802D24FC 002CF43C 28 19 00 00 */ cmplwi r25, 0 +/* 802D2500 002CF440 41 82 00 10 */ beq lbl_802D2510 +/* 802D2504 002CF444 7C 1F C8 40 */ cmplw r31, r25 +/* 802D2508 002CF448 40 81 00 08 */ ble lbl_802D2510 +/* 802D250C 002CF44C 7F 3F CB 78 */ mr r31, r25 +lbl_802D2510: +/* 802D2510 002CF450 28 18 00 00 */ cmplwi r24, 0 +/* 802D2514 002CF454 40 82 00 50 */ bne lbl_802D2564 +/* 802D2518 002CF458 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802D251C 002CF45C 80 63 00 94 */ lwz r3, 0x94(r3) +/* 802D2520 002CF460 7F E4 FB 78 */ mr r4, r31 +/* 802D2524 002CF464 38 A0 00 00 */ li r5, 0 +/* 802D2528 002CF468 48 00 0A 95 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode +/* 802D252C 002CF46C 7C 7D 1B 78 */ mr r29, r3 +/* 802D2530 002CF470 2C 1B 00 00 */ cmpwi r27, 0 +/* 802D2534 002CF474 40 80 00 14 */ bge lbl_802D2548 +/* 802D2538 002CF478 80 8D 8E 48 */ lwz r4, lbl_804513C8-_SDA_BASE_(r13) +/* 802D253C 002CF47C 80 84 00 94 */ lwz r4, 0x94(r4) +/* 802D2540 002CF480 88 04 00 40 */ lbz r0, 0x40(r4) +/* 802D2544 002CF484 48 00 00 08 */ b lbl_802D254C +lbl_802D2548: +/* 802D2548 002CF488 57 60 06 3E */ clrlwi r0, r27, 0x18 +lbl_802D254C: +/* 802D254C 002CF48C 98 03 00 20 */ stb r0, 0x20(r3) +/* 802D2550 002CF490 28 03 00 00 */ cmplwi r3, 0 +/* 802D2554 002CF494 40 82 00 0C */ bne lbl_802D2560 +/* 802D2558 002CF498 38 60 00 00 */ li r3, 0 +/* 802D255C 002CF49C 48 00 00 40 */ b lbl_802D259C +lbl_802D2560: +/* 802D2560 002CF4A0 83 03 00 14 */ lwz r24, 0x14(r3) +lbl_802D2564: +/* 802D2564 002CF4A4 38 60 00 00 */ li r3, 0 +/* 802D2568 002CF4A8 7F C4 F3 78 */ mr r4, r30 +/* 802D256C 002CF4AC 7F 05 C3 78 */ mr r5, r24 +/* 802D2570 002CF4B0 7F E6 FB 78 */ mr r6, r31 +/* 802D2574 002CF4B4 7F A7 EB 78 */ mr r7, r29 +/* 802D2578 002CF4B8 48 00 12 C1 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D257C 002CF4BC 28 1D 00 00 */ cmplwi r29, 0 +/* 802D2580 002CF4C0 40 82 00 0C */ bne lbl_802D258C +/* 802D2584 002CF4C4 38 60 FF FF */ li r3, -1 +/* 802D2588 002CF4C8 48 00 00 08 */ b lbl_802D2590 +lbl_802D258C: +/* 802D258C 002CF4CC 7F A3 EB 78 */ mr r3, r29 +lbl_802D2590: +/* 802D2590 002CF4D0 28 1C 00 00 */ cmplwi r28, 0 +/* 802D2594 002CF4D4 41 82 00 08 */ beq lbl_802D259C +/* 802D2598 002CF4D8 93 FC 00 00 */ stw r31, 0(r28) +lbl_802D259C: +/* 802D259C 002CF4DC 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D25A0 002CF4E0 48 08 FC 71 */ bl func_80362210 +/* 802D25A4 002CF4E4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D25A8 002CF4E8 7C 08 03 A6 */ mtlr r0 +/* 802D25AC 002CF4EC 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D25B0 002CF4F0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D25B4.s b/include/JSystem/JKernel/JKRAram/asm/func_802D25B4.s new file mode 100644 index 0000000000..6306af973b --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D25B4.s @@ -0,0 +1,179 @@ +/* aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl __ct__7JKRAramFUlUll::aramToMainRam(unsigned long, unsigned char *, unsigned long, JKRExpandSwitch, unsigned long, JKRHeap *, int, unsigned long *) */ +/* JKRAram_NS_aramToMainRam */ +/* 802D25B4 002CF4F4 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 802D25B8 002CF4F8 7C 08 02 A6 */ mflr r0 +/* 802D25BC 002CF4FC 90 01 00 74 */ stw r0, 0x74(r1) +/* 802D25C0 002CF500 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D25C4 002CF504 48 08 FB FD */ bl func_803621C0 +/* 802D25C8 002CF508 7C 79 1B 78 */ mr r25, r3 +/* 802D25CC 002CF50C 7C 9A 23 78 */ mr r26, r4 +/* 802D25D0 002CF510 7C BB 2B 78 */ mr r27, r5 +/* 802D25D4 002CF514 7C D6 33 78 */ mr r22, r6 +/* 802D25D8 002CF518 7C FC 3B 78 */ mr r28, r7 +/* 802D25DC 002CF51C 7D 1D 43 78 */ mr r29, r8 +/* 802D25E0 002CF520 7D 3E 4B 78 */ mr r30, r9 +/* 802D25E4 002CF524 7D 5F 53 79 */ or. r31, r10, r10 +/* 802D25E8 002CF528 3B 00 00 00 */ li r24, 0 +/* 802D25EC 002CF52C 41 82 00 0C */ beq lbl_802D25F8 +/* 802D25F0 002CF530 38 00 00 00 */ li r0, 0 +/* 802D25F4 002CF534 90 1F 00 00 */ stw r0, 0(r31) +lbl_802D25F8: +/* 802D25F8 002CF538 7F 43 D3 78 */ mr r3, r26 +/* 802D25FC 002CF53C 7F 24 CB 78 */ mr r4, r25 +/* 802D2600 002CF540 38 A0 00 00 */ li r5, 0 +/* 802D2604 002CF544 38 C0 00 00 */ li r6, 0 +/* 802D2608 002CF548 4B FF FC 41 */ bl checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl +/* 802D260C 002CF54C 2C 16 00 01 */ cmpwi r22, 1 +/* 802D2610 002CF550 40 82 00 5C */ bne lbl_802D266C +/* 802D2614 002CF554 38 01 00 27 */ addi r0, r1, 0x27 +/* 802D2618 002CF558 54 17 00 34 */ rlwinm r23, r0, 0, 0, 0x1a +/* 802D261C 002CF55C 38 60 00 01 */ li r3, 1 +/* 802D2620 002CF560 7F 24 CB 78 */ mr r4, r25 +/* 802D2624 002CF564 7E E5 BB 78 */ mr r5, r23 +/* 802D2628 002CF568 38 C0 00 20 */ li r6, 0x20 +/* 802D262C 002CF56C 38 E0 00 00 */ li r7, 0 +/* 802D2630 002CF570 48 00 12 09 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D2634 002CF574 7E E3 BB 78 */ mr r3, r23 +/* 802D2638 002CF578 48 00 96 C1 */ bl checkCompressed__9JKRDecompFPUc +/* 802D263C 002CF57C 2C 03 00 03 */ cmpwi r3, 3 +/* 802D2640 002CF580 40 82 00 08 */ bne lbl_802D2648 +/* 802D2644 002CF584 38 60 00 00 */ li r3, 0 +lbl_802D2648: +/* 802D2648 002CF588 7C 78 1B 78 */ mr r24, r3 +/* 802D264C 002CF58C 88 B7 00 07 */ lbz r5, 7(r23) +/* 802D2650 002CF590 88 97 00 06 */ lbz r4, 6(r23) +/* 802D2654 002CF594 88 77 00 04 */ lbz r3, 4(r23) +/* 802D2658 002CF598 88 17 00 05 */ lbz r0, 5(r23) +/* 802D265C 002CF59C 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D2660 002CF5A0 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D2664 002CF5A4 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D2668 002CF5A8 7C B7 03 78 */ or r23, r5, r0 +lbl_802D266C: +/* 802D266C 002CF5AC 2C 18 00 02 */ cmpwi r24, 2 +/* 802D2670 002CF5B0 40 82 00 74 */ bne lbl_802D26E4 +/* 802D2674 002CF5B4 28 1C 00 00 */ cmplwi r28, 0 +/* 802D2678 002CF5B8 41 82 00 10 */ beq lbl_802D2688 +/* 802D267C 002CF5BC 7C 1C B8 40 */ cmplw r28, r23 +/* 802D2680 002CF5C0 40 80 00 08 */ bge lbl_802D2688 +/* 802D2684 002CF5C4 7F 97 E3 78 */ mr r23, r28 +lbl_802D2688: +/* 802D2688 002CF5C8 28 1A 00 00 */ cmplwi r26, 0 +/* 802D268C 002CF5CC 40 82 00 18 */ bne lbl_802D26A4 +/* 802D2690 002CF5D0 7E E3 BB 78 */ mr r3, r23 +/* 802D2694 002CF5D4 38 80 00 20 */ li r4, 0x20 +/* 802D2698 002CF5D8 7F A5 EB 78 */ mr r5, r29 +/* 802D269C 002CF5DC 4B FF BD D9 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D26A0 002CF5E0 7C 7A 1B 78 */ mr r26, r3 +lbl_802D26A4: +/* 802D26A4 002CF5E4 28 1A 00 00 */ cmplwi r26, 0 +/* 802D26A8 002CF5E8 40 82 00 0C */ bne lbl_802D26B4 +/* 802D26AC 002CF5EC 38 60 00 00 */ li r3, 0 +/* 802D26B0 002CF5F0 48 00 01 68 */ b lbl_802D2818 +lbl_802D26B4: +/* 802D26B4 002CF5F4 7F 43 D3 78 */ mr r3, r26 +/* 802D26B8 002CF5F8 7F C4 F3 78 */ mr r4, r30 +/* 802D26BC 002CF5FC 4B FF FC 21 */ bl changeGroupIdIfNeed__7JKRAramFPUci +/* 802D26C0 002CF600 7F 23 CB 78 */ mr r3, r25 +/* 802D26C4 002CF604 7F 44 D3 78 */ mr r4, r26 +/* 802D26C8 002CF608 7F 65 DB 78 */ mr r5, r27 +/* 802D26CC 002CF60C 7E E6 BB 78 */ mr r6, r23 +/* 802D26D0 002CF610 38 E0 00 00 */ li r7, 0 +/* 802D26D4 002CF614 7F E8 FB 78 */ mr r8, r31 +/* 802D26D8 002CF618 48 00 01 59 */ bl JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl +/* 802D26DC 002CF61C 7F 43 D3 78 */ mr r3, r26 +/* 802D26E0 002CF620 48 00 01 38 */ b lbl_802D2818 +lbl_802D26E4: +/* 802D26E4 002CF624 2C 18 00 01 */ cmpwi r24, 1 +/* 802D26E8 002CF628 40 82 00 D0 */ bne lbl_802D27B8 +/* 802D26EC 002CF62C 7F 63 DB 78 */ mr r3, r27 +/* 802D26F0 002CF630 38 80 FF E0 */ li r4, -32 +/* 802D26F4 002CF634 7F A5 EB 78 */ mr r5, r29 +/* 802D26F8 002CF638 4B FF BD 7D */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D26FC 002CF63C 7C 78 1B 79 */ or. r24, r3, r3 +/* 802D2700 002CF640 40 82 00 0C */ bne lbl_802D270C +/* 802D2704 002CF644 38 60 00 00 */ li r3, 0 +/* 802D2708 002CF648 48 00 01 10 */ b lbl_802D2818 +lbl_802D270C: +/* 802D270C 002CF64C 38 60 00 01 */ li r3, 1 +/* 802D2710 002CF650 7F 24 CB 78 */ mr r4, r25 +/* 802D2714 002CF654 7F 05 C3 78 */ mr r5, r24 +/* 802D2718 002CF658 7F 66 DB 78 */ mr r6, r27 +/* 802D271C 002CF65C 38 E0 00 00 */ li r7, 0 +/* 802D2720 002CF660 48 00 11 19 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D2724 002CF664 28 1C 00 00 */ cmplwi r28, 0 +/* 802D2728 002CF668 41 82 00 10 */ beq lbl_802D2738 +/* 802D272C 002CF66C 7C 1C B8 40 */ cmplw r28, r23 +/* 802D2730 002CF670 40 80 00 08 */ bge lbl_802D2738 +/* 802D2734 002CF674 7F 97 E3 78 */ mr r23, r28 +lbl_802D2738: +/* 802D2738 002CF678 28 1A 00 00 */ cmplwi r26, 0 +/* 802D273C 002CF67C 40 82 00 1C */ bne lbl_802D2758 +/* 802D2740 002CF680 7E E3 BB 78 */ mr r3, r23 +/* 802D2744 002CF684 38 80 00 20 */ li r4, 0x20 +/* 802D2748 002CF688 7F A5 EB 78 */ mr r5, r29 +/* 802D274C 002CF68C 4B FF BD 29 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D2750 002CF690 7C 79 1B 78 */ mr r25, r3 +/* 802D2754 002CF694 48 00 00 08 */ b lbl_802D275C +lbl_802D2758: +/* 802D2758 002CF698 7F 59 D3 78 */ mr r25, r26 +lbl_802D275C: +/* 802D275C 002CF69C 28 19 00 00 */ cmplwi r25, 0 +/* 802D2760 002CF6A0 40 82 00 18 */ bne lbl_802D2778 +/* 802D2764 002CF6A4 7F 03 C3 78 */ mr r3, r24 +/* 802D2768 002CF6A8 38 80 00 00 */ li r4, 0 +/* 802D276C 002CF6AC 4B FF BD 95 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D2770 002CF6B0 38 60 00 00 */ li r3, 0 +/* 802D2774 002CF6B4 48 00 00 A4 */ b lbl_802D2818 +lbl_802D2778: +/* 802D2778 002CF6B8 7F 23 CB 78 */ mr r3, r25 +/* 802D277C 002CF6BC 7F C4 F3 78 */ mr r4, r30 +/* 802D2780 002CF6C0 4B FF FB 5D */ bl changeGroupIdIfNeed__7JKRAramFPUci +/* 802D2784 002CF6C4 7F 03 C3 78 */ mr r3, r24 +/* 802D2788 002CF6C8 7F 24 CB 78 */ mr r4, r25 +/* 802D278C 002CF6CC 7E E5 BB 78 */ mr r5, r23 +/* 802D2790 002CF6D0 38 C0 00 00 */ li r6, 0 +/* 802D2794 002CF6D4 48 00 91 F5 */ bl orderSync__9JKRDecompFPUcPUcUlUl +/* 802D2798 002CF6D8 7F 03 C3 78 */ mr r3, r24 +/* 802D279C 002CF6DC 7F A4 EB 78 */ mr r4, r29 +/* 802D27A0 002CF6E0 4B FF BD 61 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D27A4 002CF6E4 28 1F 00 00 */ cmplwi r31, 0 +/* 802D27A8 002CF6E8 41 82 00 08 */ beq lbl_802D27B0 +/* 802D27AC 002CF6EC 92 FF 00 00 */ stw r23, 0(r31) +lbl_802D27B0: +/* 802D27B0 002CF6F0 7F 23 CB 78 */ mr r3, r25 +/* 802D27B4 002CF6F4 48 00 00 64 */ b lbl_802D2818 +lbl_802D27B8: +/* 802D27B8 002CF6F8 28 1A 00 00 */ cmplwi r26, 0 +/* 802D27BC 002CF6FC 40 82 00 18 */ bne lbl_802D27D4 +/* 802D27C0 002CF700 7F 63 DB 78 */ mr r3, r27 +/* 802D27C4 002CF704 38 80 00 20 */ li r4, 0x20 +/* 802D27C8 002CF708 7F A5 EB 78 */ mr r5, r29 +/* 802D27CC 002CF70C 4B FF BC A9 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D27D0 002CF710 7C 7A 1B 78 */ mr r26, r3 +lbl_802D27D4: +/* 802D27D4 002CF714 28 1A 00 00 */ cmplwi r26, 0 +/* 802D27D8 002CF718 40 82 00 0C */ bne lbl_802D27E4 +/* 802D27DC 002CF71C 38 60 00 00 */ li r3, 0 +/* 802D27E0 002CF720 48 00 00 38 */ b lbl_802D2818 +lbl_802D27E4: +/* 802D27E4 002CF724 7F 43 D3 78 */ mr r3, r26 +/* 802D27E8 002CF728 7F C4 F3 78 */ mr r4, r30 +/* 802D27EC 002CF72C 4B FF FA F1 */ bl changeGroupIdIfNeed__7JKRAramFPUci +/* 802D27F0 002CF730 38 60 00 01 */ li r3, 1 +/* 802D27F4 002CF734 7F 24 CB 78 */ mr r4, r25 +/* 802D27F8 002CF738 7F 45 D3 78 */ mr r5, r26 +/* 802D27FC 002CF73C 7F 66 DB 78 */ mr r6, r27 +/* 802D2800 002CF740 38 E0 00 00 */ li r7, 0 +/* 802D2804 002CF744 48 00 10 35 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D2808 002CF748 28 1F 00 00 */ cmplwi r31, 0 +/* 802D280C 002CF74C 41 82 00 08 */ beq lbl_802D2814 +/* 802D2810 002CF750 93 7F 00 00 */ stw r27, 0(r31) +lbl_802D2814: +/* 802D2814 002CF754 7F 43 D3 78 */ mr r3, r26 +lbl_802D2818: +/* 802D2818 002CF758 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D281C 002CF75C 48 08 F9 F1 */ bl func_8036220C +/* 802D2820 002CF760 80 01 00 74 */ lwz r0, 0x74(r1) +/* 802D2824 002CF764 7C 08 03 A6 */ mtlr r0 +/* 802D2828 002CF768 38 21 00 70 */ addi r1, r1, 0x70 +/* 802D282C 002CF76C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2830.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2830.s new file mode 100644 index 0000000000..cf2f3592a3 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2830.s @@ -0,0 +1,101 @@ +/* JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl JKRDecompressFromAramToMainRam(unsigned long, void *, unsigned long, unsigned long, unsigned long, unsigned long *) */ +/* JKRDecompressFromAramToMainRam */ +/* 802D2830 002CF770 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D2834 002CF774 7C 08 02 A6 */ mflr r0 +/* 802D2838 002CF778 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D283C 002CF77C 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D2840 002CF780 48 08 F9 8D */ bl func_803621CC +/* 802D2844 002CF784 7C 7A 1B 78 */ mr r26, r3 +/* 802D2848 002CF788 7C 9B 23 78 */ mr r27, r4 +/* 802D284C 002CF78C 7C BC 2B 78 */ mr r28, r5 +/* 802D2850 002CF790 7C DD 33 78 */ mr r29, r6 +/* 802D2854 002CF794 7C FE 3B 78 */ mr r30, r7 +/* 802D2858 002CF798 7D 1F 43 78 */ mr r31, r8 +/* 802D285C 002CF79C 48 06 AE 99 */ bl __RAS_OSDisableInterrupts_begin +/* 802D2860 002CF7A0 7C 79 1B 78 */ mr r25, r3 +/* 802D2864 002CF7A4 88 0D 8E 7C */ lbz r0, lbl_804513FC-_SDA_BASE_(r13) +/* 802D2868 002CF7A8 28 00 00 00 */ cmplwi r0, 0 +/* 802D286C 002CF7AC 40 82 00 18 */ bne lbl_802D2884 +/* 802D2870 002CF7B0 3C 60 80 43 */ lis r3, lbl_804342E8@ha +/* 802D2874 002CF7B4 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l +/* 802D2878 002CF7B8 48 06 C7 91 */ bl OSInitMutex +/* 802D287C 002CF7BC 38 00 00 01 */ li r0, 1 +/* 802D2880 002CF7C0 98 0D 8E 7C */ stb r0, lbl_804513FC-_SDA_BASE_(r13) +lbl_802D2884: +/* 802D2884 002CF7C4 7F 23 CB 78 */ mr r3, r25 +/* 802D2888 002CF7C8 48 06 AE 95 */ bl OSRestoreInterrupts +/* 802D288C 002CF7CC 3C 60 80 43 */ lis r3, lbl_804342E8@ha +/* 802D2890 002CF7D0 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l +/* 802D2894 002CF7D4 48 06 C7 AD */ bl OSLockMutex +/* 802D2898 002CF7D8 83 2D 83 38 */ lwz r25, lbl_804508B8-_SDA_BASE_(r13) +/* 802D289C 002CF7DC 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D28A0 002CF7E0 7F 24 CB 78 */ mr r4, r25 +/* 802D28A4 002CF7E4 38 A0 00 20 */ li r5, 0x20 +/* 802D28A8 002CF7E8 4B FF BC 2D */ bl alloc__7JKRHeapFUli +/* 802D28AC 002CF7EC 90 6D 8E 4C */ stw r3, lbl_804513CC-_SDA_BASE_(r13) +/* 802D28B0 002CF7F0 7C 03 CA 14 */ add r0, r3, r25 +/* 802D28B4 002CF7F4 90 0D 8E 50 */ stw r0, lbl_804513D0-_SDA_BASE_(r13) +/* 802D28B8 002CF7F8 28 1E 00 00 */ cmplwi r30, 0 +/* 802D28BC 002CF7FC 41 82 00 28 */ beq lbl_802D28E4 +/* 802D28C0 002CF800 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D28C4 002CF804 38 80 11 20 */ li r4, 0x1120 +/* 802D28C8 002CF808 38 A0 00 00 */ li r5, 0 +/* 802D28CC 002CF80C 4B FF BC 09 */ bl alloc__7JKRHeapFUli +/* 802D28D0 002CF810 90 6D 8E 54 */ stw r3, lbl_804513D4-_SDA_BASE_(r13) +/* 802D28D4 002CF814 38 03 11 20 */ addi r0, r3, 0x1120 +/* 802D28D8 002CF818 90 0D 8E 58 */ stw r0, lbl_804513D8-_SDA_BASE_(r13) +/* 802D28DC 002CF81C 90 6D 8E 5C */ stw r3, lbl_804513DC-_SDA_BASE_(r13) +/* 802D28E0 002CF820 48 00 00 0C */ b lbl_802D28EC +lbl_802D28E4: +/* 802D28E4 002CF824 38 00 00 00 */ li r0, 0 +/* 802D28E8 002CF828 90 0D 8E 54 */ stw r0, lbl_804513D4-_SDA_BASE_(r13) +lbl_802D28EC: +/* 802D28EC 002CF82C 93 4D 8E 6C */ stw r26, lbl_804513EC-_SDA_BASE_(r13) +/* 802D28F0 002CF830 38 00 00 00 */ li r0, 0 +/* 802D28F4 002CF834 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13) +/* 802D28F8 002CF838 28 1C 00 00 */ cmplwi r28, 0 +/* 802D28FC 002CF83C 38 00 FF FF */ li r0, -1 +/* 802D2900 002CF840 41 82 00 08 */ beq lbl_802D2908 +/* 802D2904 002CF844 7F 80 E3 78 */ mr r0, r28 +lbl_802D2908: +/* 802D2908 002CF848 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D290C 002CF84C 93 CD 8E 70 */ stw r30, lbl_804513F0-_SDA_BASE_(r13) +/* 802D2910 002CF850 38 00 00 00 */ li r0, 0 +/* 802D2914 002CF854 90 0D 8E 74 */ stw r0, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2918 002CF858 93 AD 8E 78 */ stw r29, lbl_804513F8-_SDA_BASE_(r13) +/* 802D291C 002CF85C 28 1F 00 00 */ cmplwi r31, 0 +/* 802D2920 002CF860 41 82 00 0C */ beq lbl_802D292C +/* 802D2924 002CF864 7F E3 FB 78 */ mr r3, r31 +/* 802D2928 002CF868 48 00 00 08 */ b lbl_802D2930 +lbl_802D292C: +/* 802D292C 002CF86C 38 6D 8E 84 */ addi r3, r13, 0x80451404-0x80458580 /* lbl_80451404-_SDA_BASE_ */ +lbl_802D2930: +/* 802D2930 002CF870 90 6D 8E 80 */ stw r3, lbl_80451400-_SDA_BASE_(r13) +/* 802D2934 002CF874 38 00 00 00 */ li r0, 0 +/* 802D2938 002CF878 90 03 00 00 */ stw r0, 0(r3) +/* 802D293C 002CF87C 48 00 03 05 */ bl firstSrcData__Fv +/* 802D2940 002CF880 7F 64 DB 78 */ mr r4, r27 +/* 802D2944 002CF884 48 00 00 5D */ bl decompSZS_subroutine__FPUcPUc +/* 802D2948 002CF888 80 6D 8E 4C */ lwz r3, lbl_804513CC-_SDA_BASE_(r13) +/* 802D294C 002CF88C 38 80 00 00 */ li r4, 0 +/* 802D2950 002CF890 4B FF BB B1 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D2954 002CF894 80 6D 8E 54 */ lwz r3, lbl_804513D4-_SDA_BASE_(r13) +/* 802D2958 002CF898 28 03 00 00 */ cmplwi r3, 0 +/* 802D295C 002CF89C 41 82 00 0C */ beq lbl_802D2968 +/* 802D2960 002CF8A0 38 80 00 00 */ li r4, 0 +/* 802D2964 002CF8A4 4B FF BB 9D */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D2968: +/* 802D2968 002CF8A8 7F 63 DB 78 */ mr r3, r27 +/* 802D296C 002CF8AC 80 8D 8E 80 */ lwz r4, lbl_80451400-_SDA_BASE_(r13) +/* 802D2970 002CF8B0 80 84 00 00 */ lwz r4, 0(r4) +/* 802D2974 002CF8B4 48 06 8C C5 */ bl DCStoreRangeNoSync +/* 802D2978 002CF8B8 3C 60 80 43 */ lis r3, lbl_804342E8@ha +/* 802D297C 002CF8BC 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l +/* 802D2980 002CF8C0 48 06 C7 9D */ bl OSUnlockMutex +/* 802D2984 002CF8C4 38 60 00 00 */ li r3, 0 +/* 802D2988 002CF8C8 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D298C 002CF8CC 48 08 F8 8D */ bl func_80362218 +/* 802D2990 002CF8D0 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D2994 002CF8D4 7C 08 03 A6 */ mtlr r0 +/* 802D2998 002CF8D8 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D299C 002CF8DC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D29A0.s b/include/JSystem/JKernel/JKRAram/asm/func_802D29A0.s new file mode 100644 index 0000000000..04e3d2a65b --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D29A0.s @@ -0,0 +1,193 @@ +/* decompSZS_subroutine__FPUcPUc decompSZS_subroutine(unsigned char *, unsigned char *) */ +/* decompSZS_subroutine */ +/* 802D29A0 002CF8E0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D29A4 002CF8E4 7C 08 02 A6 */ mflr r0 +/* 802D29A8 002CF8E8 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D29AC 002CF8EC 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D29B0 002CF8F0 48 08 F8 2D */ bl _savegpr_29 +/* 802D29B4 002CF8F4 7C 9D 23 78 */ mr r29, r4 +/* 802D29B8 002CF8F8 38 80 00 00 */ li r4, 0 +/* 802D29BC 002CF8FC 38 00 00 00 */ li r0, 0 +/* 802D29C0 002CF900 3B C0 00 00 */ li r30, 0 +/* 802D29C4 002CF904 88 A3 00 00 */ lbz r5, 0(r3) +/* 802D29C8 002CF908 2C 05 00 59 */ cmpwi r5, 0x59 +/* 802D29CC 002CF90C 40 82 00 28 */ bne lbl_802D29F4 +/* 802D29D0 002CF910 88 A3 00 01 */ lbz r5, 1(r3) +/* 802D29D4 002CF914 2C 05 00 61 */ cmpwi r5, 0x61 +/* 802D29D8 002CF918 40 82 00 1C */ bne lbl_802D29F4 +/* 802D29DC 002CF91C 88 A3 00 02 */ lbz r5, 2(r3) +/* 802D29E0 002CF920 2C 05 00 7A */ cmpwi r5, 0x7a +/* 802D29E4 002CF924 40 82 00 10 */ bne lbl_802D29F4 +/* 802D29E8 002CF928 88 A3 00 03 */ lbz r5, 3(r3) +/* 802D29EC 002CF92C 2C 05 00 30 */ cmpwi r5, 0x30 +/* 802D29F0 002CF930 41 82 00 0C */ beq lbl_802D29FC +lbl_802D29F4: +/* 802D29F4 002CF934 38 60 FF FF */ li r3, -1 +/* 802D29F8 002CF938 48 00 02 30 */ b lbl_802D2C28 +lbl_802D29FC: +/* 802D29FC 002CF93C 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13) +/* 802D2A00 002CF940 80 A3 00 04 */ lwz r5, 4(r3) +/* 802D2A04 002CF944 7C A6 28 50 */ subf r5, r6, r5 +/* 802D2A08 002CF948 7F FD 2A 14 */ add r31, r29, r5 +/* 802D2A0C 002CF94C 80 AD 8E 78 */ lwz r5, lbl_804513F8-_SDA_BASE_(r13) +/* 802D2A10 002CF950 7C BD 2A 14 */ add r5, r29, r5 +/* 802D2A14 002CF954 7C 1F 28 40 */ cmplw r31, r5 +/* 802D2A18 002CF958 40 81 00 08 */ ble lbl_802D2A20 +/* 802D2A1C 002CF95C 7C BF 2B 78 */ mr r31, r5 +lbl_802D2A20: +/* 802D2A20 002CF960 38 63 00 10 */ addi r3, r3, 0x10 +lbl_802D2A24: +/* 802D2A24 002CF964 2C 04 00 00 */ cmpwi r4, 0 +/* 802D2A28 002CF968 40 82 00 2C */ bne lbl_802D2A54 +/* 802D2A2C 002CF96C 80 0D 8E 68 */ lwz r0, lbl_804513E8-_SDA_BASE_(r13) +/* 802D2A30 002CF970 7C 03 00 40 */ cmplw r3, r0 +/* 802D2A34 002CF974 40 81 00 14 */ ble lbl_802D2A48 +/* 802D2A38 002CF978 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D2A3C 002CF97C 28 00 00 00 */ cmplwi r0, 0 +/* 802D2A40 002CF980 41 82 00 08 */ beq lbl_802D2A48 +/* 802D2A44 002CF984 48 00 02 A1 */ bl nextSrcData__FPUc +lbl_802D2A48: +/* 802D2A48 002CF988 88 03 00 00 */ lbz r0, 0(r3) +/* 802D2A4C 002CF98C 38 80 00 08 */ li r4, 8 +/* 802D2A50 002CF990 38 63 00 01 */ addi r3, r3, 1 +lbl_802D2A54: +/* 802D2A54 002CF994 54 05 06 31 */ rlwinm. r5, r0, 0, 0x18, 0x18 +/* 802D2A58 002CF998 41 82 00 94 */ beq lbl_802D2AEC +/* 802D2A5C 002CF99C 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13) +/* 802D2A60 002CF9A0 28 06 00 00 */ cmplwi r6, 0 +/* 802D2A64 002CF9A4 41 82 00 5C */ beq lbl_802D2AC0 +/* 802D2A68 002CF9A8 80 AD 8E 74 */ lwz r5, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2A6C 002CF9AC 7C 05 30 40 */ cmplw r5, r6 +/* 802D2A70 002CF9B0 41 80 00 1C */ blt lbl_802D2A8C +/* 802D2A74 002CF9B4 88 A3 00 00 */ lbz r5, 0(r3) +/* 802D2A78 002CF9B8 98 BD 00 00 */ stb r5, 0(r29) +/* 802D2A7C 002CF9BC 3B BD 00 01 */ addi r29, r29, 1 +/* 802D2A80 002CF9C0 7C 1D F8 40 */ cmplw r29, r31 +/* 802D2A84 002CF9C4 3B DE 00 01 */ addi r30, r30, 1 +/* 802D2A88 002CF9C8 41 82 01 94 */ beq lbl_802D2C1C +lbl_802D2A8C: +/* 802D2A8C 002CF9CC 88 E3 00 00 */ lbz r7, 0(r3) +/* 802D2A90 002CF9D0 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) +/* 802D2A94 002CF9D4 38 A6 00 01 */ addi r5, r6, 1 +/* 802D2A98 002CF9D8 90 AD 8E 5C */ stw r5, lbl_804513DC-_SDA_BASE_(r13) +/* 802D2A9C 002CF9DC 98 E6 00 00 */ stb r7, 0(r6) +/* 802D2AA0 002CF9E0 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) +/* 802D2AA4 002CF9E4 80 AD 8E 58 */ lwz r5, lbl_804513D8-_SDA_BASE_(r13) +/* 802D2AA8 002CF9E8 7C 06 28 40 */ cmplw r6, r5 +/* 802D2AAC 002CF9EC 40 82 00 0C */ bne lbl_802D2AB8 +/* 802D2AB0 002CF9F0 80 AD 8E 54 */ lwz r5, lbl_804513D4-_SDA_BASE_(r13) +/* 802D2AB4 002CF9F4 90 AD 8E 5C */ stw r5, lbl_804513DC-_SDA_BASE_(r13) +lbl_802D2AB8: +/* 802D2AB8 002CF9F8 38 63 00 01 */ addi r3, r3, 1 +/* 802D2ABC 002CF9FC 48 00 00 20 */ b lbl_802D2ADC +lbl_802D2AC0: +/* 802D2AC0 002CFA00 88 A3 00 00 */ lbz r5, 0(r3) +/* 802D2AC4 002CFA04 98 BD 00 00 */ stb r5, 0(r29) +/* 802D2AC8 002CFA08 3B BD 00 01 */ addi r29, r29, 1 +/* 802D2ACC 002CFA0C 7C 1D F8 40 */ cmplw r29, r31 +/* 802D2AD0 002CFA10 38 63 00 01 */ addi r3, r3, 1 +/* 802D2AD4 002CFA14 3B DE 00 01 */ addi r30, r30, 1 +/* 802D2AD8 002CFA18 41 82 01 44 */ beq lbl_802D2C1C +lbl_802D2ADC: +/* 802D2ADC 002CFA1C 80 AD 8E 74 */ lwz r5, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2AE0 002CFA20 38 A5 00 01 */ addi r5, r5, 1 +/* 802D2AE4 002CFA24 90 AD 8E 74 */ stw r5, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2AE8 002CFA28 48 00 01 24 */ b lbl_802D2C0C +lbl_802D2AEC: +/* 802D2AEC 002CFA2C 88 C3 00 00 */ lbz r6, 0(r3) +/* 802D2AF0 002CFA30 88 E3 00 01 */ lbz r7, 1(r3) +/* 802D2AF4 002CFA34 50 C7 45 2E */ rlwimi r7, r6, 8, 0x14, 0x17 +/* 802D2AF8 002CFA38 7C C5 26 70 */ srawi r5, r6, 4 +/* 802D2AFC 002CFA3C 81 0D 8E 70 */ lwz r8, lbl_804513F0-_SDA_BASE_(r13) +/* 802D2B00 002CFA40 28 08 00 00 */ cmplwi r8, 0 +/* 802D2B04 002CFA44 38 63 00 02 */ addi r3, r3, 2 +/* 802D2B08 002CFA48 41 82 00 2C */ beq lbl_802D2B34 +/* 802D2B0C 002CFA4C 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) +/* 802D2B10 002CFA50 7C C7 30 50 */ subf r6, r7, r6 +/* 802D2B14 002CFA54 39 26 FF FF */ addi r9, r6, -1 +/* 802D2B18 002CFA58 80 ED 8E 54 */ lwz r7, lbl_804513D4-_SDA_BASE_(r13) +/* 802D2B1C 002CFA5C 7C 09 38 40 */ cmplw r9, r7 +/* 802D2B20 002CFA60 40 80 00 1C */ bge lbl_802D2B3C +/* 802D2B24 002CFA64 80 CD 8E 58 */ lwz r6, lbl_804513D8-_SDA_BASE_(r13) +/* 802D2B28 002CFA68 7C C7 30 50 */ subf r6, r7, r6 +/* 802D2B2C 002CFA6C 7D 29 32 14 */ add r9, r9, r6 +/* 802D2B30 002CFA70 48 00 00 0C */ b lbl_802D2B3C +lbl_802D2B34: +/* 802D2B34 002CFA74 7C C7 E8 50 */ subf r6, r7, r29 +/* 802D2B38 002CFA78 39 26 FF FF */ addi r9, r6, -1 +lbl_802D2B3C: +/* 802D2B3C 002CFA7C 2C 05 00 00 */ cmpwi r5, 0 +/* 802D2B40 002CFA80 40 82 00 14 */ bne lbl_802D2B54 +/* 802D2B44 002CFA84 88 A3 00 00 */ lbz r5, 0(r3) +/* 802D2B48 002CFA88 38 A5 00 12 */ addi r5, r5, 0x12 +/* 802D2B4C 002CFA8C 38 63 00 01 */ addi r3, r3, 1 +/* 802D2B50 002CFA90 48 00 00 08 */ b lbl_802D2B58 +lbl_802D2B54: +/* 802D2B54 002CFA94 38 A5 00 02 */ addi r5, r5, 2 +lbl_802D2B58: +/* 802D2B58 002CFA98 28 08 00 00 */ cmplwi r8, 0 +/* 802D2B5C 002CFA9C 41 82 00 80 */ beq lbl_802D2BDC +lbl_802D2B60: +/* 802D2B60 002CFAA0 80 ED 8E 74 */ lwz r7, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2B64 002CFAA4 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13) +/* 802D2B68 002CFAA8 7C 07 30 40 */ cmplw r7, r6 +/* 802D2B6C 002CFAAC 41 80 00 1C */ blt lbl_802D2B88 +/* 802D2B70 002CFAB0 88 C9 00 00 */ lbz r6, 0(r9) +/* 802D2B74 002CFAB4 98 DD 00 00 */ stb r6, 0(r29) +/* 802D2B78 002CFAB8 3B BD 00 01 */ addi r29, r29, 1 +/* 802D2B7C 002CFABC 7C 1D F8 40 */ cmplw r29, r31 +/* 802D2B80 002CFAC0 3B DE 00 01 */ addi r30, r30, 1 +/* 802D2B84 002CFAC4 41 82 00 88 */ beq lbl_802D2C0C +lbl_802D2B88: +/* 802D2B88 002CFAC8 89 09 00 00 */ lbz r8, 0(r9) +/* 802D2B8C 002CFACC 80 ED 8E 5C */ lwz r7, lbl_804513DC-_SDA_BASE_(r13) +/* 802D2B90 002CFAD0 38 C7 00 01 */ addi r6, r7, 1 +/* 802D2B94 002CFAD4 90 CD 8E 5C */ stw r6, lbl_804513DC-_SDA_BASE_(r13) +/* 802D2B98 002CFAD8 99 07 00 00 */ stb r8, 0(r7) +/* 802D2B9C 002CFADC 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13) +/* 802D2BA0 002CFAE0 80 ED 8E 58 */ lwz r7, lbl_804513D8-_SDA_BASE_(r13) +/* 802D2BA4 002CFAE4 7C 06 38 40 */ cmplw r6, r7 +/* 802D2BA8 002CFAE8 40 82 00 0C */ bne lbl_802D2BB4 +/* 802D2BAC 002CFAEC 80 CD 8E 54 */ lwz r6, lbl_804513D4-_SDA_BASE_(r13) +/* 802D2BB0 002CFAF0 90 CD 8E 5C */ stw r6, lbl_804513DC-_SDA_BASE_(r13) +lbl_802D2BB4: +/* 802D2BB4 002CFAF4 39 29 00 01 */ addi r9, r9, 1 +/* 802D2BB8 002CFAF8 7C 09 38 40 */ cmplw r9, r7 +/* 802D2BBC 002CFAFC 40 82 00 08 */ bne lbl_802D2BC4 +/* 802D2BC0 002CFB00 81 2D 8E 54 */ lwz r9, lbl_804513D4-_SDA_BASE_(r13) +lbl_802D2BC4: +/* 802D2BC4 002CFB04 80 CD 8E 74 */ lwz r6, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2BC8 002CFB08 38 C6 00 01 */ addi r6, r6, 1 +/* 802D2BCC 002CFB0C 90 CD 8E 74 */ stw r6, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2BD0 002CFB10 34 A5 FF FF */ addic. r5, r5, -1 +/* 802D2BD4 002CFB14 40 82 FF 8C */ bne lbl_802D2B60 +/* 802D2BD8 002CFB18 48 00 00 34 */ b lbl_802D2C0C +lbl_802D2BDC: +/* 802D2BDC 002CFB1C 88 C9 00 00 */ lbz r6, 0(r9) +/* 802D2BE0 002CFB20 98 DD 00 00 */ stb r6, 0(r29) +/* 802D2BE4 002CFB24 3B BD 00 01 */ addi r29, r29, 1 +/* 802D2BE8 002CFB28 7C 1D F8 40 */ cmplw r29, r31 +/* 802D2BEC 002CFB2C 3B DE 00 01 */ addi r30, r30, 1 +/* 802D2BF0 002CFB30 41 82 00 1C */ beq lbl_802D2C0C +/* 802D2BF4 002CFB34 80 CD 8E 74 */ lwz r6, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2BF8 002CFB38 38 C6 00 01 */ addi r6, r6, 1 +/* 802D2BFC 002CFB3C 90 CD 8E 74 */ stw r6, lbl_804513F4-_SDA_BASE_(r13) +/* 802D2C00 002CFB40 34 A5 FF FF */ addic. r5, r5, -1 +/* 802D2C04 002CFB44 39 29 00 01 */ addi r9, r9, 1 +/* 802D2C08 002CFB48 40 82 FF D4 */ bne lbl_802D2BDC +lbl_802D2C0C: +/* 802D2C0C 002CFB4C 54 00 08 3C */ slwi r0, r0, 1 +/* 802D2C10 002CFB50 7C 1D F8 40 */ cmplw r29, r31 +/* 802D2C14 002CFB54 38 84 FF FF */ addi r4, r4, -1 +/* 802D2C18 002CFB58 41 80 FE 0C */ blt lbl_802D2A24 +lbl_802D2C1C: +/* 802D2C1C 002CFB5C 80 6D 8E 80 */ lwz r3, lbl_80451400-_SDA_BASE_(r13) +/* 802D2C20 002CFB60 93 C3 00 00 */ stw r30, 0(r3) +/* 802D2C24 002CFB64 38 60 00 00 */ li r3, 0 +lbl_802D2C28: +/* 802D2C28 002CFB68 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2C2C 002CFB6C 48 08 F5 FD */ bl _restgpr_29 +/* 802D2C30 002CFB70 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D2C34 002CFB74 7C 08 03 A6 */ mtlr r0 +/* 802D2C38 002CFB78 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D2C3C 002CFB7C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2C40.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2C40.s new file mode 100644 index 0000000000..5bd546ea4e --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2C40.s @@ -0,0 +1,45 @@ +/* firstSrcData__Fv firstSrcData(void) */ +/* firstSrcData */ +/* 802D2C40 002CFB80 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D2C44 002CFB84 7C 08 02 A6 */ mflr r0 +/* 802D2C48 002CFB88 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D2C4C 002CFB8C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D2C50 002CFB90 93 C1 00 08 */ stw r30, 8(r1) +/* 802D2C54 002CFB94 80 6D 8E 50 */ lwz r3, lbl_804513D0-_SDA_BASE_(r13) +/* 802D2C58 002CFB98 38 03 FF E7 */ addi r0, r3, -25 +/* 802D2C5C 002CFB9C 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13) +/* 802D2C60 002CFBA0 80 0D 8E 4C */ lwz r0, lbl_804513CC-_SDA_BASE_(r13) +/* 802D2C64 002CFBA4 7C 1E 03 78 */ mr r30, r0 +/* 802D2C68 002CFBA8 7C 60 18 50 */ subf r3, r0, r3 +/* 802D2C6C 002CFBAC 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D2C70 002CFBB0 7C 00 18 40 */ cmplw r0, r3 +/* 802D2C74 002CFBB4 7C 7F 1B 78 */ mr r31, r3 +/* 802D2C78 002CFBB8 40 80 00 08 */ bge lbl_802D2C80 +/* 802D2C7C 002CFBBC 7C 1F 03 78 */ mr r31, r0 +lbl_802D2C80: +/* 802D2C80 002CFBC0 38 60 00 01 */ li r3, 1 +/* 802D2C84 002CFBC4 80 8D 8E 6C */ lwz r4, lbl_804513EC-_SDA_BASE_(r13) +/* 802D2C88 002CFBC8 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) +/* 802D2C8C 002CFBCC 7C 84 02 14 */ add r4, r4, r0 +/* 802D2C90 002CFBD0 7F C5 F3 78 */ mr r5, r30 +/* 802D2C94 002CFBD4 38 1F 00 1F */ addi r0, r31, 0x1f +/* 802D2C98 002CFBD8 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a +/* 802D2C9C 002CFBDC 38 E0 00 00 */ li r7, 0 +/* 802D2CA0 002CFBE0 48 00 0B 99 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D2CA4 002CFBE4 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) +/* 802D2CA8 002CFBE8 7C 00 FA 14 */ add r0, r0, r31 +/* 802D2CAC 002CFBEC 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13) +/* 802D2CB0 002CFBF0 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D2CB4 002CFBF4 7C 1F 00 51 */ subf. r0, r31, r0 +/* 802D2CB8 002CFBF8 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D2CBC 002CFBFC 40 82 00 0C */ bne lbl_802D2CC8 +/* 802D2CC0 002CFC00 7C 1E FA 14 */ add r0, r30, r31 +/* 802D2CC4 002CFC04 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13) +lbl_802D2CC8: +/* 802D2CC8 002CFC08 7F C3 F3 78 */ mr r3, r30 +/* 802D2CCC 002CFC0C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D2CD0 002CFC10 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D2CD4 002CFC14 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D2CD8 002CFC18 7C 08 03 A6 */ mtlr r0 +/* 802D2CDC 002CFC1C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D2CE0 002CFC20 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2CE4.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2CE4.s new file mode 100644 index 0000000000..22bbf11847 --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2CE4.s @@ -0,0 +1,56 @@ +/* nextSrcData__FPUc nextSrcData(unsigned char *) */ +/* nextSrcData */ +/* 802D2CE4 002CFC24 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D2CE8 002CFC28 7C 08 02 A6 */ mflr r0 +/* 802D2CEC 002CFC2C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D2CF0 002CFC30 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2CF4 002CFC34 48 08 F4 E5 */ bl _savegpr_28 +/* 802D2CF8 002CFC38 7C 64 1B 78 */ mr r4, r3 +/* 802D2CFC 002CFC3C 80 0D 8E 50 */ lwz r0, lbl_804513D0-_SDA_BASE_(r13) +/* 802D2D00 002CFC40 7F A4 00 50 */ subf r29, r4, r0 +/* 802D2D04 002CFC44 57 A5 06 FF */ clrlwi. r5, r29, 0x1b +/* 802D2D08 002CFC48 41 82 00 14 */ beq lbl_802D2D1C +/* 802D2D0C 002CFC4C 80 6D 8E 4C */ lwz r3, lbl_804513CC-_SDA_BASE_(r13) +/* 802D2D10 002CFC50 38 03 00 20 */ addi r0, r3, 0x20 +/* 802D2D14 002CFC54 7F C5 00 50 */ subf r30, r5, r0 +/* 802D2D18 002CFC58 48 00 00 08 */ b lbl_802D2D20 +lbl_802D2D1C: +/* 802D2D1C 002CFC5C 83 CD 8E 4C */ lwz r30, lbl_804513CC-_SDA_BASE_(r13) +lbl_802D2D20: +/* 802D2D20 002CFC60 7F C3 F3 78 */ mr r3, r30 +/* 802D2D24 002CFC64 7F A5 EB 78 */ mr r5, r29 +/* 802D2D28 002CFC68 4B D3 08 19 */ bl func_80003540 +/* 802D2D2C 002CFC6C 7F FE EA 14 */ add r31, r30, r29 +/* 802D2D30 002CFC70 80 0D 8E 50 */ lwz r0, lbl_804513D0-_SDA_BASE_(r13) +/* 802D2D34 002CFC74 7F 9F 00 50 */ subf r28, r31, r0 +/* 802D2D38 002CFC78 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D2D3C 002CFC7C 7C 1C 00 40 */ cmplw r28, r0 +/* 802D2D40 002CFC80 40 81 00 08 */ ble lbl_802D2D48 +/* 802D2D44 002CFC84 7C 1C 03 78 */ mr r28, r0 +lbl_802D2D48: +/* 802D2D48 002CFC88 38 60 00 01 */ li r3, 1 +/* 802D2D4C 002CFC8C 80 8D 8E 6C */ lwz r4, lbl_804513EC-_SDA_BASE_(r13) +/* 802D2D50 002CFC90 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) +/* 802D2D54 002CFC94 7C 84 02 14 */ add r4, r4, r0 +/* 802D2D58 002CFC98 7C BE EA 14 */ add r5, r30, r29 +/* 802D2D5C 002CFC9C 38 1C 00 1F */ addi r0, r28, 0x1f +/* 802D2D60 002CFCA0 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a +/* 802D2D64 002CFCA4 38 E0 00 00 */ li r7, 0 +/* 802D2D68 002CFCA8 48 00 0A D1 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D2D6C 002CFCAC 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13) +/* 802D2D70 002CFCB0 7C 00 E2 14 */ add r0, r0, r28 +/* 802D2D74 002CFCB4 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13) +/* 802D2D78 002CFCB8 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D2D7C 002CFCBC 7C 1C 00 51 */ subf. r0, r28, r0 +/* 802D2D80 002CFCC0 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13) +/* 802D2D84 002CFCC4 40 82 00 0C */ bne lbl_802D2D90 +/* 802D2D88 002CFCC8 7C 1F E2 14 */ add r0, r31, r28 +/* 802D2D8C 002CFCCC 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13) +lbl_802D2D90: +/* 802D2D90 002CFCD0 7F C3 F3 78 */ mr r3, r30 +/* 802D2D94 002CFCD4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2D98 002CFCD8 48 08 F4 8D */ bl _restgpr_28 +/* 802D2D9C 002CFCDC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D2DA0 002CFCE0 7C 08 03 A6 */ mtlr r0 +/* 802D2DA4 002CFCE4 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D2DA8 002CFCE8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2DAC.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2DAC.s new file mode 100644 index 0000000000..4c7853332b --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2DAC.s @@ -0,0 +1,19 @@ +/* __sinit_JKRAram_cpp __sinit_JKRAram_cpp */ +/* missing reference */ +/* 802D2DAC 002CFCEC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D2DB0 002CFCF0 7C 08 02 A6 */ mflr r0 +/* 802D2DB4 002CFCF4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D2DB8 002CFCF8 3C 60 80 43 */ lis r3, lbl_804342DC@ha +/* 802D2DBC 002CFCFC 38 63 42 DC */ addi r3, r3, lbl_804342DC@l +/* 802D2DC0 002CFD00 48 00 91 55 */ bl initiate__10JSUPtrListFv +/* 802D2DC4 002CFD04 3C 60 80 43 */ lis r3, lbl_804342DC@ha +/* 802D2DC8 002CFD08 38 63 42 DC */ addi r3, r3, lbl_804342DC@l +/* 802D2DCC 002CFD0C 3C 80 80 2D */ lis r4, JSUList_NS_dtor_X4_@ha +/* 802D2DD0 002CFD10 38 84 2D F0 */ addi r4, r4, JSUList_NS_dtor_X4_@l +/* 802D2DD4 002CFD14 3C A0 80 43 */ lis r5, lbl_804342D0@ha +/* 802D2DD8 002CFD18 38 A5 42 D0 */ addi r5, r5, lbl_804342D0@l +/* 802D2DDC 002CFD1C 48 08 EE 49 */ bl func_80361C24 +/* 802D2DE0 002CFD20 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D2DE4 002CFD24 7C 08 03 A6 */ mtlr r0 +/* 802D2DE8 002CFD28 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D2DEC 002CFD2C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram/asm/func_802D2DF0.s b/include/JSystem/JKernel/JKRAram/asm/func_802D2DF0.s new file mode 100644 index 0000000000..73b96beb4c --- /dev/null +++ b/include/JSystem/JKernel/JKRAram/asm/func_802D2DF0.s @@ -0,0 +1,24 @@ +/* __dt__23JSUList<12JKRAMCommand>Fv JSUList<12JKRAMCommand>::__dt(void) */ +/* JSUList_NS_dtor_X4_ */ +/* 802D2DF0 002CFD30 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D2DF4 002CFD34 7C 08 02 A6 */ mflr r0 +/* 802D2DF8 002CFD38 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D2DFC 002CFD3C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D2E00 002CFD40 93 C1 00 08 */ stw r30, 8(r1) +/* 802D2E04 002CFD44 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D2E08 002CFD48 7C 9F 23 78 */ mr r31, r4 +/* 802D2E0C 002CFD4C 41 82 00 1C */ beq lbl_802D2E28 +/* 802D2E10 002CFD50 38 80 00 00 */ li r4, 0 +/* 802D2E14 002CFD54 48 00 90 99 */ bl __dt__10JSUPtrListFv +/* 802D2E18 002CFD58 7F E0 07 35 */ extsh. r0, r31 +/* 802D2E1C 002CFD5C 40 81 00 0C */ ble lbl_802D2E28 +/* 802D2E20 002CFD60 7F C3 F3 78 */ mr r3, r30 +/* 802D2E24 002CFD64 4B FF BF 19 */ bl __dl__FPv +lbl_802D2E28: +/* 802D2E28 002CFD68 7F C3 F3 78 */ mr r3, r30 +/* 802D2E2C 002CFD6C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D2E30 002CFD70 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D2E34 002CFD74 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D2E38 002CFD78 7C 08 03 A6 */ mtlr r0 +/* 802D2E3C 002CFD7C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D2E40 002CFD80 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h b/include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h new file mode 100644 index 0000000000..4b8efa9c63 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/JKRAramArchive.h @@ -0,0 +1,25 @@ +#ifndef __JKRARAMARCHIVE_H__ +#define __JKRARAMARCHIVE_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRArchive/JKRArchive.h" + +class JKRAramArchive : public JKRArchive { + public: + JKRAramArchive(long, JKRArchive::EMountDirection); + virtual ~JKRAramArchive(); + + void open(long); + void getAramAddress_Entry(JKRArchive::SDIFileEntry*); + void getAramAddress(char const*); + + /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ + /* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */ + + public: + static void fetchResource_subroutine(u32, u32, u8*, u32, int); + static void fetchResource_subroutine(u32, u32, JKRHeap*, int, u8**); +}; + +#endif diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D70C0.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D70C0.s new file mode 100644 index 0000000000..37cfed51c8 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D70C0.s @@ -0,0 +1,46 @@ +/* __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::__ct(long, JKRArchive::EMountDirection) */ +/* JKRAramArchive */ +/* 802D70C0 002D4000 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D70C4 002D4004 7C 08 02 A6 */ mflr r0 +/* 802D70C8 002D4008 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D70CC 002D400C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D70D0 002D4010 48 08 B1 0D */ bl _savegpr_29 +/* 802D70D4 002D4014 7C 7D 1B 78 */ mr r29, r3 +/* 802D70D8 002D4018 7C 9E 23 78 */ mr r30, r4 +/* 802D70DC 002D401C 7C BF 2B 78 */ mr r31, r5 +/* 802D70E0 002D4020 38 A0 00 02 */ li r5, 2 +/* 802D70E4 002D4024 4B FF F1 B1 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode +/* 802D70E8 002D4028 3C 60 80 3D */ lis r3, lbl_803CC348@ha +/* 802D70EC 002D402C 38 03 C3 48 */ addi r0, r3, lbl_803CC348@l +/* 802D70F0 002D4030 90 1D 00 00 */ stw r0, 0(r29) +/* 802D70F4 002D4034 93 FD 00 60 */ stw r31, 0x60(r29) +/* 802D70F8 002D4038 7F A3 EB 78 */ mr r3, r29 +/* 802D70FC 002D403C 7F C4 F3 78 */ mr r4, r30 +/* 802D7100 002D4040 48 00 01 A9 */ bl open__14JKRAramArchiveFl +/* 802D7104 002D4044 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D7108 002D4048 40 82 00 0C */ bne lbl_802D7114 +/* 802D710C 002D404C 7F A3 EB 78 */ mr r3, r29 +/* 802D7110 002D4050 48 00 00 40 */ b lbl_802D7150 +lbl_802D7114: +/* 802D7114 002D4054 3C 60 52 41 */ lis r3, 0x52415243@ha +/* 802D7118 002D4058 38 03 52 43 */ addi r0, r3, 0x52415243@l +/* 802D711C 002D405C 90 1D 00 2C */ stw r0, 0x2c(r29) +/* 802D7120 002D4060 80 9D 00 54 */ lwz r4, 0x54(r29) +/* 802D7124 002D4064 80 7D 00 48 */ lwz r3, 0x48(r29) +/* 802D7128 002D4068 80 03 00 04 */ lwz r0, 4(r3) +/* 802D712C 002D406C 7C 04 02 14 */ add r0, r4, r0 +/* 802D7130 002D4070 90 1D 00 28 */ stw r0, 0x28(r29) +/* 802D7134 002D4074 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D7138 002D4078 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D713C 002D407C 38 9D 00 18 */ addi r4, r29, 0x18 +/* 802D7140 002D4080 48 00 4E B1 */ bl prepend__10JSUPtrListFP10JSUPtrLink +/* 802D7144 002D4084 38 00 00 01 */ li r0, 1 +/* 802D7148 002D4088 98 1D 00 30 */ stb r0, 0x30(r29) +/* 802D714C 002D408C 7F A3 EB 78 */ mr r3, r29 +lbl_802D7150: +/* 802D7150 002D4090 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7154 002D4094 48 08 B0 D5 */ bl _restgpr_29 +/* 802D7158 002D4098 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D715C 002D409C 7C 08 03 A6 */ mtlr r0 +/* 802D7160 002D40A0 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D7164 002D40A4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7168.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7168.s new file mode 100644 index 0000000000..6623a530ea --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7168.s @@ -0,0 +1,91 @@ +/* __dt__14JKRAramArchiveFv __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::__dt(void) */ +/* missing reference */ +/* 802D7168 002D40A8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D716C 002D40AC 7C 08 02 A6 */ mflr r0 +/* 802D7170 002D40B0 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D7174 002D40B4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7178 002D40B8 48 08 B0 61 */ bl _savegpr_28 +/* 802D717C 002D40BC 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D7180 002D40C0 7C 9F 23 78 */ mr r31, r4 +/* 802D7184 002D40C4 41 82 01 08 */ beq lbl_802D728C +/* 802D7188 002D40C8 3C 60 80 3D */ lis r3, lbl_803CC348@ha +/* 802D718C 002D40CC 38 03 C3 48 */ addi r0, r3, lbl_803CC348@l +/* 802D7190 002D40D0 90 1E 00 00 */ stw r0, 0(r30) +/* 802D7194 002D40D4 88 1E 00 30 */ lbz r0, 0x30(r30) +/* 802D7198 002D40D8 28 00 00 01 */ cmplwi r0, 1 +/* 802D719C 002D40DC 40 82 00 D4 */ bne lbl_802D7270 +/* 802D71A0 002D40E0 80 1E 00 44 */ lwz r0, 0x44(r30) +/* 802D71A4 002D40E4 28 00 00 00 */ cmplwi r0, 0 +/* 802D71A8 002D40E8 41 82 00 4C */ beq lbl_802D71F4 +/* 802D71AC 002D40EC 83 BE 00 4C */ lwz r29, 0x4c(r30) +/* 802D71B0 002D40F0 3B 80 00 00 */ li r28, 0 +/* 802D71B4 002D40F4 48 00 00 20 */ b lbl_802D71D4 +lbl_802D71B8: +/* 802D71B8 002D40F8 80 7D 00 10 */ lwz r3, 0x10(r29) +/* 802D71BC 002D40FC 28 03 00 00 */ cmplwi r3, 0 +/* 802D71C0 002D4100 41 82 00 0C */ beq lbl_802D71CC +/* 802D71C4 002D4104 80 9E 00 38 */ lwz r4, 0x38(r30) +/* 802D71C8 002D4108 4B FF 73 39 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D71CC: +/* 802D71CC 002D410C 3B BD 00 14 */ addi r29, r29, 0x14 +/* 802D71D0 002D4110 3B 9C 00 01 */ addi r28, r28, 1 +lbl_802D71D4: +/* 802D71D4 002D4114 80 7E 00 44 */ lwz r3, 0x44(r30) +/* 802D71D8 002D4118 80 03 00 08 */ lwz r0, 8(r3) +/* 802D71DC 002D411C 7C 1C 00 40 */ cmplw r28, r0 +/* 802D71E0 002D4120 41 80 FF D8 */ blt lbl_802D71B8 +/* 802D71E4 002D4124 80 9E 00 38 */ lwz r4, 0x38(r30) +/* 802D71E8 002D4128 4B FF 73 19 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D71EC 002D412C 38 00 00 00 */ li r0, 0 +/* 802D71F0 002D4130 90 1E 00 44 */ stw r0, 0x44(r30) +lbl_802D71F4: +/* 802D71F4 002D4134 80 7E 00 50 */ lwz r3, 0x50(r30) +/* 802D71F8 002D4138 28 03 00 00 */ cmplwi r3, 0 +/* 802D71FC 002D413C 41 82 00 14 */ beq lbl_802D7210 +/* 802D7200 002D4140 38 80 00 00 */ li r4, 0 +/* 802D7204 002D4144 4B FF 72 FD */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D7208 002D4148 38 00 00 00 */ li r0, 0 +/* 802D720C 002D414C 90 1E 00 50 */ stw r0, 0x50(r30) +lbl_802D7210: +/* 802D7210 002D4150 80 7E 00 68 */ lwz r3, 0x68(r30) +/* 802D7214 002D4154 28 03 00 00 */ cmplwi r3, 0 +/* 802D7218 002D4158 41 82 00 1C */ beq lbl_802D7234 +/* 802D721C 002D415C 41 82 00 18 */ beq lbl_802D7234 +/* 802D7220 002D4160 38 80 00 01 */ li r4, 1 +/* 802D7224 002D4164 81 83 00 00 */ lwz r12, 0(r3) +/* 802D7228 002D4168 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D722C 002D416C 7D 89 03 A6 */ mtctr r12 +/* 802D7230 002D4170 4E 80 04 21 */ bctrl +lbl_802D7234: +/* 802D7234 002D4174 80 7E 00 64 */ lwz r3, 0x64(r30) +/* 802D7238 002D4178 28 03 00 00 */ cmplwi r3, 0 +/* 802D723C 002D417C 41 82 00 1C */ beq lbl_802D7258 +/* 802D7240 002D4180 41 82 00 18 */ beq lbl_802D7258 +/* 802D7244 002D4184 38 80 00 01 */ li r4, 1 +/* 802D7248 002D4188 81 83 00 00 */ lwz r12, 0(r3) +/* 802D724C 002D418C 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D7250 002D4190 7D 89 03 A6 */ mtctr r12 +/* 802D7254 002D4194 4E 80 04 21 */ bctrl +lbl_802D7258: +/* 802D7258 002D4198 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D725C 002D419C 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D7260 002D41A0 38 9E 00 18 */ addi r4, r30, 0x18 +/* 802D7264 002D41A4 48 00 4E F9 */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802D7268 002D41A8 38 00 00 00 */ li r0, 0 +/* 802D726C 002D41AC 98 1E 00 30 */ stb r0, 0x30(r30) +lbl_802D7270: +/* 802D7270 002D41B0 7F C3 F3 78 */ mr r3, r30 +/* 802D7274 002D41B4 38 80 00 00 */ li r4, 0 +/* 802D7278 002D41B8 4B FF F0 BD */ bl __dt__10JKRArchiveFv +/* 802D727C 002D41BC 7F E0 07 35 */ extsh. r0, r31 +/* 802D7280 002D41C0 40 81 00 0C */ ble lbl_802D728C +/* 802D7284 002D41C4 7F C3 F3 78 */ mr r3, r30 +/* 802D7288 002D41C8 4B FF 7A B5 */ bl __dl__FPv +lbl_802D728C: +/* 802D728C 002D41CC 7F C3 F3 78 */ mr r3, r30 +/* 802D7290 002D41D0 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7294 002D41D4 48 08 AF 91 */ bl _restgpr_28 +/* 802D7298 002D41D8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D729C 002D41DC 7C 08 03 A6 */ mtlr r0 +/* 802D72A0 002D41E0 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D72A4 002D41E4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D72A8.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D72A8.s new file mode 100644 index 0000000000..5bc1bd10ac --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D72A8.s @@ -0,0 +1,227 @@ +/* open__14JKRAramArchiveFl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::open(long) */ +/* JKRAramArchive_NS_open */ +/* 802D72A8 002D41E8 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D72AC 002D41EC 7C 08 02 A6 */ mflr r0 +/* 802D72B0 002D41F0 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D72B4 002D41F4 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D72B8 002D41F8 48 08 AF 1D */ bl _savegpr_27 +/* 802D72BC 002D41FC 7C 7F 1B 78 */ mr r31, r3 +/* 802D72C0 002D4200 7C 9C 23 78 */ mr r28, r4 +/* 802D72C4 002D4204 38 00 00 00 */ li r0, 0 +/* 802D72C8 002D4208 90 03 00 44 */ stw r0, 0x44(r3) +/* 802D72CC 002D420C 90 03 00 48 */ stw r0, 0x48(r3) +/* 802D72D0 002D4210 90 03 00 4C */ stw r0, 0x4c(r3) +/* 802D72D4 002D4214 90 03 00 54 */ stw r0, 0x54(r3) +/* 802D72D8 002D4218 90 03 00 64 */ stw r0, 0x64(r3) +/* 802D72DC 002D421C 38 60 00 F8 */ li r3, 0xf8 +/* 802D72E0 002D4220 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D72E4 002D4224 80 1F 00 60 */ lwz r0, 0x60(r31) +/* 802D72E8 002D4228 2C 00 00 01 */ cmpwi r0, 1 +/* 802D72EC 002D422C 38 A0 FF FC */ li r5, -4 +/* 802D72F0 002D4230 40 82 00 08 */ bne lbl_802D72F8 +/* 802D72F4 002D4234 38 A0 00 04 */ li r5, 4 +lbl_802D72F8: +/* 802D72F8 002D4238 4B FF 79 A1 */ bl __nw__FUlP7JKRHeapi +/* 802D72FC 002D423C 7C 60 1B 79 */ or. r0, r3, r3 +/* 802D7300 002D4240 41 82 00 10 */ beq lbl_802D7310 +/* 802D7304 002D4244 7F 84 E3 78 */ mr r4, r28 +/* 802D7308 002D4248 48 00 23 99 */ bl __ct__10JKRDvdFileFl +/* 802D730C 002D424C 7C 60 1B 78 */ mr r0, r3 +lbl_802D7310: +/* 802D7310 002D4250 90 1F 00 68 */ stw r0, 0x68(r31) +/* 802D7314 002D4254 80 1F 00 68 */ lwz r0, 0x68(r31) +/* 802D7318 002D4258 28 00 00 00 */ cmplwi r0, 0 +/* 802D731C 002D425C 40 82 00 14 */ bne lbl_802D7330 +/* 802D7320 002D4260 38 00 00 00 */ li r0, 0 +/* 802D7324 002D4264 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D7328 002D4268 38 60 00 00 */ li r3, 0 +/* 802D732C 002D426C 48 00 02 9C */ b lbl_802D75C8 +lbl_802D7330: +/* 802D7330 002D4270 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D7334 002D4274 38 80 00 20 */ li r4, 0x20 +/* 802D7338 002D4278 38 A0 FF E0 */ li r5, -32 +/* 802D733C 002D427C 4B FF 71 99 */ bl alloc__7JKRHeapFUli +/* 802D7340 002D4280 7C 7D 1B 79 */ or. r29, r3, r3 +/* 802D7344 002D4284 40 82 00 10 */ bne lbl_802D7354 +/* 802D7348 002D4288 38 00 00 00 */ li r0, 0 +/* 802D734C 002D428C 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D7350 002D4290 48 00 02 28 */ b lbl_802D7578 +lbl_802D7354: +/* 802D7354 002D4294 38 00 00 00 */ li r0, 0 +/* 802D7358 002D4298 90 01 00 08 */ stw r0, 8(r1) +/* 802D735C 002D429C 7F 83 E3 78 */ mr r3, r28 +/* 802D7360 002D42A0 7F A4 EB 78 */ mr r4, r29 +/* 802D7364 002D42A4 38 A0 00 01 */ li r5, 1 +/* 802D7368 002D42A8 38 C0 00 20 */ li r6, 0x20 +/* 802D736C 002D42AC 38 E0 00 00 */ li r7, 0 +/* 802D7370 002D42B0 39 00 00 01 */ li r8, 1 +/* 802D7374 002D42B4 39 20 00 00 */ li r9, 0 +/* 802D7378 002D42B8 39 5F 00 5C */ addi r10, r31, 0x5c +/* 802D737C 002D42BC 48 00 28 D9 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D7380 002D42C0 7F A3 EB 78 */ mr r3, r29 +/* 802D7384 002D42C4 38 80 00 20 */ li r4, 0x20 +/* 802D7388 002D42C8 48 06 41 F9 */ bl DCInvalidateRange +/* 802D738C 002D42CC 80 1F 00 60 */ lwz r0, 0x60(r31) +/* 802D7390 002D42D0 2C 00 00 01 */ cmpwi r0, 1 +/* 802D7394 002D42D4 3B C0 FF E0 */ li r30, -32 +/* 802D7398 002D42D8 40 82 00 08 */ bne lbl_802D73A0 +/* 802D739C 002D42DC 3B C0 00 20 */ li r30, 0x20 +lbl_802D73A0: +/* 802D73A0 002D42E0 80 7D 00 0C */ lwz r3, 0xc(r29) +/* 802D73A4 002D42E4 38 03 00 1F */ addi r0, r3, 0x1f +/* 802D73A8 002D42E8 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a +/* 802D73AC 002D42EC 7F 63 DB 78 */ mr r3, r27 +/* 802D73B0 002D42F0 7F C4 F3 78 */ mr r4, r30 +/* 802D73B4 002D42F4 80 BF 00 38 */ lwz r5, 0x38(r31) +/* 802D73B8 002D42F8 4B FF 70 BD */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D73BC 002D42FC 90 7F 00 44 */ stw r3, 0x44(r31) +/* 802D73C0 002D4300 80 9F 00 44 */ lwz r4, 0x44(r31) +/* 802D73C4 002D4304 28 04 00 00 */ cmplwi r4, 0 +/* 802D73C8 002D4308 40 82 00 10 */ bne lbl_802D73D8 +/* 802D73CC 002D430C 38 00 00 00 */ li r0, 0 +/* 802D73D0 002D4310 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D73D4 002D4314 48 00 01 A4 */ b lbl_802D7578 +lbl_802D73D8: +/* 802D73D8 002D4318 38 00 00 00 */ li r0, 0 +/* 802D73DC 002D431C 90 01 00 08 */ stw r0, 8(r1) +/* 802D73E0 002D4320 7F 83 E3 78 */ mr r3, r28 +/* 802D73E4 002D4324 38 A0 00 01 */ li r5, 1 +/* 802D73E8 002D4328 7F 66 DB 78 */ mr r6, r27 +/* 802D73EC 002D432C 38 E0 00 00 */ li r7, 0 +/* 802D73F0 002D4330 39 00 00 01 */ li r8, 1 +/* 802D73F4 002D4334 39 20 00 20 */ li r9, 0x20 +/* 802D73F8 002D4338 39 40 00 00 */ li r10, 0 +/* 802D73FC 002D433C 48 00 28 59 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D7400 002D4340 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D7404 002D4344 7F 64 DB 78 */ mr r4, r27 +/* 802D7408 002D4348 48 06 41 79 */ bl DCInvalidateRange +/* 802D740C 002D434C 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D7410 002D4350 80 03 00 04 */ lwz r0, 4(r3) +/* 802D7414 002D4354 7C 03 02 14 */ add r0, r3, r0 +/* 802D7418 002D4358 90 1F 00 48 */ stw r0, 0x48(r31) +/* 802D741C 002D435C 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D7420 002D4360 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802D7424 002D4364 7C 03 02 14 */ add r0, r3, r0 +/* 802D7428 002D4368 90 1F 00 4C */ stw r0, 0x4c(r31) +/* 802D742C 002D436C 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D7430 002D4370 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802D7434 002D4374 7C 03 02 14 */ add r0, r3, r0 +/* 802D7438 002D4378 90 1F 00 54 */ stw r0, 0x54(r31) +/* 802D743C 002D437C 38 00 00 00 */ li r0, 0 +/* 802D7440 002D4380 90 1F 00 50 */ stw r0, 0x50(r31) +/* 802D7444 002D4384 38 80 00 00 */ li r4, 0 +/* 802D7448 002D4388 80 BF 00 4C */ lwz r5, 0x4c(r31) +/* 802D744C 002D438C 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D7450 002D4390 80 03 00 08 */ lwz r0, 8(r3) +/* 802D7454 002D4394 7C 09 03 A6 */ mtctr r0 +/* 802D7458 002D4398 28 00 00 00 */ cmplwi r0, 0 +/* 802D745C 002D439C 40 81 00 28 */ ble lbl_802D7484 +lbl_802D7460: +/* 802D7460 002D43A0 80 05 00 04 */ lwz r0, 4(r5) +/* 802D7464 002D43A4 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D7468 002D43A8 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f +/* 802D746C 002D43AC 41 82 00 10 */ beq lbl_802D747C +/* 802D7470 002D43B0 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d +/* 802D7474 002D43B4 7C 80 03 78 */ or r0, r4, r0 +/* 802D7478 002D43B8 54 04 06 3E */ clrlwi r4, r0, 0x18 +lbl_802D747C: +/* 802D747C 002D43BC 38 A5 00 14 */ addi r5, r5, 0x14 +/* 802D7480 002D43C0 42 00 FF E0 */ bdnz lbl_802D7460 +lbl_802D7484: +/* 802D7484 002D43C4 54 80 06 3F */ clrlwi. r0, r4, 0x18 +/* 802D7488 002D43C8 41 82 00 60 */ beq lbl_802D74E8 +/* 802D748C 002D43CC 7F C3 F3 78 */ mr r3, r30 +/* 802D7490 002D43D0 48 08 DC 41 */ bl func_803650D0 +/* 802D7494 002D43D4 7C 64 1B 78 */ mr r4, r3 +/* 802D7498 002D43D8 80 BF 00 38 */ lwz r5, 0x38(r31) +/* 802D749C 002D43DC 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D74A0 002D43E0 80 03 00 08 */ lwz r0, 8(r3) +/* 802D74A4 002D43E4 54 03 10 3A */ slwi r3, r0, 2 +/* 802D74A8 002D43E8 4B FF 6F CD */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D74AC 002D43EC 90 7F 00 50 */ stw r3, 0x50(r31) +/* 802D74B0 002D43F0 80 7F 00 50 */ lwz r3, 0x50(r31) +/* 802D74B4 002D43F4 28 03 00 00 */ cmplwi r3, 0 +/* 802D74B8 002D43F8 40 82 00 1C */ bne lbl_802D74D4 +/* 802D74BC 002D43FC 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D74C0 002D4400 38 80 00 00 */ li r4, 0 +/* 802D74C4 002D4404 4B FF 70 3D */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D74C8 002D4408 38 00 00 00 */ li r0, 0 +/* 802D74CC 002D440C 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D74D0 002D4410 48 00 00 A8 */ b lbl_802D7578 +lbl_802D74D4: +/* 802D74D4 002D4414 38 80 00 00 */ li r4, 0 +/* 802D74D8 002D4418 80 BF 00 44 */ lwz r5, 0x44(r31) +/* 802D74DC 002D441C 80 05 00 08 */ lwz r0, 8(r5) +/* 802D74E0 002D4420 54 05 10 3A */ slwi r5, r0, 2 +/* 802D74E4 002D4424 4B D2 BF 75 */ bl func_80003458 +lbl_802D74E8: +/* 802D74E8 002D4428 80 7D 00 10 */ lwz r3, 0x10(r29) +/* 802D74EC 002D442C 38 03 00 1F */ addi r0, r3, 0x1f +/* 802D74F0 002D4430 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a +/* 802D74F4 002D4434 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802D74F8 002D4438 80 63 00 94 */ lwz r3, 0x94(r3) +/* 802D74FC 002D443C 80 1F 00 60 */ lwz r0, 0x60(r31) +/* 802D7500 002D4440 20 A0 00 01 */ subfic r5, r0, 1 +/* 802D7504 002D4444 30 05 FF FF */ addic r0, r5, -1 +/* 802D7508 002D4448 7C A0 29 10 */ subfe r5, r0, r5 +/* 802D750C 002D444C 4B FF BA B1 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode +/* 802D7510 002D4450 90 7F 00 64 */ stw r3, 0x64(r31) +/* 802D7514 002D4454 80 7F 00 64 */ lwz r3, 0x64(r31) +/* 802D7518 002D4458 28 03 00 00 */ cmplwi r3, 0 +/* 802D751C 002D445C 40 82 00 38 */ bne lbl_802D7554 +/* 802D7520 002D4460 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D7524 002D4464 28 03 00 00 */ cmplwi r3, 0 +/* 802D7528 002D4468 41 82 00 0C */ beq lbl_802D7534 +/* 802D752C 002D446C 38 80 00 00 */ li r4, 0 +/* 802D7530 002D4470 4B FF 6F D1 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D7534: +/* 802D7534 002D4474 80 7F 00 50 */ lwz r3, 0x50(r31) +/* 802D7538 002D4478 28 03 00 00 */ cmplwi r3, 0 +/* 802D753C 002D447C 41 82 00 0C */ beq lbl_802D7548 +/* 802D7540 002D4480 38 80 00 00 */ li r4, 0 +/* 802D7544 002D4484 4B FF 6F BD */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D7548: +/* 802D7548 002D4488 38 00 00 00 */ li r0, 0 +/* 802D754C 002D448C 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D7550 002D4490 48 00 00 28 */ b lbl_802D7578 +lbl_802D7554: +/* 802D7554 002D4494 80 83 00 14 */ lwz r4, 0x14(r3) +/* 802D7558 002D4498 7F 83 E3 78 */ mr r3, r28 +/* 802D755C 002D449C 38 A0 00 01 */ li r5, 1 +/* 802D7560 002D44A0 80 DD 00 08 */ lwz r6, 8(r29) +/* 802D7564 002D44A4 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 802D7568 002D44A8 7C C6 02 14 */ add r6, r6, r0 +/* 802D756C 002D44AC 38 E0 00 00 */ li r7, 0 +/* 802D7570 002D44B0 39 00 00 00 */ li r8, 0 +/* 802D7574 002D44B4 48 00 33 01 */ bl loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl +lbl_802D7578: +/* 802D7578 002D44B8 28 1D 00 00 */ cmplwi r29, 0 +/* 802D757C 002D44BC 41 82 00 10 */ beq lbl_802D758C +/* 802D7580 002D44C0 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D7584 002D44C4 7F A4 EB 78 */ mr r4, r29 +/* 802D7588 002D44C8 4B FF 6F C1 */ bl free__7JKRHeapFPv +lbl_802D758C: +/* 802D758C 002D44CC 88 1F 00 3C */ lbz r0, 0x3c(r31) +/* 802D7590 002D44D0 28 00 00 00 */ cmplwi r0, 0 +/* 802D7594 002D44D4 40 82 00 30 */ bne lbl_802D75C4 +/* 802D7598 002D44D8 80 7F 00 68 */ lwz r3, 0x68(r31) +/* 802D759C 002D44DC 28 03 00 00 */ cmplwi r3, 0 +/* 802D75A0 002D44E0 41 82 00 1C */ beq lbl_802D75BC +/* 802D75A4 002D44E4 41 82 00 18 */ beq lbl_802D75BC +/* 802D75A8 002D44E8 38 80 00 01 */ li r4, 1 +/* 802D75AC 002D44EC 81 83 00 00 */ lwz r12, 0(r3) +/* 802D75B0 002D44F0 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D75B4 002D44F4 7D 89 03 A6 */ mtctr r12 +/* 802D75B8 002D44F8 4E 80 04 21 */ bctrl +lbl_802D75BC: +/* 802D75BC 002D44FC 38 60 00 00 */ li r3, 0 +/* 802D75C0 002D4500 48 00 00 08 */ b lbl_802D75C8 +lbl_802D75C4: +/* 802D75C4 002D4504 38 60 00 01 */ li r3, 1 +lbl_802D75C8: +/* 802D75C8 002D4508 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D75CC 002D450C 48 08 AC 55 */ bl _restgpr_27 +/* 802D75D0 002D4510 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D75D4 002D4514 7C 08 03 A6 */ mtlr r0 +/* 802D75D8 002D4518 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D75DC 002D451C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s new file mode 100644 index 0000000000..2abe3aa95d --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s @@ -0,0 +1,80 @@ +/* fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D75E0 002D4520 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D75E4 002D4524 7C 08 02 A6 */ mflr r0 +/* 802D75E8 002D4528 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D75EC 002D452C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D75F0 002D4530 48 08 AB E9 */ bl _savegpr_28 +/* 802D75F4 002D4534 7C 7C 1B 78 */ mr r28, r3 +/* 802D75F8 002D4538 7C 9D 23 78 */ mr r29, r4 +/* 802D75FC 002D453C 7C BE 2B 79 */ or. r30, r5, r5 +/* 802D7600 002D4540 40 82 00 08 */ bne lbl_802D7608 +/* 802D7604 002D4544 3B C1 00 0C */ addi r30, r1, 0xc +lbl_802D7608: +/* 802D7608 002D4548 80 1D 00 04 */ lwz r0, 4(r29) +/* 802D760C 002D454C 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D7610 002D4550 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D7614 002D4554 40 82 00 0C */ bne lbl_802D7620 +/* 802D7618 002D4558 3B E0 00 00 */ li r31, 0 +/* 802D761C 002D455C 48 00 00 18 */ b lbl_802D7634 +lbl_802D7620: +/* 802D7620 002D4560 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 802D7624 002D4564 41 82 00 0C */ beq lbl_802D7630 +/* 802D7628 002D4568 3B E0 00 02 */ li r31, 2 +/* 802D762C 002D456C 48 00 00 08 */ b lbl_802D7634 +lbl_802D7630: +/* 802D7630 002D4570 3B E0 00 01 */ li r31, 1 +lbl_802D7634: +/* 802D7634 002D4574 80 1D 00 10 */ lwz r0, 0x10(r29) +/* 802D7638 002D4578 28 00 00 00 */ cmplwi r0, 0 +/* 802D763C 002D457C 40 82 00 6C */ bne lbl_802D76A8 +/* 802D7640 002D4580 80 7C 00 64 */ lwz r3, 0x64(r28) +/* 802D7644 002D4584 80 63 00 14 */ lwz r3, 0x14(r3) +/* 802D7648 002D4588 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D764C 002D458C 7C 60 1A 14 */ add r3, r0, r3 +/* 802D7650 002D4590 80 9D 00 0C */ lwz r4, 0xc(r29) +/* 802D7654 002D4594 80 BC 00 38 */ lwz r5, 0x38(r28) +/* 802D7658 002D4598 7F E6 FB 78 */ mr r6, r31 +/* 802D765C 002D459C 38 E1 00 08 */ addi r7, r1, 8 +/* 802D7660 002D45A0 48 00 02 B5 */ bl fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc +/* 802D7664 002D45A4 90 7E 00 00 */ stw r3, 0(r30) +/* 802D7668 002D45A8 28 03 00 00 */ cmplwi r3, 0 +/* 802D766C 002D45AC 40 82 00 0C */ bne lbl_802D7678 +/* 802D7670 002D45B0 38 60 00 00 */ li r3, 0 +/* 802D7674 002D45B4 48 00 00 68 */ b lbl_802D76DC +lbl_802D7678: +/* 802D7678 002D45B8 80 01 00 08 */ lwz r0, 8(r1) +/* 802D767C 002D45BC 90 1D 00 10 */ stw r0, 0x10(r29) +/* 802D7680 002D45C0 2C 1F 00 02 */ cmpwi r31, 2 +/* 802D7684 002D45C4 40 82 00 54 */ bne lbl_802D76D8 +/* 802D7688 002D45C8 7F 83 E3 78 */ mr r3, r28 +/* 802D768C 002D45CC 7F A4 EB 78 */ mr r4, r29 +/* 802D7690 002D45D0 80 BE 00 00 */ lwz r5, 0(r30) +/* 802D7694 002D45D4 81 9C 00 00 */ lwz r12, 0(r28) +/* 802D7698 002D45D8 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802D769C 002D45DC 7D 89 03 A6 */ mtctr r12 +/* 802D76A0 002D45E0 4E 80 04 21 */ bctrl +/* 802D76A4 002D45E4 48 00 00 34 */ b lbl_802D76D8 +lbl_802D76A8: +/* 802D76A8 002D45E8 2C 1F 00 02 */ cmpwi r31, 2 +/* 802D76AC 002D45EC 40 82 00 24 */ bne lbl_802D76D0 +/* 802D76B0 002D45F0 7F 83 E3 78 */ mr r3, r28 +/* 802D76B4 002D45F4 7F A4 EB 78 */ mr r4, r29 +/* 802D76B8 002D45F8 81 9C 00 00 */ lwz r12, 0(r28) +/* 802D76BC 002D45FC 81 8C 00 4C */ lwz r12, 0x4c(r12) +/* 802D76C0 002D4600 7D 89 03 A6 */ mtctr r12 +/* 802D76C4 002D4604 4E 80 04 21 */ bctrl +/* 802D76C8 002D4608 90 7E 00 00 */ stw r3, 0(r30) +/* 802D76CC 002D460C 48 00 00 0C */ b lbl_802D76D8 +lbl_802D76D0: +/* 802D76D0 002D4610 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 802D76D4 002D4614 90 1E 00 00 */ stw r0, 0(r30) +lbl_802D76D8: +/* 802D76D8 002D4618 80 7D 00 10 */ lwz r3, 0x10(r29) +lbl_802D76DC: +/* 802D76DC 002D461C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D76E0 002D4620 48 08 AB 45 */ bl _restgpr_28 +/* 802D76E4 002D4624 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D76E8 002D4628 7C 08 03 A6 */ mtlr r0 +/* 802D76EC 002D462C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D76F0 002D4630 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s new file mode 100644 index 0000000000..d6dcd2cd77 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s @@ -0,0 +1,76 @@ +/* fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D76F4 002D4634 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D76F8 002D4638 7C 08 02 A6 */ mflr r0 +/* 802D76FC 002D463C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D7700 002D4640 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7704 002D4644 48 08 AA D1 */ bl _savegpr_27 +/* 802D7708 002D4648 7C 9B 23 78 */ mr r27, r4 +/* 802D770C 002D464C 7C BC 2B 78 */ mr r28, r5 +/* 802D7710 002D4650 7C DD 33 78 */ mr r29, r6 +/* 802D7714 002D4654 7C FE 3B 78 */ mr r30, r7 +/* 802D7718 002D4658 83 E6 00 0C */ lwz r31, 0xc(r6) +/* 802D771C 002D465C 7C 1F E0 40 */ cmplw r31, r28 +/* 802D7720 002D4660 40 81 00 08 */ ble lbl_802D7728 +/* 802D7724 002D4664 7F 9F E3 78 */ mr r31, r28 +lbl_802D7728: +/* 802D7728 002D4668 80 1D 00 04 */ lwz r0, 4(r29) +/* 802D772C 002D466C 54 04 46 3E */ srwi r4, r0, 0x18 +/* 802D7730 002D4670 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D7734 002D4674 40 82 00 0C */ bne lbl_802D7740 +/* 802D7738 002D4678 38 E0 00 00 */ li r7, 0 +/* 802D773C 002D467C 48 00 00 18 */ b lbl_802D7754 +lbl_802D7740: +/* 802D7740 002D4680 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18 +/* 802D7744 002D4684 41 82 00 0C */ beq lbl_802D7750 +/* 802D7748 002D4688 38 E0 00 02 */ li r7, 2 +/* 802D774C 002D468C 48 00 00 08 */ b lbl_802D7754 +lbl_802D7750: +/* 802D7750 002D4690 38 E0 00 01 */ li r7, 1 +lbl_802D7754: +/* 802D7754 002D4694 80 1D 00 10 */ lwz r0, 0x10(r29) +/* 802D7758 002D4698 28 00 00 00 */ cmplwi r0, 0 +/* 802D775C 002D469C 40 82 00 30 */ bne lbl_802D778C +/* 802D7760 002D46A0 57 9C 00 34 */ rlwinm r28, r28, 0, 0, 0x1a +/* 802D7764 002D46A4 80 63 00 64 */ lwz r3, 0x64(r3) +/* 802D7768 002D46A8 80 63 00 14 */ lwz r3, 0x14(r3) +/* 802D776C 002D46AC 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D7770 002D46B0 7C 60 1A 14 */ add r3, r0, r3 +/* 802D7774 002D46B4 7F E4 FB 78 */ mr r4, r31 +/* 802D7778 002D46B8 7F 65 DB 78 */ mr r5, r27 +/* 802D777C 002D46BC 7F 86 E3 78 */ mr r6, r28 +/* 802D7780 002D46C0 48 00 00 D9 */ bl fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli +/* 802D7784 002D46C4 7C 7F 1B 78 */ mr r31, r3 +/* 802D7788 002D46C8 48 00 00 48 */ b lbl_802D77D0 +lbl_802D778C: +/* 802D778C 002D46CC 2C 07 00 02 */ cmpwi r7, 2 +/* 802D7790 002D46D0 40 82 00 24 */ bne lbl_802D77B4 +/* 802D7794 002D46D4 7F A4 EB 78 */ mr r4, r29 +/* 802D7798 002D46D8 81 83 00 00 */ lwz r12, 0(r3) +/* 802D779C 002D46DC 81 8C 00 4C */ lwz r12, 0x4c(r12) +/* 802D77A0 002D46E0 7D 89 03 A6 */ mtctr r12 +/* 802D77A4 002D46E4 4E 80 04 21 */ bctrl +/* 802D77A8 002D46E8 28 03 00 00 */ cmplwi r3, 0 +/* 802D77AC 002D46EC 41 82 00 08 */ beq lbl_802D77B4 +/* 802D77B0 002D46F0 7C 7F 1B 78 */ mr r31, r3 +lbl_802D77B4: +/* 802D77B4 002D46F4 7C 1F E0 40 */ cmplw r31, r28 +/* 802D77B8 002D46F8 40 81 00 08 */ ble lbl_802D77C0 +/* 802D77BC 002D46FC 7F 9F E3 78 */ mr r31, r28 +lbl_802D77C0: +/* 802D77C0 002D4700 7F 63 DB 78 */ mr r3, r27 +/* 802D77C4 002D4704 80 9D 00 10 */ lwz r4, 0x10(r29) +/* 802D77C8 002D4708 7F E5 FB 78 */ mr r5, r31 +/* 802D77CC 002D470C 4B FF 73 4D */ bl copyMemory__7JKRHeapFPvPvUl +lbl_802D77D0: +/* 802D77D0 002D4710 28 1E 00 00 */ cmplwi r30, 0 +/* 802D77D4 002D4714 41 82 00 08 */ beq lbl_802D77DC +/* 802D77D8 002D4718 93 FE 00 00 */ stw r31, 0(r30) +lbl_802D77DC: +/* 802D77DC 002D471C 7F 63 DB 78 */ mr r3, r27 +/* 802D77E0 002D4720 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D77E4 002D4724 48 08 AA 3D */ bl _restgpr_27 +/* 802D77E8 002D4728 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D77EC 002D472C 7C 08 03 A6 */ mtlr r0 +/* 802D77F0 002D4730 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D77F4 002D4734 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s new file mode 100644 index 0000000000..53a499d909 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s @@ -0,0 +1,12 @@ +/* getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::getAramAddress_Entry(JKRArchive::SDIFileEntry *) */ +/* JKRAramArchive_NS_getAramAddress_Entry */ +/* 802D77F8 002D4738 28 04 00 00 */ cmplwi r4, 0 +/* 802D77FC 002D473C 40 82 00 0C */ bne lbl_802D7808 +/* 802D7800 002D4740 38 60 00 00 */ li r3, 0 +/* 802D7804 002D4744 4E 80 00 20 */ blr +lbl_802D7808: +/* 802D7808 002D4748 80 63 00 64 */ lwz r3, 0x64(r3) +/* 802D780C 002D474C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 802D7810 002D4750 80 04 00 08 */ lwz r0, 8(r4) +/* 802D7814 002D4754 7C 60 1A 14 */ add r3, r0, r3 +/* 802D7818 002D4758 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s new file mode 100644 index 0000000000..2b8f027c6a --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s @@ -0,0 +1,17 @@ +/* getAramAddress__14JKRAramArchiveFPCc __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::getAramAddress(char const *) */ +/* JKRAramArchive_NS_getAramAddress */ +/* 802D781C 002D475C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D7820 002D4760 7C 08 02 A6 */ mflr r0 +/* 802D7824 002D4764 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D7828 002D4768 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D782C 002D476C 7C 7F 1B 78 */ mr r31, r3 +/* 802D7830 002D4770 38 A0 00 00 */ li r5, 0 +/* 802D7834 002D4774 4B FF ED 71 */ bl findFsResource__10JKRArchiveCFPCcUl +/* 802D7838 002D4778 7C 64 1B 78 */ mr r4, r3 +/* 802D783C 002D477C 7F E3 FB 78 */ mr r3, r31 +/* 802D7840 002D4780 4B FF FF B9 */ bl getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry +/* 802D7844 002D4784 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D7848 002D4788 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D784C 002D478C 7C 08 03 A6 */ mtlr r0 +/* 802D7850 002D4790 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D7854 002D4794 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7858.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7858.s new file mode 100644 index 0000000000..e72c2ad900 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7858.s @@ -0,0 +1,54 @@ +/* fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource_subroutine(unsigned long, unsigned long, unsigned char *, unsigned long, int) */ +/* JKRAramArchive_NS_fetchResource_subroutine */ +/* 802D7858 002D4798 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D785C 002D479C 7C 08 02 A6 */ mflr r0 +/* 802D7860 002D47A0 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D7864 002D47A4 38 04 00 1F */ addi r0, r4, 0x1f +/* 802D7868 002D47A8 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a +/* 802D786C 002D47AC 54 C8 00 34 */ rlwinm r8, r6, 0, 0, 0x1a +/* 802D7870 002D47B0 2C 07 00 00 */ cmpwi r7, 0 +/* 802D7874 002D47B4 41 82 00 14 */ beq lbl_802D7888 +/* 802D7878 002D47B8 41 80 00 6C */ blt lbl_802D78E4 +/* 802D787C 002D47BC 2C 07 00 03 */ cmpwi r7, 3 +/* 802D7880 002D47C0 40 80 00 64 */ bge lbl_802D78E4 +/* 802D7884 002D47C4 48 00 00 38 */ b lbl_802D78BC +lbl_802D7888: +/* 802D7888 002D47C8 7C 00 40 40 */ cmplw r0, r8 +/* 802D788C 002D47CC 40 81 00 08 */ ble lbl_802D7894 +/* 802D7890 002D47D0 7D 00 43 78 */ mr r0, r8 +lbl_802D7894: +/* 802D7894 002D47D4 7C A4 2B 78 */ mr r4, r5 +/* 802D7898 002D47D8 7C 05 03 78 */ mr r5, r0 +/* 802D789C 002D47DC 38 C0 00 00 */ li r6, 0 +/* 802D78A0 002D47E0 7D 07 43 78 */ mr r7, r8 +/* 802D78A4 002D47E4 39 00 00 00 */ li r8, 0 +/* 802D78A8 002D47E8 39 20 FF FF */ li r9, -1 +/* 802D78AC 002D47EC 39 41 00 08 */ addi r10, r1, 8 +/* 802D78B0 002D47F0 4B FF AD 05 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl +/* 802D78B4 002D47F4 80 61 00 08 */ lwz r3, 8(r1) +/* 802D78B8 002D47F8 48 00 00 4C */ b lbl_802D7904 +lbl_802D78BC: +/* 802D78BC 002D47FC 7C A4 2B 78 */ mr r4, r5 +/* 802D78C0 002D4800 7C 05 03 78 */ mr r5, r0 +/* 802D78C4 002D4804 38 C0 00 01 */ li r6, 1 +/* 802D78C8 002D4808 7D 07 43 78 */ mr r7, r8 +/* 802D78CC 002D480C 39 00 00 00 */ li r8, 0 +/* 802D78D0 002D4810 39 20 FF FF */ li r9, -1 +/* 802D78D4 002D4814 39 41 00 08 */ addi r10, r1, 8 +/* 802D78D8 002D4818 4B FF AC DD */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl +/* 802D78DC 002D481C 80 61 00 08 */ lwz r3, 8(r1) +/* 802D78E0 002D4820 48 00 00 24 */ b lbl_802D7904 +lbl_802D78E4: +/* 802D78E4 002D4824 3C 60 80 3A */ lis r3, lbl_8039D188@ha +/* 802D78E8 002D4828 38 63 D1 88 */ addi r3, r3, lbl_8039D188@l +/* 802D78EC 002D482C 38 80 02 8F */ li r4, 0x28f +/* 802D78F0 002D4830 38 A3 00 13 */ addi r5, r3, 0x13 +/* 802D78F4 002D4834 38 C3 00 16 */ addi r6, r3, 0x16 +/* 802D78F8 002D4838 4C C6 31 82 */ crclr 6 +/* 802D78FC 002D483C 48 00 A9 01 */ bl JUTException_NS_panic_f +/* 802D7900 002D4840 38 60 00 00 */ li r3, 0 +lbl_802D7904: +/* 802D7904 002D4844 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D7908 002D4848 7C 08 03 A6 */ mtlr r0 +/* 802D790C 002D484C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D7910 002D4850 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7914.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7914.s new file mode 100644 index 0000000000..ba85f6c993 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7914.s @@ -0,0 +1,90 @@ +/* fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::fetchResource_subroutine(unsigned long, unsigned long, JKRHeap *, int, unsigned char **) */ +/* JKRAramArchive_NS_fetchResource_subroutine_X1_ */ +/* 802D7914 002D4854 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 802D7918 002D4858 7C 08 02 A6 */ mflr r0 +/* 802D791C 002D485C 90 01 00 74 */ stw r0, 0x74(r1) +/* 802D7920 002D4860 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D7924 002D4864 48 08 A8 AD */ bl _savegpr_26 +/* 802D7928 002D4868 7C 7C 1B 78 */ mr r28, r3 +/* 802D792C 002D486C 7C 9A 23 78 */ mr r26, r4 +/* 802D7930 002D4870 7C BD 2B 78 */ mr r29, r5 +/* 802D7934 002D4874 7C FE 3B 78 */ mr r30, r7 +/* 802D7938 002D4878 38 1A 00 1F */ addi r0, r26, 0x1f +/* 802D793C 002D487C 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a +/* 802D7940 002D4880 2C 06 00 00 */ cmpwi r6, 0 +/* 802D7944 002D4884 41 82 00 14 */ beq lbl_802D7958 +/* 802D7948 002D4888 41 80 00 E4 */ blt lbl_802D7A2C +/* 802D794C 002D488C 2C 06 00 03 */ cmpwi r6, 3 +/* 802D7950 002D4890 40 80 00 DC */ bge lbl_802D7A2C +/* 802D7954 002D4894 48 00 00 44 */ b lbl_802D7998 +lbl_802D7958: +/* 802D7958 002D4898 7F E3 FB 78 */ mr r3, r31 +/* 802D795C 002D489C 38 80 00 20 */ li r4, 0x20 +/* 802D7960 002D48A0 4B FF 6B 15 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D7964 002D48A4 7C 7B 1B 78 */ mr r27, r3 +/* 802D7968 002D48A8 7F 83 E3 78 */ mr r3, r28 +/* 802D796C 002D48AC 7F 64 DB 78 */ mr r4, r27 +/* 802D7970 002D48B0 7F E5 FB 78 */ mr r5, r31 +/* 802D7974 002D48B4 38 C0 00 00 */ li r6, 0 +/* 802D7978 002D48B8 7F E7 FB 78 */ mr r7, r31 +/* 802D797C 002D48BC 39 00 00 00 */ li r8, 0 +/* 802D7980 002D48C0 39 20 FF FF */ li r9, -1 +/* 802D7984 002D48C4 39 40 00 00 */ li r10, 0 +/* 802D7988 002D48C8 4B FF AC 2D */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl +/* 802D798C 002D48CC 93 7E 00 00 */ stw r27, 0(r30) +/* 802D7990 002D48D0 7F 43 D3 78 */ mr r3, r26 +/* 802D7994 002D48D4 48 00 00 B8 */ b lbl_802D7A4C +lbl_802D7998: +/* 802D7998 002D48D8 38 01 00 2B */ addi r0, r1, 0x2b +/* 802D799C 002D48DC 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a +/* 802D79A0 002D48E0 7F 64 DB 78 */ mr r4, r27 +/* 802D79A4 002D48E4 38 A0 00 20 */ li r5, 0x20 +/* 802D79A8 002D48E8 38 C0 00 00 */ li r6, 0 +/* 802D79AC 002D48EC 38 E0 00 00 */ li r7, 0 +/* 802D79B0 002D48F0 39 00 00 00 */ li r8, 0 +/* 802D79B4 002D48F4 39 20 FF FF */ li r9, -1 +/* 802D79B8 002D48F8 39 40 00 00 */ li r10, 0 +/* 802D79BC 002D48FC 4B FF AB F9 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl +/* 802D79C0 002D4900 88 BB 00 07 */ lbz r5, 7(r27) +/* 802D79C4 002D4904 88 9B 00 06 */ lbz r4, 6(r27) +/* 802D79C8 002D4908 88 7B 00 04 */ lbz r3, 4(r27) +/* 802D79CC 002D490C 88 1B 00 05 */ lbz r0, 5(r27) +/* 802D79D0 002D4910 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D79D4 002D4914 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D79D8 002D4918 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D79DC 002D491C 7C A3 03 78 */ or r3, r5, r0 +/* 802D79E0 002D4920 38 03 00 1F */ addi r0, r3, 0x1f +/* 802D79E4 002D4924 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a +/* 802D79E8 002D4928 7F 43 D3 78 */ mr r3, r26 +/* 802D79EC 002D492C 38 80 00 20 */ li r4, 0x20 +/* 802D79F0 002D4930 7F A5 EB 78 */ mr r5, r29 +/* 802D79F4 002D4934 4B FF 6A 81 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D79F8 002D4938 7C 7B 1B 78 */ mr r27, r3 +/* 802D79FC 002D493C 7F 83 E3 78 */ mr r3, r28 +/* 802D7A00 002D4940 7F 64 DB 78 */ mr r4, r27 +/* 802D7A04 002D4944 7F E5 FB 78 */ mr r5, r31 +/* 802D7A08 002D4948 38 C0 00 01 */ li r6, 1 +/* 802D7A0C 002D494C 7F 47 D3 78 */ mr r7, r26 +/* 802D7A10 002D4950 7F A8 EB 78 */ mr r8, r29 +/* 802D7A14 002D4954 39 20 FF FF */ li r9, -1 +/* 802D7A18 002D4958 39 41 00 08 */ addi r10, r1, 8 +/* 802D7A1C 002D495C 4B FF AB 99 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl +/* 802D7A20 002D4960 93 7E 00 00 */ stw r27, 0(r30) +/* 802D7A24 002D4964 80 61 00 08 */ lwz r3, 8(r1) +/* 802D7A28 002D4968 48 00 00 24 */ b lbl_802D7A4C +lbl_802D7A2C: +/* 802D7A2C 002D496C 3C 60 80 3A */ lis r3, lbl_8039D188@ha +/* 802D7A30 002D4970 38 63 D1 88 */ addi r3, r3, lbl_8039D188@l +/* 802D7A34 002D4974 38 80 02 C9 */ li r4, 0x2c9 +/* 802D7A38 002D4978 38 A3 00 13 */ addi r5, r3, 0x13 +/* 802D7A3C 002D497C 38 C3 00 16 */ addi r6, r3, 0x16 +/* 802D7A40 002D4980 4C C6 31 82 */ crclr 6 +/* 802D7A44 002D4984 48 00 A7 B9 */ bl JUTException_NS_panic_f +/* 802D7A48 002D4988 38 60 00 00 */ li r3, 0 +lbl_802D7A4C: +/* 802D7A4C 002D498C 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D7A50 002D4990 48 08 A7 CD */ bl _restgpr_26 +/* 802D7A54 002D4994 80 01 00 74 */ lwz r0, 0x74(r1) +/* 802D7A58 002D4998 7C 08 03 A6 */ mtlr r0 +/* 802D7A5C 002D499C 38 21 00 70 */ addi r1, r1, 0x70 +/* 802D7A60 002D49A0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7A64.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7A64.s new file mode 100644 index 0000000000..203496b256 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7A64.s @@ -0,0 +1,82 @@ +/* getExpandedResSize__14JKRAramArchiveCFPCv __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection::getExpandedResSize( const(void const *)) */ +/* missing reference */ +/* 802D7A64 002D49A4 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 802D7A68 002D49A8 7C 08 02 A6 */ mflr r0 +/* 802D7A6C 002D49AC 90 01 00 64 */ stw r0, 0x64(r1) +/* 802D7A70 002D49B0 39 61 00 60 */ addi r11, r1, 0x60 +/* 802D7A74 002D49B4 48 08 A7 69 */ bl _savegpr_29 +/* 802D7A78 002D49B8 7C 7F 1B 78 */ mr r31, r3 +/* 802D7A7C 002D49BC 7C 9E 23 78 */ mr r30, r4 +/* 802D7A80 002D49C0 80 03 00 50 */ lwz r0, 0x50(r3) +/* 802D7A84 002D49C4 28 00 00 00 */ cmplwi r0, 0 +/* 802D7A88 002D49C8 40 82 00 18 */ bne lbl_802D7AA0 +/* 802D7A8C 002D49CC 81 83 00 00 */ lwz r12, 0(r3) +/* 802D7A90 002D49D0 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802D7A94 002D49D4 7D 89 03 A6 */ mtctr r12 +/* 802D7A98 002D49D8 4E 80 04 21 */ bctrl +/* 802D7A9C 002D49DC 48 00 00 DC */ b lbl_802D7B78 +lbl_802D7AA0: +/* 802D7AA0 002D49E0 4B FF EC 95 */ bl findPtrResource__10JKRArchiveCFPCv +/* 802D7AA4 002D49E4 7C 7D 1B 79 */ or. r29, r3, r3 +/* 802D7AA8 002D49E8 40 82 00 0C */ bne lbl_802D7AB4 +/* 802D7AAC 002D49EC 38 60 FF FF */ li r3, -1 +/* 802D7AB0 002D49F0 48 00 00 C8 */ b lbl_802D7B78 +lbl_802D7AB4: +/* 802D7AB4 002D49F4 80 1D 00 04 */ lwz r0, 4(r29) +/* 802D7AB8 002D49F8 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D7ABC 002D49FC 40 82 00 20 */ bne lbl_802D7ADC +/* 802D7AC0 002D4A00 7F E3 FB 78 */ mr r3, r31 +/* 802D7AC4 002D4A04 7F C4 F3 78 */ mr r4, r30 +/* 802D7AC8 002D4A08 81 9F 00 00 */ lwz r12, 0(r31) +/* 802D7ACC 002D4A0C 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802D7AD0 002D4A10 7D 89 03 A6 */ mtctr r12 +/* 802D7AD4 002D4A14 4E 80 04 21 */ bctrl +/* 802D7AD8 002D4A18 48 00 00 A0 */ b lbl_802D7B78 +lbl_802D7ADC: +/* 802D7ADC 002D4A1C 7F E3 FB 78 */ mr r3, r31 +/* 802D7AE0 002D4A20 7F A4 EB 78 */ mr r4, r29 +/* 802D7AE4 002D4A24 81 9F 00 00 */ lwz r12, 0(r31) +/* 802D7AE8 002D4A28 81 8C 00 4C */ lwz r12, 0x4c(r12) +/* 802D7AEC 002D4A2C 7D 89 03 A6 */ mtctr r12 +/* 802D7AF0 002D4A30 4E 80 04 21 */ bctrl +/* 802D7AF4 002D4A34 28 03 00 00 */ cmplwi r3, 0 +/* 802D7AF8 002D4A38 41 82 00 08 */ beq lbl_802D7B00 +/* 802D7AFC 002D4A3C 48 00 00 7C */ b lbl_802D7B78 +lbl_802D7B00: +/* 802D7B00 002D4A40 38 01 00 27 */ addi r0, r1, 0x27 +/* 802D7B04 002D4A44 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a +/* 802D7B08 002D4A48 80 7F 00 64 */ lwz r3, 0x64(r31) +/* 802D7B0C 002D4A4C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 802D7B10 002D4A50 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D7B14 002D4A54 7C 60 1A 14 */ add r3, r0, r3 +/* 802D7B18 002D4A58 7F C4 F3 78 */ mr r4, r30 +/* 802D7B1C 002D4A5C 38 A0 00 20 */ li r5, 0x20 +/* 802D7B20 002D4A60 38 C0 00 00 */ li r6, 0 +/* 802D7B24 002D4A64 38 E0 00 00 */ li r7, 0 +/* 802D7B28 002D4A68 39 00 00 00 */ li r8, 0 +/* 802D7B2C 002D4A6C 39 20 FF FF */ li r9, -1 +/* 802D7B30 002D4A70 39 40 00 00 */ li r10, 0 +/* 802D7B34 002D4A74 4B FF AA 81 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl +/* 802D7B38 002D4A78 88 BE 00 07 */ lbz r5, 7(r30) +/* 802D7B3C 002D4A7C 88 9E 00 06 */ lbz r4, 6(r30) +/* 802D7B40 002D4A80 88 7E 00 04 */ lbz r3, 4(r30) +/* 802D7B44 002D4A84 88 1E 00 05 */ lbz r0, 5(r30) +/* 802D7B48 002D4A88 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D7B4C 002D4A8C 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D7B50 002D4A90 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D7B54 002D4A94 7C BE 03 78 */ or r30, r5, r0 +/* 802D7B58 002D4A98 7F E3 FB 78 */ mr r3, r31 +/* 802D7B5C 002D4A9C 7F A4 EB 78 */ mr r4, r29 +/* 802D7B60 002D4AA0 7F C5 F3 78 */ mr r5, r30 +/* 802D7B64 002D4AA4 81 9F 00 00 */ lwz r12, 0(r31) +/* 802D7B68 002D4AA8 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802D7B6C 002D4AAC 7D 89 03 A6 */ mtctr r12 +/* 802D7B70 002D4AB0 4E 80 04 21 */ bctrl +/* 802D7B74 002D4AB4 7F C3 F3 78 */ mr r3, r30 +lbl_802D7B78: +/* 802D7B78 002D4AB8 39 61 00 60 */ addi r11, r1, 0x60 +/* 802D7B7C 002D4ABC 48 08 A6 AD */ bl _restgpr_29 +/* 802D7B80 002D4AC0 80 01 00 64 */ lwz r0, 0x64(r1) +/* 802D7B84 002D4AC4 7C 08 03 A6 */ mtlr r0 +/* 802D7B88 002D4AC8 38 21 00 60 */ addi r1, r1, 0x60 +/* 802D7B8C 002D4ACC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7B90.s b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7B90.s new file mode 100644 index 0000000000..9db5a2d520 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramArchive/asm/func_802D7B90.s @@ -0,0 +1,27 @@ +/* __dt__7JKRFileFv JKRFile::__dt(void) */ +/* missing reference */ +/* 802D7B90 002D4AD0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D7B94 002D4AD4 7C 08 02 A6 */ mflr r0 +/* 802D7B98 002D4AD8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D7B9C 002D4ADC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D7BA0 002D4AE0 93 C1 00 08 */ stw r30, 8(r1) +/* 802D7BA4 002D4AE4 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D7BA8 002D4AE8 7C 9F 23 78 */ mr r31, r4 +/* 802D7BAC 002D4AEC 41 82 00 28 */ beq lbl_802D7BD4 +/* 802D7BB0 002D4AF0 3C 80 80 3D */ lis r4, lbl_803CC328@ha +/* 802D7BB4 002D4AF4 38 04 C3 28 */ addi r0, r4, lbl_803CC328@l +/* 802D7BB8 002D4AF8 90 1E 00 00 */ stw r0, 0(r30) +/* 802D7BBC 002D4AFC 38 80 00 00 */ li r4, 0 +/* 802D7BC0 002D4B00 4B FF 99 25 */ bl __dt__11JKRDisposerFv +/* 802D7BC4 002D4B04 7F E0 07 35 */ extsh. r0, r31 +/* 802D7BC8 002D4B08 40 81 00 0C */ ble lbl_802D7BD4 +/* 802D7BCC 002D4B0C 7F C3 F3 78 */ mr r3, r30 +/* 802D7BD0 002D4B10 4B FF 71 6D */ bl __dl__FPv +lbl_802D7BD4: +/* 802D7BD4 002D4B14 7F C3 F3 78 */ mr r3, r30 +/* 802D7BD8 002D4B18 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D7BDC 002D4B1C 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D7BE0 002D4B20 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D7BE4 002D4B24 7C 08 03 A6 */ mtlr r0 +/* 802D7BE8 002D4B28 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D7BEC 002D4B2C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h b/include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h new file mode 100644 index 0000000000..e4d2c333b7 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramBlock/JKRAramBlock.h @@ -0,0 +1,42 @@ +#ifndef __JKRARAMBLOCK_H__ +#define __JKRARAMBLOCK_H__ + +#include "dolphin/types.h" +#include "JSystem/JSupport/JSUList/JSUList.h" + +class JKRAramHeap; +class JKRAramBlock { + public: + JKRAramBlock(u32, u32, u32, u8, bool); + virtual ~JKRAramBlock(); + + void allocHead(u32, u8, JKRAramHeap*); + void allocTail(u32, u8, JKRAramHeap*); + + void* getAddress() { + return (void*)this->mAddress; + } + + u32 getSize() { + return this->mSize; + } + + bool isTempMemory() { + return this->mIsTempMemory; + } + + void newGroupID(u8 groupId) { + this->mGroupId = groupId; + } + + public: + JSULink mBlockLink; + u32 mAddress; + u32 mSize; + u32 field_; + u8 mGroupId; + u8 mIsTempMemory; + u8 padding[2]; +}; + +#endif diff --git a/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3304.s b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3304.s new file mode 100644 index 0000000000..931d1916b3 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3304.s @@ -0,0 +1,31 @@ +/* __ct__12JKRAramBlockFUlUlUlUcb __ct__12JKRAramBlockFUlUlUlUcb::__ct(unsigned long, unsigned long, unsigned long, unsigned char, bool) */ +/* JKRAramBlock */ +/* 802D3304 002D0244 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D3308 002D0248 7C 08 02 A6 */ mflr r0 +/* 802D330C 002D024C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D3310 002D0250 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3314 002D0254 48 08 EE BD */ bl _savegpr_26 +/* 802D3318 002D0258 7C 7A 1B 78 */ mr r26, r3 +/* 802D331C 002D025C 7C 9B 23 78 */ mr r27, r4 +/* 802D3320 002D0260 7C BC 2B 78 */ mr r28, r5 +/* 802D3324 002D0264 7C DD 33 78 */ mr r29, r6 +/* 802D3328 002D0268 7C FE 3B 78 */ mr r30, r7 +/* 802D332C 002D026C 7D 1F 43 78 */ mr r31, r8 +/* 802D3330 002D0270 3C 60 80 3D */ lis r3, lbl_803CC178@ha +/* 802D3334 002D0274 38 03 C1 78 */ addi r0, r3, lbl_803CC178@l +/* 802D3338 002D0278 90 1A 00 00 */ stw r0, 0(r26) +/* 802D333C 002D027C 38 7A 00 04 */ addi r3, r26, 4 +/* 802D3340 002D0280 7F 44 D3 78 */ mr r4, r26 +/* 802D3344 002D0284 48 00 8A B9 */ bl __ct__10JSUPtrLinkFPv +/* 802D3348 002D0288 93 7A 00 14 */ stw r27, 0x14(r26) +/* 802D334C 002D028C 93 9A 00 18 */ stw r28, 0x18(r26) +/* 802D3350 002D0290 93 BA 00 1C */ stw r29, 0x1c(r26) +/* 802D3354 002D0294 9B DA 00 20 */ stb r30, 0x20(r26) +/* 802D3358 002D0298 9B FA 00 21 */ stb r31, 0x21(r26) +/* 802D335C 002D029C 7F 43 D3 78 */ mr r3, r26 +/* 802D3360 002D02A0 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3364 002D02A4 48 08 EE B9 */ bl _restgpr_26 +/* 802D3368 002D02A8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D336C 002D02AC 7C 08 03 A6 */ mtlr r0 +/* 802D3370 002D02B0 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D3374 002D02B4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3378.s b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3378.s new file mode 100644 index 0000000000..f4faafe510 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3378.s @@ -0,0 +1,53 @@ +/* __dt__12JKRAramBlockFv __ct__12JKRAramBlockFUlUlUlUcb::__dt(void) */ +/* missing reference */ +/* 802D3378 002D02B8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D337C 002D02BC 7C 08 02 A6 */ mflr r0 +/* 802D3380 002D02C0 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3384 002D02C4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3388 002D02C8 93 C1 00 08 */ stw r30, 8(r1) +/* 802D338C 002D02CC 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D3390 002D02D0 7C 9F 23 78 */ mr r31, r4 +/* 802D3394 002D02D4 41 82 00 84 */ beq lbl_802D3418 +/* 802D3398 002D02D8 3C 60 80 3D */ lis r3, lbl_803CC178@ha +/* 802D339C 002D02DC 38 03 C1 78 */ addi r0, r3, lbl_803CC178@l +/* 802D33A0 002D02E0 90 1E 00 00 */ stw r0, 0(r30) +/* 802D33A4 002D02E4 80 7E 00 08 */ lwz r3, 8(r30) +/* 802D33A8 002D02E8 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 802D33AC 002D02EC 28 04 00 00 */ cmplwi r4, 0 +/* 802D33B0 002D02F0 41 82 00 2C */ beq lbl_802D33DC +/* 802D33B4 002D02F4 80 C4 00 00 */ lwz r6, 0(r4) +/* 802D33B8 002D02F8 80 A6 00 1C */ lwz r5, 0x1c(r6) +/* 802D33BC 002D02FC 80 9E 00 18 */ lwz r4, 0x18(r30) +/* 802D33C0 002D0300 80 1E 00 1C */ lwz r0, 0x1c(r30) +/* 802D33C4 002D0304 7C 00 2A 14 */ add r0, r0, r5 +/* 802D33C8 002D0308 7C 04 02 14 */ add r0, r4, r0 +/* 802D33CC 002D030C 90 06 00 1C */ stw r0, 0x1c(r6) +/* 802D33D0 002D0310 38 9E 00 04 */ addi r4, r30, 4 +/* 802D33D4 002D0314 48 00 8D 89 */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802D33D8 002D0318 48 00 00 1C */ b lbl_802D33F4 +lbl_802D33DC: +/* 802D33DC 002D031C 80 7E 00 1C */ lwz r3, 0x1c(r30) +/* 802D33E0 002D0320 80 1E 00 18 */ lwz r0, 0x18(r30) +/* 802D33E4 002D0324 7C 03 02 14 */ add r0, r3, r0 +/* 802D33E8 002D0328 90 1E 00 1C */ stw r0, 0x1c(r30) +/* 802D33EC 002D032C 38 00 00 00 */ li r0, 0 +/* 802D33F0 002D0330 90 1E 00 18 */ stw r0, 0x18(r30) +lbl_802D33F4: +/* 802D33F4 002D0334 34 1E 00 04 */ addic. r0, r30, 4 +/* 802D33F8 002D0338 41 82 00 10 */ beq lbl_802D3408 +/* 802D33FC 002D033C 38 7E 00 04 */ addi r3, r30, 4 +/* 802D3400 002D0340 38 80 00 00 */ li r4, 0 +/* 802D3404 002D0344 48 00 8A 11 */ bl __dt__10JSUPtrLinkFv +lbl_802D3408: +/* 802D3408 002D0348 7F E0 07 35 */ extsh. r0, r31 +/* 802D340C 002D034C 40 81 00 0C */ ble lbl_802D3418 +/* 802D3410 002D0350 7F C3 F3 78 */ mr r3, r30 +/* 802D3414 002D0354 4B FF B9 29 */ bl __dl__FPv +lbl_802D3418: +/* 802D3418 002D0358 7F C3 F3 78 */ mr r3, r30 +/* 802D341C 002D035C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3420 002D0360 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D3424 002D0364 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3428 002D0368 7C 08 03 A6 */ mtlr r0 +/* 802D342C 002D036C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3430 002D0370 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3434.s b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3434.s new file mode 100644 index 0000000000..ef191561fe --- /dev/null +++ b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D3434.s @@ -0,0 +1,42 @@ +/* allocHead__12JKRAramBlockFUlUcP11JKRAramHeap __ct__12JKRAramBlockFUlUlUlUcb::allocHead(unsigned long, unsigned char, JKRAramHeap *) */ +/* JKRAramBlock_NS_allocHead */ +/* 802D3434 002D0374 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D3438 002D0378 7C 08 02 A6 */ mflr r0 +/* 802D343C 002D037C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D3440 002D0380 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3444 002D0384 48 08 ED 8D */ bl _savegpr_26 +/* 802D3448 002D0388 7C 7A 1B 78 */ mr r26, r3 +/* 802D344C 002D038C 7C 9B 23 78 */ mr r27, r4 +/* 802D3450 002D0390 7C BC 2B 78 */ mr r28, r5 +/* 802D3454 002D0394 80 63 00 14 */ lwz r3, 0x14(r3) +/* 802D3458 002D0398 80 1A 00 18 */ lwz r0, 0x18(r26) +/* 802D345C 002D039C 7F C3 02 14 */ add r30, r3, r0 +/* 802D3460 002D03A0 80 1A 00 1C */ lwz r0, 0x1c(r26) +/* 802D3464 002D03A4 7F BB 00 50 */ subf r29, r27, r0 +/* 802D3468 002D03A8 38 60 00 24 */ li r3, 0x24 +/* 802D346C 002D03AC 80 86 00 30 */ lwz r4, 0x30(r6) +/* 802D3470 002D03B0 38 A0 00 00 */ li r5, 0 +/* 802D3474 002D03B4 4B FF B8 25 */ bl __nw__FUlP7JKRHeapi +/* 802D3478 002D03B8 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802D347C 002D03BC 41 82 00 20 */ beq lbl_802D349C +/* 802D3480 002D03C0 7F C4 F3 78 */ mr r4, r30 +/* 802D3484 002D03C4 7F 65 DB 78 */ mr r5, r27 +/* 802D3488 002D03C8 7F A6 EB 78 */ mr r6, r29 +/* 802D348C 002D03CC 7F 87 E3 78 */ mr r7, r28 +/* 802D3490 002D03D0 39 00 00 00 */ li r8, 0 +/* 802D3494 002D03D4 4B FF FE 71 */ bl __ct__12JKRAramBlockFUlUlUlUcb +/* 802D3498 002D03D8 7C 7F 1B 78 */ mr r31, r3 +lbl_802D349C: +/* 802D349C 002D03DC 38 00 00 00 */ li r0, 0 +/* 802D34A0 002D03E0 90 1A 00 1C */ stw r0, 0x1c(r26) +/* 802D34A4 002D03E4 80 9A 00 10 */ lwz r4, 0x10(r26) +/* 802D34A8 002D03E8 80 7A 00 08 */ lwz r3, 8(r26) +/* 802D34AC 002D03EC 38 BF 00 04 */ addi r5, r31, 4 +/* 802D34B0 002D03F0 48 00 8B E5 */ bl insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink +/* 802D34B4 002D03F4 7F E3 FB 78 */ mr r3, r31 +/* 802D34B8 002D03F8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D34BC 002D03FC 48 08 ED 61 */ bl _restgpr_26 +/* 802D34C0 002D0400 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D34C4 002D0404 7C 08 03 A6 */ mtlr r0 +/* 802D34C8 002D0408 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D34CC 002D040C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramBlock/asm/func_802D34D0.s b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D34D0.s new file mode 100644 index 0000000000..40347552db --- /dev/null +++ b/include/JSystem/JKernel/JKRAramBlock/asm/func_802D34D0.s @@ -0,0 +1,44 @@ +/* allocTail__12JKRAramBlockFUlUcP11JKRAramHeap __ct__12JKRAramBlockFUlUlUlUcb::allocTail(unsigned long, unsigned char, JKRAramHeap *) */ +/* JKRAramBlock_NS_allocTail */ +/* 802D34D0 002D0410 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D34D4 002D0414 7C 08 02 A6 */ mflr r0 +/* 802D34D8 002D0418 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D34DC 002D041C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D34E0 002D0420 48 08 EC F5 */ bl _savegpr_27 +/* 802D34E4 002D0424 7C 7B 1B 78 */ mr r27, r3 +/* 802D34E8 002D0428 7C 9C 23 78 */ mr r28, r4 +/* 802D34EC 002D042C 7C BD 2B 78 */ mr r29, r5 +/* 802D34F0 002D0430 80 83 00 1C */ lwz r4, 0x1c(r3) +/* 802D34F4 002D0434 80 63 00 14 */ lwz r3, 0x14(r3) +/* 802D34F8 002D0438 80 1B 00 18 */ lwz r0, 0x18(r27) +/* 802D34FC 002D043C 7C 00 22 14 */ add r0, r0, r4 +/* 802D3500 002D0440 7C 03 02 14 */ add r0, r3, r0 +/* 802D3504 002D0444 7F DC 00 50 */ subf r30, r28, r0 +/* 802D3508 002D0448 38 60 00 24 */ li r3, 0x24 +/* 802D350C 002D044C 80 86 00 30 */ lwz r4, 0x30(r6) +/* 802D3510 002D0450 38 A0 00 00 */ li r5, 0 +/* 802D3514 002D0454 4B FF B7 85 */ bl __nw__FUlP7JKRHeapi +/* 802D3518 002D0458 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802D351C 002D045C 41 82 00 20 */ beq lbl_802D353C +/* 802D3520 002D0460 7F C4 F3 78 */ mr r4, r30 +/* 802D3524 002D0464 7F 85 E3 78 */ mr r5, r28 +/* 802D3528 002D0468 38 C0 00 00 */ li r6, 0 +/* 802D352C 002D046C 7F A7 EB 78 */ mr r7, r29 +/* 802D3530 002D0470 39 00 00 01 */ li r8, 1 +/* 802D3534 002D0474 4B FF FD D1 */ bl __ct__12JKRAramBlockFUlUlUlUcb +/* 802D3538 002D0478 7C 7F 1B 78 */ mr r31, r3 +lbl_802D353C: +/* 802D353C 002D047C 80 1B 00 1C */ lwz r0, 0x1c(r27) +/* 802D3540 002D0480 7C 1C 00 50 */ subf r0, r28, r0 +/* 802D3544 002D0484 90 1B 00 1C */ stw r0, 0x1c(r27) +/* 802D3548 002D0488 80 9B 00 10 */ lwz r4, 0x10(r27) +/* 802D354C 002D048C 80 7B 00 08 */ lwz r3, 8(r27) +/* 802D3550 002D0490 38 BF 00 04 */ addi r5, r31, 4 +/* 802D3554 002D0494 48 00 8B 41 */ bl insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink +/* 802D3558 002D0498 7F E3 FB 78 */ mr r3, r31 +/* 802D355C 002D049C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3560 002D04A0 48 08 EC C1 */ bl _restgpr_27 +/* 802D3564 002D04A4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D3568 002D04A8 7C 08 03 A6 */ mtlr r0 +/* 802D356C 002D04AC 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D3570 002D04B0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h b/include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h new file mode 100644 index 0000000000..81d4698c10 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/JKRAramHeap.h @@ -0,0 +1,52 @@ +#ifndef __JKRARAMHEAP_H__ +#define __JKRARAMHEAP_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRDisposer/JKRDisposer.h" +#include "global.h" + +class JKRAramHeap : public JKRDisposer { + public: + enum EAllocMode { + HEAD = 0, + TAIL = 1, + }; + + public: + JKRAramHeap(u32, u32); + virtual ~JKRAramHeap(void); + + void alloc(u32, EAllocMode); + void allocFromHead(u32); + void allocFromTail(u32); + void getFreeSize(void); + void getTotalFreeSize(void); + void dump(void); + + u8 getCurrentGroupID() { + return this->mGroupId; + } + + JKRHeap* getMgrHeap() { + return this->mHeap; + } + + void lock() { + OSLockMutex(&this->mMutex); + } + + void unlock() { + OSUnlockMutex(&this->mMutex); + } + + public: + OSMutex mMutex; + JKRHeap* mHeap; + u32 field_0x34; + u32 field_0x38; + u32 field_0x3c; + u8 mGroupId; + u8 padding_0x41[3]; +}; + +#endif diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2E44.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2E44.s new file mode 100644 index 0000000000..605d2d7f0c --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2E44.s @@ -0,0 +1,55 @@ +/* __ct__11JKRAramHeapFUlUl __ct__11JKRAramHeapFUlUl::__ct(unsigned long, unsigned long) */ +/* JKRAramHeap */ +/* 802D2E44 002CFD84 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D2E48 002CFD88 7C 08 02 A6 */ mflr r0 +/* 802D2E4C 002CFD8C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D2E50 002CFD90 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2E54 002CFD94 48 08 F3 89 */ bl _savegpr_29 +/* 802D2E58 002CFD98 7C 7D 1B 78 */ mr r29, r3 +/* 802D2E5C 002CFD9C 7C 9E 23 78 */ mr r30, r4 +/* 802D2E60 002CFDA0 7C BF 2B 78 */ mr r31, r5 +/* 802D2E64 002CFDA4 4B FF E6 19 */ bl __ct__11JKRDisposerFv +/* 802D2E68 002CFDA8 3C 60 80 3D */ lis r3, lbl_803CC168@ha +/* 802D2E6C 002CFDAC 38 03 C1 68 */ addi r0, r3, lbl_803CC168@l +/* 802D2E70 002CFDB0 90 1D 00 00 */ stw r0, 0(r29) +/* 802D2E74 002CFDB4 38 7D 00 18 */ addi r3, r29, 0x18 +/* 802D2E78 002CFDB8 48 06 C1 91 */ bl OSInitMutex +/* 802D2E7C 002CFDBC 7F A3 EB 78 */ mr r3, r29 +/* 802D2E80 002CFDC0 4B FF B9 BD */ bl findFromRoot__7JKRHeapFPv +/* 802D2E84 002CFDC4 90 7D 00 30 */ stw r3, 0x30(r29) +/* 802D2E88 002CFDC8 57 E0 00 34 */ rlwinm r0, r31, 0, 0, 0x1a +/* 802D2E8C 002CFDCC 90 1D 00 3C */ stw r0, 0x3c(r29) +/* 802D2E90 002CFDD0 38 1E 00 1F */ addi r0, r30, 0x1f +/* 802D2E94 002CFDD4 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a +/* 802D2E98 002CFDD8 90 1D 00 34 */ stw r0, 0x34(r29) +/* 802D2E9C 002CFDDC 80 7D 00 34 */ lwz r3, 0x34(r29) +/* 802D2EA0 002CFDE0 80 1D 00 3C */ lwz r0, 0x3c(r29) +/* 802D2EA4 002CFDE4 7C 03 02 14 */ add r0, r3, r0 +/* 802D2EA8 002CFDE8 90 1D 00 38 */ stw r0, 0x38(r29) +/* 802D2EAC 002CFDEC 38 00 00 FF */ li r0, 0xff +/* 802D2EB0 002CFDF0 98 1D 00 40 */ stb r0, 0x40(r29) +/* 802D2EB4 002CFDF4 38 60 00 24 */ li r3, 0x24 +/* 802D2EB8 002CFDF8 80 9D 00 30 */ lwz r4, 0x30(r29) +/* 802D2EBC 002CFDFC 38 A0 00 00 */ li r5, 0 +/* 802D2EC0 002CFE00 4B FF BD D9 */ bl __nw__FUlP7JKRHeapi +/* 802D2EC4 002CFE04 7C 64 1B 79 */ or. r4, r3, r3 +/* 802D2EC8 002CFE08 41 82 00 20 */ beq lbl_802D2EE8 +/* 802D2ECC 002CFE0C 80 9D 00 34 */ lwz r4, 0x34(r29) +/* 802D2ED0 002CFE10 38 A0 00 00 */ li r5, 0 +/* 802D2ED4 002CFE14 80 DD 00 3C */ lwz r6, 0x3c(r29) +/* 802D2ED8 002CFE18 38 E0 00 FF */ li r7, 0xff +/* 802D2EDC 002CFE1C 39 00 00 00 */ li r8, 0 +/* 802D2EE0 002CFE20 48 00 04 25 */ bl __ct__12JKRAramBlockFUlUlUlUcb +/* 802D2EE4 002CFE24 7C 64 1B 78 */ mr r4, r3 +lbl_802D2EE8: +/* 802D2EE8 002CFE28 3C 60 80 43 */ lis r3, lbl_8043430C@ha +/* 802D2EEC 002CFE2C 38 63 43 0C */ addi r3, r3, lbl_8043430C@l +/* 802D2EF0 002CFE30 38 84 00 04 */ addi r4, r4, 4 +/* 802D2EF4 002CFE34 48 00 90 59 */ bl append__10JSUPtrListFP10JSUPtrLink +/* 802D2EF8 002CFE38 7F A3 EB 78 */ mr r3, r29 +/* 802D2EFC 002CFE3C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2F00 002CFE40 48 08 F3 29 */ bl _restgpr_29 +/* 802D2F04 002CFE44 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D2F08 002CFE48 7C 08 03 A6 */ mtlr r0 +/* 802D2F0C 002CFE4C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D2F10 002CFE50 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2F14.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2F14.s new file mode 100644 index 0000000000..1b116f5fe8 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2F14.s @@ -0,0 +1,47 @@ +/* __dt__11JKRAramHeapFv __ct__11JKRAramHeapFUlUl::__dt(void) */ +/* missing reference */ +/* 802D2F14 002CFE54 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D2F18 002CFE58 7C 08 02 A6 */ mflr r0 +/* 802D2F1C 002CFE5C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D2F20 002CFE60 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2F24 002CFE64 48 08 F2 B9 */ bl _savegpr_29 +/* 802D2F28 002CFE68 7C 7D 1B 79 */ or. r29, r3, r3 +/* 802D2F2C 002CFE6C 7C 9E 23 78 */ mr r30, r4 +/* 802D2F30 002CFE70 41 82 00 70 */ beq lbl_802D2FA0 +/* 802D2F34 002CFE74 3C 60 80 3D */ lis r3, lbl_803CC168@ha +/* 802D2F38 002CFE78 38 03 C1 68 */ addi r0, r3, lbl_803CC168@l +/* 802D2F3C 002CFE7C 90 1D 00 00 */ stw r0, 0(r29) +/* 802D2F40 002CFE80 3C 60 80 43 */ lis r3, lbl_8043430C@ha +/* 802D2F44 002CFE84 83 E3 43 0C */ lwz r31, lbl_8043430C@l(r3) +/* 802D2F48 002CFE88 48 00 00 34 */ b lbl_802D2F7C +lbl_802D2F4C: +/* 802D2F4C 002CFE8C 93 E1 00 08 */ stw r31, 8(r1) +/* 802D2F50 002CFE90 83 FF 00 0C */ lwz r31, 0xc(r31) +/* 802D2F54 002CFE94 80 61 00 08 */ lwz r3, 8(r1) +/* 802D2F58 002CFE98 90 61 00 0C */ stw r3, 0xc(r1) +/* 802D2F5C 002CFE9C 80 63 00 00 */ lwz r3, 0(r3) +/* 802D2F60 002CFEA0 28 03 00 00 */ cmplwi r3, 0 +/* 802D2F64 002CFEA4 41 82 00 18 */ beq lbl_802D2F7C +/* 802D2F68 002CFEA8 38 80 00 01 */ li r4, 1 +/* 802D2F6C 002CFEAC 81 83 00 00 */ lwz r12, 0(r3) +/* 802D2F70 002CFEB0 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D2F74 002CFEB4 7D 89 03 A6 */ mtctr r12 +/* 802D2F78 002CFEB8 4E 80 04 21 */ bctrl +lbl_802D2F7C: +/* 802D2F7C 002CFEBC 28 1F 00 00 */ cmplwi r31, 0 +/* 802D2F80 002CFEC0 40 82 FF CC */ bne lbl_802D2F4C +/* 802D2F84 002CFEC4 7F A3 EB 78 */ mr r3, r29 +/* 802D2F88 002CFEC8 38 80 00 00 */ li r4, 0 +/* 802D2F8C 002CFECC 4B FF E5 59 */ bl __dt__11JKRDisposerFv +/* 802D2F90 002CFED0 7F C0 07 35 */ extsh. r0, r30 +/* 802D2F94 002CFED4 40 81 00 0C */ ble lbl_802D2FA0 +/* 802D2F98 002CFED8 7F A3 EB 78 */ mr r3, r29 +/* 802D2F9C 002CFEDC 4B FF BD A1 */ bl __dl__FPv +lbl_802D2FA0: +/* 802D2FA0 002CFEE0 7F A3 EB 78 */ mr r3, r29 +/* 802D2FA4 002CFEE4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2FA8 002CFEE8 48 08 F2 81 */ bl _restgpr_29 +/* 802D2FAC 002CFEEC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D2FB0 002CFEF0 7C 08 03 A6 */ mtlr r0 +/* 802D2FB4 002CFEF4 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D2FB8 002CFEF8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2FBC.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2FBC.s new file mode 100644 index 0000000000..eb1fc24730 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D2FBC.s @@ -0,0 +1,34 @@ +/* alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode __ct__11JKRAramHeapFUlUl::alloc(unsigned long, __ct__11JKRAramHeapFUlUl::EAllocMode) */ +/* JKRAramHeap_NS_alloc */ +/* 802D2FBC 002CFEFC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D2FC0 002CFF00 7C 08 02 A6 */ mflr r0 +/* 802D2FC4 002CFF04 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D2FC8 002CFF08 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D2FCC 002CFF0C 48 08 F2 11 */ bl _savegpr_29 +/* 802D2FD0 002CFF10 7C 7D 1B 78 */ mr r29, r3 +/* 802D2FD4 002CFF14 7C 9E 23 78 */ mr r30, r4 +/* 802D2FD8 002CFF18 7C BF 2B 78 */ mr r31, r5 +/* 802D2FDC 002CFF1C 38 7D 00 18 */ addi r3, r29, 0x18 +/* 802D2FE0 002CFF20 48 06 C0 61 */ bl OSLockMutex +/* 802D2FE4 002CFF24 2C 1F 00 00 */ cmpwi r31, 0 +/* 802D2FE8 002CFF28 40 82 00 18 */ bne lbl_802D3000 +/* 802D2FEC 002CFF2C 7F A3 EB 78 */ mr r3, r29 +/* 802D2FF0 002CFF30 7F C4 F3 78 */ mr r4, r30 +/* 802D2FF4 002CFF34 48 00 00 41 */ bl allocFromHead__11JKRAramHeapFUl +/* 802D2FF8 002CFF38 7C 7F 1B 78 */ mr r31, r3 +/* 802D2FFC 002CFF3C 48 00 00 14 */ b lbl_802D3010 +lbl_802D3000: +/* 802D3000 002CFF40 7F A3 EB 78 */ mr r3, r29 +/* 802D3004 002CFF44 7F C4 F3 78 */ mr r4, r30 +/* 802D3008 002CFF48 48 00 00 B5 */ bl allocFromTail__11JKRAramHeapFUl +/* 802D300C 002CFF4C 7C 7F 1B 78 */ mr r31, r3 +lbl_802D3010: +/* 802D3010 002CFF50 38 7D 00 18 */ addi r3, r29, 0x18 +/* 802D3014 002CFF54 48 06 C1 09 */ bl OSUnlockMutex +/* 802D3018 002CFF58 7F E3 FB 78 */ mr r3, r31 +/* 802D301C 002CFF5C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3020 002CFF60 48 08 F2 09 */ bl _restgpr_29 +/* 802D3024 002CFF64 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D3028 002CFF68 7C 08 03 A6 */ mtlr r0 +/* 802D302C 002CFF6C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D3030 002CFF70 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3034.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3034.s new file mode 100644 index 0000000000..7cf6c04775 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3034.s @@ -0,0 +1,42 @@ +/* allocFromHead__11JKRAramHeapFUl __ct__11JKRAramHeapFUlUl::allocFromHead(unsigned long) */ +/* JKRAramHeap_NS_allocFromHead */ +/* 802D3034 002CFF74 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3038 002CFF78 7C 08 02 A6 */ mflr r0 +/* 802D303C 002CFF7C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3040 002CFF80 7C 66 1B 78 */ mr r6, r3 +/* 802D3044 002CFF84 38 04 00 1F */ addi r0, r4, 0x1f +/* 802D3048 002CFF88 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a +/* 802D304C 002CFF8C 39 00 FF FF */ li r8, -1 +/* 802D3050 002CFF90 38 60 00 00 */ li r3, 0 +/* 802D3054 002CFF94 3C A0 80 43 */ lis r5, lbl_8043430C@ha +/* 802D3058 002CFF98 80 E5 43 0C */ lwz r7, lbl_8043430C@l(r5) +/* 802D305C 002CFF9C 48 00 00 30 */ b lbl_802D308C +lbl_802D3060: +/* 802D3060 002CFFA0 80 A7 00 00 */ lwz r5, 0(r7) +/* 802D3064 002CFFA4 80 05 00 1C */ lwz r0, 0x1c(r5) +/* 802D3068 002CFFA8 7C 00 20 40 */ cmplw r0, r4 +/* 802D306C 002CFFAC 41 80 00 1C */ blt lbl_802D3088 +/* 802D3070 002CFFB0 7C 08 00 40 */ cmplw r8, r0 +/* 802D3074 002CFFB4 40 81 00 14 */ ble lbl_802D3088 +/* 802D3078 002CFFB8 7C 08 03 78 */ mr r8, r0 +/* 802D307C 002CFFBC 7C A3 2B 78 */ mr r3, r5 +/* 802D3080 002CFFC0 7C 00 20 40 */ cmplw r0, r4 +/* 802D3084 002CFFC4 41 82 00 10 */ beq lbl_802D3094 +lbl_802D3088: +/* 802D3088 002CFFC8 80 E7 00 0C */ lwz r7, 0xc(r7) +lbl_802D308C: +/* 802D308C 002CFFCC 28 07 00 00 */ cmplwi r7, 0 +/* 802D3090 002CFFD0 40 82 FF D0 */ bne lbl_802D3060 +lbl_802D3094: +/* 802D3094 002CFFD4 28 03 00 00 */ cmplwi r3, 0 +/* 802D3098 002CFFD8 41 82 00 10 */ beq lbl_802D30A8 +/* 802D309C 002CFFDC 88 A6 00 40 */ lbz r5, 0x40(r6) +/* 802D30A0 002CFFE0 48 00 03 95 */ bl allocHead__12JKRAramBlockFUlUcP11JKRAramHeap +/* 802D30A4 002CFFE4 48 00 00 08 */ b lbl_802D30AC +lbl_802D30A8: +/* 802D30A8 002CFFE8 38 60 00 00 */ li r3, 0 +lbl_802D30AC: +/* 802D30AC 002CFFEC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D30B0 002CFFF0 7C 08 03 A6 */ mtlr r0 +/* 802D30B4 002CFFF4 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D30B8 002CFFF8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D30BC.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D30BC.s new file mode 100644 index 0000000000..bf405ba24c --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D30BC.s @@ -0,0 +1,38 @@ +/* allocFromTail__11JKRAramHeapFUl __ct__11JKRAramHeapFUlUl::allocFromTail(unsigned long) */ +/* JKRAramHeap_NS_allocFromTail */ +/* 802D30BC 002CFFFC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D30C0 002D0000 7C 08 02 A6 */ mflr r0 +/* 802D30C4 002D0004 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D30C8 002D0008 7C 66 1B 78 */ mr r6, r3 +/* 802D30CC 002D000C 38 04 00 1F */ addi r0, r4, 0x1f +/* 802D30D0 002D0010 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a +/* 802D30D4 002D0014 38 60 00 00 */ li r3, 0 +/* 802D30D8 002D0018 3C A0 80 43 */ lis r5, lbl_8043430C@ha +/* 802D30DC 002D001C 38 A5 43 0C */ addi r5, r5, lbl_8043430C@l +/* 802D30E0 002D0020 80 E5 00 04 */ lwz r7, 4(r5) +/* 802D30E4 002D0024 48 00 00 20 */ b lbl_802D3104 +lbl_802D30E8: +/* 802D30E8 002D0028 80 A7 00 00 */ lwz r5, 0(r7) +/* 802D30EC 002D002C 80 05 00 1C */ lwz r0, 0x1c(r5) +/* 802D30F0 002D0030 7C 00 20 40 */ cmplw r0, r4 +/* 802D30F4 002D0034 41 80 00 0C */ blt lbl_802D3100 +/* 802D30F8 002D0038 7C A3 2B 78 */ mr r3, r5 +/* 802D30FC 002D003C 48 00 00 10 */ b lbl_802D310C +lbl_802D3100: +/* 802D3100 002D0040 80 E7 00 08 */ lwz r7, 8(r7) +lbl_802D3104: +/* 802D3104 002D0044 28 07 00 00 */ cmplwi r7, 0 +/* 802D3108 002D0048 40 82 FF E0 */ bne lbl_802D30E8 +lbl_802D310C: +/* 802D310C 002D004C 28 03 00 00 */ cmplwi r3, 0 +/* 802D3110 002D0050 41 82 00 10 */ beq lbl_802D3120 +/* 802D3114 002D0054 88 A6 00 40 */ lbz r5, 0x40(r6) +/* 802D3118 002D0058 48 00 03 B9 */ bl allocTail__12JKRAramBlockFUlUcP11JKRAramHeap +/* 802D311C 002D005C 48 00 00 08 */ b lbl_802D3124 +lbl_802D3120: +/* 802D3120 002D0060 38 60 00 00 */ li r3, 0 +lbl_802D3124: +/* 802D3124 002D0064 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3128 002D0068 7C 08 03 A6 */ mtlr r0 +/* 802D312C 002D006C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3130 002D0070 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3134.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3134.s new file mode 100644 index 0000000000..b6d9ca043e --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3134.s @@ -0,0 +1,35 @@ +/* getFreeSize__11JKRAramHeapFv __ct__11JKRAramHeapFUlUl::getFreeSize(void) */ +/* JKRAramHeap_NS_getFreeSize */ +/* 802D3134 002D0074 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3138 002D0078 7C 08 02 A6 */ mflr r0 +/* 802D313C 002D007C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3140 002D0080 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3144 002D0084 93 C1 00 08 */ stw r30, 8(r1) +/* 802D3148 002D0088 7C 7E 1B 78 */ mr r30, r3 +/* 802D314C 002D008C 3B E0 00 00 */ li r31, 0 +/* 802D3150 002D0090 38 7E 00 18 */ addi r3, r30, 0x18 +/* 802D3154 002D0094 48 06 BE ED */ bl OSLockMutex +/* 802D3158 002D0098 3C 60 80 43 */ lis r3, lbl_8043430C@ha +/* 802D315C 002D009C 38 63 43 0C */ addi r3, r3, lbl_8043430C@l +/* 802D3160 002D00A0 80 63 00 00 */ lwz r3, 0(r3) +/* 802D3164 002D00A4 48 00 00 1C */ b lbl_802D3180 +lbl_802D3168: +/* 802D3168 002D00A8 80 83 00 00 */ lwz r4, 0(r3) +/* 802D316C 002D00AC 80 04 00 1C */ lwz r0, 0x1c(r4) +/* 802D3170 002D00B0 7C 00 F8 40 */ cmplw r0, r31 +/* 802D3174 002D00B4 40 81 00 08 */ ble lbl_802D317C +/* 802D3178 002D00B8 7C 1F 03 78 */ mr r31, r0 +lbl_802D317C: +/* 802D317C 002D00BC 80 63 00 0C */ lwz r3, 0xc(r3) +lbl_802D3180: +/* 802D3180 002D00C0 28 03 00 00 */ cmplwi r3, 0 +/* 802D3184 002D00C4 40 82 FF E4 */ bne lbl_802D3168 +/* 802D3188 002D00C8 38 7E 00 18 */ addi r3, r30, 0x18 +/* 802D318C 002D00CC 48 06 BF 91 */ bl OSUnlockMutex +/* 802D3190 002D00D0 7F E3 FB 78 */ mr r3, r31 +/* 802D3194 002D00D4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3198 002D00D8 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D319C 002D00DC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D31A0 002D00E0 7C 08 03 A6 */ mtlr r0 +/* 802D31A4 002D00E4 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D31A8 002D00E8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D31AC.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D31AC.s new file mode 100644 index 0000000000..33fd2d9d13 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D31AC.s @@ -0,0 +1,31 @@ +/* getTotalFreeSize__11JKRAramHeapFv __ct__11JKRAramHeapFUlUl::getTotalFreeSize(void) */ +/* JKRAramHeap_NS_getTotalFreeSize */ +/* 802D31AC 002D00EC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D31B0 002D00F0 7C 08 02 A6 */ mflr r0 +/* 802D31B4 002D00F4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D31B8 002D00F8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D31BC 002D00FC 93 C1 00 08 */ stw r30, 8(r1) +/* 802D31C0 002D0100 7C 7E 1B 78 */ mr r30, r3 +/* 802D31C4 002D0104 3B E0 00 00 */ li r31, 0 +/* 802D31C8 002D0108 38 7E 00 18 */ addi r3, r30, 0x18 +/* 802D31CC 002D010C 48 06 BE 75 */ bl OSLockMutex +/* 802D31D0 002D0110 3C 60 80 43 */ lis r3, lbl_8043430C@ha +/* 802D31D4 002D0114 80 83 43 0C */ lwz r4, lbl_8043430C@l(r3) +/* 802D31D8 002D0118 48 00 00 14 */ b lbl_802D31EC +lbl_802D31DC: +/* 802D31DC 002D011C 80 64 00 00 */ lwz r3, 0(r4) +/* 802D31E0 002D0120 80 03 00 1C */ lwz r0, 0x1c(r3) +/* 802D31E4 002D0124 7F FF 02 14 */ add r31, r31, r0 +/* 802D31E8 002D0128 80 84 00 0C */ lwz r4, 0xc(r4) +lbl_802D31EC: +/* 802D31EC 002D012C 28 04 00 00 */ cmplwi r4, 0 +/* 802D31F0 002D0130 40 82 FF EC */ bne lbl_802D31DC +/* 802D31F4 002D0134 38 7E 00 18 */ addi r3, r30, 0x18 +/* 802D31F8 002D0138 48 06 BF 25 */ bl OSUnlockMutex +/* 802D31FC 002D013C 7F E3 FB 78 */ mr r3, r31 +/* 802D3200 002D0140 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3204 002D0144 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D3208 002D0148 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D320C 002D014C 7C 08 03 A6 */ mtlr r0 +/* 802D3210 002D0150 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3214 002D0154 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3218.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3218.s new file mode 100644 index 0000000000..a6e38d54f1 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D3218.s @@ -0,0 +1,25 @@ +/* dump__11JKRAramHeapFv __ct__11JKRAramHeapFUlUl::dump(void) */ +/* JKRAramHeap_NS_dump */ +/* 802D3218 002D0158 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D321C 002D015C 7C 08 02 A6 */ mflr r0 +/* 802D3220 002D0160 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3224 002D0164 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3228 002D0168 7C 7F 1B 78 */ mr r31, r3 +/* 802D322C 002D016C 38 7F 00 18 */ addi r3, r31, 0x18 +/* 802D3230 002D0170 48 06 BE 11 */ bl OSLockMutex +/* 802D3234 002D0174 3C 60 80 43 */ lis r3, lbl_8043430C@ha +/* 802D3238 002D0178 38 63 43 0C */ addi r3, r3, lbl_8043430C@l +/* 802D323C 002D017C 80 63 00 00 */ lwz r3, 0(r3) +/* 802D3240 002D0180 48 00 00 08 */ b lbl_802D3248 +lbl_802D3244: +/* 802D3244 002D0184 80 63 00 0C */ lwz r3, 0xc(r3) +lbl_802D3248: +/* 802D3248 002D0188 28 03 00 00 */ cmplwi r3, 0 +/* 802D324C 002D018C 40 82 FF F8 */ bne lbl_802D3244 +/* 802D3250 002D0190 38 7F 00 18 */ addi r3, r31, 0x18 +/* 802D3254 002D0194 48 06 BE C9 */ bl OSUnlockMutex +/* 802D3258 002D0198 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D325C 002D019C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3260 002D01A0 7C 08 03 A6 */ mtlr r0 +/* 802D3264 002D01A4 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3268 002D01A8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D326C.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D326C.s new file mode 100644 index 0000000000..50499da1c5 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D326C.s @@ -0,0 +1,19 @@ +/* __sinit_JKRAramHeap_cpp __sinit_JKRAramHeap_cpp */ +/* missing reference */ +/* 802D326C 002D01AC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3270 002D01B0 7C 08 02 A6 */ mflr r0 +/* 802D3274 002D01B4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3278 002D01B8 3C 60 80 43 */ lis r3, lbl_8043430C@ha +/* 802D327C 002D01BC 38 63 43 0C */ addi r3, r3, lbl_8043430C@l +/* 802D3280 002D01C0 48 00 8C 95 */ bl initiate__10JSUPtrListFv +/* 802D3284 002D01C4 3C 60 80 43 */ lis r3, lbl_8043430C@ha +/* 802D3288 002D01C8 38 63 43 0C */ addi r3, r3, lbl_8043430C@l +/* 802D328C 002D01CC 3C 80 80 2D */ lis r4, JSUList_NS_dtor_X5_@ha +/* 802D3290 002D01D0 38 84 32 B0 */ addi r4, r4, JSUList_NS_dtor_X5_@l +/* 802D3294 002D01D4 3C A0 80 43 */ lis r5, lbl_80434300@ha +/* 802D3298 002D01D8 38 A5 43 00 */ addi r5, r5, lbl_80434300@l +/* 802D329C 002D01DC 48 08 E9 89 */ bl func_80361C24 +/* 802D32A0 002D01E0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D32A4 002D01E4 7C 08 03 A6 */ mtlr r0 +/* 802D32A8 002D01E8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D32AC 002D01EC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramHeap/asm/func_802D32B0.s b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D32B0.s new file mode 100644 index 0000000000..5fb96ef721 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramHeap/asm/func_802D32B0.s @@ -0,0 +1,24 @@ +/* __dt__23JSUList<12JKRAramBlock>Fv JSUList<12JKRAramBlock>::__dt(void) */ +/* JSUList_NS_dtor_X5_ */ +/* 802D32B0 002D01F0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D32B4 002D01F4 7C 08 02 A6 */ mflr r0 +/* 802D32B8 002D01F8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D32BC 002D01FC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D32C0 002D0200 93 C1 00 08 */ stw r30, 8(r1) +/* 802D32C4 002D0204 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D32C8 002D0208 7C 9F 23 78 */ mr r31, r4 +/* 802D32CC 002D020C 41 82 00 1C */ beq lbl_802D32E8 +/* 802D32D0 002D0210 38 80 00 00 */ li r4, 0 +/* 802D32D4 002D0214 48 00 8B D9 */ bl __dt__10JSUPtrListFv +/* 802D32D8 002D0218 7F E0 07 35 */ extsh. r0, r31 +/* 802D32DC 002D021C 40 81 00 0C */ ble lbl_802D32E8 +/* 802D32E0 002D0220 7F C3 F3 78 */ mr r3, r30 +/* 802D32E4 002D0224 4B FF BA 59 */ bl __dl__FPv +lbl_802D32E8: +/* 802D32E8 002D0228 7F C3 F3 78 */ mr r3, r30 +/* 802D32EC 002D022C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D32F0 002D0230 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D32F4 002D0234 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D32F8 002D0238 7C 08 03 A6 */ mtlr r0 +/* 802D32FC 002D023C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3300 002D0240 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/JKRAramPiece.h b/include/JSystem/JKernel/JKRAramPiece/JKRAramPiece.h new file mode 100644 index 0000000000..c4ce359db0 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/JKRAramPiece.h @@ -0,0 +1,25 @@ +#ifndef __JKRARAMPIECE_H__ +#define __JKRARAMPIECE_H__ + +#include "dolphin/types.h" + +class JKRAMCommand { + public: + JKRAMCommand(void); + ~JKRAMCommand(); +}; + +class JKRAramBlock; +class JKRAramPiece { + public: + static void prepareCommand(int, u32, u32, u32, JKRAramBlock*, void (*)(u32)); + static void sendCommand(JKRAMCommand*); + + static void orderAsync(int, u32, u32, u32, JKRAramBlock*, void (*)(u32)); + static void sync(JKRAMCommand*, int); + static void orderSync(int, u32, u32, u32, JKRAramBlock*); + static void startDMA(JKRAMCommand*); + static void doneDMA(u32); +}; + +#endif diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3574.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3574.s new file mode 100644 index 0000000000..5bfdf821a4 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3574.s @@ -0,0 +1,35 @@ +/* prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v JKRAramPiece::prepareCommand(int, unsigned long, unsigned long, unsigned long, JKRAramBlock *, void (*)(unsigned long)) */ +/* JKRAramPiece_NS_prepareCommand */ +/* 802D3574 002D04B4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D3578 002D04B8 7C 08 02 A6 */ mflr r0 +/* 802D357C 002D04BC 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D3580 002D04C0 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3584 002D04C4 48 08 EC 4D */ bl _savegpr_26 +/* 802D3588 002D04C8 7C 7A 1B 78 */ mr r26, r3 +/* 802D358C 002D04CC 7C 9B 23 78 */ mr r27, r4 +/* 802D3590 002D04D0 7C BC 2B 78 */ mr r28, r5 +/* 802D3594 002D04D4 7C DD 33 78 */ mr r29, r6 +/* 802D3598 002D04D8 7C FE 3B 78 */ mr r30, r7 +/* 802D359C 002D04DC 7D 1F 43 78 */ mr r31, r8 +/* 802D35A0 002D04E0 38 60 00 98 */ li r3, 0x98 +/* 802D35A4 002D04E4 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D35A8 002D04E8 38 A0 FF FC */ li r5, -4 +/* 802D35AC 002D04EC 4B FF B6 ED */ bl __nw__FUlP7JKRHeapi +/* 802D35B0 002D04F0 7C 64 1B 79 */ or. r4, r3, r3 +/* 802D35B4 002D04F4 41 82 00 0C */ beq lbl_802D35C0 +/* 802D35B8 002D04F8 48 00 04 35 */ bl __ct__12JKRAMCommandFv +/* 802D35BC 002D04FC 7C 64 1B 78 */ mr r4, r3 +lbl_802D35C0: +/* 802D35C0 002D0500 93 44 00 40 */ stw r26, 0x40(r4) +/* 802D35C4 002D0504 93 64 00 48 */ stw r27, 0x48(r4) +/* 802D35C8 002D0508 93 84 00 4C */ stw r28, 0x4c(r4) +/* 802D35CC 002D050C 93 C4 00 50 */ stw r30, 0x50(r4) +/* 802D35D0 002D0510 93 A4 00 44 */ stw r29, 0x44(r4) +/* 802D35D4 002D0514 93 E4 00 58 */ stw r31, 0x58(r4) +/* 802D35D8 002D0518 7C 83 23 78 */ mr r3, r4 +/* 802D35DC 002D051C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D35E0 002D0520 48 08 EC 3D */ bl _restgpr_26 +/* 802D35E4 002D0524 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D35E8 002D0528 7C 08 03 A6 */ mtlr r0 +/* 802D35EC 002D052C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D35F0 002D0530 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D35F4.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D35F4.s new file mode 100644 index 0000000000..1bdb097e1c --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D35F4.s @@ -0,0 +1,10 @@ +/* sendCommand__12JKRAramPieceFP12JKRAMCommand JKRAramPiece::sendCommand(JKRAMCommand *) */ +/* JKRAramPiece_NS_sendCommand */ +/* 802D35F4 002D0534 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D35F8 002D0538 7C 08 02 A6 */ mflr r0 +/* 802D35FC 002D053C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3600 002D0540 48 00 02 CD */ bl startDMA__12JKRAramPieceFP12JKRAMCommand +/* 802D3604 002D0544 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3608 002D0548 7C 08 03 A6 */ mtlr r0 +/* 802D360C 002D054C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3610 002D0550 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s new file mode 100644 index 0000000000..aa79dd2ac0 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s @@ -0,0 +1,92 @@ +/* orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v JKRAramPiece::orderAsync(int, unsigned long, unsigned long, unsigned long, JKRAramBlock *, void (*)(unsigned long)) */ +/* JKRAramPiece_NS_orderAsync */ +/* 802D3614 002D0554 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D3618 002D0558 7C 08 02 A6 */ mflr r0 +/* 802D361C 002D055C 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D3620 002D0560 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D3624 002D0564 48 08 EB A9 */ bl func_803621CC +/* 802D3628 002D0568 7C 7A 1B 78 */ mr r26, r3 +/* 802D362C 002D056C 7C 9B 23 78 */ mr r27, r4 +/* 802D3630 002D0570 7C BC 2B 78 */ mr r28, r5 +/* 802D3634 002D0574 7C DD 33 78 */ mr r29, r6 +/* 802D3638 002D0578 7C FE 3B 78 */ mr r30, r7 +/* 802D363C 002D057C 7D 1F 43 78 */ mr r31, r8 +/* 802D3640 002D0580 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D3644 002D0584 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D3648 002D0588 48 06 B9 F9 */ bl OSLockMutex +/* 802D364C 002D058C 57 60 06 FF */ clrlwi. r0, r27, 0x1b +/* 802D3650 002D0590 40 82 00 0C */ bne lbl_802D365C +/* 802D3654 002D0594 57 80 06 FF */ clrlwi. r0, r28, 0x1b +/* 802D3658 002D0598 41 82 00 80 */ beq lbl_802D36D8 +lbl_802D365C: +/* 802D365C 002D059C 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha +/* 802D3660 002D05A0 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l +/* 802D3664 002D05A4 7F 44 D3 78 */ mr r4, r26 +/* 802D3668 002D05A8 4C C6 31 82 */ crclr 6 +/* 802D366C 002D05AC 4B D3 34 51 */ bl OSReport +/* 802D3670 002D05B0 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha +/* 802D3674 002D05B4 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l +/* 802D3678 002D05B8 38 63 00 10 */ addi r3, r3, 0x10 +/* 802D367C 002D05BC 7F 64 DB 78 */ mr r4, r27 +/* 802D3680 002D05C0 4C C6 31 82 */ crclr 6 +/* 802D3684 002D05C4 4B D3 34 39 */ bl OSReport +/* 802D3688 002D05C8 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha +/* 802D368C 002D05CC 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l +/* 802D3690 002D05D0 38 63 00 1D */ addi r3, r3, 0x1d +/* 802D3694 002D05D4 7F 84 E3 78 */ mr r4, r28 +/* 802D3698 002D05D8 4C C6 31 82 */ crclr 6 +/* 802D369C 002D05DC 4B D3 34 21 */ bl OSReport +/* 802D36A0 002D05E0 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha +/* 802D36A4 002D05E4 38 63 D0 B8 */ addi r3, r3, lbl_8039D0B8@l +/* 802D36A8 002D05E8 38 63 00 2F */ addi r3, r3, 0x2f +/* 802D36AC 002D05EC 7F A4 EB 78 */ mr r4, r29 +/* 802D36B0 002D05F0 4C C6 31 82 */ crclr 6 +/* 802D36B4 002D05F4 4B D3 34 09 */ bl OSReport +/* 802D36B8 002D05F8 3C 60 80 3A */ lis r3, lbl_8039D0B8@ha +/* 802D36BC 002D05FC 38 C3 D0 B8 */ addi r6, r3, lbl_8039D0B8@l +/* 802D36C0 002D0600 38 66 00 3C */ addi r3, r6, 0x3c +/* 802D36C4 002D0604 38 80 00 6C */ li r4, 0x6c +/* 802D36C8 002D0608 38 A6 00 4D */ addi r5, r6, 0x4d +/* 802D36CC 002D060C 38 C6 00 50 */ addi r6, r6, 0x50 +/* 802D36D0 002D0610 4C C6 31 82 */ crclr 6 +/* 802D36D4 002D0614 48 00 EB 29 */ bl JUTException_NS_panic_f +lbl_802D36D8: +/* 802D36D8 002D0618 38 60 00 08 */ li r3, 8 +/* 802D36DC 002D061C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D36E0 002D0620 38 A0 FF FC */ li r5, -4 +/* 802D36E4 002D0624 4B FF B5 B5 */ bl __nw__FUlP7JKRHeapi +/* 802D36E8 002D0628 7C 79 1B 78 */ mr r25, r3 +/* 802D36EC 002D062C 7F 43 D3 78 */ mr r3, r26 +/* 802D36F0 002D0630 7F 64 DB 78 */ mr r4, r27 +/* 802D36F4 002D0634 7F 85 E3 78 */ mr r5, r28 +/* 802D36F8 002D0638 7F A6 EB 78 */ mr r6, r29 +/* 802D36FC 002D063C 7F C7 F3 78 */ mr r7, r30 +/* 802D3700 002D0640 7F E8 FB 78 */ mr r8, r31 +/* 802D3704 002D0644 4B FF FE 71 */ bl prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v +/* 802D3708 002D0648 7C 7A 1B 78 */ mr r26, r3 +/* 802D370C 002D064C 38 00 00 01 */ li r0, 1 +/* 802D3710 002D0650 90 19 00 00 */ stw r0, 0(r25) +/* 802D3714 002D0654 93 59 00 04 */ stw r26, 4(r25) +/* 802D3718 002D0658 3C 60 80 3D */ lis r3, lbl_803CC138@ha +/* 802D371C 002D065C 38 63 C1 38 */ addi r3, r3, lbl_803CC138@l +/* 802D3720 002D0660 7F 24 CB 78 */ mr r4, r25 +/* 802D3724 002D0664 38 A0 00 01 */ li r5, 1 +/* 802D3728 002D0668 48 06 B2 CD */ bl OSSendMessage +/* 802D372C 002D066C 80 1A 00 58 */ lwz r0, 0x58(r26) +/* 802D3730 002D0670 28 00 00 00 */ cmplwi r0, 0 +/* 802D3734 002D0674 41 82 00 14 */ beq lbl_802D3748 +/* 802D3738 002D0678 3C 60 80 43 */ lis r3, lbl_80434324@ha +/* 802D373C 002D067C 38 63 43 24 */ addi r3, r3, lbl_80434324@l +/* 802D3740 002D0680 38 9A 00 20 */ addi r4, r26, 0x20 +/* 802D3744 002D0684 48 00 88 09 */ bl append__10JSUPtrListFP10JSUPtrLink +lbl_802D3748: +/* 802D3748 002D0688 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D374C 002D068C 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D3750 002D0690 48 06 B9 CD */ bl OSUnlockMutex +/* 802D3754 002D0694 7F 43 D3 78 */ mr r3, r26 +/* 802D3758 002D0698 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D375C 002D069C 48 08 EA BD */ bl func_80362218 +/* 802D3760 002D06A0 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D3764 002D06A4 7C 08 03 A6 */ mtlr r0 +/* 802D3768 002D06A8 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D376C 002D06AC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3770.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3770.s new file mode 100644 index 0000000000..eaade8f0e9 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3770.s @@ -0,0 +1,55 @@ +/* sync__12JKRAramPieceFP12JKRAMCommandi JKRAramPiece::sync(JKRAMCommand *, int) */ +/* JKRAramPiece_NS_sync */ +/* 802D3770 002D06B0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D3774 002D06B4 7C 08 02 A6 */ mflr r0 +/* 802D3778 002D06B8 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D377C 002D06BC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802D3780 002D06C0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 802D3784 002D06C4 7C 7E 1B 78 */ mr r30, r3 +/* 802D3788 002D06C8 7C 9F 23 78 */ mr r31, r4 +/* 802D378C 002D06CC 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D3790 002D06D0 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D3794 002D06D4 48 06 B8 AD */ bl OSLockMutex +/* 802D3798 002D06D8 2C 1F 00 00 */ cmpwi r31, 0 +/* 802D379C 002D06DC 40 82 00 38 */ bne lbl_802D37D4 +/* 802D37A0 002D06E0 38 7E 00 68 */ addi r3, r30, 0x68 +/* 802D37A4 002D06E4 38 81 00 08 */ addi r4, r1, 8 +/* 802D37A8 002D06E8 38 A0 00 01 */ li r5, 1 +/* 802D37AC 002D06EC 48 06 B3 11 */ bl OSReceiveMessage +/* 802D37B0 002D06F0 3C 60 80 43 */ lis r3, lbl_80434324@ha +/* 802D37B4 002D06F4 38 63 43 24 */ addi r3, r3, lbl_80434324@l +/* 802D37B8 002D06F8 38 9E 00 20 */ addi r4, r30, 0x20 +/* 802D37BC 002D06FC 48 00 89 A1 */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802D37C0 002D0700 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D37C4 002D0704 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D37C8 002D0708 48 06 B9 55 */ bl OSUnlockMutex +/* 802D37CC 002D070C 38 60 00 01 */ li r3, 1 +/* 802D37D0 002D0710 48 00 00 50 */ b lbl_802D3820 +lbl_802D37D4: +/* 802D37D4 002D0714 38 7E 00 68 */ addi r3, r30, 0x68 +/* 802D37D8 002D0718 38 81 00 08 */ addi r4, r1, 8 +/* 802D37DC 002D071C 38 A0 00 00 */ li r5, 0 +/* 802D37E0 002D0720 48 06 B2 DD */ bl OSReceiveMessage +/* 802D37E4 002D0724 2C 03 00 00 */ cmpwi r3, 0 +/* 802D37E8 002D0728 40 82 00 18 */ bne lbl_802D3800 +/* 802D37EC 002D072C 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D37F0 002D0730 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D37F4 002D0734 48 06 B9 29 */ bl OSUnlockMutex +/* 802D37F8 002D0738 38 60 00 00 */ li r3, 0 +/* 802D37FC 002D073C 48 00 00 24 */ b lbl_802D3820 +lbl_802D3800: +/* 802D3800 002D0740 3C 60 80 43 */ lis r3, lbl_80434324@ha +/* 802D3804 002D0744 38 63 43 24 */ addi r3, r3, lbl_80434324@l +/* 802D3808 002D0748 38 9E 00 20 */ addi r4, r30, 0x20 +/* 802D380C 002D074C 48 00 89 51 */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802D3810 002D0750 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D3814 002D0754 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D3818 002D0758 48 06 B9 05 */ bl OSUnlockMutex +/* 802D381C 002D075C 38 60 00 01 */ li r3, 1 +lbl_802D3820: +/* 802D3820 002D0760 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802D3824 002D0764 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 802D3828 002D0768 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D382C 002D076C 7C 08 03 A6 */ mtlr r0 +/* 802D3830 002D0770 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D3834 002D0774 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3838.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3838.s new file mode 100644 index 0000000000..d14ad0acc3 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3838.s @@ -0,0 +1,39 @@ +/* orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock JKRAramPiece::orderSync(int, unsigned long, unsigned long, unsigned long, JKRAramBlock *) */ +/* JKRAramPiece_NS_orderSync */ +/* 802D3838 002D0778 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D383C 002D077C 7C 08 02 A6 */ mflr r0 +/* 802D3840 002D0780 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D3844 002D0784 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3848 002D0788 48 08 E9 8D */ bl _savegpr_27 +/* 802D384C 002D078C 7C 7B 1B 78 */ mr r27, r3 +/* 802D3850 002D0790 7C 9C 23 78 */ mr r28, r4 +/* 802D3854 002D0794 7C BD 2B 78 */ mr r29, r5 +/* 802D3858 002D0798 7C DF 33 78 */ mr r31, r6 +/* 802D385C 002D079C 7C FE 3B 78 */ mr r30, r7 +/* 802D3860 002D07A0 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D3864 002D07A4 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D3868 002D07A8 48 06 B7 D9 */ bl OSLockMutex +/* 802D386C 002D07AC 7F 63 DB 78 */ mr r3, r27 +/* 802D3870 002D07B0 7F 84 E3 78 */ mr r4, r28 +/* 802D3874 002D07B4 7F A5 EB 78 */ mr r5, r29 +/* 802D3878 002D07B8 7F E6 FB 78 */ mr r6, r31 +/* 802D387C 002D07BC 7F C7 F3 78 */ mr r7, r30 +/* 802D3880 002D07C0 39 00 00 00 */ li r8, 0 +/* 802D3884 002D07C4 4B FF FD 91 */ bl orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v +/* 802D3888 002D07C8 7C 7F 1B 78 */ mr r31, r3 +/* 802D388C 002D07CC 38 80 00 00 */ li r4, 0 +/* 802D3890 002D07D0 4B FF FE E1 */ bl sync__12JKRAramPieceFP12JKRAMCommandi +/* 802D3894 002D07D4 7C 7E 1B 78 */ mr r30, r3 +/* 802D3898 002D07D8 7F E3 FB 78 */ mr r3, r31 +/* 802D389C 002D07DC 38 80 00 01 */ li r4, 1 +/* 802D38A0 002D07E0 48 00 01 BD */ bl __dt__12JKRAMCommandFv +/* 802D38A4 002D07E4 3C 60 80 43 */ lis r3, lbl_80434330@ha +/* 802D38A8 002D07E8 38 63 43 30 */ addi r3, r3, lbl_80434330@l +/* 802D38AC 002D07EC 48 06 B8 71 */ bl OSUnlockMutex +/* 802D38B0 002D07F0 7F C3 F3 78 */ mr r3, r30 +/* 802D38B4 002D07F4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D38B8 002D07F8 48 08 E9 69 */ bl _restgpr_27 +/* 802D38BC 002D07FC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D38C0 002D0800 7C 08 03 A6 */ mtlr r0 +/* 802D38C4 002D0804 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D38C8 002D0808 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D38CC.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D38CC.s new file mode 100644 index 0000000000..ca82675ae9 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D38CC.s @@ -0,0 +1,34 @@ +/* startDMA__12JKRAramPieceFP12JKRAMCommand JKRAramPiece::startDMA(JKRAMCommand *) */ +/* JKRAramPiece_NS_startDMA */ +/* 802D38CC 002D080C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D38D0 002D0810 7C 08 02 A6 */ mflr r0 +/* 802D38D4 002D0814 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D38D8 002D0818 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D38DC 002D081C 7C 7F 1B 78 */ mr r31, r3 +/* 802D38E0 002D0820 80 03 00 40 */ lwz r0, 0x40(r3) +/* 802D38E4 002D0824 2C 00 00 01 */ cmpwi r0, 1 +/* 802D38E8 002D0828 40 82 00 14 */ bne lbl_802D38FC +/* 802D38EC 002D082C 80 7F 00 4C */ lwz r3, 0x4c(r31) +/* 802D38F0 002D0830 80 9F 00 44 */ lwz r4, 0x44(r31) +/* 802D38F4 002D0834 48 06 7C 8D */ bl DCInvalidateRange +/* 802D38F8 002D0838 48 00 00 10 */ b lbl_802D3908 +lbl_802D38FC: +/* 802D38FC 002D083C 80 7F 00 48 */ lwz r3, 0x48(r31) +/* 802D3900 002D0840 80 9F 00 44 */ lwz r4, 0x44(r31) +/* 802D3904 002D0844 48 06 7C D9 */ bl DCStoreRange +lbl_802D3908: +/* 802D3908 002D0848 7F E3 FB 78 */ mr r3, r31 +/* 802D390C 002D084C 38 80 00 00 */ li r4, 0 +/* 802D3910 002D0850 80 BF 00 40 */ lwz r5, 0x40(r31) +/* 802D3914 002D0854 38 C0 00 00 */ li r6, 0 +/* 802D3918 002D0858 80 FF 00 48 */ lwz r7, 0x48(r31) +/* 802D391C 002D085C 81 1F 00 4C */ lwz r8, 0x4c(r31) +/* 802D3920 002D0860 81 3F 00 44 */ lwz r9, 0x44(r31) +/* 802D3924 002D0864 3D 40 80 2D */ lis r10, doneDMA__12JKRAramPieceFUl@ha +/* 802D3928 002D0868 39 4A 39 44 */ addi r10, r10, doneDMA__12JKRAramPieceFUl@l +/* 802D392C 002D086C 48 07 E9 A9 */ bl ARQPostRequest +/* 802D3930 002D0870 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3934 002D0874 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3938 002D0878 7C 08 03 A6 */ mtlr r0 +/* 802D393C 002D087C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3940 002D0880 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3944.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3944.s new file mode 100644 index 0000000000..5c046be9a1 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3944.s @@ -0,0 +1,49 @@ +/* doneDMA__12JKRAramPieceFUl JKRAramPiece::doneDMA(unsigned long) */ +/* JKRAramPiece_NS_doneDMA */ +/* 802D3944 002D0884 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3948 002D0888 7C 08 02 A6 */ mflr r0 +/* 802D394C 002D088C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3950 002D0890 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3954 002D0894 7C 7F 1B 78 */ mr r31, r3 +/* 802D3958 002D0898 80 03 00 40 */ lwz r0, 0x40(r3) +/* 802D395C 002D089C 2C 00 00 01 */ cmpwi r0, 1 +/* 802D3960 002D08A0 40 82 00 10 */ bne lbl_802D3970 +/* 802D3964 002D08A4 80 7F 00 4C */ lwz r3, 0x4c(r31) +/* 802D3968 002D08A8 80 9F 00 44 */ lwz r4, 0x44(r31) +/* 802D396C 002D08AC 48 06 7C 15 */ bl DCInvalidateRange +lbl_802D3970: +/* 802D3970 002D08B0 80 1F 00 60 */ lwz r0, 0x60(r31) +/* 802D3974 002D08B4 2C 00 00 00 */ cmpwi r0, 0 +/* 802D3978 002D08B8 41 82 00 18 */ beq lbl_802D3990 +/* 802D397C 002D08BC 2C 00 00 02 */ cmpwi r0, 2 +/* 802D3980 002D08C0 40 82 00 58 */ bne lbl_802D39D8 +/* 802D3984 002D08C4 80 7F 00 64 */ lwz r3, 0x64(r31) +/* 802D3988 002D08C8 48 00 7F 49 */ bl sendCommand__9JKRDecompFP16JKRDecompCommand +/* 802D398C 002D08CC 48 00 00 4C */ b lbl_802D39D8 +lbl_802D3990: +/* 802D3990 002D08D0 81 9F 00 58 */ lwz r12, 0x58(r31) +/* 802D3994 002D08D4 28 0C 00 00 */ cmplwi r12, 0 +/* 802D3998 002D08D8 41 82 00 14 */ beq lbl_802D39AC +/* 802D399C 002D08DC 7F E3 FB 78 */ mr r3, r31 +/* 802D39A0 002D08E0 7D 89 03 A6 */ mtctr r12 +/* 802D39A4 002D08E4 4E 80 04 21 */ bctrl +/* 802D39A8 002D08E8 48 00 00 30 */ b lbl_802D39D8 +lbl_802D39AC: +/* 802D39AC 002D08EC 80 7F 00 5C */ lwz r3, 0x5c(r31) +/* 802D39B0 002D08F0 28 03 00 00 */ cmplwi r3, 0 +/* 802D39B4 002D08F4 41 82 00 14 */ beq lbl_802D39C8 +/* 802D39B8 002D08F8 7F E4 FB 78 */ mr r4, r31 +/* 802D39BC 002D08FC 38 A0 00 00 */ li r5, 0 +/* 802D39C0 002D0900 48 06 B0 35 */ bl OSSendMessage +/* 802D39C4 002D0904 48 00 00 14 */ b lbl_802D39D8 +lbl_802D39C8: +/* 802D39C8 002D0908 38 7F 00 68 */ addi r3, r31, 0x68 +/* 802D39CC 002D090C 7F E4 FB 78 */ mr r4, r31 +/* 802D39D0 002D0910 38 A0 00 00 */ li r5, 0 +/* 802D39D4 002D0914 48 06 B0 21 */ bl OSSendMessage +lbl_802D39D8: +/* 802D39D8 002D0918 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D39DC 002D091C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D39E0 002D0920 7C 08 03 A6 */ mtlr r0 +/* 802D39E4 002D0924 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D39E8 002D0928 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D39EC.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D39EC.s new file mode 100644 index 0000000000..15f0990bab --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D39EC.s @@ -0,0 +1,30 @@ +/* __ct__12JKRAMCommandFv __ct__12JKRAMCommandFv::__ct(void) */ +/* JKRAMCommand */ +/* 802D39EC 002D092C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D39F0 002D0930 7C 08 02 A6 */ mflr r0 +/* 802D39F4 002D0934 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D39F8 002D0938 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D39FC 002D093C 7C 7F 1B 78 */ mr r31, r3 +/* 802D3A00 002D0940 7F E4 FB 78 */ mr r4, r31 +/* 802D3A04 002D0944 38 64 00 20 */ addi r3, r4, 0x20 +/* 802D3A08 002D0948 48 00 83 F5 */ bl __ct__10JSUPtrLinkFPv +/* 802D3A0C 002D094C 38 7F 00 30 */ addi r3, r31, 0x30 +/* 802D3A10 002D0950 7F E4 FB 78 */ mr r4, r31 +/* 802D3A14 002D0954 48 00 83 E9 */ bl __ct__10JSUPtrLinkFPv +/* 802D3A18 002D0958 38 7F 00 68 */ addi r3, r31, 0x68 +/* 802D3A1C 002D095C 38 9F 00 88 */ addi r4, r31, 0x88 +/* 802D3A20 002D0960 38 A0 00 01 */ li r5, 1 +/* 802D3A24 002D0964 48 06 AF 71 */ bl OSInitMessageQueue +/* 802D3A28 002D0968 38 00 00 00 */ li r0, 0 +/* 802D3A2C 002D096C 90 1F 00 58 */ stw r0, 0x58(r31) +/* 802D3A30 002D0970 90 1F 00 5C */ stw r0, 0x5c(r31) +/* 802D3A34 002D0974 90 1F 00 60 */ stw r0, 0x60(r31) +/* 802D3A38 002D0978 90 1F 00 8C */ stw r0, 0x8c(r31) +/* 802D3A3C 002D097C 90 1F 00 90 */ stw r0, 0x90(r31) +/* 802D3A40 002D0980 90 1F 00 94 */ stw r0, 0x94(r31) +/* 802D3A44 002D0984 7F E3 FB 78 */ mr r3, r31 +/* 802D3A48 002D0988 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3A4C 002D098C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3A50 002D0990 7C 08 03 A6 */ mtlr r0 +/* 802D3A54 002D0994 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3A58 002D0998 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3A5C.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3A5C.s new file mode 100644 index 0000000000..2e517ac3b9 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3A5C.s @@ -0,0 +1,50 @@ +/* __dt__12JKRAMCommandFv __ct__12JKRAMCommandFv::__dt(void) */ +/* JKRAMCommand_NS_dtor */ +/* 802D3A5C 002D099C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3A60 002D09A0 7C 08 02 A6 */ mflr r0 +/* 802D3A64 002D09A4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3A68 002D09A8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3A6C 002D09AC 93 C1 00 08 */ stw r30, 8(r1) +/* 802D3A70 002D09B0 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D3A74 002D09B4 7C 9F 23 78 */ mr r31, r4 +/* 802D3A78 002D09B8 41 82 00 70 */ beq lbl_802D3AE8 +/* 802D3A7C 002D09BC 80 7E 00 8C */ lwz r3, 0x8c(r30) +/* 802D3A80 002D09C0 28 03 00 00 */ cmplwi r3, 0 +/* 802D3A84 002D09C4 41 82 00 08 */ beq lbl_802D3A8C +/* 802D3A88 002D09C8 4B FF B2 B5 */ bl __dl__FPv +lbl_802D3A8C: +/* 802D3A8C 002D09CC 80 7E 00 90 */ lwz r3, 0x90(r30) +/* 802D3A90 002D09D0 28 03 00 00 */ cmplwi r3, 0 +/* 802D3A94 002D09D4 41 82 00 08 */ beq lbl_802D3A9C +/* 802D3A98 002D09D8 4B FF B2 A5 */ bl __dl__FPv +lbl_802D3A9C: +/* 802D3A9C 002D09DC 80 7E 00 94 */ lwz r3, 0x94(r30) +/* 802D3AA0 002D09E0 28 03 00 00 */ cmplwi r3, 0 +/* 802D3AA4 002D09E4 41 82 00 0C */ beq lbl_802D3AB0 +/* 802D3AA8 002D09E8 38 80 00 00 */ li r4, 0 +/* 802D3AAC 002D09EC 4B FF AA 55 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D3AB0: +/* 802D3AB0 002D09F0 34 1E 00 30 */ addic. r0, r30, 0x30 +/* 802D3AB4 002D09F4 41 82 00 10 */ beq lbl_802D3AC4 +/* 802D3AB8 002D09F8 38 7E 00 30 */ addi r3, r30, 0x30 +/* 802D3ABC 002D09FC 38 80 00 00 */ li r4, 0 +/* 802D3AC0 002D0A00 48 00 83 55 */ bl __dt__10JSUPtrLinkFv +lbl_802D3AC4: +/* 802D3AC4 002D0A04 34 1E 00 20 */ addic. r0, r30, 0x20 +/* 802D3AC8 002D0A08 41 82 00 10 */ beq lbl_802D3AD8 +/* 802D3ACC 002D0A0C 38 7E 00 20 */ addi r3, r30, 0x20 +/* 802D3AD0 002D0A10 38 80 00 00 */ li r4, 0 +/* 802D3AD4 002D0A14 48 00 83 41 */ bl __dt__10JSUPtrLinkFv +lbl_802D3AD8: +/* 802D3AD8 002D0A18 7F E0 07 35 */ extsh. r0, r31 +/* 802D3ADC 002D0A1C 40 81 00 0C */ ble lbl_802D3AE8 +/* 802D3AE0 002D0A20 7F C3 F3 78 */ mr r3, r30 +/* 802D3AE4 002D0A24 4B FF B2 59 */ bl __dl__FPv +lbl_802D3AE8: +/* 802D3AE8 002D0A28 7F C3 F3 78 */ mr r3, r30 +/* 802D3AEC 002D0A2C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3AF0 002D0A30 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D3AF4 002D0A34 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3AF8 002D0A38 7C 08 03 A6 */ mtlr r0 +/* 802D3AFC 002D0A3C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3B00 002D0A40 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3B04.s b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3B04.s new file mode 100644 index 0000000000..099ad7ebce --- /dev/null +++ b/include/JSystem/JKernel/JKRAramPiece/asm/func_802D3B04.s @@ -0,0 +1,19 @@ +/* __sinit_JKRAramPiece_cpp __sinit_JKRAramPiece_cpp */ +/* missing reference */ +/* 802D3B04 002D0A44 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3B08 002D0A48 7C 08 02 A6 */ mflr r0 +/* 802D3B0C 002D0A4C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3B10 002D0A50 3C 60 80 43 */ lis r3, lbl_80434324@ha +/* 802D3B14 002D0A54 38 63 43 24 */ addi r3, r3, lbl_80434324@l +/* 802D3B18 002D0A58 48 00 83 FD */ bl initiate__10JSUPtrListFv +/* 802D3B1C 002D0A5C 3C 60 80 43 */ lis r3, lbl_80434324@ha +/* 802D3B20 002D0A60 38 63 43 24 */ addi r3, r3, lbl_80434324@l +/* 802D3B24 002D0A64 3C 80 80 2D */ lis r4, JSUList_NS_dtor_X4_@ha +/* 802D3B28 002D0A68 38 84 2D F0 */ addi r4, r4, JSUList_NS_dtor_X4_@l +/* 802D3B2C 002D0A6C 3C A0 80 43 */ lis r5, lbl_80434318@ha +/* 802D3B30 002D0A70 38 A5 43 18 */ addi r5, r5, lbl_80434318@l +/* 802D3B34 002D0A74 48 08 E0 F1 */ bl func_80361C24 +/* 802D3B38 002D0A78 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3B3C 002D0A7C 7C 08 03 A6 */ mtlr r0 +/* 802D3B40 002D0A80 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3B44 002D0A84 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/JKRAramStream.h b/include/JSystem/JKernel/JKRAramStream/JKRAramStream.h new file mode 100644 index 0000000000..4a96ab7b1e --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/JKRAramStream.h @@ -0,0 +1,50 @@ +#ifndef __JKRARAMSTREAM_H__ +#define __JKRARAMSTREAM_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRThread/JKRThread.h" +#include "JSystem/JSupport/JSUFileInputStream/JSUFileInputStream.h" +#include "JSystem/JSupport/JSURandomInputStream/JSURandomInputStream.h" + +class JKRAramStreamCommand { + public: + JKRAramStreamCommand(); + + public: + u32 field_0x00; + u32 field_0x04; + u32 field_0x08; + u32 field_0x0c; + JSUFileInputStream* field_0x10; + u32 field_0x14; + u32* field_0x18; + u32 field_0x1c; + u32 field_0x20; + u32 field_0x24; + bool field_0x28; + u8 padding_0x29[3]; + u32 field_0x2c; + OSMessageQueue mQueue; + OSMessage mMessage; + u32 field_0x54; + u32 field_0x58; +}; + +class JKRAramStream : public JKRThread { + private: + JKRAramStream(long); + virtual ~JKRAramStream(); + + /* vt[03] */ void* run(void); /* override */ + + public: + static void create(long); + + static void readFromAram(void); + static void writeToAram(JKRAramStreamCommand*); + static void write_StreamToAram_Async(JSUFileInputStream*, u32, u32, u32, u32*); + static void sync(JKRAramStreamCommand*, int); + static void setTransBuffer(u8*, u32, JKRHeap*); +}; + +#endif diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3B48.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3B48.s new file mode 100644 index 0000000000..8fc2486b53 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3B48.s @@ -0,0 +1,32 @@ +/* create__13JKRAramStreamFl __ct__13JKRAramStreamFl::create(long) */ +/* JKRAramStream_NS_create */ +/* 802D3B48 002D0A88 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3B4C 002D0A8C 7C 08 02 A6 */ mflr r0 +/* 802D3B50 002D0A90 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3B54 002D0A94 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3B58 002D0A98 7C 7F 1B 78 */ mr r31, r3 +/* 802D3B5C 002D0A9C 80 0D 8E 88 */ lwz r0, lbl_80451408-_SDA_BASE_(r13) +/* 802D3B60 002D0AA0 28 00 00 00 */ cmplwi r0, 0 +/* 802D3B64 002D0AA4 40 82 00 3C */ bne lbl_802D3BA0 +/* 802D3B68 002D0AA8 38 60 00 7C */ li r3, 0x7c +/* 802D3B6C 002D0AAC 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D3B70 002D0AB0 38 A0 00 00 */ li r5, 0 +/* 802D3B74 002D0AB4 4B FF B1 25 */ bl __nw__FUlP7JKRHeapi +/* 802D3B78 002D0AB8 7C 60 1B 79 */ or. r0, r3, r3 +/* 802D3B7C 002D0ABC 41 82 00 10 */ beq lbl_802D3B8C +/* 802D3B80 002D0AC0 7F E4 FB 78 */ mr r4, r31 +/* 802D3B84 002D0AC4 48 00 00 35 */ bl __ct__13JKRAramStreamFl +/* 802D3B88 002D0AC8 7C 60 1B 78 */ mr r0, r3 +lbl_802D3B8C: +/* 802D3B8C 002D0ACC 90 0D 8E 88 */ stw r0, lbl_80451408-_SDA_BASE_(r13) +/* 802D3B90 002D0AD0 38 60 00 00 */ li r3, 0 +/* 802D3B94 002D0AD4 38 80 00 00 */ li r4, 0 +/* 802D3B98 002D0AD8 38 A0 00 00 */ li r5, 0 +/* 802D3B9C 002D0ADC 48 00 04 99 */ bl setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap +lbl_802D3BA0: +/* 802D3BA0 002D0AE0 80 6D 8E 88 */ lwz r3, lbl_80451408-_SDA_BASE_(r13) +/* 802D3BA4 002D0AE4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3BA8 002D0AE8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3BAC 002D0AEC 7C 08 03 A6 */ mtlr r0 +/* 802D3BB0 002D0AF0 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3BB4 002D0AF4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3BB8.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3BB8.s new file mode 100644 index 0000000000..b68ac9ab9f --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3BB8.s @@ -0,0 +1,22 @@ +/* __ct__13JKRAramStreamFl __ct__13JKRAramStreamFl::__ct(long) */ +/* JKRAramStream */ +/* 802D3BB8 002D0AF8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3BBC 002D0AFC 7C 08 02 A6 */ mflr r0 +/* 802D3BC0 002D0B00 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3BC4 002D0B04 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3BC8 002D0B08 7C 7F 1B 78 */ mr r31, r3 +/* 802D3BCC 002D0B0C 7C 86 23 78 */ mr r6, r4 +/* 802D3BD0 002D0B10 38 80 0C 00 */ li r4, 0xc00 +/* 802D3BD4 002D0B14 38 A0 00 10 */ li r5, 0x10 +/* 802D3BD8 002D0B18 4B FF D9 91 */ bl __ct__9JKRThreadFUlii +/* 802D3BDC 002D0B1C 3C 60 80 3D */ lis r3, lbl_803CC1B8@ha +/* 802D3BE0 002D0B20 38 03 C1 B8 */ addi r0, r3, lbl_803CC1B8@l +/* 802D3BE4 002D0B24 90 1F 00 00 */ stw r0, 0(r31) +/* 802D3BE8 002D0B28 80 7F 00 2C */ lwz r3, 0x2c(r31) +/* 802D3BEC 002D0B2C 48 06 DB C9 */ bl OSResumeThread +/* 802D3BF0 002D0B30 7F E3 FB 78 */ mr r3, r31 +/* 802D3BF4 002D0B34 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3BF8 002D0B38 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3BFC 002D0B3C 7C 08 03 A6 */ mtlr r0 +/* 802D3C00 002D0B40 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3C04 002D0B44 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3C08.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3C08.s new file mode 100644 index 0000000000..489cb191dc --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3C08.s @@ -0,0 +1,27 @@ +/* __dt__13JKRAramStreamFv __ct__13JKRAramStreamFl::__dt(void) */ +/* missing reference */ +/* 802D3C08 002D0B48 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D3C0C 002D0B4C 7C 08 02 A6 */ mflr r0 +/* 802D3C10 002D0B50 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D3C14 002D0B54 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D3C18 002D0B58 93 C1 00 08 */ stw r30, 8(r1) +/* 802D3C1C 002D0B5C 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D3C20 002D0B60 7C 9F 23 78 */ mr r31, r4 +/* 802D3C24 002D0B64 41 82 00 28 */ beq lbl_802D3C4C +/* 802D3C28 002D0B68 3C 80 80 3D */ lis r4, lbl_803CC1B8@ha +/* 802D3C2C 002D0B6C 38 04 C1 B8 */ addi r0, r4, lbl_803CC1B8@l +/* 802D3C30 002D0B70 90 1E 00 00 */ stw r0, 0(r30) +/* 802D3C34 002D0B74 38 80 00 00 */ li r4, 0 +/* 802D3C38 002D0B78 4B FF DB 21 */ bl __dt__9JKRThreadFv +/* 802D3C3C 002D0B7C 7F E0 07 35 */ extsh. r0, r31 +/* 802D3C40 002D0B80 40 81 00 0C */ ble lbl_802D3C4C +/* 802D3C44 002D0B84 7F C3 F3 78 */ mr r3, r30 +/* 802D3C48 002D0B88 4B FF B0 F5 */ bl __dl__FPv +lbl_802D3C4C: +/* 802D3C4C 002D0B8C 7F C3 F3 78 */ mr r3, r30 +/* 802D3C50 002D0B90 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D3C54 002D0B94 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D3C58 002D0B98 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D3C5C 002D0B9C 7C 08 03 A6 */ mtlr r0 +/* 802D3C60 002D0BA0 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D3C64 002D0BA4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3C68.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3C68.s new file mode 100644 index 0000000000..e25158be16 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3C68.s @@ -0,0 +1,33 @@ +/* run__13JKRAramStreamFv __ct__13JKRAramStreamFl::run(void) */ +/* missing reference */ +/* 802D3C68 002D0BA8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D3C6C 002D0BAC 7C 08 02 A6 */ mflr r0 +/* 802D3C70 002D0BB0 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D3C74 002D0BB4 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802D3C78 002D0BB8 3C 60 80 3D */ lis r3, lbl_803CC198@ha +/* 802D3C7C 002D0BBC 38 63 C1 98 */ addi r3, r3, lbl_803CC198@l +/* 802D3C80 002D0BC0 3C 80 80 3D */ lis r4, lbl_803CC188@ha +/* 802D3C84 002D0BC4 38 84 C1 88 */ addi r4, r4, lbl_803CC188@l +/* 802D3C88 002D0BC8 38 A0 00 04 */ li r5, 4 +/* 802D3C8C 002D0BCC 48 06 AD 09 */ bl OSInitMessageQueue +/* 802D3C90 002D0BD0 3C 60 80 3D */ lis r3, lbl_803CC198@ha +/* 802D3C94 002D0BD4 3B E3 C1 98 */ addi r31, r3, lbl_803CC198@l +lbl_802D3C98: +/* 802D3C98 002D0BD8 7F E3 FB 78 */ mr r3, r31 +/* 802D3C9C 002D0BDC 38 81 00 08 */ addi r4, r1, 8 +/* 802D3CA0 002D0BE0 38 A0 00 01 */ li r5, 1 +/* 802D3CA4 002D0BE4 48 06 AE 19 */ bl OSReceiveMessage +/* 802D3CA8 002D0BE8 80 61 00 08 */ lwz r3, 8(r1) +/* 802D3CAC 002D0BEC 80 03 00 00 */ lwz r0, 0(r3) +/* 802D3CB0 002D0BF0 2C 00 00 02 */ cmpwi r0, 2 +/* 802D3CB4 002D0BF4 41 82 00 1C */ beq lbl_802D3CD0 +/* 802D3CB8 002D0BF8 40 80 FF E0 */ bge lbl_802D3C98 +/* 802D3CBC 002D0BFC 2C 00 00 01 */ cmpwi r0, 1 +/* 802D3CC0 002D0C00 40 80 00 08 */ bge lbl_802D3CC8 +/* 802D3CC4 002D0C04 4B FF FF D4 */ b lbl_802D3C98 +lbl_802D3CC8: +/* 802D3CC8 002D0C08 48 00 00 11 */ bl readFromAram__13JKRAramStreamFv +/* 802D3CCC 002D0C0C 4B FF FF CC */ b lbl_802D3C98 +lbl_802D3CD0: +/* 802D3CD0 002D0C10 48 00 00 11 */ bl writeToAram__13JKRAramStreamFP20JKRAramStreamCommand +/* 802D3CD4 002D0C14 4B FF FF C4 */ b lbl_802D3C98 diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CD8.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CD8.s new file mode 100644 index 0000000000..0789140603 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CD8.s @@ -0,0 +1,4 @@ +/* readFromAram__13JKRAramStreamFv __ct__13JKRAramStreamFl::readFromAram(void) */ +/* JKRAramStream_NS_readFromAram */ +/* 802D3CD8 002D0C18 38 60 00 01 */ li r3, 1 +/* 802D3CDC 002D0C1C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s new file mode 100644 index 0000000000..c5aa5f9a6b --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s @@ -0,0 +1,141 @@ +/* writeToAram__13JKRAramStreamFP20JKRAramStreamCommand __ct__13JKRAramStreamFl::writeToAram(JKRAramStreamCommand *) */ +/* JKRAramStream_NS_writeToAram */ +/* 802D3CE0 002D0C20 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D3CE4 002D0C24 7C 08 02 A6 */ mflr r0 +/* 802D3CE8 002D0C28 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D3CEC 002D0C2C 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D3CF0 002D0C30 48 08 E4 D9 */ bl func_803621C8 +/* 802D3CF4 002D0C34 7C 78 1B 78 */ mr r24, r3 +/* 802D3CF8 002D0C38 83 C3 00 08 */ lwz r30, 8(r3) +/* 802D3CFC 002D0C3C 83 A3 00 14 */ lwz r29, 0x14(r3) +/* 802D3D00 002D0C40 3B 80 00 00 */ li r28, 0 +/* 802D3D04 002D0C44 83 63 00 04 */ lwz r27, 4(r3) +/* 802D3D08 002D0C48 83 43 00 1C */ lwz r26, 0x1c(r3) +/* 802D3D0C 002D0C4C 80 03 00 20 */ lwz r0, 0x20(r3) +/* 802D3D10 002D0C50 83 23 00 24 */ lwz r25, 0x24(r3) +/* 802D3D14 002D0C54 28 1A 00 00 */ cmplwi r26, 0 +/* 802D3D18 002D0C58 41 82 00 28 */ beq lbl_802D3D40 +/* 802D3D1C 002D0C5C 28 00 00 00 */ cmplwi r0, 0 +/* 802D3D20 002D0C60 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 802D3D24 002D0C64 3B E3 80 00 */ addi r31, r3, 0x00008000@l +/* 802D3D28 002D0C68 41 82 00 08 */ beq lbl_802D3D30 +/* 802D3D2C 002D0C6C 7C 1F 03 78 */ mr r31, r0 +lbl_802D3D30: +/* 802D3D30 002D0C70 93 F8 00 20 */ stw r31, 0x20(r24) +/* 802D3D34 002D0C74 38 00 00 00 */ li r0, 0 +/* 802D3D38 002D0C78 98 18 00 28 */ stb r0, 0x28(r24) +/* 802D3D3C 002D0C7C 48 00 00 60 */ b lbl_802D3D9C +lbl_802D3D40: +/* 802D3D40 002D0C80 28 00 00 00 */ cmplwi r0, 0 +/* 802D3D44 002D0C84 3C 60 00 01 */ lis r3, 0x00008000@ha +/* 802D3D48 002D0C88 3B E3 80 00 */ addi r31, r3, 0x00008000@l +/* 802D3D4C 002D0C8C 41 82 00 08 */ beq lbl_802D3D54 +/* 802D3D50 002D0C90 7C 1F 03 78 */ mr r31, r0 +lbl_802D3D54: +/* 802D3D54 002D0C94 28 19 00 00 */ cmplwi r25, 0 +/* 802D3D58 002D0C98 41 82 00 20 */ beq lbl_802D3D78 +/* 802D3D5C 002D0C9C 7F E3 FB 78 */ mr r3, r31 +/* 802D3D60 002D0CA0 38 80 FF E0 */ li r4, -32 +/* 802D3D64 002D0CA4 7F 25 CB 78 */ mr r5, r25 +/* 802D3D68 002D0CA8 4B FF A7 0D */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D3D6C 002D0CAC 7C 7A 1B 78 */ mr r26, r3 +/* 802D3D70 002D0CB0 93 58 00 1C */ stw r26, 0x1c(r24) +/* 802D3D74 002D0CB4 48 00 00 1C */ b lbl_802D3D90 +lbl_802D3D78: +/* 802D3D78 002D0CB8 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D3D7C 002D0CBC 7F E4 FB 78 */ mr r4, r31 +/* 802D3D80 002D0CC0 38 A0 FF E0 */ li r5, -32 +/* 802D3D84 002D0CC4 4B FF A7 51 */ bl alloc__7JKRHeapFUli +/* 802D3D88 002D0CC8 7C 7A 1B 78 */ mr r26, r3 +/* 802D3D8C 002D0CCC 93 58 00 1C */ stw r26, 0x1c(r24) +lbl_802D3D90: +/* 802D3D90 002D0CD0 93 F8 00 20 */ stw r31, 0x20(r24) +/* 802D3D94 002D0CD4 38 00 00 01 */ li r0, 1 +/* 802D3D98 002D0CD8 98 18 00 28 */ stb r0, 0x28(r24) +lbl_802D3D9C: +/* 802D3D9C 002D0CDC 28 1A 00 00 */ cmplwi r26, 0 +/* 802D3DA0 002D0CE0 40 82 00 54 */ bne lbl_802D3DF4 +/* 802D3DA4 002D0CE4 28 19 00 00 */ cmplwi r25, 0 +/* 802D3DA8 002D0CE8 40 82 00 1C */ bne lbl_802D3DC4 +/* 802D3DAC 002D0CEC 80 6D 8D F4 */ lwz r3, lbl_80451374-_SDA_BASE_(r13) +/* 802D3DB0 002D0CF0 81 83 00 00 */ lwz r12, 0(r3) +/* 802D3DB4 002D0CF4 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 802D3DB8 002D0CF8 7D 89 03 A6 */ mtctr r12 +/* 802D3DBC 002D0CFC 4E 80 04 21 */ bctrl +/* 802D3DC0 002D0D00 48 00 00 18 */ b lbl_802D3DD8 +lbl_802D3DC4: +/* 802D3DC4 002D0D04 7F 23 CB 78 */ mr r3, r25 +/* 802D3DC8 002D0D08 81 99 00 00 */ lwz r12, 0(r25) +/* 802D3DCC 002D0D0C 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 802D3DD0 002D0D10 7D 89 03 A6 */ mtctr r12 +/* 802D3DD4 002D0D14 4E 80 04 21 */ bctrl +lbl_802D3DD8: +/* 802D3DD8 002D0D18 3C 60 80 3A */ lis r3, lbl_8039D120@ha +/* 802D3DDC 002D0D1C 38 63 D1 20 */ addi r3, r3, lbl_8039D120@l +/* 802D3DE0 002D0D20 38 80 00 AC */ li r4, 0xac +/* 802D3DE4 002D0D24 38 A3 00 12 */ addi r5, r3, 0x12 +/* 802D3DE8 002D0D28 38 C3 00 15 */ addi r6, r3, 0x15 +/* 802D3DEC 002D0D2C 4C C6 31 82 */ crclr 6 +/* 802D3DF0 002D0D30 48 00 E4 0D */ bl JUTException_NS_panic_f +lbl_802D3DF4: +/* 802D3DF4 002D0D34 28 1A 00 00 */ cmplwi r26, 0 +/* 802D3DF8 002D0D38 41 82 00 AC */ beq lbl_802D3EA4 +/* 802D3DFC 002D0D3C 80 78 00 10 */ lwz r3, 0x10(r24) +/* 802D3E00 002D0D40 7F A4 EB 78 */ mr r4, r29 +/* 802D3E04 002D0D44 38 A0 00 00 */ li r5, 0 +/* 802D3E08 002D0D48 48 00 86 D5 */ bl JSURandomInputStream_NS_seek +/* 802D3E0C 002D0D4C 48 00 00 70 */ b lbl_802D3E7C +lbl_802D3E10: +/* 802D3E10 002D0D50 7C 1E F8 40 */ cmplw r30, r31 +/* 802D3E14 002D0D54 7F D9 F3 78 */ mr r25, r30 +/* 802D3E18 002D0D58 40 81 00 08 */ ble lbl_802D3E20 +/* 802D3E1C 002D0D5C 7F F9 FB 78 */ mr r25, r31 +lbl_802D3E20: +/* 802D3E20 002D0D60 80 78 00 10 */ lwz r3, 0x10(r24) +/* 802D3E24 002D0D64 7F 44 D3 78 */ mr r4, r26 +/* 802D3E28 002D0D68 7F 25 CB 78 */ mr r5, r25 +/* 802D3E2C 002D0D6C 48 00 84 6D */ bl JSUInputStream_NS_read +/* 802D3E30 002D0D70 2C 03 00 00 */ cmpwi r3, 0 +/* 802D3E34 002D0D74 40 82 00 0C */ bne lbl_802D3E40 +/* 802D3E38 002D0D78 3B 80 00 00 */ li r28, 0 +/* 802D3E3C 002D0D7C 48 00 00 48 */ b lbl_802D3E84 +lbl_802D3E40: +/* 802D3E40 002D0D80 38 60 00 00 */ li r3, 0 +/* 802D3E44 002D0D84 7F 44 D3 78 */ mr r4, r26 +/* 802D3E48 002D0D88 7F 65 DB 78 */ mr r5, r27 +/* 802D3E4C 002D0D8C 7F 26 CB 78 */ mr r6, r25 +/* 802D3E50 002D0D90 38 E0 00 00 */ li r7, 0 +/* 802D3E54 002D0D94 4B FF F9 E5 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802D3E58 002D0D98 7F D9 F0 50 */ subf r30, r25, r30 +/* 802D3E5C 002D0D9C 7F 9C CA 14 */ add r28, r28, r25 +/* 802D3E60 002D0DA0 7F 7B CA 14 */ add r27, r27, r25 +/* 802D3E64 002D0DA4 80 78 00 18 */ lwz r3, 0x18(r24) +/* 802D3E68 002D0DA8 28 03 00 00 */ cmplwi r3, 0 +/* 802D3E6C 002D0DAC 41 82 00 10 */ beq lbl_802D3E7C +/* 802D3E70 002D0DB0 80 03 00 00 */ lwz r0, 0(r3) +/* 802D3E74 002D0DB4 7C 00 CA 14 */ add r0, r0, r25 +/* 802D3E78 002D0DB8 90 03 00 00 */ stw r0, 0(r3) +lbl_802D3E7C: +/* 802D3E7C 002D0DBC 28 1E 00 00 */ cmplwi r30, 0 +/* 802D3E80 002D0DC0 40 82 FF 90 */ bne lbl_802D3E10 +lbl_802D3E84: +/* 802D3E84 002D0DC4 88 18 00 28 */ lbz r0, 0x28(r24) +/* 802D3E88 002D0DC8 28 00 00 00 */ cmplwi r0, 0 +/* 802D3E8C 002D0DCC 41 82 00 18 */ beq lbl_802D3EA4 +/* 802D3E90 002D0DD0 7F 43 D3 78 */ mr r3, r26 +/* 802D3E94 002D0DD4 38 80 00 00 */ li r4, 0 +/* 802D3E98 002D0DD8 4B FF A6 69 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D3E9C 002D0DDC 38 00 00 00 */ li r0, 0 +/* 802D3EA0 002D0DE0 98 18 00 28 */ stb r0, 0x28(r24) +lbl_802D3EA4: +/* 802D3EA4 002D0DE4 38 78 00 30 */ addi r3, r24, 0x30 +/* 802D3EA8 002D0DE8 7F 84 E3 78 */ mr r4, r28 +/* 802D3EAC 002D0DEC 38 A0 00 00 */ li r5, 0 +/* 802D3EB0 002D0DF0 48 06 AB 45 */ bl OSSendMessage +/* 802D3EB4 002D0DF4 7F 83 E3 78 */ mr r3, r28 +/* 802D3EB8 002D0DF8 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D3EBC 002D0DFC 48 08 E3 59 */ bl func_80362214 +/* 802D3EC0 002D0E00 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D3EC4 002D0E04 7C 08 03 A6 */ mtlr r0 +/* 802D3EC8 002D0E08 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D3ECC 002D0E0C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3ED0.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3ED0.s new file mode 100644 index 0000000000..db9b598f39 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3ED0.s @@ -0,0 +1,56 @@ +/* write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl __ct__13JKRAramStreamFl::write_StreamToAram_Async(JSUFileInputStream *, unsigned long, unsigned long, unsigned long, unsigned long *) */ +/* JKRAramStream_NS_write_StreamToAram_Async */ +/* 802D3ED0 002D0E10 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D3ED4 002D0E14 7C 08 02 A6 */ mflr r0 +/* 802D3ED8 002D0E18 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D3EDC 002D0E1C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3EE0 002D0E20 48 08 E2 F1 */ bl _savegpr_26 +/* 802D3EE4 002D0E24 7C 7A 1B 78 */ mr r26, r3 +/* 802D3EE8 002D0E28 7C 9B 23 78 */ mr r27, r4 +/* 802D3EEC 002D0E2C 7C BC 2B 78 */ mr r28, r5 +/* 802D3EF0 002D0E30 7C DD 33 78 */ mr r29, r6 +/* 802D3EF4 002D0E34 7C FE 3B 78 */ mr r30, r7 +/* 802D3EF8 002D0E38 38 60 00 5C */ li r3, 0x5c +/* 802D3EFC 002D0E3C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D3F00 002D0E40 38 A0 FF FC */ li r5, -4 +/* 802D3F04 002D0E44 4B FF AD 95 */ bl __nw__FUlP7JKRHeapi +/* 802D3F08 002D0E48 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802D3F0C 002D0E4C 41 82 00 0C */ beq lbl_802D3F18 +/* 802D3F10 002D0E50 48 00 01 79 */ bl __ct__20JKRAramStreamCommandFv +/* 802D3F14 002D0E54 7C 7F 1B 78 */ mr r31, r3 +lbl_802D3F18: +/* 802D3F18 002D0E58 38 00 00 02 */ li r0, 2 +/* 802D3F1C 002D0E5C 90 1F 00 00 */ stw r0, 0(r31) +/* 802D3F20 002D0E60 93 7F 00 04 */ stw r27, 4(r31) +/* 802D3F24 002D0E64 93 9F 00 08 */ stw r28, 8(r31) +/* 802D3F28 002D0E68 93 5F 00 10 */ stw r26, 0x10(r31) +/* 802D3F2C 002D0E6C 38 60 00 00 */ li r3, 0 +/* 802D3F30 002D0E70 90 7F 00 2C */ stw r3, 0x2c(r31) +/* 802D3F34 002D0E74 93 BF 00 14 */ stw r29, 0x14(r31) +/* 802D3F38 002D0E78 80 0D 8E 8C */ lwz r0, lbl_8045140C-_SDA_BASE_(r13) +/* 802D3F3C 002D0E7C 90 1F 00 1C */ stw r0, 0x1c(r31) +/* 802D3F40 002D0E80 80 0D 8E 94 */ lwz r0, lbl_80451414-_SDA_BASE_(r13) +/* 802D3F44 002D0E84 90 1F 00 24 */ stw r0, 0x24(r31) +/* 802D3F48 002D0E88 80 0D 8E 90 */ lwz r0, lbl_80451410-_SDA_BASE_(r13) +/* 802D3F4C 002D0E8C 90 1F 00 20 */ stw r0, 0x20(r31) +/* 802D3F50 002D0E90 93 DF 00 18 */ stw r30, 0x18(r31) +/* 802D3F54 002D0E94 28 1E 00 00 */ cmplwi r30, 0 +/* 802D3F58 002D0E98 41 82 00 08 */ beq lbl_802D3F60 +/* 802D3F5C 002D0E9C 90 7E 00 00 */ stw r3, 0(r30) +lbl_802D3F60: +/* 802D3F60 002D0EA0 38 7F 00 30 */ addi r3, r31, 0x30 +/* 802D3F64 002D0EA4 38 9F 00 50 */ addi r4, r31, 0x50 +/* 802D3F68 002D0EA8 38 A0 00 01 */ li r5, 1 +/* 802D3F6C 002D0EAC 48 06 AA 29 */ bl OSInitMessageQueue +/* 802D3F70 002D0EB0 3C 60 80 3D */ lis r3, lbl_803CC198@ha +/* 802D3F74 002D0EB4 38 63 C1 98 */ addi r3, r3, lbl_803CC198@l +/* 802D3F78 002D0EB8 7F E4 FB 78 */ mr r4, r31 +/* 802D3F7C 002D0EBC 38 A0 00 01 */ li r5, 1 +/* 802D3F80 002D0EC0 48 06 AA 75 */ bl OSSendMessage +/* 802D3F84 002D0EC4 7F E3 FB 78 */ mr r3, r31 +/* 802D3F88 002D0EC8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D3F8C 002D0ECC 48 08 E2 91 */ bl _restgpr_26 +/* 802D3F90 002D0ED0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D3F94 002D0ED4 7C 08 03 A6 */ mtlr r0 +/* 802D3F98 002D0ED8 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D3F9C 002D0EDC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D3FA0.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3FA0.s new file mode 100644 index 0000000000..0b624d0d91 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D3FA0.s @@ -0,0 +1,44 @@ +/* sync__13JKRAramStreamFP20JKRAramStreamCommandi __ct__13JKRAramStreamFl::sync(JKRAramStreamCommand *, int) */ +/* JKRAramStream_NS_sync */ +/* 802D3FA0 002D0EE0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D3FA4 002D0EE4 7C 08 02 A6 */ mflr r0 +/* 802D3FA8 002D0EE8 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D3FAC 002D0EEC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802D3FB0 002D0EF0 7C 7F 1B 78 */ mr r31, r3 +/* 802D3FB4 002D0EF4 2C 04 00 00 */ cmpwi r4, 0 +/* 802D3FB8 002D0EF8 40 82 00 30 */ bne lbl_802D3FE8 +/* 802D3FBC 002D0EFC 38 7F 00 30 */ addi r3, r31, 0x30 +/* 802D3FC0 002D0F00 38 81 00 08 */ addi r4, r1, 8 +/* 802D3FC4 002D0F04 38 A0 00 01 */ li r5, 1 +/* 802D3FC8 002D0F08 48 06 AA F5 */ bl OSReceiveMessage +/* 802D3FCC 002D0F0C 80 01 00 08 */ lwz r0, 8(r1) +/* 802D3FD0 002D0F10 28 00 00 00 */ cmplwi r0, 0 +/* 802D3FD4 002D0F14 40 82 00 0C */ bne lbl_802D3FE0 +/* 802D3FD8 002D0F18 38 60 00 00 */ li r3, 0 +/* 802D3FDC 002D0F1C 48 00 00 44 */ b lbl_802D4020 +lbl_802D3FE0: +/* 802D3FE0 002D0F20 7F E3 FB 78 */ mr r3, r31 +/* 802D3FE4 002D0F24 48 00 00 3C */ b lbl_802D4020 +lbl_802D3FE8: +/* 802D3FE8 002D0F28 38 7F 00 30 */ addi r3, r31, 0x30 +/* 802D3FEC 002D0F2C 38 81 00 08 */ addi r4, r1, 8 +/* 802D3FF0 002D0F30 38 A0 00 00 */ li r5, 0 +/* 802D3FF4 002D0F34 48 06 AA C9 */ bl OSReceiveMessage +/* 802D3FF8 002D0F38 2C 03 00 00 */ cmpwi r3, 0 +/* 802D3FFC 002D0F3C 40 82 00 0C */ bne lbl_802D4008 +/* 802D4000 002D0F40 38 60 00 00 */ li r3, 0 +/* 802D4004 002D0F44 48 00 00 1C */ b lbl_802D4020 +lbl_802D4008: +/* 802D4008 002D0F48 80 01 00 08 */ lwz r0, 8(r1) +/* 802D400C 002D0F4C 28 00 00 00 */ cmplwi r0, 0 +/* 802D4010 002D0F50 40 82 00 0C */ bne lbl_802D401C +/* 802D4014 002D0F54 38 60 00 00 */ li r3, 0 +/* 802D4018 002D0F58 48 00 00 08 */ b lbl_802D4020 +lbl_802D401C: +/* 802D401C 002D0F5C 7F E3 FB 78 */ mr r3, r31 +lbl_802D4020: +/* 802D4020 002D0F60 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802D4024 002D0F64 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D4028 002D0F68 7C 08 03 A6 */ mtlr r0 +/* 802D402C 002D0F6C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D4030 002D0F70 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D4034.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D4034.s new file mode 100644 index 0000000000..c7861cc807 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D4034.s @@ -0,0 +1,25 @@ +/* setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap __ct__13JKRAramStreamFl::setTransBuffer(unsigned char *, unsigned long, JKRHeap *) */ +/* JKRAramStream_NS_setTransBuffer */ +/* 802D4034 002D0F74 38 E0 00 00 */ li r7, 0 +/* 802D4038 002D0F78 90 ED 8E 8C */ stw r7, lbl_8045140C-_SDA_BASE_(r13) +/* 802D403C 002D0F7C 3C C0 00 01 */ lis r6, 0x00008000@ha +/* 802D4040 002D0F80 38 06 80 00 */ addi r0, r6, 0x00008000@l +/* 802D4044 002D0F84 90 0D 8E 90 */ stw r0, lbl_80451410-_SDA_BASE_(r13) +/* 802D4048 002D0F88 90 ED 8E 94 */ stw r7, lbl_80451414-_SDA_BASE_(r13) +/* 802D404C 002D0F8C 28 03 00 00 */ cmplwi r3, 0 +/* 802D4050 002D0F90 41 82 00 10 */ beq lbl_802D4060 +/* 802D4054 002D0F94 38 03 00 1F */ addi r0, r3, 0x1f +/* 802D4058 002D0F98 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a +/* 802D405C 002D0F9C 90 0D 8E 8C */ stw r0, lbl_8045140C-_SDA_BASE_(r13) +lbl_802D4060: +/* 802D4060 002D0FA0 28 04 00 00 */ cmplwi r4, 0 +/* 802D4064 002D0FA4 41 82 00 0C */ beq lbl_802D4070 +/* 802D4068 002D0FA8 54 80 00 34 */ rlwinm r0, r4, 0, 0, 0x1a +/* 802D406C 002D0FAC 90 0D 8E 90 */ stw r0, lbl_80451410-_SDA_BASE_(r13) +lbl_802D4070: +/* 802D4070 002D0FB0 28 05 00 00 */ cmplwi r5, 0 +/* 802D4074 002D0FB4 4D 82 00 20 */ beqlr +/* 802D4078 002D0FB8 28 03 00 00 */ cmplwi r3, 0 +/* 802D407C 002D0FBC 4C 82 00 20 */ bnelr +/* 802D4080 002D0FC0 90 AD 8E 94 */ stw r5, lbl_80451414-_SDA_BASE_(r13) +/* 802D4084 002D0FC4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D4088.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D4088.s new file mode 100644 index 0000000000..ae3446ced7 --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D4088.s @@ -0,0 +1,5 @@ +/* __ct__20JKRAramStreamCommandFv __ct__20JKRAramStreamCommandFv::__ct(void) */ +/* JKRAramStreamCommand */ +/* 802D4088 002D0FC8 38 00 00 00 */ li r0, 0 +/* 802D408C 002D0FCC 98 03 00 28 */ stb r0, 0x28(r3) +/* 802D4090 002D0FD0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAramStream/asm/func_802D4094.s b/include/JSystem/JKernel/JKRAramStream/asm/func_802D4094.s new file mode 100644 index 0000000000..c0a14ad05e --- /dev/null +++ b/include/JSystem/JKernel/JKRAramStream/asm/func_802D4094.s @@ -0,0 +1,25 @@ +/* getAvailable__20JSURandomInputStreamCFv JSURandomInputStream::getAvailable( const(void)) */ +/* missing reference */ +/* 802D4094 002D0FD4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D4098 002D0FD8 7C 08 02 A6 */ mflr r0 +/* 802D409C 002D0FDC 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D40A0 002D0FE0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D40A4 002D0FE4 93 C1 00 08 */ stw r30, 8(r1) +/* 802D40A8 002D0FE8 7C 7E 1B 78 */ mr r30, r3 +/* 802D40AC 002D0FEC 81 83 00 00 */ lwz r12, 0(r3) +/* 802D40B0 002D0FF0 81 8C 00 18 */ lwz r12, 0x18(r12) +/* 802D40B4 002D0FF4 7D 89 03 A6 */ mtctr r12 +/* 802D40B8 002D0FF8 4E 80 04 21 */ bctrl +/* 802D40BC 002D0FFC 7C 7F 1B 78 */ mr r31, r3 +/* 802D40C0 002D1000 7F C3 F3 78 */ mr r3, r30 +/* 802D40C4 002D1004 81 9E 00 00 */ lwz r12, 0(r30) +/* 802D40C8 002D1008 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 802D40CC 002D100C 7D 89 03 A6 */ mtctr r12 +/* 802D40D0 002D1010 4E 80 04 21 */ bctrl +/* 802D40D4 002D1014 7C 63 F8 50 */ subf r3, r3, r31 +/* 802D40D8 002D1018 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D40DC 002D101C 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D40E0 002D1020 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D40E4 002D1024 7C 08 03 A6 */ mtlr r0 +/* 802D40E8 002D1028 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D40EC 002D102C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRArchive/JKRArchive.h b/include/JSystem/JKernel/JKRArchive/JKRArchive.h index 539d96caff..b6608671d1 100644 --- a/include/JSystem/JKernel/JKRArchive/JKRArchive.h +++ b/include/JSystem/JKernel/JKRArchive/JKRArchive.h @@ -17,12 +17,16 @@ class JKRArchive : public JKRFileLoader { ARAM = 2, DVD = 3, COMP = 4, + + __EMOUNT_MODE_PADDING_FOR_32BIT = 0xFFFFFFFF }; enum EMountDirection { UNKNOWN_MOUNT_DIRECTION = 0, HEAD = 1, TAIL = 2, + + __EMOUNT_DIRECTION_PADDING_FOR_32BIT = 0xFFFFFFFF }; class CArcName { @@ -42,53 +46,30 @@ class JKRArchive : public JKRFileLoader { u16 getHash() { return mHash; } + const char* getString() { return mData; } + private: u16 mHash; u16 mLength; char mData[64]; }; - public: + protected: + JKRArchive(); JKRArchive(long, EMountMode); virtual ~JKRArchive(); - // virtual unmount from JKRFileLoader - virtual void becomeCurrent(char const*); - virtual void getResource(char const*); - virtual void getResource(u32, char const*); - virtual void readResource(void*, u32, char const*); - virtual void readResource(void*, u32, u32, char const*); - virtual void removeResourceAll(void); - virtual void removeResource(void*); - virtual void detachResource(void*); - virtual void getResSize(void const*) const; - virtual void countFile(char const*) const; - virtual void getFirstFile(char const*) const; - virtual void vt_func_16(); - virtual void vt_func_17(); - virtual void vt_func_18(); - virtual void setExpandSize(SDIFileEntry*, u32); - virtual void getExpandSize(SDIFileEntry*) const; - - void check_mount_already(long, JKRHeap*); - void mount(char const*, EMountMode, JKRHeap*, EMountDirection); - void mount(void*, JKRHeap*, EMountDirection); - void mount(long, EMountMode, JKRHeap*, EMountDirection); + public: bool getDirEntry(SDirEntry*, u32) const; - void getGlbResource(u32, char const*, JKRArchive*); - void getIdxResource(u32); void getResource(unsigned short); - void readIdxResource(void*, u32, u32); void readResource(void*, u32, unsigned short); - void countResource(void) const; void getFileAttribute(u32) const; - void isSameName(CArcName&, u32, unsigned short) const; void findResType(u32) const; void findDirectory(char const*, u32) const; @@ -99,6 +80,24 @@ class JKRArchive : public JKRFileLoader { void findPtrResource(void const*) const; void findIdResource(unsigned short) const; + public: + /* vt[04] */ virtual void becomeCurrent(char const*); /* override */ + /* vt[05] */ virtual void getResource(char const*); /* override */ + /* vt[06] */ virtual void getResource(u32, char const*); /* override */ + /* vt[07] */ virtual void readResource(void*, u32, char const*); /* override */ + /* vt[08] */ virtual void readResource(void*, u32, u32, char const*); /* override */ + /* vt[09] */ virtual void removeResourceAll(void); /* override */ + /* vt[10] */ virtual void removeResource(void*); /* override */ + /* vt[11] */ virtual void detachResource(void*); /* override */ + /* vt[12] */ virtual void getResSize(void const*) const; /* override */ + /* vt[13] */ virtual void countFile(char const*) const; /* override */ + /* vt[14] */ virtual void getFirstFile(char const*) const; /* override */ + /* vt[15] */ virtual void getExpandedResSize(void const*) const; + /* vt[16] */ virtual void fetchResource(SDIFileEntry*, u32) = 0; + /* vt[17] */ virtual void fetchResource(void*, u32, SDIFileEntry*, u32*) = 0; + /* vt[18] */ virtual void setExpandSize(SDIFileEntry*, u32); + /* vt[19] */ virtual void getExpandSize(SDIFileEntry*) const; + private: JKRHeap* mHeap; EMountMode mMountMode; @@ -113,6 +112,13 @@ class JKRArchive : public JKRFileLoader { EMountDirection mMountDirection; u32 field_0x64; JKRDvdFile* mDvdFile; + + public: + static void check_mount_already(long, JKRHeap*); + static void mount(char const*, EMountMode, JKRHeap*, EMountDirection); + static void mount(void*, JKRHeap*, EMountDirection); + static void mount(long, EMountMode, JKRHeap*, EMountDirection); + static void getGlbResource(u32, char const*, JKRArchive*); }; #endif diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s index f92fd49538..e893bd3da6 100644 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s +++ b/include/JSystem/JKernel/JKRArchive/asm/func_802D5840.s @@ -27,7 +27,7 @@ lbl_802D5888: /* 802D5898 002D27D8 3C A0 00 01 */ lis r5, 0x0000FFFF@ha /* 802D589C 002D27DC 38 A5 FF FF */ addi r5, r5, 0x0000FFFF@l /* 802D58A0 002D27E0 38 C0 00 00 */ li r6, 0 -/* 802D58A4 002D27E4 48 00 11 C9 */ bl JKRMemArchive_X1_ +/* 802D58A4 002D27E4 48 00 11 C9 */ bl __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag /* 802D58A8 002D27E8 7C 60 1B 78 */ mr r0, r3 lbl_802D58AC: /* 802D58AC 002D27EC 7C 03 03 78 */ mr r3, r0 diff --git a/include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s b/include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s index 27c369a02a..97904e6432 100644 --- a/include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s +++ b/include/JSystem/JKernel/JKRArchive/asm/func_802D58C8.s @@ -39,7 +39,7 @@ lbl_802D5938: /* 802D5948 002D2888 41 82 00 14 */ beq lbl_802D595C /* 802D594C 002D288C 7F 64 DB 78 */ mr r4, r27 /* 802D5950 002D2890 7F C5 F3 78 */ mr r5, r30 -/* 802D5954 002D2894 48 00 10 65 */ bl JKRMemArchive +/* 802D5954 002D2894 48 00 10 65 */ bl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection /* 802D5958 002D2898 7C 60 1B 78 */ mr r0, r3 lbl_802D595C: /* 802D595C 002D289C 7C 1F 03 78 */ mr r31, r0 @@ -52,7 +52,7 @@ lbl_802D5964: /* 802D5974 002D28B4 41 82 00 14 */ beq lbl_802D5988 /* 802D5978 002D28B8 7F 64 DB 78 */ mr r4, r27 /* 802D597C 002D28BC 7F C5 F3 78 */ mr r5, r30 -/* 802D5980 002D28C0 48 00 17 41 */ bl JKRAramArchive +/* 802D5980 002D28C0 48 00 17 41 */ bl __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection /* 802D5984 002D28C4 7C 60 1B 78 */ mr r0, r3 lbl_802D5988: /* 802D5988 002D28C8 7C 1F 03 78 */ mr r31, r0 @@ -65,7 +65,7 @@ lbl_802D5990: /* 802D59A0 002D28E0 41 82 00 14 */ beq lbl_802D59B4 /* 802D59A4 002D28E4 7F 64 DB 78 */ mr r4, r27 /* 802D59A8 002D28E8 7F C5 F3 78 */ mr r5, r30 -/* 802D59AC 002D28EC 48 00 22 45 */ bl JKRDvdArchive +/* 802D59AC 002D28EC 48 00 22 45 */ bl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection /* 802D59B0 002D28F0 7C 60 1B 78 */ mr r0, r3 lbl_802D59B4: /* 802D59B4 002D28F4 7C 1F 03 78 */ mr r31, r0 @@ -78,7 +78,7 @@ lbl_802D59BC: /* 802D59CC 002D290C 41 82 00 14 */ beq lbl_802D59E0 /* 802D59D0 002D2910 7F 64 DB 78 */ mr r4, r27 /* 802D59D4 002D2914 7F C5 F3 78 */ mr r5, r30 -/* 802D59D8 002D2918 48 00 2D FD */ bl JKRCompArchive +/* 802D59D8 002D2918 48 00 2D FD */ bl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection /* 802D59DC 002D291C 7C 60 1B 78 */ mr r0, r3 lbl_802D59E0: /* 802D59E0 002D2920 7C 1F 03 78 */ mr r31, r0 diff --git a/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h b/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h index 00476acae6..5785517a7d 100644 --- a/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h +++ b/include/JSystem/JKernel/JKRAssertHeap/JKRAssertHeap.h @@ -5,29 +5,31 @@ #include "JSystem/JKernel/JKRHeap/JKRHeap.h" class JKRAssertHeap : public JKRHeap { - public: + protected: JKRAssertHeap(void*, unsigned long, JKRHeap*, bool); virtual ~JKRAssertHeap(); - static void create(JKRHeap*); + public: + /* vt[04] */ virtual u32 getHeapType(void); /* override */ + /* vt[05] */ virtual bool check(void); /* override */ + /* vt[06] */ virtual bool dump(void); /* override */ + /* vt[07] */ virtual void dump_sort(void); /* override */ + /* vt[08] */ virtual void do_destroy(void); /* override */ + /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ + /* vt[10] */ virtual void do_free(void*); /* override */ + /* vt[11] */ virtual void do_freeAll(void); /* override */ + /* vt[12] */ virtual void do_freeTail(void); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ + /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ + /* vt[15] */ virtual s32 do_getSize(void*); /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */ + /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */ + /* vt[20] */ virtual u8 do_getCurrentGroupId(void); /* override */ - virtual u32 getHeapType(void); - virtual bool check(void); - virtual bool dump(void); - virtual void dump_sort(void); - virtual void do_destroy(void); - virtual void* do_alloc(u32, int); - virtual void do_free(void*); - virtual void do_freeAll(void); - virtual void do_freeTail(void); - virtual void do_fillFreeArea(void); - virtual s32 do_resize(void*, u32); - virtual s32 do_getSize(void*); - virtual s32 do_getFreeSize(void); - virtual void* do_getMaxFreeBlock(void); - virtual s32 do_getTotalFreeSize(void); - virtual u8 do_changeGroupID(u8 param_1); - virtual u8 do_getCurrentGroupId(void); + public: + static void create(JKRHeap*); }; #endif diff --git a/include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h b/include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h new file mode 100644 index 0000000000..eda1032223 --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/JKRCompArchive.h @@ -0,0 +1,24 @@ +#ifndef __JKRCOMPARCHIVE_H__ +#define __JKRCOMPARCHIVE_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRArchive/JKRArchive.h" + +class JKRCompArchive : public JKRArchive { + public: + JKRCompArchive(long, JKRArchive::EMountDirection); + virtual ~JKRCompArchive(); + + void open(long); + + /* vt[09] */ void removeResourceAll(void); /* override */ + /* vt[10] */ void removeResource(void*); /* override */ + + /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ + /* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */ + + public: +}; + +#endif diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D87D4.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D87D4.s new file mode 100644 index 0000000000..35a910642e --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D87D4.s @@ -0,0 +1,46 @@ +/* __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::__ct(long, JKRArchive::EMountDirection) */ +/* JKRCompArchive */ +/* 802D87D4 002D5714 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D87D8 002D5718 7C 08 02 A6 */ mflr r0 +/* 802D87DC 002D571C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D87E0 002D5720 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D87E4 002D5724 48 08 99 F9 */ bl _savegpr_29 +/* 802D87E8 002D5728 7C 7D 1B 78 */ mr r29, r3 +/* 802D87EC 002D572C 7C 9E 23 78 */ mr r30, r4 +/* 802D87F0 002D5730 7C BF 2B 78 */ mr r31, r5 +/* 802D87F4 002D5734 38 A0 00 04 */ li r5, 4 +/* 802D87F8 002D5738 4B FF DA 9D */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode +/* 802D87FC 002D573C 3C 60 80 3D */ lis r3, lbl_803CC3E8@ha +/* 802D8800 002D5740 38 03 C3 E8 */ addi r0, r3, lbl_803CC3E8@l +/* 802D8804 002D5744 90 1D 00 00 */ stw r0, 0(r29) +/* 802D8808 002D5748 93 FD 00 60 */ stw r31, 0x60(r29) +/* 802D880C 002D574C 7F A3 EB 78 */ mr r3, r29 +/* 802D8810 002D5750 7F C4 F3 78 */ mr r4, r30 +/* 802D8814 002D5754 48 00 01 A9 */ bl open__14JKRCompArchiveFl +/* 802D8818 002D5758 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D881C 002D575C 40 82 00 0C */ bne lbl_802D8828 +/* 802D8820 002D5760 7F A3 EB 78 */ mr r3, r29 +/* 802D8824 002D5764 48 00 00 40 */ b lbl_802D8864 +lbl_802D8828: +/* 802D8828 002D5768 3C 60 52 41 */ lis r3, 0x52415243@ha +/* 802D882C 002D576C 38 03 52 43 */ addi r0, r3, 0x52415243@l +/* 802D8830 002D5770 90 1D 00 2C */ stw r0, 0x2c(r29) +/* 802D8834 002D5774 80 9D 00 54 */ lwz r4, 0x54(r29) +/* 802D8838 002D5778 80 7D 00 48 */ lwz r3, 0x48(r29) +/* 802D883C 002D577C 80 03 00 04 */ lwz r0, 4(r3) +/* 802D8840 002D5780 7C 04 02 14 */ add r0, r4, r0 +/* 802D8844 002D5784 90 1D 00 28 */ stw r0, 0x28(r29) +/* 802D8848 002D5788 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D884C 002D578C 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D8850 002D5790 38 9D 00 18 */ addi r4, r29, 0x18 +/* 802D8854 002D5794 48 00 37 9D */ bl prepend__10JSUPtrListFP10JSUPtrLink +/* 802D8858 002D5798 38 00 00 01 */ li r0, 1 +/* 802D885C 002D579C 98 1D 00 30 */ stb r0, 0x30(r29) +/* 802D8860 002D57A0 7F A3 EB 78 */ mr r3, r29 +lbl_802D8864: +/* 802D8864 002D57A4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D8868 002D57A8 48 08 99 C1 */ bl _restgpr_29 +/* 802D886C 002D57AC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D8870 002D57B0 7C 08 03 A6 */ mtlr r0 +/* 802D8874 002D57B4 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D8878 002D57B8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D887C.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D887C.s new file mode 100644 index 0000000000..eb3a3cdf11 --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D887C.s @@ -0,0 +1,90 @@ +/* __dt__14JKRCompArchiveFv __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::__dt(void) */ +/* missing reference */ +/* 802D887C 002D57BC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D8880 002D57C0 7C 08 02 A6 */ mflr r0 +/* 802D8884 002D57C4 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D8888 002D57C8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D888C 002D57CC 48 08 99 4D */ bl _savegpr_28 +/* 802D8890 002D57D0 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D8894 002D57D4 7C 9F 23 78 */ mr r31, r4 +/* 802D8898 002D57D8 41 82 01 08 */ beq lbl_802D89A0 +/* 802D889C 002D57DC 3C 60 80 3D */ lis r3, lbl_803CC3E8@ha +/* 802D88A0 002D57E0 38 03 C3 E8 */ addi r0, r3, lbl_803CC3E8@l +/* 802D88A4 002D57E4 90 1E 00 00 */ stw r0, 0(r30) +/* 802D88A8 002D57E8 80 1E 00 44 */ lwz r0, 0x44(r30) +/* 802D88AC 002D57EC 28 00 00 00 */ cmplwi r0, 0 +/* 802D88B0 002D57F0 41 82 00 58 */ beq lbl_802D8908 +/* 802D88B4 002D57F4 83 BE 00 4C */ lwz r29, 0x4c(r30) +/* 802D88B8 002D57F8 3B 80 00 00 */ li r28, 0 +/* 802D88BC 002D57FC 48 00 00 2C */ b lbl_802D88E8 +lbl_802D88C0: +/* 802D88C0 002D5800 80 1D 00 04 */ lwz r0, 4(r29) +/* 802D88C4 002D5804 54 00 46 F7 */ rlwinm. r0, r0, 8, 0x1b, 0x1b +/* 802D88C8 002D5808 40 82 00 18 */ bne lbl_802D88E0 +/* 802D88CC 002D580C 80 7D 00 10 */ lwz r3, 0x10(r29) +/* 802D88D0 002D5810 28 03 00 00 */ cmplwi r3, 0 +/* 802D88D4 002D5814 41 82 00 0C */ beq lbl_802D88E0 +/* 802D88D8 002D5818 80 9E 00 38 */ lwz r4, 0x38(r30) +/* 802D88DC 002D581C 4B FF 5C 25 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D88E0: +/* 802D88E0 002D5820 3B BD 00 14 */ addi r29, r29, 0x14 +/* 802D88E4 002D5824 3B 9C 00 01 */ addi r28, r28, 1 +lbl_802D88E8: +/* 802D88E8 002D5828 80 7E 00 44 */ lwz r3, 0x44(r30) +/* 802D88EC 002D582C 80 03 00 08 */ lwz r0, 8(r3) +/* 802D88F0 002D5830 7C 1C 00 40 */ cmplw r28, r0 +/* 802D88F4 002D5834 41 80 FF CC */ blt lbl_802D88C0 +/* 802D88F8 002D5838 80 9E 00 38 */ lwz r4, 0x38(r30) +/* 802D88FC 002D583C 4B FF 5C 05 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D8900 002D5840 38 00 00 00 */ li r0, 0 +/* 802D8904 002D5844 90 1E 00 44 */ stw r0, 0x44(r30) +lbl_802D8908: +/* 802D8908 002D5848 80 7E 00 68 */ lwz r3, 0x68(r30) +/* 802D890C 002D584C 28 03 00 00 */ cmplwi r3, 0 +/* 802D8910 002D5850 41 82 00 1C */ beq lbl_802D892C +/* 802D8914 002D5854 41 82 00 18 */ beq lbl_802D892C +/* 802D8918 002D5858 38 80 00 01 */ li r4, 1 +/* 802D891C 002D585C 81 83 00 00 */ lwz r12, 0(r3) +/* 802D8920 002D5860 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D8924 002D5864 7D 89 03 A6 */ mtctr r12 +/* 802D8928 002D5868 4E 80 04 21 */ bctrl +lbl_802D892C: +/* 802D892C 002D586C 80 7E 00 50 */ lwz r3, 0x50(r30) +/* 802D8930 002D5870 28 03 00 00 */ cmplwi r3, 0 +/* 802D8934 002D5874 41 82 00 14 */ beq lbl_802D8948 +/* 802D8938 002D5878 38 80 00 00 */ li r4, 0 +/* 802D893C 002D587C 4B FF 5B C5 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D8940 002D5880 38 00 00 00 */ li r0, 0 +/* 802D8944 002D5884 90 1E 00 50 */ stw r0, 0x50(r30) +lbl_802D8948: +/* 802D8948 002D5888 80 7E 00 70 */ lwz r3, 0x70(r30) +/* 802D894C 002D588C 28 03 00 00 */ cmplwi r3, 0 +/* 802D8950 002D5890 41 82 00 1C */ beq lbl_802D896C +/* 802D8954 002D5894 41 82 00 18 */ beq lbl_802D896C +/* 802D8958 002D5898 38 80 00 01 */ li r4, 1 +/* 802D895C 002D589C 81 83 00 00 */ lwz r12, 0(r3) +/* 802D8960 002D58A0 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D8964 002D58A4 7D 89 03 A6 */ mtctr r12 +/* 802D8968 002D58A8 4E 80 04 21 */ bctrl +lbl_802D896C: +/* 802D896C 002D58AC 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D8970 002D58B0 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D8974 002D58B4 38 9E 00 18 */ addi r4, r30, 0x18 +/* 802D8978 002D58B8 48 00 37 E5 */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802D897C 002D58BC 38 00 00 00 */ li r0, 0 +/* 802D8980 002D58C0 98 1E 00 30 */ stb r0, 0x30(r30) +/* 802D8984 002D58C4 7F C3 F3 78 */ mr r3, r30 +/* 802D8988 002D58C8 38 80 00 00 */ li r4, 0 +/* 802D898C 002D58CC 4B FF D9 A9 */ bl __dt__10JKRArchiveFv +/* 802D8990 002D58D0 7F E0 07 35 */ extsh. r0, r31 +/* 802D8994 002D58D4 40 81 00 0C */ ble lbl_802D89A0 +/* 802D8998 002D58D8 7F C3 F3 78 */ mr r3, r30 +/* 802D899C 002D58DC 4B FF 63 A1 */ bl __dl__FPv +lbl_802D89A0: +/* 802D89A0 002D58E0 7F C3 F3 78 */ mr r3, r30 +/* 802D89A4 002D58E4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D89A8 002D58E8 48 08 98 7D */ bl _restgpr_28 +/* 802D89AC 002D58EC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D89B0 002D58F0 7C 08 03 A6 */ mtlr r0 +/* 802D89B4 002D58F4 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D89B8 002D58F8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s new file mode 100644 index 0000000000..94e7d9f6e0 --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s @@ -0,0 +1,381 @@ +/* open__14JKRCompArchiveFl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::open(long) */ +/* JKRCompArchive_NS_open */ +/* 802D89BC 002D58FC 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D89C0 002D5900 7C 08 02 A6 */ mflr r0 +/* 802D89C4 002D5904 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D89C8 002D5908 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D89CC 002D590C 48 08 98 01 */ bl func_803621CC +/* 802D89D0 002D5910 7C 7F 1B 78 */ mr r31, r3 +/* 802D89D4 002D5914 7C 9A 23 78 */ mr r26, r4 +/* 802D89D8 002D5918 38 00 00 00 */ li r0, 0 +/* 802D89DC 002D591C 90 03 00 44 */ stw r0, 0x44(r3) +/* 802D89E0 002D5920 90 03 00 64 */ stw r0, 0x64(r3) +/* 802D89E4 002D5924 90 03 00 68 */ stw r0, 0x68(r3) +/* 802D89E8 002D5928 90 03 00 6C */ stw r0, 0x6c(r3) +/* 802D89EC 002D592C 90 03 00 74 */ stw r0, 0x74(r3) +/* 802D89F0 002D5930 90 03 00 78 */ stw r0, 0x78(r3) +/* 802D89F4 002D5934 90 03 00 7C */ stw r0, 0x7c(r3) +/* 802D89F8 002D5938 90 03 00 48 */ stw r0, 0x48(r3) +/* 802D89FC 002D593C 90 03 00 4C */ stw r0, 0x4c(r3) +/* 802D8A00 002D5940 90 03 00 54 */ stw r0, 0x54(r3) +/* 802D8A04 002D5944 38 60 00 F8 */ li r3, 0xf8 +/* 802D8A08 002D5948 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D8A0C 002D594C 38 A0 00 00 */ li r5, 0 +/* 802D8A10 002D5950 4B FF 62 89 */ bl __nw__FUlP7JKRHeapi +/* 802D8A14 002D5954 7C 60 1B 79 */ or. r0, r3, r3 +/* 802D8A18 002D5958 41 82 00 10 */ beq lbl_802D8A28 +/* 802D8A1C 002D595C 7F 44 D3 78 */ mr r4, r26 +/* 802D8A20 002D5960 48 00 0C 81 */ bl __ct__10JKRDvdFileFl +/* 802D8A24 002D5964 7C 60 1B 78 */ mr r0, r3 +lbl_802D8A28: +/* 802D8A28 002D5968 90 1F 00 70 */ stw r0, 0x70(r31) +/* 802D8A2C 002D596C 80 1F 00 70 */ lwz r0, 0x70(r31) +/* 802D8A30 002D5970 28 00 00 00 */ cmplwi r0, 0 +/* 802D8A34 002D5974 40 82 00 14 */ bne lbl_802D8A48 +/* 802D8A38 002D5978 38 00 00 00 */ li r0, 0 +/* 802D8A3C 002D597C 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8A40 002D5980 38 60 00 00 */ li r3, 0 +/* 802D8A44 002D5984 48 00 04 E4 */ b lbl_802D8F28 +lbl_802D8A48: +/* 802D8A48 002D5988 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D8A4C 002D598C 38 80 00 20 */ li r4, 0x20 +/* 802D8A50 002D5990 38 A0 FF E0 */ li r5, -32 +/* 802D8A54 002D5994 4B FF 5A 81 */ bl alloc__7JKRHeapFUli +/* 802D8A58 002D5998 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D8A5C 002D599C 40 82 00 10 */ bne lbl_802D8A6C +/* 802D8A60 002D59A0 38 00 00 00 */ li r0, 0 +/* 802D8A64 002D59A4 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8A68 002D59A8 48 00 04 70 */ b lbl_802D8ED8 +lbl_802D8A6C: +/* 802D8A6C 002D59AC 38 00 00 00 */ li r0, 0 +/* 802D8A70 002D59B0 90 01 00 08 */ stw r0, 8(r1) +/* 802D8A74 002D59B4 7F 43 D3 78 */ mr r3, r26 +/* 802D8A78 002D59B8 7F C4 F3 78 */ mr r4, r30 +/* 802D8A7C 002D59BC 38 A0 00 01 */ li r5, 1 +/* 802D8A80 002D59C0 38 C0 00 20 */ li r6, 0x20 +/* 802D8A84 002D59C4 38 E0 00 00 */ li r7, 0 +/* 802D8A88 002D59C8 39 00 00 01 */ li r8, 1 +/* 802D8A8C 002D59CC 39 20 00 00 */ li r9, 0 +/* 802D8A90 002D59D0 39 5F 00 5C */ addi r10, r31, 0x5c +/* 802D8A94 002D59D4 48 00 11 C1 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8A98 002D59D8 7F C3 F3 78 */ mr r3, r30 +/* 802D8A9C 002D59DC 38 80 00 20 */ li r4, 0x20 +/* 802D8AA0 002D59E0 48 06 2A E1 */ bl DCInvalidateRange +/* 802D8AA4 002D59E4 80 1E 00 14 */ lwz r0, 0x14(r30) +/* 802D8AA8 002D59E8 90 1F 00 74 */ stw r0, 0x74(r31) +/* 802D8AAC 002D59EC 80 1E 00 18 */ lwz r0, 0x18(r30) +/* 802D8AB0 002D59F0 90 1F 00 78 */ stw r0, 0x78(r31) +/* 802D8AB4 002D59F4 80 1F 00 5C */ lwz r0, 0x5c(r31) +/* 802D8AB8 002D59F8 2C 00 00 01 */ cmpwi r0, 1 +/* 802D8ABC 002D59FC 41 82 01 60 */ beq lbl_802D8C1C +/* 802D8AC0 002D5A00 40 80 00 10 */ bge lbl_802D8AD0 +/* 802D8AC4 002D5A04 2C 00 00 00 */ cmpwi r0, 0 +/* 802D8AC8 002D5A08 40 80 00 10 */ bge lbl_802D8AD8 +/* 802D8ACC 002D5A0C 48 00 03 58 */ b lbl_802D8E24 +lbl_802D8AD0: +/* 802D8AD0 002D5A10 2C 00 00 03 */ cmpwi r0, 3 +/* 802D8AD4 002D5A14 40 80 03 50 */ bge lbl_802D8E24 +lbl_802D8AD8: +/* 802D8AD8 002D5A18 80 1F 00 60 */ lwz r0, 0x60(r31) +/* 802D8ADC 002D5A1C 2C 00 00 01 */ cmpwi r0, 1 +/* 802D8AE0 002D5A20 38 80 FF E0 */ li r4, -32 +/* 802D8AE4 002D5A24 40 82 00 08 */ bne lbl_802D8AEC +/* 802D8AE8 002D5A28 38 80 00 20 */ li r4, 0x20 +lbl_802D8AEC: +/* 802D8AEC 002D5A2C 7C 9D 23 78 */ mr r29, r4 +/* 802D8AF0 002D5A30 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 802D8AF4 002D5A34 80 1F 00 74 */ lwz r0, 0x74(r31) +/* 802D8AF8 002D5A38 7C 63 02 14 */ add r3, r3, r0 +/* 802D8AFC 002D5A3C 80 BF 00 38 */ lwz r5, 0x38(r31) +/* 802D8B00 002D5A40 4B FF 59 75 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D8B04 002D5A44 90 7F 00 44 */ stw r3, 0x44(r31) +/* 802D8B08 002D5A48 80 9F 00 44 */ lwz r4, 0x44(r31) +/* 802D8B0C 002D5A4C 28 04 00 00 */ cmplwi r4, 0 +/* 802D8B10 002D5A50 40 82 00 10 */ bne lbl_802D8B20 +/* 802D8B14 002D5A54 38 00 00 00 */ li r0, 0 +/* 802D8B18 002D5A58 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8B1C 002D5A5C 48 00 03 08 */ b lbl_802D8E24 +lbl_802D8B20: +/* 802D8B20 002D5A60 38 00 00 00 */ li r0, 0 +/* 802D8B24 002D5A64 90 01 00 08 */ stw r0, 8(r1) +/* 802D8B28 002D5A68 7F 43 D3 78 */ mr r3, r26 +/* 802D8B2C 002D5A6C 38 A0 00 01 */ li r5, 1 +/* 802D8B30 002D5A70 80 DE 00 0C */ lwz r6, 0xc(r30) +/* 802D8B34 002D5A74 80 1F 00 74 */ lwz r0, 0x74(r31) +/* 802D8B38 002D5A78 7C C6 02 14 */ add r6, r6, r0 +/* 802D8B3C 002D5A7C 38 E0 00 00 */ li r7, 0 +/* 802D8B40 002D5A80 39 00 00 01 */ li r8, 1 +/* 802D8B44 002D5A84 39 20 00 20 */ li r9, 0x20 +/* 802D8B48 002D5A88 39 40 00 00 */ li r10, 0 +/* 802D8B4C 002D5A8C 48 00 11 09 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8B50 002D5A90 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8B54 002D5A94 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 802D8B58 002D5A98 80 1F 00 74 */ lwz r0, 0x74(r31) +/* 802D8B5C 002D5A9C 7C 84 02 14 */ add r4, r4, r0 +/* 802D8B60 002D5AA0 48 06 2A 21 */ bl DCInvalidateRange +/* 802D8B64 002D5AA4 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8B68 002D5AA8 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802D8B6C 002D5AAC 7C 03 02 14 */ add r0, r3, r0 +/* 802D8B70 002D5AB0 90 1F 00 64 */ stw r0, 0x64(r31) +/* 802D8B74 002D5AB4 80 9F 00 78 */ lwz r4, 0x78(r31) +/* 802D8B78 002D5AB8 28 04 00 00 */ cmplwi r4, 0 +/* 802D8B7C 002D5ABC 41 82 00 5C */ beq lbl_802D8BD8 +/* 802D8B80 002D5AC0 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802D8B84 002D5AC4 80 63 00 94 */ lwz r3, 0x94(r3) +/* 802D8B88 002D5AC8 38 A0 00 00 */ li r5, 0 +/* 802D8B8C 002D5ACC 4B FF A4 31 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode +/* 802D8B90 002D5AD0 90 7F 00 68 */ stw r3, 0x68(r31) +/* 802D8B94 002D5AD4 80 7F 00 68 */ lwz r3, 0x68(r31) +/* 802D8B98 002D5AD8 28 03 00 00 */ cmplwi r3, 0 +/* 802D8B9C 002D5ADC 40 82 00 10 */ bne lbl_802D8BAC +/* 802D8BA0 002D5AE0 38 00 00 00 */ li r0, 0 +/* 802D8BA4 002D5AE4 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8BA8 002D5AE8 48 00 02 7C */ b lbl_802D8E24 +lbl_802D8BAC: +/* 802D8BAC 002D5AEC 80 83 00 14 */ lwz r4, 0x14(r3) +/* 802D8BB0 002D5AF0 7F 43 D3 78 */ mr r3, r26 +/* 802D8BB4 002D5AF4 38 A0 00 01 */ li r5, 1 +/* 802D8BB8 002D5AF8 80 DF 00 74 */ lwz r6, 0x74(r31) +/* 802D8BBC 002D5AFC 80 FE 00 08 */ lwz r7, 8(r30) +/* 802D8BC0 002D5B00 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802D8BC4 002D5B04 7C C0 32 14 */ add r6, r0, r6 +/* 802D8BC8 002D5B08 7C C7 32 14 */ add r6, r7, r6 +/* 802D8BCC 002D5B0C 38 E0 00 00 */ li r7, 0 +/* 802D8BD0 002D5B10 39 00 00 00 */ li r8, 0 +/* 802D8BD4 002D5B14 48 00 1C A1 */ bl loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl +lbl_802D8BD8: +/* 802D8BD8 002D5B18 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8BDC 002D5B1C 80 03 00 04 */ lwz r0, 4(r3) +/* 802D8BE0 002D5B20 7C 03 02 14 */ add r0, r3, r0 +/* 802D8BE4 002D5B24 90 1F 00 48 */ stw r0, 0x48(r31) +/* 802D8BE8 002D5B28 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8BEC 002D5B2C 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802D8BF0 002D5B30 7C 03 02 14 */ add r0, r3, r0 +/* 802D8BF4 002D5B34 90 1F 00 4C */ stw r0, 0x4c(r31) +/* 802D8BF8 002D5B38 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8BFC 002D5B3C 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802D8C00 002D5B40 7C 03 02 14 */ add r0, r3, r0 +/* 802D8C04 002D5B44 90 1F 00 54 */ stw r0, 0x54(r31) +/* 802D8C08 002D5B48 80 7E 00 08 */ lwz r3, 8(r30) +/* 802D8C0C 002D5B4C 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802D8C10 002D5B50 7C 03 02 14 */ add r0, r3, r0 +/* 802D8C14 002D5B54 90 1F 00 6C */ stw r0, 0x6c(r31) +/* 802D8C18 002D5B58 48 00 02 0C */ b lbl_802D8E24 +lbl_802D8C1C: +/* 802D8C1C 002D5B5C 80 7F 00 70 */ lwz r3, 0x70(r31) +/* 802D8C20 002D5B60 81 83 00 00 */ lwz r12, 0(r3) +/* 802D8C24 002D5B64 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 802D8C28 002D5B68 7D 89 03 A6 */ mtctr r12 +/* 802D8C2C 002D5B6C 4E 80 04 21 */ bctrl +/* 802D8C30 002D5B70 38 03 00 1F */ addi r0, r3, 0x1f +/* 802D8C34 002D5B74 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a +/* 802D8C38 002D5B78 80 1F 00 60 */ lwz r0, 0x60(r31) +/* 802D8C3C 002D5B7C 2C 00 00 01 */ cmpwi r0, 1 +/* 802D8C40 002D5B80 3B A0 FF E0 */ li r29, -32 +/* 802D8C44 002D5B84 40 82 00 08 */ bne lbl_802D8C4C +/* 802D8C48 002D5B88 3B A0 00 20 */ li r29, 0x20 +lbl_802D8C4C: +/* 802D8C4C 002D5B8C 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D8C50 002D5B90 7F 24 CB 78 */ mr r4, r25 +/* 802D8C54 002D5B94 7F 9D 00 D0 */ neg r28, r29 +/* 802D8C58 002D5B98 7F 85 E3 78 */ mr r5, r28 +/* 802D8C5C 002D5B9C 4B FF 58 79 */ bl alloc__7JKRHeapFUli +/* 802D8C60 002D5BA0 7C 7B 1B 79 */ or. r27, r3, r3 +/* 802D8C64 002D5BA4 40 82 00 10 */ bne lbl_802D8C74 +/* 802D8C68 002D5BA8 38 00 00 00 */ li r0, 0 +/* 802D8C6C 002D5BAC 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8C70 002D5BB0 48 00 01 74 */ b lbl_802D8DE4 +lbl_802D8C74: +/* 802D8C74 002D5BB4 38 00 00 00 */ li r0, 0 +/* 802D8C78 002D5BB8 90 01 00 08 */ stw r0, 8(r1) +/* 802D8C7C 002D5BBC 7F 43 D3 78 */ mr r3, r26 +/* 802D8C80 002D5BC0 7F 64 DB 78 */ mr r4, r27 +/* 802D8C84 002D5BC4 38 A0 00 02 */ li r5, 2 +/* 802D8C88 002D5BC8 7F 26 CB 78 */ mr r6, r25 +/* 802D8C8C 002D5BCC 38 E0 00 00 */ li r7, 0 +/* 802D8C90 002D5BD0 39 00 00 01 */ li r8, 1 +/* 802D8C94 002D5BD4 39 20 00 00 */ li r9, 0 +/* 802D8C98 002D5BD8 39 40 00 00 */ li r10, 0 +/* 802D8C9C 002D5BDC 48 00 0F B9 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8CA0 002D5BE0 7F 63 DB 78 */ mr r3, r27 +/* 802D8CA4 002D5BE4 7F 24 CB 78 */ mr r4, r25 +/* 802D8CA8 002D5BE8 48 06 28 D9 */ bl DCInvalidateRange +/* 802D8CAC 002D5BEC 88 BB 00 07 */ lbz r5, 7(r27) +/* 802D8CB0 002D5BF0 88 9B 00 06 */ lbz r4, 6(r27) +/* 802D8CB4 002D5BF4 88 7B 00 04 */ lbz r3, 4(r27) +/* 802D8CB8 002D5BF8 88 1B 00 05 */ lbz r0, 5(r27) +/* 802D8CBC 002D5BFC 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D8CC0 002D5C00 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D8CC4 002D5C04 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D8CC8 002D5C08 7C A3 03 78 */ or r3, r5, r0 +/* 802D8CCC 002D5C0C 38 03 00 1F */ addi r0, r3, 0x1f +/* 802D8CD0 002D5C10 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a +/* 802D8CD4 002D5C14 7F 23 CB 78 */ mr r3, r25 +/* 802D8CD8 002D5C18 7F 84 E3 78 */ mr r4, r28 +/* 802D8CDC 002D5C1C 80 BF 00 38 */ lwz r5, 0x38(r31) +/* 802D8CE0 002D5C20 4B FF 57 95 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D8CE4 002D5C24 7C 7C 1B 79 */ or. r28, r3, r3 +/* 802D8CE8 002D5C28 40 82 00 10 */ bne lbl_802D8CF8 +/* 802D8CEC 002D5C2C 38 00 00 00 */ li r0, 0 +/* 802D8CF0 002D5C30 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8CF4 002D5C34 48 00 00 F0 */ b lbl_802D8DE4 +lbl_802D8CF8: +/* 802D8CF8 002D5C38 7F 9E E3 78 */ mr r30, r28 +/* 802D8CFC 002D5C3C 7F 63 DB 78 */ mr r3, r27 +/* 802D8D00 002D5C40 7F 84 E3 78 */ mr r4, r28 +/* 802D8D04 002D5C44 7F 25 CB 78 */ mr r5, r25 +/* 802D8D08 002D5C48 38 C0 00 00 */ li r6, 0 +/* 802D8D0C 002D5C4C 48 00 2C 7D */ bl orderSync__9JKRDecompFPUcPUcUlUl +/* 802D8D10 002D5C50 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D8D14 002D5C54 7F 64 DB 78 */ mr r4, r27 +/* 802D8D18 002D5C58 4B FF 58 31 */ bl free__7JKRHeapFPv +/* 802D8D1C 002D5C5C 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 802D8D20 002D5C60 80 1F 00 74 */ lwz r0, 0x74(r31) +/* 802D8D24 002D5C64 7C 63 02 14 */ add r3, r3, r0 +/* 802D8D28 002D5C68 7F A4 EB 78 */ mr r4, r29 +/* 802D8D2C 002D5C6C 80 BF 00 38 */ lwz r5, 0x38(r31) +/* 802D8D30 002D5C70 4B FF 57 45 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D8D34 002D5C74 90 7F 00 44 */ stw r3, 0x44(r31) +/* 802D8D38 002D5C78 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8D3C 002D5C7C 28 03 00 00 */ cmplwi r3, 0 +/* 802D8D40 002D5C80 40 82 00 10 */ bne lbl_802D8D50 +/* 802D8D44 002D5C84 38 00 00 00 */ li r0, 0 +/* 802D8D48 002D5C88 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8D4C 002D5C8C 48 00 00 98 */ b lbl_802D8DE4 +lbl_802D8D50: +/* 802D8D50 002D5C90 38 9E 00 20 */ addi r4, r30, 0x20 +/* 802D8D54 002D5C94 80 BE 00 0C */ lwz r5, 0xc(r30) +/* 802D8D58 002D5C98 80 1F 00 74 */ lwz r0, 0x74(r31) +/* 802D8D5C 002D5C9C 7C A5 02 14 */ add r5, r5, r0 +/* 802D8D60 002D5CA0 4B FF 5D B9 */ bl copyMemory__7JKRHeapFPvPvUl +/* 802D8D64 002D5CA4 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8D68 002D5CA8 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802D8D6C 002D5CAC 7C 03 02 14 */ add r0, r3, r0 +/* 802D8D70 002D5CB0 90 1F 00 64 */ stw r0, 0x64(r31) +/* 802D8D74 002D5CB4 80 9F 00 78 */ lwz r4, 0x78(r31) +/* 802D8D78 002D5CB8 28 04 00 00 */ cmplwi r4, 0 +/* 802D8D7C 002D5CBC 41 82 00 68 */ beq lbl_802D8DE4 +/* 802D8D80 002D5CC0 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802D8D84 002D5CC4 80 63 00 94 */ lwz r3, 0x94(r3) +/* 802D8D88 002D5CC8 38 A0 00 00 */ li r5, 0 +/* 802D8D8C 002D5CCC 4B FF A2 31 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode +/* 802D8D90 002D5CD0 90 7F 00 68 */ stw r3, 0x68(r31) +/* 802D8D94 002D5CD4 80 7F 00 68 */ lwz r3, 0x68(r31) +/* 802D8D98 002D5CD8 28 03 00 00 */ cmplwi r3, 0 +/* 802D8D9C 002D5CDC 40 82 00 10 */ bne lbl_802D8DAC +/* 802D8DA0 002D5CE0 38 00 00 00 */ li r0, 0 +/* 802D8DA4 002D5CE4 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8DA8 002D5CE8 48 00 00 3C */ b lbl_802D8DE4 +lbl_802D8DAC: +/* 802D8DAC 002D5CEC 80 83 00 14 */ lwz r4, 0x14(r3) +/* 802D8DB0 002D5CF0 80 7E 00 08 */ lwz r3, 8(r30) +/* 802D8DB4 002D5CF4 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802D8DB8 002D5CF8 7C 63 02 14 */ add r3, r3, r0 +/* 802D8DBC 002D5CFC 80 1F 00 74 */ lwz r0, 0x74(r31) +/* 802D8DC0 002D5D00 7C 63 02 14 */ add r3, r3, r0 +/* 802D8DC4 002D5D04 7C 7C 1A 14 */ add r3, r28, r3 +/* 802D8DC8 002D5D08 80 BF 00 78 */ lwz r5, 0x78(r31) +/* 802D8DCC 002D5D0C 38 C0 00 00 */ li r6, 0 +/* 802D8DD0 002D5D10 38 E0 00 00 */ li r7, 0 +/* 802D8DD4 002D5D14 39 00 00 00 */ li r8, 0 +/* 802D8DD8 002D5D18 39 20 FF FF */ li r9, -1 +/* 802D8DDC 002D5D1C 39 40 00 00 */ li r10, 0 +/* 802D8DE0 002D5D20 4B FF 95 5D */ bl mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl +lbl_802D8DE4: +/* 802D8DE4 002D5D24 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8DE8 002D5D28 80 03 00 04 */ lwz r0, 4(r3) +/* 802D8DEC 002D5D2C 7C 03 02 14 */ add r0, r3, r0 +/* 802D8DF0 002D5D30 90 1F 00 48 */ stw r0, 0x48(r31) +/* 802D8DF4 002D5D34 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8DF8 002D5D38 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802D8DFC 002D5D3C 7C 03 02 14 */ add r0, r3, r0 +/* 802D8E00 002D5D40 90 1F 00 4C */ stw r0, 0x4c(r31) +/* 802D8E04 002D5D44 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8E08 002D5D48 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802D8E0C 002D5D4C 7C 03 02 14 */ add r0, r3, r0 +/* 802D8E10 002D5D50 90 1F 00 54 */ stw r0, 0x54(r31) +/* 802D8E14 002D5D54 80 7E 00 08 */ lwz r3, 8(r30) +/* 802D8E18 002D5D58 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802D8E1C 002D5D5C 7C 03 02 14 */ add r0, r3, r0 +/* 802D8E20 002D5D60 90 1F 00 6C */ stw r0, 0x6c(r31) +lbl_802D8E24: +/* 802D8E24 002D5D64 38 00 00 00 */ li r0, 0 +/* 802D8E28 002D5D68 90 1F 00 50 */ stw r0, 0x50(r31) +/* 802D8E2C 002D5D6C 38 80 00 00 */ li r4, 0 +/* 802D8E30 002D5D70 80 BF 00 4C */ lwz r5, 0x4c(r31) +/* 802D8E34 002D5D74 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8E38 002D5D78 80 03 00 08 */ lwz r0, 8(r3) +/* 802D8E3C 002D5D7C 7C 09 03 A6 */ mtctr r0 +/* 802D8E40 002D5D80 28 00 00 00 */ cmplwi r0, 0 +/* 802D8E44 002D5D84 40 81 00 30 */ ble lbl_802D8E74 +lbl_802D8E48: +/* 802D8E48 002D5D88 80 05 00 04 */ lwz r0, 4(r5) +/* 802D8E4C 002D5D8C 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D8E50 002D5D90 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f +/* 802D8E54 002D5D94 41 82 00 18 */ beq lbl_802D8E6C +/* 802D8E58 002D5D98 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b +/* 802D8E5C 002D5D9C 40 82 00 10 */ bne lbl_802D8E6C +/* 802D8E60 002D5DA0 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d +/* 802D8E64 002D5DA4 7C 80 03 78 */ or r0, r4, r0 +/* 802D8E68 002D5DA8 54 04 06 3E */ clrlwi r4, r0, 0x18 +lbl_802D8E6C: +/* 802D8E6C 002D5DAC 38 A5 00 14 */ addi r5, r5, 0x14 +/* 802D8E70 002D5DB0 42 00 FF D8 */ bdnz lbl_802D8E48 +lbl_802D8E74: +/* 802D8E74 002D5DB4 54 80 06 3F */ clrlwi. r0, r4, 0x18 +/* 802D8E78 002D5DB8 41 82 00 60 */ beq lbl_802D8ED8 +/* 802D8E7C 002D5DBC 7F A3 EB 78 */ mr r3, r29 +/* 802D8E80 002D5DC0 48 08 C2 51 */ bl func_803650D0 +/* 802D8E84 002D5DC4 7C 64 1B 78 */ mr r4, r3 +/* 802D8E88 002D5DC8 80 BF 00 38 */ lwz r5, 0x38(r31) +/* 802D8E8C 002D5DCC 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D8E90 002D5DD0 80 03 00 08 */ lwz r0, 8(r3) +/* 802D8E94 002D5DD4 54 03 10 3A */ slwi r3, r0, 2 +/* 802D8E98 002D5DD8 4B FF 55 DD */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D8E9C 002D5DDC 90 7F 00 50 */ stw r3, 0x50(r31) +/* 802D8EA0 002D5DE0 80 7F 00 50 */ lwz r3, 0x50(r31) +/* 802D8EA4 002D5DE4 28 03 00 00 */ cmplwi r3, 0 +/* 802D8EA8 002D5DE8 40 82 00 1C */ bne lbl_802D8EC4 +/* 802D8EAC 002D5DEC 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D8EB0 002D5DF0 80 9F 00 44 */ lwz r4, 0x44(r31) +/* 802D8EB4 002D5DF4 4B FF 56 95 */ bl free__7JKRHeapFPv +/* 802D8EB8 002D5DF8 38 00 00 00 */ li r0, 0 +/* 802D8EBC 002D5DFC 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D8EC0 002D5E00 48 00 00 18 */ b lbl_802D8ED8 +lbl_802D8EC4: +/* 802D8EC4 002D5E04 38 80 00 00 */ li r4, 0 +/* 802D8EC8 002D5E08 80 BF 00 44 */ lwz r5, 0x44(r31) +/* 802D8ECC 002D5E0C 80 05 00 08 */ lwz r0, 8(r5) +/* 802D8ED0 002D5E10 54 05 10 3A */ slwi r5, r0, 2 +/* 802D8ED4 002D5E14 4B D2 A5 85 */ bl func_80003458 +lbl_802D8ED8: +/* 802D8ED8 002D5E18 28 1E 00 00 */ cmplwi r30, 0 +/* 802D8EDC 002D5E1C 41 82 00 10 */ beq lbl_802D8EEC +/* 802D8EE0 002D5E20 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D8EE4 002D5E24 7F C4 F3 78 */ mr r4, r30 +/* 802D8EE8 002D5E28 4B FF 56 61 */ bl free__7JKRHeapFPv +lbl_802D8EEC: +/* 802D8EEC 002D5E2C 88 1F 00 3C */ lbz r0, 0x3c(r31) +/* 802D8EF0 002D5E30 28 00 00 00 */ cmplwi r0, 0 +/* 802D8EF4 002D5E34 40 82 00 30 */ bne lbl_802D8F24 +/* 802D8EF8 002D5E38 80 7F 00 70 */ lwz r3, 0x70(r31) +/* 802D8EFC 002D5E3C 28 03 00 00 */ cmplwi r3, 0 +/* 802D8F00 002D5E40 41 82 00 1C */ beq lbl_802D8F1C +/* 802D8F04 002D5E44 41 82 00 18 */ beq lbl_802D8F1C +/* 802D8F08 002D5E48 38 80 00 01 */ li r4, 1 +/* 802D8F0C 002D5E4C 81 83 00 00 */ lwz r12, 0(r3) +/* 802D8F10 002D5E50 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D8F14 002D5E54 7D 89 03 A6 */ mtctr r12 +/* 802D8F18 002D5E58 4E 80 04 21 */ bctrl +lbl_802D8F1C: +/* 802D8F1C 002D5E5C 38 60 00 00 */ li r3, 0 +/* 802D8F20 002D5E60 48 00 00 08 */ b lbl_802D8F28 +lbl_802D8F24: +/* 802D8F24 002D5E64 38 60 00 01 */ li r3, 1 +lbl_802D8F28: +/* 802D8F28 002D5E68 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D8F2C 002D5E6C 48 08 92 ED */ bl func_80362218 +/* 802D8F30 002D5E70 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D8F34 002D5E74 7C 08 03 A6 */ mtlr r0 +/* 802D8F38 002D5E78 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D8F3C 002D5E7C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s new file mode 100644 index 0000000000..f8e8c81c05 --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s @@ -0,0 +1,107 @@ +/* fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D8F40 002D5E80 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802D8F44 002D5E84 7C 08 02 A6 */ mflr r0 +/* 802D8F48 002D5E88 90 01 00 34 */ stw r0, 0x34(r1) +/* 802D8F4C 002D5E8C 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D8F50 002D5E90 48 08 92 89 */ bl _savegpr_28 +/* 802D8F54 002D5E94 7C 7C 1B 78 */ mr r28, r3 +/* 802D8F58 002D5E98 7C 9D 23 78 */ mr r29, r4 +/* 802D8F5C 002D5E9C 7C BE 2B 78 */ mr r30, r5 +/* 802D8F60 002D5EA0 80 A4 00 0C */ lwz r5, 0xc(r4) +/* 802D8F64 002D5EA4 7C A4 2B 78 */ mr r4, r5 +/* 802D8F68 002D5EA8 80 1D 00 04 */ lwz r0, 4(r29) +/* 802D8F6C 002D5EAC 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D8F70 002D5EB0 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D8F74 002D5EB4 40 82 00 0C */ bne lbl_802D8F80 +/* 802D8F78 002D5EB8 3B E0 00 00 */ li r31, 0 +/* 802D8F7C 002D5EBC 48 00 00 18 */ b lbl_802D8F94 +lbl_802D8F80: +/* 802D8F80 002D5EC0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 802D8F84 002D5EC4 41 82 00 0C */ beq lbl_802D8F90 +/* 802D8F88 002D5EC8 3B E0 00 02 */ li r31, 2 +/* 802D8F8C 002D5ECC 48 00 00 08 */ b lbl_802D8F94 +lbl_802D8F90: +/* 802D8F90 002D5ED0 3B E0 00 01 */ li r31, 1 +lbl_802D8F94: +/* 802D8F94 002D5ED4 28 1E 00 00 */ cmplwi r30, 0 +/* 802D8F98 002D5ED8 40 82 00 08 */ bne lbl_802D8FA0 +/* 802D8F9C 002D5EDC 3B C1 00 10 */ addi r30, r1, 0x10 +lbl_802D8FA0: +/* 802D8FA0 002D5EE0 80 1D 00 10 */ lwz r0, 0x10(r29) +/* 802D8FA4 002D5EE4 28 00 00 00 */ cmplwi r0, 0 +/* 802D8FA8 002D5EE8 40 82 00 F0 */ bne lbl_802D9098 +/* 802D8FAC 002D5EEC 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b +/* 802D8FB0 002D5EF0 41 82 00 1C */ beq lbl_802D8FCC +/* 802D8FB4 002D5EF4 80 7C 00 64 */ lwz r3, 0x64(r28) +/* 802D8FB8 002D5EF8 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D8FBC 002D5EFC 7C 03 02 14 */ add r0, r3, r0 +/* 802D8FC0 002D5F00 90 1D 00 10 */ stw r0, 0x10(r29) +/* 802D8FC4 002D5F04 90 9E 00 00 */ stw r4, 0(r30) +/* 802D8FC8 002D5F08 48 00 00 DC */ b lbl_802D90A4 +lbl_802D8FCC: +/* 802D8FCC 002D5F0C 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 802D8FD0 002D5F10 41 82 00 60 */ beq lbl_802D9030 +/* 802D8FD4 002D5F14 80 7C 00 68 */ lwz r3, 0x68(r28) +/* 802D8FD8 002D5F18 80 A3 00 14 */ lwz r5, 0x14(r3) +/* 802D8FDC 002D5F1C 80 7C 00 74 */ lwz r3, 0x74(r28) +/* 802D8FE0 002D5F20 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D8FE4 002D5F24 7C 00 2A 14 */ add r0, r0, r5 +/* 802D8FE8 002D5F28 7C 63 00 50 */ subf r3, r3, r0 +/* 802D8FEC 002D5F2C 80 BC 00 38 */ lwz r5, 0x38(r28) +/* 802D8FF0 002D5F30 7F E6 FB 78 */ mr r6, r31 +/* 802D8FF4 002D5F34 38 E1 00 0C */ addi r7, r1, 0xc +/* 802D8FF8 002D5F38 4B FF E9 1D */ bl fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc +/* 802D8FFC 002D5F3C 90 7E 00 00 */ stw r3, 0(r30) +/* 802D9000 002D5F40 80 01 00 0C */ lwz r0, 0xc(r1) +/* 802D9004 002D5F44 90 1D 00 10 */ stw r0, 0x10(r29) +/* 802D9008 002D5F48 2C 1F 00 02 */ cmpwi r31, 2 +/* 802D900C 002D5F4C 40 82 00 98 */ bne lbl_802D90A4 +/* 802D9010 002D5F50 7F 83 E3 78 */ mr r3, r28 +/* 802D9014 002D5F54 7F A4 EB 78 */ mr r4, r29 +/* 802D9018 002D5F58 80 BE 00 00 */ lwz r5, 0(r30) +/* 802D901C 002D5F5C 81 9C 00 00 */ lwz r12, 0(r28) +/* 802D9020 002D5F60 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802D9024 002D5F64 7D 89 03 A6 */ mtctr r12 +/* 802D9028 002D5F68 4E 80 04 21 */ bctrl +/* 802D902C 002D5F6C 48 00 00 78 */ b lbl_802D90A4 +lbl_802D9030: +/* 802D9030 002D5F70 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 +/* 802D9034 002D5F74 41 82 00 70 */ beq lbl_802D90A4 +/* 802D9038 002D5F78 80 7C 00 40 */ lwz r3, 0x40(r28) +/* 802D903C 002D5F7C 80 9C 00 6C */ lwz r4, 0x6c(r28) +/* 802D9040 002D5F80 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D9044 002D5F84 7C 84 02 14 */ add r4, r4, r0 +/* 802D9048 002D5F88 80 DC 00 38 */ lwz r6, 0x38(r28) +/* 802D904C 002D5F8C 7F E7 FB 78 */ mr r7, r31 +/* 802D9050 002D5F90 81 1C 00 5C */ lwz r8, 0x5c(r28) +/* 802D9054 002D5F94 39 21 00 08 */ addi r9, r1, 8 +/* 802D9058 002D5F98 4B FF F4 1D */ bl fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc +/* 802D905C 002D5F9C 28 1E 00 00 */ cmplwi r30, 0 +/* 802D9060 002D5FA0 41 82 00 08 */ beq lbl_802D9068 +/* 802D9064 002D5FA4 90 7E 00 00 */ stw r3, 0(r30) +lbl_802D9068: +/* 802D9068 002D5FA8 80 01 00 08 */ lwz r0, 8(r1) +/* 802D906C 002D5FAC 90 1D 00 10 */ stw r0, 0x10(r29) +/* 802D9070 002D5FB0 2C 1F 00 02 */ cmpwi r31, 2 +/* 802D9074 002D5FB4 40 82 00 30 */ bne lbl_802D90A4 +/* 802D9078 002D5FB8 7F 83 E3 78 */ mr r3, r28 +/* 802D907C 002D5FBC 7F A4 EB 78 */ mr r4, r29 +/* 802D9080 002D5FC0 80 BE 00 00 */ lwz r5, 0(r30) +/* 802D9084 002D5FC4 81 9C 00 00 */ lwz r12, 0(r28) +/* 802D9088 002D5FC8 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802D908C 002D5FCC 7D 89 03 A6 */ mtctr r12 +/* 802D9090 002D5FD0 4E 80 04 21 */ bctrl +/* 802D9094 002D5FD4 48 00 00 10 */ b lbl_802D90A4 +lbl_802D9098: +/* 802D9098 002D5FD8 28 1E 00 00 */ cmplwi r30, 0 +/* 802D909C 002D5FDC 41 82 00 08 */ beq lbl_802D90A4 +/* 802D90A0 002D5FE0 90 BE 00 00 */ stw r5, 0(r30) +lbl_802D90A4: +/* 802D90A4 002D5FE4 80 7D 00 10 */ lwz r3, 0x10(r29) +/* 802D90A8 002D5FE8 39 61 00 30 */ addi r11, r1, 0x30 +/* 802D90AC 002D5FEC 48 08 91 79 */ bl _restgpr_28 +/* 802D90B0 002D5FF0 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802D90B4 002D5FF4 7C 08 03 A6 */ mtlr r0 +/* 802D90B8 002D5FF8 38 21 00 30 */ addi r1, r1, 0x30 +/* 802D90BC 002D5FFC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s new file mode 100644 index 0000000000..5ec6b4dd16 --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s @@ -0,0 +1,117 @@ +/* fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D90C0 002D6000 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D90C4 002D6004 7C 08 02 A6 */ mflr r0 +/* 802D90C8 002D6008 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D90CC 002D600C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D90D0 002D6010 48 08 91 01 */ bl _savegpr_26 +/* 802D90D4 002D6014 7C 69 1B 78 */ mr r9, r3 +/* 802D90D8 002D6018 7C 9C 23 78 */ mr r28, r4 +/* 802D90DC 002D601C 7C BD 2B 78 */ mr r29, r5 +/* 802D90E0 002D6020 7C DE 33 78 */ mr r30, r6 +/* 802D90E4 002D6024 7C FF 3B 78 */ mr r31, r7 +/* 802D90E8 002D6028 3B 60 00 00 */ li r27, 0 +/* 802D90EC 002D602C 83 46 00 0C */ lwz r26, 0xc(r6) +/* 802D90F0 002D6030 38 1A 00 1F */ addi r0, r26, 0x1f +/* 802D90F4 002D6034 54 05 00 34 */ rlwinm r5, r0, 0, 0, 0x1a +/* 802D90F8 002D6038 80 06 00 04 */ lwz r0, 4(r6) +/* 802D90FC 002D603C 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D9100 002D6040 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D9104 002D6044 40 82 00 0C */ bne lbl_802D9110 +/* 802D9108 002D6048 39 00 00 00 */ li r8, 0 +/* 802D910C 002D604C 48 00 00 18 */ b lbl_802D9124 +lbl_802D9110: +/* 802D9110 002D6050 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 802D9114 002D6054 41 82 00 0C */ beq lbl_802D9120 +/* 802D9118 002D6058 39 00 00 02 */ li r8, 2 +/* 802D911C 002D605C 48 00 00 08 */ b lbl_802D9124 +lbl_802D9120: +/* 802D9120 002D6060 39 00 00 01 */ li r8, 1 +lbl_802D9124: +/* 802D9124 002D6064 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 802D9128 002D6068 28 00 00 00 */ cmplwi r0, 0 +/* 802D912C 002D606C 41 82 00 54 */ beq lbl_802D9180 +/* 802D9130 002D6070 2C 08 00 02 */ cmpwi r8, 2 +/* 802D9134 002D6074 40 82 00 28 */ bne lbl_802D915C +/* 802D9138 002D6078 7D 23 4B 78 */ mr r3, r9 +/* 802D913C 002D607C 7F C4 F3 78 */ mr r4, r30 +/* 802D9140 002D6080 81 89 00 00 */ lwz r12, 0(r9) +/* 802D9144 002D6084 81 8C 00 4C */ lwz r12, 0x4c(r12) +/* 802D9148 002D6088 7D 89 03 A6 */ mtctr r12 +/* 802D914C 002D608C 4E 80 04 21 */ bctrl +/* 802D9150 002D6090 28 03 00 00 */ cmplwi r3, 0 +/* 802D9154 002D6094 41 82 00 08 */ beq lbl_802D915C +/* 802D9158 002D6098 7C 7A 1B 78 */ mr r26, r3 +lbl_802D915C: +/* 802D915C 002D609C 7C 1A E8 40 */ cmplw r26, r29 +/* 802D9160 002D60A0 40 81 00 08 */ ble lbl_802D9168 +/* 802D9164 002D60A4 7F BA EB 78 */ mr r26, r29 +lbl_802D9168: +/* 802D9168 002D60A8 7F 83 E3 78 */ mr r3, r28 +/* 802D916C 002D60AC 80 9E 00 10 */ lwz r4, 0x10(r30) +/* 802D9170 002D60B0 7F 45 D3 78 */ mr r5, r26 +/* 802D9174 002D60B4 4B FF 59 A5 */ bl copyMemory__7JKRHeapFPvPvUl +/* 802D9178 002D60B8 7F 5B D3 78 */ mr r27, r26 +/* 802D917C 002D60BC 48 00 00 BC */ b lbl_802D9238 +lbl_802D9180: +/* 802D9180 002D60C0 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b +/* 802D9184 002D60C4 41 82 00 2C */ beq lbl_802D91B0 +/* 802D9188 002D60C8 80 69 00 64 */ lwz r3, 0x64(r9) +/* 802D918C 002D60CC 80 1E 00 08 */ lwz r0, 8(r30) +/* 802D9190 002D60D0 7C 63 02 14 */ add r3, r3, r0 +/* 802D9194 002D60D4 7C A4 2B 78 */ mr r4, r5 +/* 802D9198 002D60D8 7F 85 E3 78 */ mr r5, r28 +/* 802D919C 002D60DC 57 A6 00 34 */ rlwinm r6, r29, 0, 0, 0x1a +/* 802D91A0 002D60E0 7D 07 43 78 */ mr r7, r8 +/* 802D91A4 002D60E4 4B FF DD B9 */ bl fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli +/* 802D91A8 002D60E8 7C 7B 1B 78 */ mr r27, r3 +/* 802D91AC 002D60EC 48 00 00 8C */ b lbl_802D9238 +lbl_802D91B0: +/* 802D91B0 002D60F0 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 802D91B4 002D60F4 41 82 00 38 */ beq lbl_802D91EC +/* 802D91B8 002D60F8 80 69 00 68 */ lwz r3, 0x68(r9) +/* 802D91BC 002D60FC 80 83 00 14 */ lwz r4, 0x14(r3) +/* 802D91C0 002D6100 80 69 00 74 */ lwz r3, 0x74(r9) +/* 802D91C4 002D6104 80 1E 00 08 */ lwz r0, 8(r30) +/* 802D91C8 002D6108 7C 00 22 14 */ add r0, r0, r4 +/* 802D91CC 002D610C 7C 63 00 50 */ subf r3, r3, r0 +/* 802D91D0 002D6110 7C A4 2B 78 */ mr r4, r5 +/* 802D91D4 002D6114 7F 85 E3 78 */ mr r5, r28 +/* 802D91D8 002D6118 57 A6 00 34 */ rlwinm r6, r29, 0, 0, 0x1a +/* 802D91DC 002D611C 7D 07 43 78 */ mr r7, r8 +/* 802D91E0 002D6120 4B FF E6 79 */ bl fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli +/* 802D91E4 002D6124 7C 7B 1B 78 */ mr r27, r3 +/* 802D91E8 002D6128 48 00 00 50 */ b lbl_802D9238 +lbl_802D91EC: +/* 802D91EC 002D612C 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 +/* 802D91F0 002D6130 41 82 00 2C */ beq lbl_802D921C +/* 802D91F4 002D6134 80 69 00 40 */ lwz r3, 0x40(r9) +/* 802D91F8 002D6138 80 89 00 6C */ lwz r4, 0x6c(r9) +/* 802D91FC 002D613C 80 1E 00 08 */ lwz r0, 8(r30) +/* 802D9200 002D6140 7C 84 02 14 */ add r4, r4, r0 +/* 802D9204 002D6144 7F 86 E3 78 */ mr r6, r28 +/* 802D9208 002D6148 57 A7 00 34 */ rlwinm r7, r29, 0, 0, 0x1a +/* 802D920C 002D614C 81 29 00 5C */ lwz r9, 0x5c(r9) +/* 802D9210 002D6150 4B FF F0 5D */ bl fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii +/* 802D9214 002D6154 7C 7B 1B 78 */ mr r27, r3 +/* 802D9218 002D6158 48 00 00 20 */ b lbl_802D9238 +lbl_802D921C: +/* 802D921C 002D615C 3C 60 80 3A */ lis r3, lbl_8039D220@ha +/* 802D9220 002D6160 38 63 D2 20 */ addi r3, r3, lbl_8039D220@l +/* 802D9224 002D6164 38 80 03 08 */ li r4, 0x308 +/* 802D9228 002D6168 38 A3 00 13 */ addi r5, r3, 0x13 +/* 802D922C 002D616C 38 C3 00 16 */ addi r6, r3, 0x16 +/* 802D9230 002D6170 4C C6 31 82 */ crclr 6 +/* 802D9234 002D6174 48 00 8F C9 */ bl JUTException_NS_panic_f +lbl_802D9238: +/* 802D9238 002D6178 28 1F 00 00 */ cmplwi r31, 0 +/* 802D923C 002D617C 41 82 00 08 */ beq lbl_802D9244 +/* 802D9240 002D6180 93 7F 00 00 */ stw r27, 0(r31) +lbl_802D9244: +/* 802D9244 002D6184 7F 83 E3 78 */ mr r3, r28 +/* 802D9248 002D6188 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D924C 002D618C 48 08 8F D1 */ bl _restgpr_26 +/* 802D9250 002D6190 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D9254 002D6194 7C 08 03 A6 */ mtlr r0 +/* 802D9258 002D6198 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D925C 002D619C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D9260.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D9260.s new file mode 100644 index 0000000000..e5101f0554 --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D9260.s @@ -0,0 +1,44 @@ +/* removeResourceAll__14JKRCompArchiveFv __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::removeResourceAll(void) */ +/* missing reference */ +/* 802D9260 002D61A0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D9264 002D61A4 7C 08 02 A6 */ mflr r0 +/* 802D9268 002D61A8 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D926C 002D61AC 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D9270 002D61B0 48 08 8F 69 */ bl _savegpr_28 +/* 802D9274 002D61B4 7C 7C 1B 78 */ mr r28, r3 +/* 802D9278 002D61B8 80 03 00 44 */ lwz r0, 0x44(r3) +/* 802D927C 002D61BC 28 00 00 00 */ cmplwi r0, 0 +/* 802D9280 002D61C0 41 82 00 5C */ beq lbl_802D92DC +/* 802D9284 002D61C4 88 1C 00 3C */ lbz r0, 0x3c(r28) +/* 802D9288 002D61C8 28 00 00 01 */ cmplwi r0, 1 +/* 802D928C 002D61CC 41 82 00 50 */ beq lbl_802D92DC +/* 802D9290 002D61D0 83 DC 00 4C */ lwz r30, 0x4c(r28) +/* 802D9294 002D61D4 3B A0 00 00 */ li r29, 0 +/* 802D9298 002D61D8 3B E0 00 00 */ li r31, 0 +/* 802D929C 002D61DC 48 00 00 30 */ b lbl_802D92CC +lbl_802D92A0: +/* 802D92A0 002D61E0 80 1E 00 04 */ lwz r0, 4(r30) +/* 802D92A4 002D61E4 54 00 46 3E */ srwi r0, r0, 0x18 +/* 802D92A8 002D61E8 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 802D92AC 002D61EC 28 03 00 00 */ cmplwi r3, 0 +/* 802D92B0 002D61F0 41 82 00 18 */ beq lbl_802D92C8 +/* 802D92B4 002D61F4 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b +/* 802D92B8 002D61F8 40 82 00 0C */ bne lbl_802D92C4 +/* 802D92BC 002D61FC 80 9C 00 38 */ lwz r4, 0x38(r28) +/* 802D92C0 002D6200 4B FF 52 41 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D92C4: +/* 802D92C4 002D6204 93 FE 00 10 */ stw r31, 0x10(r30) +lbl_802D92C8: +/* 802D92C8 002D6208 3B BD 00 01 */ addi r29, r29, 1 +lbl_802D92CC: +/* 802D92CC 002D620C 80 7C 00 44 */ lwz r3, 0x44(r28) +/* 802D92D0 002D6210 80 03 00 08 */ lwz r0, 8(r3) +/* 802D92D4 002D6214 7C 1D 00 40 */ cmplw r29, r0 +/* 802D92D8 002D6218 41 80 FF C8 */ blt lbl_802D92A0 +lbl_802D92DC: +/* 802D92DC 002D621C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D92E0 002D6220 48 08 8F 45 */ bl _restgpr_28 +/* 802D92E4 002D6224 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D92E8 002D6228 7C 08 03 A6 */ mtlr r0 +/* 802D92EC 002D622C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D92F0 002D6230 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D92F4.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D92F4.s new file mode 100644 index 0000000000..5725c04d72 --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D92F4.s @@ -0,0 +1,32 @@ +/* removeResource__14JKRCompArchiveFPv __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::removeResource(void *) */ +/* missing reference */ +/* 802D92F4 002D6234 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D92F8 002D6238 7C 08 02 A6 */ mflr r0 +/* 802D92FC 002D623C 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D9300 002D6240 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D9304 002D6244 48 08 8E D9 */ bl _savegpr_29 +/* 802D9308 002D6248 7C 7D 1B 78 */ mr r29, r3 +/* 802D930C 002D624C 7C 9E 23 78 */ mr r30, r4 +/* 802D9310 002D6250 4B FF D4 25 */ bl findPtrResource__10JKRArchiveCFPCv +/* 802D9314 002D6254 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802D9318 002D6258 40 82 00 0C */ bne lbl_802D9324 +/* 802D931C 002D625C 38 60 00 00 */ li r3, 0 +/* 802D9320 002D6260 48 00 00 28 */ b lbl_802D9348 +lbl_802D9324: +/* 802D9324 002D6264 80 1F 00 04 */ lwz r0, 4(r31) +/* 802D9328 002D6268 54 00 46 F7 */ rlwinm. r0, r0, 8, 0x1b, 0x1b +/* 802D932C 002D626C 40 82 00 10 */ bne lbl_802D933C +/* 802D9330 002D6270 7F C3 F3 78 */ mr r3, r30 +/* 802D9334 002D6274 80 9D 00 38 */ lwz r4, 0x38(r29) +/* 802D9338 002D6278 4B FF 51 C9 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D933C: +/* 802D933C 002D627C 38 00 00 00 */ li r0, 0 +/* 802D9340 002D6280 90 1F 00 10 */ stw r0, 0x10(r31) +/* 802D9344 002D6284 38 60 00 01 */ li r3, 1 +lbl_802D9348: +/* 802D9348 002D6288 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D934C 002D628C 48 08 8E DD */ bl _restgpr_29 +/* 802D9350 002D6290 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D9354 002D6294 7C 08 03 A6 */ mtlr r0 +/* 802D9358 002D6298 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D935C 002D629C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRCompArchive/asm/func_802D9360.s b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D9360.s new file mode 100644 index 0000000000..2ec587696c --- /dev/null +++ b/include/JSystem/JKernel/JKRCompArchive/asm/func_802D9360.s @@ -0,0 +1,120 @@ +/* getExpandedResSize__14JKRCompArchiveCFPCv __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection::getExpandedResSize( const(void const *)) */ +/* missing reference */ +/* 802D9360 002D62A0 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 802D9364 002D62A4 7C 08 02 A6 */ mflr r0 +/* 802D9368 002D62A8 90 01 00 64 */ stw r0, 0x64(r1) +/* 802D936C 002D62AC 39 61 00 60 */ addi r11, r1, 0x60 +/* 802D9370 002D62B0 48 08 8E 6D */ bl _savegpr_29 +/* 802D9374 002D62B4 7C 7E 1B 78 */ mr r30, r3 +/* 802D9378 002D62B8 7C 9D 23 78 */ mr r29, r4 +/* 802D937C 002D62BC 80 03 00 50 */ lwz r0, 0x50(r3) +/* 802D9380 002D62C0 28 00 00 00 */ cmplwi r0, 0 +/* 802D9384 002D62C4 40 82 00 18 */ bne lbl_802D939C +/* 802D9388 002D62C8 81 83 00 00 */ lwz r12, 0(r3) +/* 802D938C 002D62CC 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802D9390 002D62D0 7D 89 03 A6 */ mtctr r12 +/* 802D9394 002D62D4 4E 80 04 21 */ bctrl +/* 802D9398 002D62D8 48 00 01 68 */ b lbl_802D9500 +lbl_802D939C: +/* 802D939C 002D62DC 4B FF D3 99 */ bl findPtrResource__10JKRArchiveCFPCv +/* 802D93A0 002D62E0 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802D93A4 002D62E4 40 82 00 0C */ bne lbl_802D93B0 +/* 802D93A8 002D62E8 38 60 FF FF */ li r3, -1 +/* 802D93AC 002D62EC 48 00 01 54 */ b lbl_802D9500 +lbl_802D93B0: +/* 802D93B0 002D62F0 80 1F 00 04 */ lwz r0, 4(r31) +/* 802D93B4 002D62F4 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D93B8 002D62F8 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D93BC 002D62FC 40 82 00 20 */ bne lbl_802D93DC +/* 802D93C0 002D6300 7F C3 F3 78 */ mr r3, r30 +/* 802D93C4 002D6304 7F A4 EB 78 */ mr r4, r29 +/* 802D93C8 002D6308 81 9E 00 00 */ lwz r12, 0(r30) +/* 802D93CC 002D630C 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802D93D0 002D6310 7D 89 03 A6 */ mtctr r12 +/* 802D93D4 002D6314 4E 80 04 21 */ bctrl +/* 802D93D8 002D6318 48 00 01 28 */ b lbl_802D9500 +lbl_802D93DC: +/* 802D93DC 002D631C 54 60 06 F7 */ rlwinm. r0, r3, 0, 0x1b, 0x1b +/* 802D93E0 002D6320 41 82 00 28 */ beq lbl_802D9408 +/* 802D93E4 002D6324 88 BD 00 07 */ lbz r5, 7(r29) +/* 802D93E8 002D6328 88 9D 00 06 */ lbz r4, 6(r29) +/* 802D93EC 002D632C 88 7D 00 04 */ lbz r3, 4(r29) +/* 802D93F0 002D6330 88 1D 00 05 */ lbz r0, 5(r29) +/* 802D93F4 002D6334 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D93F8 002D6338 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D93FC 002D633C 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D9400 002D6340 7C A3 03 78 */ or r3, r5, r0 +/* 802D9404 002D6344 48 00 00 FC */ b lbl_802D9500 +lbl_802D9408: +/* 802D9408 002D6348 38 01 00 2F */ addi r0, r1, 0x2f +/* 802D940C 002D634C 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a +/* 802D9410 002D6350 54 60 06 B5 */ rlwinm. r0, r3, 0, 0x1a, 0x1a +/* 802D9414 002D6354 41 82 00 44 */ beq lbl_802D9458 +/* 802D9418 002D6358 80 7E 00 68 */ lwz r3, 0x68(r30) +/* 802D941C 002D635C 80 63 00 14 */ lwz r3, 0x14(r3) +/* 802D9420 002D6360 80 1F 00 08 */ lwz r0, 8(r31) +/* 802D9424 002D6364 7C 60 1A 14 */ add r3, r0, r3 +/* 802D9428 002D6368 7F A4 EB 78 */ mr r4, r29 +/* 802D942C 002D636C 38 A0 00 20 */ li r5, 0x20 +/* 802D9430 002D6370 38 C0 00 00 */ li r6, 0 +/* 802D9434 002D6374 38 E0 00 00 */ li r7, 0 +/* 802D9438 002D6378 39 00 00 00 */ li r8, 0 +/* 802D943C 002D637C 39 20 FF FF */ li r9, -1 +/* 802D9440 002D6380 39 40 00 00 */ li r10, 0 +/* 802D9444 002D6384 4B FF 91 71 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl +/* 802D9448 002D6388 7F A3 EB 78 */ mr r3, r29 +/* 802D944C 002D638C 38 80 00 20 */ li r4, 0x20 +/* 802D9450 002D6390 48 06 21 31 */ bl DCInvalidateRange +/* 802D9454 002D6394 48 00 00 6C */ b lbl_802D94C0 +lbl_802D9458: +/* 802D9458 002D6398 54 60 06 73 */ rlwinm. r0, r3, 0, 0x19, 0x19 +/* 802D945C 002D639C 41 82 00 48 */ beq lbl_802D94A4 +/* 802D9460 002D63A0 38 00 00 00 */ li r0, 0 +/* 802D9464 002D63A4 90 01 00 08 */ stw r0, 8(r1) +/* 802D9468 002D63A8 80 7E 00 40 */ lwz r3, 0x40(r30) +/* 802D946C 002D63AC 7F A4 EB 78 */ mr r4, r29 +/* 802D9470 002D63B0 38 A0 00 02 */ li r5, 2 +/* 802D9474 002D63B4 38 C0 00 20 */ li r6, 0x20 +/* 802D9478 002D63B8 38 E0 00 00 */ li r7, 0 +/* 802D947C 002D63BC 39 00 00 01 */ li r8, 1 +/* 802D9480 002D63C0 81 3E 00 6C */ lwz r9, 0x6c(r30) +/* 802D9484 002D63C4 80 1F 00 08 */ lwz r0, 8(r31) +/* 802D9488 002D63C8 7D 29 02 14 */ add r9, r9, r0 +/* 802D948C 002D63CC 39 40 00 00 */ li r10, 0 +/* 802D9490 002D63D0 48 00 07 C5 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D9494 002D63D4 7F A3 EB 78 */ mr r3, r29 +/* 802D9498 002D63D8 38 80 00 20 */ li r4, 0x20 +/* 802D949C 002D63DC 48 06 20 E5 */ bl DCInvalidateRange +/* 802D94A0 002D63E0 48 00 00 20 */ b lbl_802D94C0 +lbl_802D94A4: +/* 802D94A4 002D63E4 3C 60 80 3A */ lis r3, lbl_8039D220@ha +/* 802D94A8 002D63E8 38 63 D2 20 */ addi r3, r3, lbl_8039D220@l +/* 802D94AC 002D63EC 38 80 03 AF */ li r4, 0x3af +/* 802D94B0 002D63F0 38 A3 00 13 */ addi r5, r3, 0x13 +/* 802D94B4 002D63F4 38 C3 00 27 */ addi r6, r3, 0x27 +/* 802D94B8 002D63F8 4C C6 31 82 */ crclr 6 +/* 802D94BC 002D63FC 48 00 8D 41 */ bl JUTException_NS_panic_f +lbl_802D94C0: +/* 802D94C0 002D6400 88 BD 00 07 */ lbz r5, 7(r29) +/* 802D94C4 002D6404 88 9D 00 06 */ lbz r4, 6(r29) +/* 802D94C8 002D6408 88 7D 00 04 */ lbz r3, 4(r29) +/* 802D94CC 002D640C 88 1D 00 05 */ lbz r0, 5(r29) +/* 802D94D0 002D6410 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D94D4 002D6414 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D94D8 002D6418 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D94DC 002D641C 7C BD 03 78 */ or r29, r5, r0 +/* 802D94E0 002D6420 7F C3 F3 78 */ mr r3, r30 +/* 802D94E4 002D6424 7F E4 FB 78 */ mr r4, r31 +/* 802D94E8 002D6428 7F A5 EB 78 */ mr r5, r29 +/* 802D94EC 002D642C 81 9E 00 00 */ lwz r12, 0(r30) +/* 802D94F0 002D6430 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802D94F4 002D6434 7D 89 03 A6 */ mtctr r12 +/* 802D94F8 002D6438 4E 80 04 21 */ bctrl +/* 802D94FC 002D643C 7F A3 EB 78 */ mr r3, r29 +lbl_802D9500: +/* 802D9500 002D6440 39 61 00 60 */ addi r11, r1, 0x60 +/* 802D9504 002D6444 48 08 8D 25 */ bl _restgpr_29 +/* 802D9508 002D6448 80 01 00 64 */ lwz r0, 0x64(r1) +/* 802D950C 002D644C 7C 08 03 A6 */ mtlr r0 +/* 802D9510 002D6450 38 21 00 60 */ addi r1, r1, 0x60 +/* 802D9514 002D6454 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/JKRDecomp.h b/include/JSystem/JKernel/JKRDecomp/JKRDecomp.h new file mode 100644 index 0000000000..86e6f67408 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/JKRDecomp.h @@ -0,0 +1,33 @@ +#ifndef __JKRDECOMP_H__ +#define __JKRDECOMP_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRThread/JKRThread.h" + +class JKRDecompCommand { + public: + JKRDecompCommand(); + ~JKRDecompCommand(); +}; + +class JKRDecomp : public JKRThread { + private: + JKRDecomp(long); + virtual ~JKRDecomp(void); + + /* vt[03] */ virtual void* run(); /* override */ + + public: + static void create(long); + static void prepareCommand(u8*, u8*, u32, u32, void (*)(u32)); + static void sendCommand(JKRDecompCommand*); + static void sync(JKRDecompCommand*, int); + static void orderAsync(u8*, u8*, u32, u32, void (*)(u32)); + static void orderSync(u8*, u8*, u32, u32); + static void decode(u8*, u8*, u32, u32); + static void decodeSZP(u8*, u8*, u32, u32); + static void decodeSZS(u8*, u8*, u32, u32); + static void checkCompressed(u8*); +}; + +#endif diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB680.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB680.s new file mode 100644 index 0000000000..120bf1b400 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB680.s @@ -0,0 +1,28 @@ +/* create__9JKRDecompFl __ct__9JKRDecompFl::create(long) */ +/* JKRDecomp_NS_create */ +/* 802DB680 002D85C0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB684 002D85C4 7C 08 02 A6 */ mflr r0 +/* 802DB688 002D85C8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB68C 002D85CC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB690 002D85D0 7C 7F 1B 78 */ mr r31, r3 +/* 802DB694 002D85D4 80 0D 8F 30 */ lwz r0, lbl_804514B0-_SDA_BASE_(r13) +/* 802DB698 002D85D8 28 00 00 00 */ cmplwi r0, 0 +/* 802DB69C 002D85DC 40 82 00 2C */ bne lbl_802DB6C8 +/* 802DB6A0 002D85E0 38 60 00 7C */ li r3, 0x7c +/* 802DB6A4 002D85E4 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802DB6A8 002D85E8 38 A0 00 00 */ li r5, 0 +/* 802DB6AC 002D85EC 4B FF 35 ED */ bl __nw__FUlP7JKRHeapi +/* 802DB6B0 002D85F0 7C 60 1B 79 */ or. r0, r3, r3 +/* 802DB6B4 002D85F4 41 82 00 10 */ beq lbl_802DB6C4 +/* 802DB6B8 002D85F8 7F E4 FB 78 */ mr r4, r31 +/* 802DB6BC 002D85FC 48 00 00 25 */ bl __ct__9JKRDecompFl +/* 802DB6C0 002D8600 7C 60 1B 78 */ mr r0, r3 +lbl_802DB6C4: +/* 802DB6C4 002D8604 90 0D 8F 30 */ stw r0, lbl_804514B0-_SDA_BASE_(r13) +lbl_802DB6C8: +/* 802DB6C8 002D8608 80 6D 8F 30 */ lwz r3, lbl_804514B0-_SDA_BASE_(r13) +/* 802DB6CC 002D860C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB6D0 002D8610 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB6D4 002D8614 7C 08 03 A6 */ mtlr r0 +/* 802DB6D8 002D8618 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB6DC 002D861C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB6E0.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB6E0.s new file mode 100644 index 0000000000..2320137d1e --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB6E0.s @@ -0,0 +1,22 @@ +/* __ct__9JKRDecompFl __ct__9JKRDecompFl::__ct(long) */ +/* JKRDecomp */ +/* 802DB6E0 002D8620 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB6E4 002D8624 7C 08 02 A6 */ mflr r0 +/* 802DB6E8 002D8628 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB6EC 002D862C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB6F0 002D8630 7C 7F 1B 78 */ mr r31, r3 +/* 802DB6F4 002D8634 7C 86 23 78 */ mr r6, r4 +/* 802DB6F8 002D8638 38 80 08 00 */ li r4, 0x800 +/* 802DB6FC 002D863C 38 A0 00 10 */ li r5, 0x10 +/* 802DB700 002D8640 4B FF 5E 69 */ bl __ct__9JKRThreadFUlii +/* 802DB704 002D8644 3C 60 80 3D */ lis r3, lbl_803CC4A0@ha +/* 802DB708 002D8648 38 03 C4 A0 */ addi r0, r3, lbl_803CC4A0@l +/* 802DB70C 002D864C 90 1F 00 00 */ stw r0, 0(r31) +/* 802DB710 002D8650 80 7F 00 2C */ lwz r3, 0x2c(r31) +/* 802DB714 002D8654 48 06 60 A1 */ bl OSResumeThread +/* 802DB718 002D8658 7F E3 FB 78 */ mr r3, r31 +/* 802DB71C 002D865C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB720 002D8660 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB724 002D8664 7C 08 03 A6 */ mtlr r0 +/* 802DB728 002D8668 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB72C 002D866C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB730.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB730.s new file mode 100644 index 0000000000..66afe63f54 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB730.s @@ -0,0 +1,27 @@ +/* __dt__9JKRDecompFv __ct__9JKRDecompFl::__dt(void) */ +/* missing reference */ +/* 802DB730 002D8670 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB734 002D8674 7C 08 02 A6 */ mflr r0 +/* 802DB738 002D8678 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB73C 002D867C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB740 002D8680 93 C1 00 08 */ stw r30, 8(r1) +/* 802DB744 002D8684 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802DB748 002D8688 7C 9F 23 78 */ mr r31, r4 +/* 802DB74C 002D868C 41 82 00 28 */ beq lbl_802DB774 +/* 802DB750 002D8690 3C 80 80 3D */ lis r4, lbl_803CC4A0@ha +/* 802DB754 002D8694 38 04 C4 A0 */ addi r0, r4, lbl_803CC4A0@l +/* 802DB758 002D8698 90 1E 00 00 */ stw r0, 0(r30) +/* 802DB75C 002D869C 38 80 00 00 */ li r4, 0 +/* 802DB760 002D86A0 4B FF 5F F9 */ bl __dt__9JKRThreadFv +/* 802DB764 002D86A4 7F E0 07 35 */ extsh. r0, r31 +/* 802DB768 002D86A8 40 81 00 0C */ ble lbl_802DB774 +/* 802DB76C 002D86AC 7F C3 F3 78 */ mr r3, r30 +/* 802DB770 002D86B0 4B FF 35 CD */ bl __dl__FPv +lbl_802DB774: +/* 802DB774 002D86B4 7F C3 F3 78 */ mr r3, r30 +/* 802DB778 002D86B8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB77C 002D86BC 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DB780 002D86C0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB784 002D86C4 7C 08 03 A6 */ mtlr r0 +/* 802DB788 002D86C8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB78C 002D86CC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB790.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB790.s new file mode 100644 index 0000000000..20e402df67 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB790.s @@ -0,0 +1,56 @@ +/* run__9JKRDecompFv __ct__9JKRDecompFl::run(void) */ +/* missing reference */ +/* 802DB790 002D86D0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DB794 002D86D4 7C 08 02 A6 */ mflr r0 +/* 802DB798 002D86D8 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DB79C 002D86DC 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802DB7A0 002D86E0 93 C1 00 18 */ stw r30, 0x18(r1) +/* 802DB7A4 002D86E4 3C 60 80 3D */ lis r3, lbl_803CC480@ha +/* 802DB7A8 002D86E8 38 63 C4 80 */ addi r3, r3, lbl_803CC480@l +/* 802DB7AC 002D86EC 3C 80 80 3D */ lis r4, lbl_803CC460@ha +/* 802DB7B0 002D86F0 38 84 C4 60 */ addi r4, r4, lbl_803CC460@l +/* 802DB7B4 002D86F4 38 A0 00 08 */ li r5, 8 +/* 802DB7B8 002D86F8 48 06 31 DD */ bl OSInitMessageQueue +/* 802DB7BC 002D86FC 3C 60 80 3D */ lis r3, lbl_803CC480@ha +/* 802DB7C0 002D8700 3B E3 C4 80 */ addi r31, r3, lbl_803CC480@l +lbl_802DB7C4: +/* 802DB7C4 002D8704 7F E3 FB 78 */ mr r3, r31 +/* 802DB7C8 002D8708 38 81 00 08 */ addi r4, r1, 8 +/* 802DB7CC 002D870C 38 A0 00 01 */ li r5, 1 +/* 802DB7D0 002D8710 48 06 32 ED */ bl OSReceiveMessage +/* 802DB7D4 002D8714 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DB7D8 002D8718 80 7E 00 04 */ lwz r3, 4(r30) +/* 802DB7DC 002D871C 80 9E 00 08 */ lwz r4, 8(r30) +/* 802DB7E0 002D8720 80 BE 00 0C */ lwz r5, 0xc(r30) +/* 802DB7E4 002D8724 80 DE 00 10 */ lwz r6, 0x10(r30) +/* 802DB7E8 002D8728 48 00 01 F5 */ bl decode__9JKRDecompFPUcPUcUlUl +/* 802DB7EC 002D872C 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 802DB7F0 002D8730 2C 00 00 00 */ cmpwi r0, 0 +/* 802DB7F4 002D8734 41 82 00 18 */ beq lbl_802DB80C +/* 802DB7F8 002D8738 2C 00 00 01 */ cmpwi r0, 1 +/* 802DB7FC 002D873C 40 82 FF C8 */ bne lbl_802DB7C4 +/* 802DB800 002D8740 80 7E 00 24 */ lwz r3, 0x24(r30) +/* 802DB804 002D8744 4B FF 7D F1 */ bl sendCommand__12JKRAramPieceFP12JKRAMCommand +/* 802DB808 002D8748 4B FF FF BC */ b lbl_802DB7C4 +lbl_802DB80C: +/* 802DB80C 002D874C 81 9E 00 14 */ lwz r12, 0x14(r30) +/* 802DB810 002D8750 28 0C 00 00 */ cmplwi r12, 0 +/* 802DB814 002D8754 41 82 00 14 */ beq lbl_802DB828 +/* 802DB818 002D8758 7F C3 F3 78 */ mr r3, r30 +/* 802DB81C 002D875C 7D 89 03 A6 */ mtctr r12 +/* 802DB820 002D8760 4E 80 04 21 */ bctrl +/* 802DB824 002D8764 4B FF FF A0 */ b lbl_802DB7C4 +lbl_802DB828: +/* 802DB828 002D8768 80 7E 00 1C */ lwz r3, 0x1c(r30) +/* 802DB82C 002D876C 28 03 00 00 */ cmplwi r3, 0 +/* 802DB830 002D8770 41 82 00 14 */ beq lbl_802DB844 +/* 802DB834 002D8774 38 80 00 01 */ li r4, 1 +/* 802DB838 002D8778 38 A0 00 00 */ li r5, 0 +/* 802DB83C 002D877C 48 06 31 B9 */ bl OSSendMessage +/* 802DB840 002D8780 4B FF FF 84 */ b lbl_802DB7C4 +lbl_802DB844: +/* 802DB844 002D8784 38 7E 00 28 */ addi r3, r30, 0x28 +/* 802DB848 002D8788 38 80 00 01 */ li r4, 1 +/* 802DB84C 002D878C 38 A0 00 00 */ li r5, 0 +/* 802DB850 002D8790 48 06 31 A5 */ bl OSSendMessage +/* 802DB854 002D8794 4B FF FF 70 */ b lbl_802DB7C4 diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB858.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB858.s new file mode 100644 index 0000000000..537dcd2aba --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB858.s @@ -0,0 +1,33 @@ +/* prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v __ct__9JKRDecompFl::prepareCommand(unsigned char *, unsigned char *, unsigned long, unsigned long, void (*)(unsigned long)) */ +/* JKRDecomp_NS_prepareCommand */ +/* 802DB858 002D8798 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DB85C 002D879C 7C 08 02 A6 */ mflr r0 +/* 802DB860 002D87A0 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DB864 002D87A4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DB868 002D87A8 48 08 69 6D */ bl _savegpr_27 +/* 802DB86C 002D87AC 7C 7B 1B 78 */ mr r27, r3 +/* 802DB870 002D87B0 7C 9C 23 78 */ mr r28, r4 +/* 802DB874 002D87B4 7C BD 2B 78 */ mr r29, r5 +/* 802DB878 002D87B8 7C DE 33 78 */ mr r30, r6 +/* 802DB87C 002D87BC 7C FF 3B 78 */ mr r31, r7 +/* 802DB880 002D87C0 38 60 00 4C */ li r3, 0x4c +/* 802DB884 002D87C4 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802DB888 002D87C8 38 A0 FF FC */ li r5, -4 +/* 802DB88C 002D87CC 4B FF 34 0D */ bl __nw__FUlP7JKRHeapi +/* 802DB890 002D87D0 7C 64 1B 79 */ or. r4, r3, r3 +/* 802DB894 002D87D4 41 82 00 0C */ beq lbl_802DB8A0 +/* 802DB898 002D87D8 48 00 04 D9 */ bl __ct__16JKRDecompCommandFv +/* 802DB89C 002D87DC 7C 64 1B 78 */ mr r4, r3 +lbl_802DB8A0: +/* 802DB8A0 002D87E0 93 64 00 04 */ stw r27, 4(r4) +/* 802DB8A4 002D87E4 93 84 00 08 */ stw r28, 8(r4) +/* 802DB8A8 002D87E8 93 A4 00 0C */ stw r29, 0xc(r4) +/* 802DB8AC 002D87EC 93 C4 00 10 */ stw r30, 0x10(r4) +/* 802DB8B0 002D87F0 93 E4 00 14 */ stw r31, 0x14(r4) +/* 802DB8B4 002D87F4 7C 83 23 78 */ mr r3, r4 +/* 802DB8B8 002D87F8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DB8BC 002D87FC 48 08 69 65 */ bl _restgpr_27 +/* 802DB8C0 002D8800 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DB8C4 002D8804 7C 08 03 A6 */ mtlr r0 +/* 802DB8C8 002D8808 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DB8CC 002D880C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB8D0.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB8D0.s new file mode 100644 index 0000000000..13b9e1962e --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB8D0.s @@ -0,0 +1,14 @@ +/* sendCommand__9JKRDecompFP16JKRDecompCommand __ct__9JKRDecompFl::sendCommand(JKRDecompCommand *) */ +/* JKRDecomp_NS_sendCommand */ +/* 802DB8D0 002D8810 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB8D4 002D8814 7C 08 02 A6 */ mflr r0 +/* 802DB8D8 002D8818 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB8DC 002D881C 7C 64 1B 78 */ mr r4, r3 +/* 802DB8E0 002D8820 3C 60 80 3D */ lis r3, lbl_803CC480@ha +/* 802DB8E4 002D8824 38 63 C4 80 */ addi r3, r3, lbl_803CC480@l +/* 802DB8E8 002D8828 38 A0 00 00 */ li r5, 0 +/* 802DB8EC 002D882C 48 06 31 09 */ bl OSSendMessage +/* 802DB8F0 002D8830 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB8F4 002D8834 7C 08 03 A6 */ mtlr r0 +/* 802DB8F8 002D8838 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB8FC 002D883C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB900.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB900.s new file mode 100644 index 0000000000..c8d3c02862 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB900.s @@ -0,0 +1,15 @@ +/* orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v __ct__9JKRDecompFl::orderAsync(unsigned char *, unsigned char *, unsigned long, unsigned long, void (*)(unsigned long)) */ +/* JKRDecomp_NS_orderAsync */ +/* 802DB900 002D8840 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB904 002D8844 7C 08 02 A6 */ mflr r0 +/* 802DB908 002D8848 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB90C 002D884C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB910 002D8850 4B FF FF 49 */ bl prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v +/* 802DB914 002D8854 7C 7F 1B 78 */ mr r31, r3 +/* 802DB918 002D8858 4B FF FF B9 */ bl sendCommand__9JKRDecompFP16JKRDecompCommand +/* 802DB91C 002D885C 7F E3 FB 78 */ mr r3, r31 +/* 802DB920 002D8860 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB924 002D8864 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB928 002D8868 7C 08 03 A6 */ mtlr r0 +/* 802DB92C 002D886C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB930 002D8870 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB934.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB934.s new file mode 100644 index 0000000000..b4388208c2 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB934.s @@ -0,0 +1,25 @@ +/* sync__9JKRDecompFP16JKRDecompCommandi __ct__9JKRDecompFl::sync(JKRDecompCommand *, int) */ +/* JKRDecomp_NS_sync */ +/* 802DB934 002D8874 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB938 002D8878 7C 08 02 A6 */ mflr r0 +/* 802DB93C 002D887C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB940 002D8880 2C 04 00 00 */ cmpwi r4, 0 +/* 802DB944 002D8884 40 82 00 1C */ bne lbl_802DB960 +/* 802DB948 002D8888 38 63 00 28 */ addi r3, r3, 0x28 +/* 802DB94C 002D888C 38 81 00 08 */ addi r4, r1, 8 +/* 802DB950 002D8890 38 A0 00 01 */ li r5, 1 +/* 802DB954 002D8894 48 06 31 69 */ bl OSReceiveMessage +/* 802DB958 002D8898 38 60 00 01 */ li r3, 1 +/* 802DB95C 002D889C 48 00 00 1C */ b lbl_802DB978 +lbl_802DB960: +/* 802DB960 002D88A0 38 63 00 28 */ addi r3, r3, 0x28 +/* 802DB964 002D88A4 38 81 00 08 */ addi r4, r1, 8 +/* 802DB968 002D88A8 38 A0 00 00 */ li r5, 0 +/* 802DB96C 002D88AC 48 06 31 51 */ bl OSReceiveMessage +/* 802DB970 002D88B0 30 03 FF FF */ addic r0, r3, -1 +/* 802DB974 002D88B4 7C 60 19 10 */ subfe r3, r0, r3 +lbl_802DB978: +/* 802DB978 002D88B8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB97C 002D88BC 7C 08 03 A6 */ mtlr r0 +/* 802DB980 002D88C0 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB984 002D88C4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB988.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB988.s new file mode 100644 index 0000000000..200bddadba --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB988.s @@ -0,0 +1,23 @@ +/* orderSync__9JKRDecompFPUcPUcUlUl __ct__9JKRDecompFl::orderSync(unsigned char *, unsigned char *, unsigned long, unsigned long) */ +/* JKRDecomp_NS_orderSync */ +/* 802DB988 002D88C8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB98C 002D88CC 7C 08 02 A6 */ mflr r0 +/* 802DB990 002D88D0 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB994 002D88D4 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB998 002D88D8 93 C1 00 08 */ stw r30, 8(r1) +/* 802DB99C 002D88DC 38 E0 00 00 */ li r7, 0 +/* 802DB9A0 002D88E0 4B FF FF 61 */ bl orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v +/* 802DB9A4 002D88E4 7C 7F 1B 78 */ mr r31, r3 +/* 802DB9A8 002D88E8 38 80 00 00 */ li r4, 0 +/* 802DB9AC 002D88EC 4B FF FF 89 */ bl sync__9JKRDecompFP16JKRDecompCommandi +/* 802DB9B0 002D88F0 7C 7E 1B 78 */ mr r30, r3 +/* 802DB9B4 002D88F4 7F E3 FB 78 */ mr r3, r31 +/* 802DB9B8 002D88F8 38 80 00 01 */ li r4, 1 +/* 802DB9BC 002D88FC 48 00 04 05 */ bl __dt__16JKRDecompCommandFv +/* 802DB9C0 002D8900 7F C3 F3 78 */ mr r3, r30 +/* 802DB9C4 002D8904 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB9C8 002D8908 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DB9CC 002D890C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB9D0 002D8910 7C 08 03 A6 */ mtlr r0 +/* 802DB9D4 002D8914 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB9D8 002D8918 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DB9DC.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB9DC.s new file mode 100644 index 0000000000..40b90b258d --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DB9DC.s @@ -0,0 +1,35 @@ +/* decode__9JKRDecompFPUcPUcUlUl __ct__9JKRDecompFl::decode(unsigned char *, unsigned char *, unsigned long, unsigned long) */ +/* JKRDecomp_NS_decode */ +/* 802DB9DC 002D891C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DB9E0 002D8920 7C 08 02 A6 */ mflr r0 +/* 802DB9E4 002D8924 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DB9E8 002D8928 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DB9EC 002D892C 48 08 67 ED */ bl _savegpr_28 +/* 802DB9F0 002D8930 7C 7C 1B 78 */ mr r28, r3 +/* 802DB9F4 002D8934 7C 9D 23 78 */ mr r29, r4 +/* 802DB9F8 002D8938 7C BE 2B 78 */ mr r30, r5 +/* 802DB9FC 002D893C 7C DF 33 78 */ mr r31, r6 +/* 802DBA00 002D8940 48 00 02 F9 */ bl checkCompressed__9JKRDecompFPUc +/* 802DBA04 002D8944 2C 03 00 01 */ cmpwi r3, 1 +/* 802DBA08 002D8948 40 82 00 1C */ bne lbl_802DBA24 +/* 802DBA0C 002D894C 7F 83 E3 78 */ mr r3, r28 +/* 802DBA10 002D8950 7F A4 EB 78 */ mr r4, r29 +/* 802DBA14 002D8954 7F C5 F3 78 */ mr r5, r30 +/* 802DBA18 002D8958 7F E6 FB 78 */ mr r6, r31 +/* 802DBA1C 002D895C 48 00 00 3D */ bl decodeSZP__9JKRDecompFPUcPUcUlUl +/* 802DBA20 002D8960 48 00 00 20 */ b lbl_802DBA40 +lbl_802DBA24: +/* 802DBA24 002D8964 2C 03 00 02 */ cmpwi r3, 2 +/* 802DBA28 002D8968 40 82 00 18 */ bne lbl_802DBA40 +/* 802DBA2C 002D896C 7F 83 E3 78 */ mr r3, r28 +/* 802DBA30 002D8970 7F A4 EB 78 */ mr r4, r29 +/* 802DBA34 002D8974 7F C5 F3 78 */ mr r5, r30 +/* 802DBA38 002D8978 7F E6 FB 78 */ mr r6, r31 +/* 802DBA3C 002D897C 48 00 01 D9 */ bl decodeSZS__9JKRDecompFPUcPUcUlUl +lbl_802DBA40: +/* 802DBA40 002D8980 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DBA44 002D8984 48 08 67 E1 */ bl _restgpr_28 +/* 802DBA48 002D8988 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DBA4C 002D898C 7C 08 03 A6 */ mtlr r0 +/* 802DBA50 002D8990 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DBA54 002D8994 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DBA58.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBA58.s new file mode 100644 index 0000000000..c7a3de0644 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBA58.s @@ -0,0 +1,126 @@ +/* decodeSZP__9JKRDecompFPUcPUcUlUl __ct__9JKRDecompFl::decodeSZP(unsigned char *, unsigned char *, unsigned long, unsigned long) */ +/* JKRDecomp_NS_decodeSZP */ +/* 802DBA58 002D8998 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DBA5C 002D899C 7C 08 02 A6 */ mflr r0 +/* 802DBA60 002D89A0 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DBA64 002D89A4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DBA68 002D89A8 48 08 67 6D */ bl _savegpr_27 +/* 802DBA6C 002D89AC 89 23 00 07 */ lbz r9, 7(r3) +/* 802DBA70 002D89B0 89 03 00 06 */ lbz r8, 6(r3) +/* 802DBA74 002D89B4 88 E3 00 04 */ lbz r7, 4(r3) +/* 802DBA78 002D89B8 88 03 00 05 */ lbz r0, 5(r3) +/* 802DBA7C 002D89BC 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802DBA80 002D89C0 50 E0 C0 0E */ rlwimi r0, r7, 0x18, 0, 7 +/* 802DBA84 002D89C4 51 00 44 2E */ rlwimi r0, r8, 8, 0x10, 0x17 +/* 802DBA88 002D89C8 7D 20 03 78 */ or r0, r9, r0 +/* 802DBA8C 002D89CC 89 43 00 0B */ lbz r10, 0xb(r3) +/* 802DBA90 002D89D0 89 23 00 0A */ lbz r9, 0xa(r3) +/* 802DBA94 002D89D4 89 03 00 08 */ lbz r8, 8(r3) +/* 802DBA98 002D89D8 88 E3 00 09 */ lbz r7, 9(r3) +/* 802DBA9C 002D89DC 54 E7 80 1E */ slwi r7, r7, 0x10 +/* 802DBAA0 002D89E0 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7 +/* 802DBAA4 002D89E4 51 27 44 2E */ rlwimi r7, r9, 8, 0x10, 0x17 +/* 802DBAA8 002D89E8 7D 49 3B 78 */ or r9, r10, r7 +/* 802DBAAC 002D89EC 89 83 00 0F */ lbz r12, 0xf(r3) +/* 802DBAB0 002D89F0 89 43 00 0E */ lbz r10, 0xe(r3) +/* 802DBAB4 002D89F4 89 03 00 0C */ lbz r8, 0xc(r3) +/* 802DBAB8 002D89F8 88 E3 00 0D */ lbz r7, 0xd(r3) +/* 802DBABC 002D89FC 54 E7 80 1E */ slwi r7, r7, 0x10 +/* 802DBAC0 002D8A00 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7 +/* 802DBAC4 002D8A04 51 47 44 2E */ rlwimi r7, r10, 8, 0x10, 0x17 +/* 802DBAC8 002D8A08 7D 8C 3B 78 */ or r12, r12, r7 +/* 802DBACC 002D8A0C 39 00 00 00 */ li r8, 0 +/* 802DBAD0 002D8A10 39 40 00 00 */ li r10, 0 +/* 802DBAD4 002D8A14 38 E0 00 10 */ li r7, 0x10 +/* 802DBAD8 002D8A18 28 05 00 00 */ cmplwi r5, 0 +/* 802DBADC 002D8A1C 41 82 01 20 */ beq lbl_802DBBFC +/* 802DBAE0 002D8A20 7C 06 00 40 */ cmplw r6, r0 +/* 802DBAE4 002D8A24 41 81 01 18 */ bgt lbl_802DBBFC +/* 802DBAE8 002D8A28 7C 9F 23 78 */ mr r31, r4 +/* 802DBAEC 002D8A2C 7D 83 62 14 */ add r12, r3, r12 +lbl_802DBAF0: +/* 802DBAF0 002D8A30 28 0A 00 00 */ cmplwi r10, 0 +/* 802DBAF4 002D8A34 40 82 00 30 */ bne lbl_802DBB24 +/* 802DBAF8 002D8A38 7D 43 3A 14 */ add r10, r3, r7 +/* 802DBAFC 002D8A3C 8B CA 00 03 */ lbz r30, 3(r10) +/* 802DBB00 002D8A40 8B AA 00 02 */ lbz r29, 2(r10) +/* 802DBB04 002D8A44 89 6A 00 00 */ lbz r11, 0(r10) +/* 802DBB08 002D8A48 89 4A 00 01 */ lbz r10, 1(r10) +/* 802DBB0C 002D8A4C 55 4A 80 1E */ slwi r10, r10, 0x10 +/* 802DBB10 002D8A50 51 6A C0 0E */ rlwimi r10, r11, 0x18, 0, 7 +/* 802DBB14 002D8A54 53 AA 44 2E */ rlwimi r10, r29, 8, 0x10, 0x17 +/* 802DBB18 002D8A58 7F CB 53 78 */ or r11, r30, r10 +/* 802DBB1C 002D8A5C 39 40 00 20 */ li r10, 0x20 +/* 802DBB20 002D8A60 38 E7 00 04 */ addi r7, r7, 4 +lbl_802DBB24: +/* 802DBB24 002D8A64 55 7D 00 01 */ rlwinm. r29, r11, 0, 0, 0 +/* 802DBB28 002D8A68 41 82 00 34 */ beq lbl_802DBB5C +/* 802DBB2C 002D8A6C 28 06 00 00 */ cmplwi r6, 0 +/* 802DBB30 002D8A70 40 82 00 18 */ bne lbl_802DBB48 +/* 802DBB34 002D8A74 8B AC 00 00 */ lbz r29, 0(r12) +/* 802DBB38 002D8A78 9B BF 00 00 */ stb r29, 0(r31) +/* 802DBB3C 002D8A7C 34 A5 FF FF */ addic. r5, r5, -1 +/* 802DBB40 002D8A80 40 82 00 0C */ bne lbl_802DBB4C +/* 802DBB44 002D8A84 48 00 00 B8 */ b lbl_802DBBFC +lbl_802DBB48: +/* 802DBB48 002D8A88 38 C6 FF FF */ addi r6, r6, -1 +lbl_802DBB4C: +/* 802DBB4C 002D8A8C 39 08 00 01 */ addi r8, r8, 1 +/* 802DBB50 002D8A90 3B FF 00 01 */ addi r31, r31, 1 +/* 802DBB54 002D8A94 39 8C 00 01 */ addi r12, r12, 1 +/* 802DBB58 002D8A98 48 00 00 94 */ b lbl_802DBBEC +lbl_802DBB5C: +/* 802DBB5C 002D8A9C 7F A3 4A 14 */ add r29, r3, r9 +/* 802DBB60 002D8AA0 8B DD 00 00 */ lbz r30, 0(r29) +/* 802DBB64 002D8AA4 8B 9D 00 01 */ lbz r28, 1(r29) +/* 802DBB68 002D8AA8 53 DC 44 2E */ rlwimi r28, r30, 8, 0x10, 0x17 +/* 802DBB6C 002D8AAC 57 9D 05 3E */ clrlwi r29, r28, 0x14 +/* 802DBB70 002D8AB0 7F 7D 40 50 */ subf r27, r29, r8 +/* 802DBB74 002D8AB4 7F 9C 66 71 */ srawi. r28, r28, 0xc +/* 802DBB78 002D8AB8 39 29 00 02 */ addi r9, r9, 2 +/* 802DBB7C 002D8ABC 40 82 00 14 */ bne lbl_802DBB90 +/* 802DBB80 002D8AC0 8B AC 00 00 */ lbz r29, 0(r12) +/* 802DBB84 002D8AC4 3B 9D 00 12 */ addi r28, r29, 0x12 +/* 802DBB88 002D8AC8 39 8C 00 01 */ addi r12, r12, 1 +/* 802DBB8C 002D8ACC 48 00 00 08 */ b lbl_802DBB94 +lbl_802DBB90: +/* 802DBB90 002D8AD0 3B 9C 00 02 */ addi r28, r28, 2 +lbl_802DBB94: +/* 802DBB94 002D8AD4 7F A8 00 50 */ subf r29, r8, r0 +/* 802DBB98 002D8AD8 7C 1C E8 00 */ cmpw r28, r29 +/* 802DBB9C 002D8ADC 40 81 00 08 */ ble lbl_802DBBA4 +/* 802DBBA0 002D8AE0 7F BC EB 78 */ mr r28, r29 +lbl_802DBBA4: +/* 802DBBA4 002D8AE4 7F C4 42 14 */ add r30, r4, r8 +/* 802DBBA8 002D8AE8 7F 89 03 A6 */ mtctr r28 +/* 802DBBAC 002D8AEC 2C 1C 00 00 */ cmpwi r28, 0 +/* 802DBBB0 002D8AF0 40 81 00 3C */ ble lbl_802DBBEC +lbl_802DBBB4: +/* 802DBBB4 002D8AF4 28 06 00 00 */ cmplwi r6, 0 +/* 802DBBB8 002D8AF8 40 82 00 1C */ bne lbl_802DBBD4 +/* 802DBBBC 002D8AFC 3B BB FF FF */ addi r29, r27, -1 +/* 802DBBC0 002D8B00 7F A4 E8 AE */ lbzx r29, r4, r29 +/* 802DBBC4 002D8B04 9B BE 00 00 */ stb r29, 0(r30) +/* 802DBBC8 002D8B08 34 A5 FF FF */ addic. r5, r5, -1 +/* 802DBBCC 002D8B0C 40 82 00 0C */ bne lbl_802DBBD8 +/* 802DBBD0 002D8B10 48 00 00 2C */ b lbl_802DBBFC +lbl_802DBBD4: +/* 802DBBD4 002D8B14 38 C6 FF FF */ addi r6, r6, -1 +lbl_802DBBD8: +/* 802DBBD8 002D8B18 39 08 00 01 */ addi r8, r8, 1 +/* 802DBBDC 002D8B1C 3B FF 00 01 */ addi r31, r31, 1 +/* 802DBBE0 002D8B20 3B DE 00 01 */ addi r30, r30, 1 +/* 802DBBE4 002D8B24 3B 7B 00 01 */ addi r27, r27, 1 +/* 802DBBE8 002D8B28 42 00 FF CC */ bdnz lbl_802DBBB4 +lbl_802DBBEC: +/* 802DBBEC 002D8B2C 55 6B 08 3C */ slwi r11, r11, 1 +/* 802DBBF0 002D8B30 7C 08 00 00 */ cmpw r8, r0 +/* 802DBBF4 002D8B34 39 4A FF FF */ addi r10, r10, -1 +/* 802DBBF8 002D8B38 41 80 FE F8 */ blt lbl_802DBAF0 +lbl_802DBBFC: +/* 802DBBFC 002D8B3C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DBC00 002D8B40 48 08 66 21 */ bl _restgpr_27 +/* 802DBC04 002D8B44 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DBC08 002D8B48 7C 08 03 A6 */ mtlr r0 +/* 802DBC0C 002D8B4C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DBC10 002D8B50 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DBC14.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBC14.s new file mode 100644 index 0000000000..50efe6844e --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBC14.s @@ -0,0 +1,69 @@ +/* decodeSZS__9JKRDecompFPUcPUcUlUl __ct__9JKRDecompFl::decodeSZS(unsigned char *, unsigned char *, unsigned long, unsigned long) */ +/* JKRDecomp_NS_decodeSZS */ +/* 802DBC14 002D8B54 39 20 00 00 */ li r9, 0 +/* 802DBC18 002D8B58 80 03 00 04 */ lwz r0, 4(r3) +/* 802DBC1C 002D8B5C 7C 04 02 14 */ add r0, r4, r0 +/* 802DBC20 002D8B60 7C E6 00 50 */ subf r7, r6, r0 +/* 802DBC24 002D8B64 28 05 00 00 */ cmplwi r5, 0 +/* 802DBC28 002D8B68 4D 82 00 20 */ beqlr +/* 802DBC2C 002D8B6C 80 03 00 00 */ lwz r0, 0(r3) +/* 802DBC30 002D8B70 7C 06 00 40 */ cmplw r6, r0 +/* 802DBC34 002D8B74 4D 81 00 20 */ bgtlr +/* 802DBC38 002D8B78 39 63 00 10 */ addi r11, r3, 0x10 +lbl_802DBC3C: +/* 802DBC3C 002D8B7C 2C 09 00 00 */ cmpwi r9, 0 +/* 802DBC40 002D8B80 40 82 00 10 */ bne lbl_802DBC50 +/* 802DBC44 002D8B84 89 4B 00 00 */ lbz r10, 0(r11) +/* 802DBC48 002D8B88 39 20 00 08 */ li r9, 8 +/* 802DBC4C 002D8B8C 39 6B 00 01 */ addi r11, r11, 1 +lbl_802DBC50: +/* 802DBC50 002D8B90 55 40 06 31 */ rlwinm. r0, r10, 0, 0x18, 0x18 +/* 802DBC54 002D8B94 41 82 00 30 */ beq lbl_802DBC84 +/* 802DBC58 002D8B98 28 06 00 00 */ cmplwi r6, 0 +/* 802DBC5C 002D8B9C 40 82 00 1C */ bne lbl_802DBC78 +/* 802DBC60 002D8BA0 88 0B 00 00 */ lbz r0, 0(r11) +/* 802DBC64 002D8BA4 98 04 00 00 */ stb r0, 0(r4) +/* 802DBC68 002D8BA8 34 A5 FF FF */ addic. r5, r5, -1 +/* 802DBC6C 002D8BAC 38 84 00 01 */ addi r4, r4, 1 +/* 802DBC70 002D8BB0 40 82 00 0C */ bne lbl_802DBC7C +/* 802DBC74 002D8BB4 4E 80 00 20 */ blr +lbl_802DBC78: +/* 802DBC78 002D8BB8 38 C6 FF FF */ addi r6, r6, -1 +lbl_802DBC7C: +/* 802DBC7C 002D8BBC 39 6B 00 01 */ addi r11, r11, 1 +/* 802DBC80 002D8BC0 48 00 00 64 */ b lbl_802DBCE4 +lbl_802DBC84: +/* 802DBC84 002D8BC4 88 0B 00 01 */ lbz r0, 1(r11) +/* 802DBC88 002D8BC8 88 6B 00 00 */ lbz r3, 0(r11) +/* 802DBC8C 002D8BCC 50 60 45 2E */ rlwimi r0, r3, 8, 0x14, 0x17 +/* 802DBC90 002D8BD0 7C 63 26 71 */ srawi. r3, r3, 4 +/* 802DBC94 002D8BD4 7D 00 20 50 */ subf r8, r0, r4 +/* 802DBC98 002D8BD8 39 6B 00 02 */ addi r11, r11, 2 +/* 802DBC9C 002D8BDC 40 82 00 14 */ bne lbl_802DBCB0 +/* 802DBCA0 002D8BE0 88 6B 00 00 */ lbz r3, 0(r11) +/* 802DBCA4 002D8BE4 38 63 00 12 */ addi r3, r3, 0x12 +/* 802DBCA8 002D8BE8 39 6B 00 01 */ addi r11, r11, 1 +/* 802DBCAC 002D8BEC 48 00 00 08 */ b lbl_802DBCB4 +lbl_802DBCB0: +/* 802DBCB0 002D8BF0 38 63 00 02 */ addi r3, r3, 2 +lbl_802DBCB4: +/* 802DBCB4 002D8BF4 28 06 00 00 */ cmplwi r6, 0 +/* 802DBCB8 002D8BF8 40 82 00 1C */ bne lbl_802DBCD4 +/* 802DBCBC 002D8BFC 88 08 FF FF */ lbz r0, -1(r8) +/* 802DBCC0 002D8C00 98 04 00 00 */ stb r0, 0(r4) +/* 802DBCC4 002D8C04 34 A5 FF FF */ addic. r5, r5, -1 +/* 802DBCC8 002D8C08 38 84 00 01 */ addi r4, r4, 1 +/* 802DBCCC 002D8C0C 40 82 00 0C */ bne lbl_802DBCD8 +/* 802DBCD0 002D8C10 4E 80 00 20 */ blr +lbl_802DBCD4: +/* 802DBCD4 002D8C14 38 C6 FF FF */ addi r6, r6, -1 +lbl_802DBCD8: +/* 802DBCD8 002D8C18 34 63 FF FF */ addic. r3, r3, -1 +/* 802DBCDC 002D8C1C 39 08 00 01 */ addi r8, r8, 1 +/* 802DBCE0 002D8C20 40 82 FF D4 */ bne lbl_802DBCB4 +lbl_802DBCE4: +/* 802DBCE4 002D8C24 55 4A 08 3C */ slwi r10, r10, 1 +/* 802DBCE8 002D8C28 7C 04 38 40 */ cmplw r4, r7 +/* 802DBCEC 002D8C2C 39 29 FF FF */ addi r9, r9, -1 +/* 802DBCF0 002D8C30 40 82 FF 4C */ bne lbl_802DBC3C +/* 802DBCF4 002D8C34 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DBCF8.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBCF8.s new file mode 100644 index 0000000000..60ab20c634 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBCF8.s @@ -0,0 +1,35 @@ +/* checkCompressed__9JKRDecompFPUc __ct__9JKRDecompFl::checkCompressed(unsigned char *) */ +/* JKRDecomp_NS_checkCompressed */ +/* 802DBCF8 002D8C38 88 83 00 00 */ lbz r4, 0(r3) +/* 802DBCFC 002D8C3C 2C 04 00 59 */ cmpwi r4, 0x59 +/* 802DBD00 002D8C40 40 82 00 40 */ bne lbl_802DBD40 +/* 802DBD04 002D8C44 88 03 00 01 */ lbz r0, 1(r3) +/* 802DBD08 002D8C48 2C 00 00 61 */ cmpwi r0, 0x61 +/* 802DBD0C 002D8C4C 40 82 00 34 */ bne lbl_802DBD40 +/* 802DBD10 002D8C50 88 03 00 03 */ lbz r0, 3(r3) +/* 802DBD14 002D8C54 2C 00 00 30 */ cmpwi r0, 0x30 +/* 802DBD18 002D8C58 40 82 00 28 */ bne lbl_802DBD40 +/* 802DBD1C 002D8C5C 88 03 00 02 */ lbz r0, 2(r3) +/* 802DBD20 002D8C60 2C 00 00 79 */ cmpwi r0, 0x79 +/* 802DBD24 002D8C64 40 82 00 0C */ bne lbl_802DBD30 +/* 802DBD28 002D8C68 38 60 00 01 */ li r3, 1 +/* 802DBD2C 002D8C6C 4E 80 00 20 */ blr +lbl_802DBD30: +/* 802DBD30 002D8C70 2C 00 00 7A */ cmpwi r0, 0x7a +/* 802DBD34 002D8C74 40 82 00 0C */ bne lbl_802DBD40 +/* 802DBD38 002D8C78 38 60 00 02 */ li r3, 2 +/* 802DBD3C 002D8C7C 4E 80 00 20 */ blr +lbl_802DBD40: +/* 802DBD40 002D8C80 2C 04 00 41 */ cmpwi r4, 0x41 +/* 802DBD44 002D8C84 40 82 00 24 */ bne lbl_802DBD68 +/* 802DBD48 002D8C88 88 03 00 01 */ lbz r0, 1(r3) +/* 802DBD4C 002D8C8C 2C 00 00 53 */ cmpwi r0, 0x53 +/* 802DBD50 002D8C90 40 82 00 18 */ bne lbl_802DBD68 +/* 802DBD54 002D8C94 88 03 00 02 */ lbz r0, 2(r3) +/* 802DBD58 002D8C98 2C 00 00 52 */ cmpwi r0, 0x52 +/* 802DBD5C 002D8C9C 40 82 00 0C */ bne lbl_802DBD68 +/* 802DBD60 002D8CA0 38 60 00 03 */ li r3, 3 +/* 802DBD64 002D8CA4 4E 80 00 20 */ blr +lbl_802DBD68: +/* 802DBD68 002D8CA8 38 60 00 00 */ li r3, 0 +/* 802DBD6C 002D8CAC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DBD70.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBD70.s new file mode 100644 index 0000000000..0e70abc294 --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBD70.s @@ -0,0 +1,22 @@ +/* __ct__16JKRDecompCommandFv __ct__16JKRDecompCommandFv::__ct(void) */ +/* JKRDecompCommand */ +/* 802DBD70 002D8CB0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DBD74 002D8CB4 7C 08 02 A6 */ mflr r0 +/* 802DBD78 002D8CB8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DBD7C 002D8CBC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DBD80 002D8CC0 7C 7F 1B 78 */ mr r31, r3 +/* 802DBD84 002D8CC4 38 7F 00 28 */ addi r3, r31, 0x28 +/* 802DBD88 002D8CC8 38 9F 00 48 */ addi r4, r31, 0x48 +/* 802DBD8C 002D8CCC 38 A0 00 01 */ li r5, 1 +/* 802DBD90 002D8CD0 48 06 2C 05 */ bl OSInitMessageQueue +/* 802DBD94 002D8CD4 38 00 00 00 */ li r0, 0 +/* 802DBD98 002D8CD8 90 1F 00 14 */ stw r0, 0x14(r31) +/* 802DBD9C 002D8CDC 90 1F 00 1C */ stw r0, 0x1c(r31) +/* 802DBDA0 002D8CE0 93 FF 00 18 */ stw r31, 0x18(r31) +/* 802DBDA4 002D8CE4 90 1F 00 20 */ stw r0, 0x20(r31) +/* 802DBDA8 002D8CE8 7F E3 FB 78 */ mr r3, r31 +/* 802DBDAC 002D8CEC 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DBDB0 002D8CF0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DBDB4 002D8CF4 7C 08 03 A6 */ mtlr r0 +/* 802DBDB8 002D8CF8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DBDBC 002D8CFC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDecomp/asm/func_802DBDC0.s b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBDC0.s new file mode 100644 index 0000000000..a10b43f57a --- /dev/null +++ b/include/JSystem/JKernel/JKRDecomp/asm/func_802DBDC0.s @@ -0,0 +1,18 @@ +/* __dt__16JKRDecompCommandFv __ct__16JKRDecompCommandFv::__dt(void) */ +/* JKRDecompCommand_NS_dtor */ +/* 802DBDC0 002D8D00 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DBDC4 002D8D04 7C 08 02 A6 */ mflr r0 +/* 802DBDC8 002D8D08 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DBDCC 002D8D0C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DBDD0 002D8D10 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802DBDD4 002D8D14 41 82 00 10 */ beq lbl_802DBDE4 +/* 802DBDD8 002D8D18 7C 80 07 35 */ extsh. r0, r4 +/* 802DBDDC 002D8D1C 40 81 00 08 */ ble lbl_802DBDE4 +/* 802DBDE0 002D8D20 4B FF 2F 5D */ bl __dl__FPv +lbl_802DBDE4: +/* 802DBDE4 002D8D24 7F E3 FB 78 */ mr r3, r31 +/* 802DBDE8 002D8D28 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DBDEC 002D8D2C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DBDF0 002D8D30 7C 08 03 A6 */ mtlr r0 +/* 802DBDF4 002D8D34 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DBDF8 002D8D38 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/JKRDvdAramRipper.h b/include/JSystem/JKernel/JKRDvdAramRipper/JKRDvdAramRipper.h new file mode 100644 index 0000000000..68182a53b0 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/JKRDvdAramRipper.h @@ -0,0 +1,30 @@ +#ifndef __JKRDVDARAMRIPPER_H__ +#define __JKRDVDARAMRIPPER_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h" +#include "JSystem/JSupport/JSUFileInputStream/JSUFileInputStream.h" + +class JKRADCommand { + public: + JKRADCommand(); + ~JKRADCommand(); +}; + +class JKRDvdFile; +class JKRDvdAramRipper { + public: + static void loadToAram(long, u32, JKRExpandSwitch, u32, u32, u32*); + static void loadToAram(JKRDvdFile*, u32, JKRExpandSwitch, u32, u32, u32*); + static void loadToAram_Async(JKRDvdFile*, u32, JKRExpandSwitch, void (*)(u32), u32, u32, u32*); + static void callCommand_Async(JKRADCommand*); + static void syncAram(JKRADCommand*, int); +}; + +void JKRDecompressFromDVDToAram(JKRDvdFile*, u32, u32, u32, u32, u32, u32*); +static void decompSZS_subroutine(u8*, u32); +static void firstSrcData(void); +static void nextSrcData(u8*); +void dmaBufferFlush(u32); + +#endif diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA874.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA874.s new file mode 100644 index 0000000000..d6088adc1c --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA874.s @@ -0,0 +1,45 @@ +/* loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl JKRDvdAramRipper::loadToAram(long, unsigned long, JKRExpandSwitch, unsigned long, unsigned long, unsigned long *) */ +/* JKRDvdAramRipper_NS_loadToAram */ +/* 802DA874 002D77B4 94 21 FE E0 */ stwu r1, -0x120(r1) +/* 802DA878 002D77B8 7C 08 02 A6 */ mflr r0 +/* 802DA87C 002D77BC 90 01 01 24 */ stw r0, 0x124(r1) +/* 802DA880 002D77C0 39 61 01 20 */ addi r11, r1, 0x120 +/* 802DA884 002D77C4 48 08 79 4D */ bl _savegpr_26 +/* 802DA888 002D77C8 7C 7A 1B 78 */ mr r26, r3 +/* 802DA88C 002D77CC 7C 9B 23 78 */ mr r27, r4 +/* 802DA890 002D77D0 7C BC 2B 78 */ mr r28, r5 +/* 802DA894 002D77D4 7C DD 33 78 */ mr r29, r6 +/* 802DA898 002D77D8 7C FE 3B 78 */ mr r30, r7 +/* 802DA89C 002D77DC 7D 1F 43 78 */ mr r31, r8 +/* 802DA8A0 002D77E0 38 61 00 08 */ addi r3, r1, 8 +/* 802DA8A4 002D77E4 4B FF EC E1 */ bl __ct__10JKRDvdFileFv +/* 802DA8A8 002D77E8 38 61 00 08 */ addi r3, r1, 8 +/* 802DA8AC 002D77EC 7F 44 D3 78 */ mr r4, r26 +/* 802DA8B0 002D77F0 4B FF F0 15 */ bl open__10JKRDvdFileFl +/* 802DA8B4 002D77F4 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802DA8B8 002D77F8 40 82 00 18 */ bne lbl_802DA8D0 +/* 802DA8BC 002D77FC 38 61 00 08 */ addi r3, r1, 8 +/* 802DA8C0 002D7800 38 80 FF FF */ li r4, -1 +/* 802DA8C4 002D7804 4B FF EE 85 */ bl __dt__10JKRDvdFileFv +/* 802DA8C8 002D7808 38 60 00 00 */ li r3, 0 +/* 802DA8CC 002D780C 48 00 00 34 */ b lbl_802DA900 +lbl_802DA8D0: +/* 802DA8D0 002D7810 38 61 00 08 */ addi r3, r1, 8 +/* 802DA8D4 002D7814 7F 64 DB 78 */ mr r4, r27 +/* 802DA8D8 002D7818 7F 85 E3 78 */ mr r5, r28 +/* 802DA8DC 002D781C 7F A6 EB 78 */ mr r6, r29 +/* 802DA8E0 002D7820 7F C7 F3 78 */ mr r7, r30 +/* 802DA8E4 002D7824 7F E8 FB 78 */ mr r8, r31 +/* 802DA8E8 002D7828 48 00 00 31 */ bl loadToAram__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchUlUlPUl +/* 802DA8EC 002D782C 7C 7F 1B 78 */ mr r31, r3 +/* 802DA8F0 002D7830 38 61 00 08 */ addi r3, r1, 8 +/* 802DA8F4 002D7834 38 80 FF FF */ li r4, -1 +/* 802DA8F8 002D7838 4B FF EE 51 */ bl __dt__10JKRDvdFileFv +/* 802DA8FC 002D783C 7F E3 FB 78 */ mr r3, r31 +lbl_802DA900: +/* 802DA900 002D7840 39 61 01 20 */ addi r11, r1, 0x120 +/* 802DA904 002D7844 48 08 79 19 */ bl _restgpr_26 +/* 802DA908 002D7848 80 01 01 24 */ lwz r0, 0x124(r1) +/* 802DA90C 002D784C 7C 08 03 A6 */ mtlr r0 +/* 802DA910 002D7850 38 21 01 20 */ addi r1, r1, 0x120 +/* 802DA914 002D7854 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA918.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA918.s new file mode 100644 index 0000000000..c979ec7277 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA918.s @@ -0,0 +1,47 @@ +/* loadToAram__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchUlUlPUl JKRDvdAramRipper::loadToAram(JKRDvdFile *, unsigned long, JKRExpandSwitch, unsigned long, unsigned long, unsigned long *) */ +/* JKRDvdAramRipper_NS_loadToAram_X1_ */ +/* 802DA918 002D7858 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DA91C 002D785C 7C 08 02 A6 */ mflr r0 +/* 802DA920 002D7860 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DA924 002D7864 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DA928 002D7868 93 C1 00 08 */ stw r30, 8(r1) +/* 802DA92C 002D786C 7C 9E 23 78 */ mr r30, r4 +/* 802DA930 002D7870 7C CA 33 78 */ mr r10, r6 +/* 802DA934 002D7874 7C E0 3B 78 */ mr r0, r7 +/* 802DA938 002D7878 7D 09 43 78 */ mr r9, r8 +/* 802DA93C 002D787C 38 C0 00 00 */ li r6, 0 +/* 802DA940 002D7880 7D 47 53 78 */ mr r7, r10 +/* 802DA944 002D7884 7C 08 03 78 */ mr r8, r0 +/* 802DA948 002D7888 48 00 00 79 */ bl loadToAram_Async__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchPFUl_vUlUlPUl +/* 802DA94C 002D788C 7C 7F 1B 78 */ mr r31, r3 +/* 802DA950 002D7890 38 80 00 00 */ li r4, 0 +/* 802DA954 002D7894 48 00 04 F5 */ bl syncAram__16JKRDvdAramRipperFP12JKRADCommandi +/* 802DA958 002D7898 80 1F 00 48 */ lwz r0, 0x48(r31) +/* 802DA95C 002D789C 2C 00 00 00 */ cmpwi r0, 0 +/* 802DA960 002D78A0 40 80 00 18 */ bge lbl_802DA978 +/* 802DA964 002D78A4 7F E3 FB 78 */ mr r3, r31 +/* 802DA968 002D78A8 38 80 00 01 */ li r4, 1 +/* 802DA96C 002D78AC 48 00 05 F1 */ bl __dt__12JKRADCommandFv +/* 802DA970 002D78B0 38 60 00 00 */ li r3, 0 +/* 802DA974 002D78B4 48 00 00 34 */ b lbl_802DA9A8 +lbl_802DA978: +/* 802DA978 002D78B8 28 1E 00 00 */ cmplwi r30, 0 +/* 802DA97C 002D78BC 41 82 00 18 */ beq lbl_802DA994 +/* 802DA980 002D78C0 7F E3 FB 78 */ mr r3, r31 +/* 802DA984 002D78C4 38 80 00 01 */ li r4, 1 +/* 802DA988 002D78C8 48 00 05 D5 */ bl __dt__12JKRADCommandFv +/* 802DA98C 002D78CC 38 60 FF FF */ li r3, -1 +/* 802DA990 002D78D0 48 00 00 18 */ b lbl_802DA9A8 +lbl_802DA994: +/* 802DA994 002D78D4 83 DF 00 30 */ lwz r30, 0x30(r31) +/* 802DA998 002D78D8 7F E3 FB 78 */ mr r3, r31 +/* 802DA99C 002D78DC 38 80 00 01 */ li r4, 1 +/* 802DA9A0 002D78E0 48 00 05 BD */ bl __dt__12JKRADCommandFv +/* 802DA9A4 002D78E4 7F C3 F3 78 */ mr r3, r30 +lbl_802DA9A8: +/* 802DA9A8 002D78E8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DA9AC 002D78EC 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DA9B0 002D78F0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DA9B4 002D78F4 7C 08 03 A6 */ mtlr r0 +/* 802DA9B8 002D78F8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DA9BC 002D78FC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s new file mode 100644 index 0000000000..107159f6b1 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s @@ -0,0 +1,50 @@ +/* loadToAram_Async__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchPFUl_vUlUlPUl JKRDvdAramRipper::loadToAram_Async(JKRDvdFile *, unsigned long, JKRExpandSwitch, void (*)(unsigned long), unsigned long, unsigned long, unsigned long *) */ +/* JKRDvdAramRipper_NS_loadToAram_Async */ +/* 802DA9C0 002D7900 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802DA9C4 002D7904 7C 08 02 A6 */ mflr r0 +/* 802DA9C8 002D7908 90 01 00 34 */ stw r0, 0x34(r1) +/* 802DA9CC 002D790C 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DA9D0 002D7910 48 08 77 F9 */ bl func_803621C8 +/* 802DA9D4 002D7914 7C 78 1B 78 */ mr r24, r3 +/* 802DA9D8 002D7918 7C 99 23 78 */ mr r25, r4 +/* 802DA9DC 002D791C 7C BA 2B 78 */ mr r26, r5 +/* 802DA9E0 002D7920 7C DB 33 78 */ mr r27, r6 +/* 802DA9E4 002D7924 7C FC 3B 78 */ mr r28, r7 +/* 802DA9E8 002D7928 7D 1D 43 78 */ mr r29, r8 +/* 802DA9EC 002D792C 7D 3E 4B 78 */ mr r30, r9 +/* 802DA9F0 002D7930 38 60 00 54 */ li r3, 0x54 +/* 802DA9F4 002D7934 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802DA9F8 002D7938 38 A0 FF FC */ li r5, -4 +/* 802DA9FC 002D793C 4B FF 42 9D */ bl __nw__FUlP7JKRHeapi +/* 802DAA00 002D7940 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802DAA04 002D7944 41 82 00 0C */ beq lbl_802DAA10 +/* 802DAA08 002D7948 48 00 05 15 */ bl __ct__12JKRADCommandFv +/* 802DAA0C 002D794C 7C 7F 1B 78 */ mr r31, r3 +lbl_802DAA10: +/* 802DAA10 002D7950 93 1F 00 28 */ stw r24, 0x28(r31) +/* 802DAA14 002D7954 93 3F 00 2C */ stw r25, 0x2c(r31) +/* 802DAA18 002D7958 38 00 00 00 */ li r0, 0 +/* 802DAA1C 002D795C 90 1F 00 30 */ stw r0, 0x30(r31) +/* 802DAA20 002D7960 93 5F 00 34 */ stw r26, 0x34(r31) +/* 802DAA24 002D7964 93 7F 00 38 */ stw r27, 0x38(r31) +/* 802DAA28 002D7968 93 9F 00 3C */ stw r28, 0x3c(r31) +/* 802DAA2C 002D796C 93 BF 00 40 */ stw r29, 0x40(r31) +/* 802DAA30 002D7970 93 DF 00 44 */ stw r30, 0x44(r31) +/* 802DAA34 002D7974 7F E3 FB 78 */ mr r3, r31 +/* 802DAA38 002D7978 48 00 00 3D */ bl callCommand_Async__16JKRDvdAramRipperFP12JKRADCommand +/* 802DAA3C 002D797C 28 03 00 00 */ cmplwi r3, 0 +/* 802DAA40 002D7980 40 82 00 18 */ bne lbl_802DAA58 +/* 802DAA44 002D7984 7F E3 FB 78 */ mr r3, r31 +/* 802DAA48 002D7988 38 80 00 01 */ li r4, 1 +/* 802DAA4C 002D798C 48 00 05 11 */ bl __dt__12JKRADCommandFv +/* 802DAA50 002D7990 38 60 00 00 */ li r3, 0 +/* 802DAA54 002D7994 48 00 00 08 */ b lbl_802DAA5C +lbl_802DAA58: +/* 802DAA58 002D7998 7F E3 FB 78 */ mr r3, r31 +lbl_802DAA5C: +/* 802DAA5C 002D799C 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DAA60 002D79A0 48 08 77 B5 */ bl func_80362214 +/* 802DAA64 002D79A4 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802DAA68 002D79A8 7C 08 03 A6 */ mtlr r0 +/* 802DAA6C 002D79AC 38 21 00 30 */ addi r1, r1, 0x30 +/* 802DAA70 002D79B0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s new file mode 100644 index 0000000000..d2a7845114 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s @@ -0,0 +1,244 @@ +/* callCommand_Async__16JKRDvdAramRipperFP12JKRADCommand JKRDvdAramRipper::callCommand_Async(JKRADCommand *) */ +/* JKRDvdAramRipper_NS_callCommand_Async */ +/* 802DAA74 002D79B4 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 802DAA78 002D79B8 7C 08 02 A6 */ mflr r0 +/* 802DAA7C 002D79BC 90 01 00 74 */ stw r0, 0x74(r1) +/* 802DAA80 002D79C0 39 61 00 70 */ addi r11, r1, 0x70 +/* 802DAA84 002D79C4 48 08 77 49 */ bl func_803621CC +/* 802DAA88 002D79C8 7C 7D 1B 78 */ mr r29, r3 +/* 802DAA8C 002D79CC 3B E0 00 01 */ li r31, 1 +/* 802DAA90 002D79D0 83 C3 00 28 */ lwz r30, 0x28(r3) +/* 802DAA94 002D79D4 3B 40 00 00 */ li r26, 0 +/* 802DAA98 002D79D8 38 7E 00 34 */ addi r3, r30, 0x34 +/* 802DAA9C 002D79DC 48 06 45 A5 */ bl OSLockMutex +/* 802DAAA0 002D79E0 80 7D 00 44 */ lwz r3, 0x44(r29) +/* 802DAAA4 002D79E4 28 03 00 00 */ cmplwi r3, 0 +/* 802DAAA8 002D79E8 41 82 00 0C */ beq lbl_802DAAB4 +/* 802DAAAC 002D79EC 38 00 00 00 */ li r0, 0 +/* 802DAAB0 002D79F0 90 03 00 00 */ stw r0, 0(r3) +lbl_802DAAB4: +/* 802DAAB4 002D79F4 80 1E 00 50 */ lwz r0, 0x50(r30) +/* 802DAAB8 002D79F8 28 00 00 00 */ cmplwi r0, 0 +/* 802DAABC 002D79FC 41 82 00 0C */ beq lbl_802DAAC8 +/* 802DAAC0 002D7A00 3B E0 00 00 */ li r31, 0 +/* 802DAAC4 002D7A04 48 00 02 DC */ b lbl_802DADA0 +lbl_802DAAC8: +/* 802DAAC8 002D7A08 48 06 61 BD */ bl OSGetCurrentThread +/* 802DAACC 002D7A0C 90 7E 00 50 */ stw r3, 0x50(r30) +/* 802DAAD0 002D7A10 38 60 00 10 */ li r3, 0x10 +/* 802DAAD4 002D7A14 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802DAAD8 002D7A18 38 A0 FF FC */ li r5, -4 +/* 802DAADC 002D7A1C 4B FF 41 BD */ bl __nw__FUlP7JKRHeapi +/* 802DAAE0 002D7A20 7C 7C 1B 79 */ or. r28, r3, r3 +/* 802DAAE4 002D7A24 41 82 00 10 */ beq lbl_802DAAF4 +/* 802DAAE8 002D7A28 7F C4 F3 78 */ mr r4, r30 +/* 802DAAEC 002D7A2C 48 00 1B 4D */ bl JSUFileInputStream_ct +/* 802DAAF0 002D7A30 7C 7C 1B 78 */ mr r28, r3 +lbl_802DAAF4: +/* 802DAAF4 002D7A34 93 9E 00 54 */ stw r28, 0x54(r30) +/* 802DAAF8 002D7A38 7F C3 F3 78 */ mr r3, r30 +/* 802DAAFC 002D7A3C 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DAB00 002D7A40 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 802DAB04 002D7A44 7D 89 03 A6 */ mtctr r12 +/* 802DAB08 002D7A48 4E 80 04 21 */ bctrl +/* 802DAB0C 002D7A4C 80 1D 00 40 */ lwz r0, 0x40(r29) +/* 802DAB10 002D7A50 28 00 00 00 */ cmplwi r0, 0 +/* 802DAB14 002D7A54 41 82 00 10 */ beq lbl_802DAB24 +/* 802DAB18 002D7A58 7C 03 00 40 */ cmplw r3, r0 +/* 802DAB1C 002D7A5C 40 81 00 08 */ ble lbl_802DAB24 +/* 802DAB20 002D7A60 7C 03 03 78 */ mr r3, r0 +lbl_802DAB24: +/* 802DAB24 002D7A64 38 03 00 1F */ addi r0, r3, 0x1f +/* 802DAB28 002D7A68 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a +/* 802DAB2C 002D7A6C 80 1D 00 34 */ lwz r0, 0x34(r29) +/* 802DAB30 002D7A70 2C 00 00 01 */ cmpwi r0, 1 +/* 802DAB34 002D7A74 40 82 00 C8 */ bne lbl_802DABFC +/* 802DAB38 002D7A78 38 01 00 27 */ addi r0, r1, 0x27 +/* 802DAB3C 002D7A7C 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a +lbl_802DAB40: +/* 802DAB40 002D7A80 38 7E 00 5C */ addi r3, r30, 0x5c +/* 802DAB44 002D7A84 7F 24 CB 78 */ mr r4, r25 +/* 802DAB48 002D7A88 38 A0 00 20 */ li r5, 0x20 +/* 802DAB4C 002D7A8C 38 C0 00 00 */ li r6, 0 +/* 802DAB50 002D7A90 38 E0 00 02 */ li r7, 2 +/* 802DAB54 002D7A94 48 06 E2 F1 */ bl DVDReadPrio +/* 802DAB58 002D7A98 2C 03 00 00 */ cmpwi r3, 0 +/* 802DAB5C 002D7A9C 40 80 00 40 */ bge lbl_802DAB9C +/* 802DAB60 002D7AA0 88 0D 83 50 */ lbz r0, lbl_804508D0-_SDA_BASE_(r13) +/* 802DAB64 002D7AA4 28 00 00 00 */ cmplwi r0, 0 +/* 802DAB68 002D7AA8 40 82 00 2C */ bne lbl_802DAB94 +/* 802DAB6C 002D7AAC 28 1C 00 00 */ cmplwi r28, 0 +/* 802DAB70 002D7AB0 41 82 00 1C */ beq lbl_802DAB8C +/* 802DAB74 002D7AB4 7F 83 E3 78 */ mr r3, r28 +/* 802DAB78 002D7AB8 38 80 00 01 */ li r4, 1 +/* 802DAB7C 002D7ABC 81 9C 00 00 */ lwz r12, 0(r28) +/* 802DAB80 002D7AC0 81 8C 00 08 */ lwz r12, 8(r12) +/* 802DAB84 002D7AC4 7D 89 03 A6 */ mtctr r12 +/* 802DAB88 002D7AC8 4E 80 04 21 */ bctrl +lbl_802DAB8C: +/* 802DAB8C 002D7ACC 38 60 00 00 */ li r3, 0 +/* 802DAB90 002D7AD0 48 00 02 30 */ b lbl_802DADC0 +lbl_802DAB94: +/* 802DAB94 002D7AD4 48 07 1E 31 */ bl VIWaitForRetrace +/* 802DAB98 002D7AD8 4B FF FF A8 */ b lbl_802DAB40 +lbl_802DAB9C: +/* 802DAB9C 002D7ADC 7F 23 CB 78 */ mr r3, r25 +/* 802DABA0 002D7AE0 38 80 00 20 */ li r4, 0x20 +/* 802DABA4 002D7AE4 48 06 09 DD */ bl DCInvalidateRange +/* 802DABA8 002D7AE8 7F 23 CB 78 */ mr r3, r25 +/* 802DABAC 002D7AEC 48 00 11 4D */ bl checkCompressed__9JKRDecompFPUc +/* 802DABB0 002D7AF0 2C 03 00 03 */ cmpwi r3, 3 +/* 802DABB4 002D7AF4 40 82 00 08 */ bne lbl_802DABBC +/* 802DABB8 002D7AF8 38 60 00 00 */ li r3, 0 +lbl_802DABBC: +/* 802DABBC 002D7AFC 7C 7A 1B 78 */ mr r26, r3 +/* 802DABC0 002D7B00 88 B9 00 07 */ lbz r5, 7(r25) +/* 802DABC4 002D7B04 88 99 00 06 */ lbz r4, 6(r25) +/* 802DABC8 002D7B08 88 79 00 04 */ lbz r3, 4(r25) +/* 802DABCC 002D7B0C 88 19 00 05 */ lbz r0, 5(r25) +/* 802DABD0 002D7B10 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802DABD4 002D7B14 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802DABD8 002D7B18 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802DABDC 002D7B1C 7C A0 03 78 */ or r0, r5, r0 +/* 802DABE0 002D7B20 7C 19 03 78 */ mr r25, r0 +/* 802DABE4 002D7B24 80 7D 00 40 */ lwz r3, 0x40(r29) +/* 802DABE8 002D7B28 28 03 00 00 */ cmplwi r3, 0 +/* 802DABEC 002D7B2C 41 82 00 10 */ beq lbl_802DABFC +/* 802DABF0 002D7B30 7C 00 18 40 */ cmplw r0, r3 +/* 802DABF4 002D7B34 40 81 00 08 */ ble lbl_802DABFC +/* 802DABF8 002D7B38 7C 79 1B 78 */ mr r25, r3 +lbl_802DABFC: +/* 802DABFC 002D7B3C 2C 1A 00 00 */ cmpwi r26, 0 +/* 802DAC00 002D7B40 40 82 00 0C */ bne lbl_802DAC0C +/* 802DAC04 002D7B44 38 00 00 00 */ li r0, 0 +/* 802DAC08 002D7B48 90 1D 00 34 */ stw r0, 0x34(r29) +lbl_802DAC0C: +/* 802DAC0C 002D7B4C 80 1D 00 34 */ lwz r0, 0x34(r29) +/* 802DAC10 002D7B50 2C 00 00 01 */ cmpwi r0, 1 +/* 802DAC14 002D7B54 40 82 00 80 */ bne lbl_802DAC94 +/* 802DAC18 002D7B58 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 802DAC1C 002D7B5C 28 00 00 00 */ cmplwi r0, 0 +/* 802DAC20 002D7B60 40 82 00 44 */ bne lbl_802DAC64 +/* 802DAC24 002D7B64 80 1D 00 30 */ lwz r0, 0x30(r29) +/* 802DAC28 002D7B68 28 00 00 00 */ cmplwi r0, 0 +/* 802DAC2C 002D7B6C 40 82 00 38 */ bne lbl_802DAC64 +/* 802DAC30 002D7B70 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802DAC34 002D7B74 80 63 00 94 */ lwz r3, 0x94(r3) +/* 802DAC38 002D7B78 7F 24 CB 78 */ mr r4, r25 +/* 802DAC3C 002D7B7C 38 A0 00 00 */ li r5, 0 +/* 802DAC40 002D7B80 4B FF 83 7D */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode +/* 802DAC44 002D7B84 90 7D 00 30 */ stw r3, 0x30(r29) +/* 802DAC48 002D7B88 80 7D 00 30 */ lwz r3, 0x30(r29) +/* 802DAC4C 002D7B8C 28 03 00 00 */ cmplwi r3, 0 +/* 802DAC50 002D7B90 41 82 00 0C */ beq lbl_802DAC5C +/* 802DAC54 002D7B94 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802DAC58 002D7B98 90 1D 00 2C */ stw r0, 0x2c(r29) +lbl_802DAC5C: +/* 802DAC5C 002D7B9C 80 1D 00 30 */ lwz r0, 0x30(r29) +/* 802DAC60 002D7BA0 90 1E 00 4C */ stw r0, 0x4c(r30) +lbl_802DAC64: +/* 802DAC64 002D7BA4 80 7D 00 30 */ lwz r3, 0x30(r29) +/* 802DAC68 002D7BA8 28 03 00 00 */ cmplwi r3, 0 +/* 802DAC6C 002D7BAC 41 82 00 0C */ beq lbl_802DAC78 +/* 802DAC70 002D7BB0 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802DAC74 002D7BB4 90 1D 00 2C */ stw r0, 0x2c(r29) +lbl_802DAC78: +/* 802DAC78 002D7BB8 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 802DAC7C 002D7BBC 28 00 00 00 */ cmplwi r0, 0 +/* 802DAC80 002D7BC0 40 82 00 74 */ bne lbl_802DACF4 +/* 802DAC84 002D7BC4 38 00 00 00 */ li r0, 0 +/* 802DAC88 002D7BC8 90 1E 00 50 */ stw r0, 0x50(r30) +/* 802DAC8C 002D7BCC 38 60 00 00 */ li r3, 0 +/* 802DAC90 002D7BD0 48 00 01 30 */ b lbl_802DADC0 +lbl_802DAC94: +/* 802DAC94 002D7BD4 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 802DAC98 002D7BD8 28 00 00 00 */ cmplwi r0, 0 +/* 802DAC9C 002D7BDC 40 82 00 28 */ bne lbl_802DACC4 +/* 802DACA0 002D7BE0 80 1D 00 30 */ lwz r0, 0x30(r29) +/* 802DACA4 002D7BE4 28 00 00 00 */ cmplwi r0, 0 +/* 802DACA8 002D7BE8 40 82 00 1C */ bne lbl_802DACC4 +/* 802DACAC 002D7BEC 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13) +/* 802DACB0 002D7BF0 80 63 00 94 */ lwz r3, 0x94(r3) +/* 802DACB4 002D7BF4 7F 64 DB 78 */ mr r4, r27 +/* 802DACB8 002D7BF8 38 A0 00 00 */ li r5, 0 +/* 802DACBC 002D7BFC 4B FF 83 01 */ bl alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode +/* 802DACC0 002D7C00 90 7D 00 30 */ stw r3, 0x30(r29) +lbl_802DACC4: +/* 802DACC4 002D7C04 80 7D 00 30 */ lwz r3, 0x30(r29) +/* 802DACC8 002D7C08 28 03 00 00 */ cmplwi r3, 0 +/* 802DACCC 002D7C0C 41 82 00 0C */ beq lbl_802DACD8 +/* 802DACD0 002D7C10 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802DACD4 002D7C14 90 1D 00 2C */ stw r0, 0x2c(r29) +lbl_802DACD8: +/* 802DACD8 002D7C18 80 1D 00 2C */ lwz r0, 0x2c(r29) +/* 802DACDC 002D7C1C 28 00 00 00 */ cmplwi r0, 0 +/* 802DACE0 002D7C20 40 82 00 14 */ bne lbl_802DACF4 +/* 802DACE4 002D7C24 38 00 00 00 */ li r0, 0 +/* 802DACE8 002D7C28 90 1E 00 50 */ stw r0, 0x50(r30) +/* 802DACEC 002D7C2C 38 60 00 00 */ li r3, 0 +/* 802DACF0 002D7C30 48 00 00 D0 */ b lbl_802DADC0 +lbl_802DACF4: +/* 802DACF4 002D7C34 2C 1A 00 00 */ cmpwi r26, 0 +/* 802DACF8 002D7C38 40 82 00 24 */ bne lbl_802DAD1C +/* 802DACFC 002D7C3C 80 9D 00 2C */ lwz r4, 0x2c(r29) +/* 802DAD00 002D7C40 80 DD 00 3C */ lwz r6, 0x3c(r29) +/* 802DAD04 002D7C44 7F 83 E3 78 */ mr r3, r28 +/* 802DAD08 002D7C48 7C A6 D8 50 */ subf r5, r6, r27 +/* 802DAD0C 002D7C4C 80 FD 00 44 */ lwz r7, 0x44(r29) +/* 802DAD10 002D7C50 4B FF 91 C1 */ bl write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl +/* 802DAD14 002D7C54 90 7D 00 50 */ stw r3, 0x50(r29) +/* 802DAD18 002D7C58 48 00 00 5C */ b lbl_802DAD74 +lbl_802DAD1C: +/* 802DAD1C 002D7C5C 2C 1A 00 01 */ cmpwi r26, 1 +/* 802DAD20 002D7C60 40 82 00 24 */ bne lbl_802DAD44 +/* 802DAD24 002D7C64 80 9D 00 2C */ lwz r4, 0x2c(r29) +/* 802DAD28 002D7C68 80 DD 00 3C */ lwz r6, 0x3c(r29) +/* 802DAD2C 002D7C6C 7F 83 E3 78 */ mr r3, r28 +/* 802DAD30 002D7C70 7C A6 D8 50 */ subf r5, r6, r27 +/* 802DAD34 002D7C74 80 FD 00 44 */ lwz r7, 0x44(r29) +/* 802DAD38 002D7C78 4B FF 91 99 */ bl write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl +/* 802DAD3C 002D7C7C 90 7D 00 50 */ stw r3, 0x50(r29) +/* 802DAD40 002D7C80 48 00 00 34 */ b lbl_802DAD74 +lbl_802DAD44: +/* 802DAD44 002D7C84 2C 1A 00 02 */ cmpwi r26, 2 +/* 802DAD48 002D7C88 40 82 00 2C */ bne lbl_802DAD74 +/* 802DAD4C 002D7C8C 38 00 00 00 */ li r0, 0 +/* 802DAD50 002D7C90 90 1D 00 50 */ stw r0, 0x50(r29) +/* 802DAD54 002D7C94 80 7D 00 28 */ lwz r3, 0x28(r29) +/* 802DAD58 002D7C98 80 9D 00 2C */ lwz r4, 0x2c(r29) +/* 802DAD5C 002D7C9C 7F 65 DB 78 */ mr r5, r27 +/* 802DAD60 002D7CA0 7F 26 CB 78 */ mr r6, r25 +/* 802DAD64 002D7CA4 80 FD 00 3C */ lwz r7, 0x3c(r29) +/* 802DAD68 002D7CA8 39 00 00 00 */ li r8, 0 +/* 802DAD6C 002D7CAC 81 3D 00 44 */ lwz r9, 0x44(r29) +/* 802DAD70 002D7CB0 48 00 02 79 */ bl JKRDecompressFromDVDToAram__FP10JKRDvdFileUlUlUlUlUlPUl +lbl_802DAD74: +/* 802DAD74 002D7CB4 81 9D 00 38 */ lwz r12, 0x38(r29) +/* 802DAD78 002D7CB8 28 0C 00 00 */ cmplwi r12, 0 +/* 802DAD7C 002D7CBC 40 82 00 18 */ bne lbl_802DAD94 +/* 802DAD80 002D7CC0 3C 60 80 43 */ lis r3, lbl_804343B4@ha +/* 802DAD84 002D7CC4 38 63 43 B4 */ addi r3, r3, lbl_804343B4@l +/* 802DAD88 002D7CC8 7F A4 EB 78 */ mr r4, r29 +/* 802DAD8C 002D7CCC 48 00 11 C1 */ bl append__10JSUPtrListFP10JSUPtrLink +/* 802DAD90 002D7CD0 48 00 00 10 */ b lbl_802DADA0 +lbl_802DAD94: +/* 802DAD94 002D7CD4 7F A3 EB 78 */ mr r3, r29 +/* 802DAD98 002D7CD8 7D 89 03 A6 */ mtctr r12 +/* 802DAD9C 002D7CDC 4E 80 04 21 */ bctrl +lbl_802DADA0: +/* 802DADA0 002D7CE0 38 7E 00 34 */ addi r3, r30, 0x34 +/* 802DADA4 002D7CE4 48 06 43 79 */ bl OSUnlockMutex +/* 802DADA8 002D7CE8 57 E0 06 3E */ clrlwi r0, r31, 0x18 +/* 802DADAC 002D7CEC 28 00 00 01 */ cmplwi r0, 1 +/* 802DADB0 002D7CF0 40 82 00 0C */ bne lbl_802DADBC +/* 802DADB4 002D7CF4 7F A3 EB 78 */ mr r3, r29 +/* 802DADB8 002D7CF8 48 00 00 08 */ b lbl_802DADC0 +lbl_802DADBC: +/* 802DADBC 002D7CFC 38 60 00 00 */ li r3, 0 +lbl_802DADC0: +/* 802DADC0 002D7D00 39 61 00 70 */ addi r11, r1, 0x70 +/* 802DADC4 002D7D04 48 08 74 55 */ bl func_80362218 +/* 802DADC8 002D7D08 80 01 00 74 */ lwz r0, 0x74(r1) +/* 802DADCC 002D7D0C 7C 08 03 A6 */ mtlr r0 +/* 802DADD0 002D7D10 38 21 00 70 */ addi r1, r1, 0x70 +/* 802DADD4 002D7D14 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DADD8.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DADD8.s new file mode 100644 index 0000000000..1a27d68dc1 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DADD8.s @@ -0,0 +1,32 @@ +/* __dt__18JSUFileInputStreamFv JSUFileInputStream::__dt(void) */ +/* missing reference */ +/* 802DADD8 002D7D18 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DADDC 002D7D1C 7C 08 02 A6 */ mflr r0 +/* 802DADE0 002D7D20 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DADE4 002D7D24 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DADE8 002D7D28 93 C1 00 08 */ stw r30, 8(r1) +/* 802DADEC 002D7D2C 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802DADF0 002D7D30 7C 9F 23 78 */ mr r31, r4 +/* 802DADF4 002D7D34 41 82 00 38 */ beq lbl_802DAE2C +/* 802DADF8 002D7D38 3C 80 80 3D */ lis r4, lbl_803CC518@ha +/* 802DADFC 002D7D3C 38 04 C5 18 */ addi r0, r4, lbl_803CC518@l +/* 802DAE00 002D7D40 90 1E 00 00 */ stw r0, 0(r30) +/* 802DAE04 002D7D44 41 82 00 18 */ beq lbl_802DAE1C +/* 802DAE08 002D7D48 3C 80 80 3D */ lis r4, lbl_803CC4B0@ha +/* 802DAE0C 002D7D4C 38 04 C4 B0 */ addi r0, r4, lbl_803CC4B0@l +/* 802DAE10 002D7D50 90 1E 00 00 */ stw r0, 0(r30) +/* 802DAE14 002D7D54 38 80 00 00 */ li r4, 0 +/* 802DAE18 002D7D58 48 00 14 25 */ bl JSUInputStream_NS_dtor +lbl_802DAE1C: +/* 802DAE1C 002D7D5C 7F E0 07 35 */ extsh. r0, r31 +/* 802DAE20 002D7D60 40 81 00 0C */ ble lbl_802DAE2C +/* 802DAE24 002D7D64 7F C3 F3 78 */ mr r3, r30 +/* 802DAE28 002D7D68 4B FF 3F 15 */ bl __dl__FPv +lbl_802DAE2C: +/* 802DAE2C 002D7D6C 7F C3 F3 78 */ mr r3, r30 +/* 802DAE30 002D7D70 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DAE34 002D7D74 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DAE38 002D7D78 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DAE3C 002D7D7C 7C 08 03 A6 */ mtlr r0 +/* 802DAE40 002D7D80 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DAE44 002D7D84 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAE48.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAE48.s new file mode 100644 index 0000000000..389f5eb672 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAE48.s @@ -0,0 +1,59 @@ +/* syncAram__16JKRDvdAramRipperFP12JKRADCommandi JKRDvdAramRipper::syncAram(JKRADCommand *, int) */ +/* JKRDvdAramRipper_NS_syncAram */ +/* 802DAE48 002D7D88 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DAE4C 002D7D8C 7C 08 02 A6 */ mflr r0 +/* 802DAE50 002D7D90 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DAE54 002D7D94 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DAE58 002D7D98 48 08 73 85 */ bl _savegpr_29 +/* 802DAE5C 002D7D9C 7C 7D 1B 78 */ mr r29, r3 +/* 802DAE60 002D7DA0 7C 9E 23 78 */ mr r30, r4 +/* 802DAE64 002D7DA4 83 E3 00 28 */ lwz r31, 0x28(r3) +/* 802DAE68 002D7DA8 38 7F 00 34 */ addi r3, r31, 0x34 +/* 802DAE6C 002D7DAC 48 06 41 D5 */ bl OSLockMutex +/* 802DAE70 002D7DB0 80 7D 00 50 */ lwz r3, 0x50(r29) +/* 802DAE74 002D7DB4 28 03 00 00 */ cmplwi r3, 0 +/* 802DAE78 002D7DB8 41 82 00 38 */ beq lbl_802DAEB0 +/* 802DAE7C 002D7DBC 7F C4 F3 78 */ mr r4, r30 +/* 802DAE80 002D7DC0 4B FF 91 21 */ bl sync__13JKRAramStreamFP20JKRAramStreamCommandi +/* 802DAE84 002D7DC4 30 03 FF FF */ addic r0, r3, -1 +/* 802DAE88 002D7DC8 7C 00 01 10 */ subfe r0, r0, r0 +/* 802DAE8C 002D7DCC 90 1D 00 48 */ stw r0, 0x48(r29) +/* 802DAE90 002D7DD0 2C 1E 00 00 */ cmpwi r30, 0 +/* 802DAE94 002D7DD4 41 82 00 1C */ beq lbl_802DAEB0 +/* 802DAE98 002D7DD8 28 03 00 00 */ cmplwi r3, 0 +/* 802DAE9C 002D7DDC 40 82 00 14 */ bne lbl_802DAEB0 +/* 802DAEA0 002D7DE0 38 7F 00 34 */ addi r3, r31, 0x34 +/* 802DAEA4 002D7DE4 48 06 42 79 */ bl OSUnlockMutex +/* 802DAEA8 002D7DE8 38 60 00 00 */ li r3, 0 +/* 802DAEAC 002D7DEC 48 00 00 58 */ b lbl_802DAF04 +lbl_802DAEB0: +/* 802DAEB0 002D7DF0 3C 60 80 43 */ lis r3, lbl_804343B4@ha +/* 802DAEB4 002D7DF4 38 63 43 B4 */ addi r3, r3, lbl_804343B4@l +/* 802DAEB8 002D7DF8 7F A4 EB 78 */ mr r4, r29 +/* 802DAEBC 002D7DFC 48 00 12 A1 */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802DAEC0 002D7E00 80 7D 00 50 */ lwz r3, 0x50(r29) +/* 802DAEC4 002D7E04 28 03 00 00 */ cmplwi r3, 0 +/* 802DAEC8 002D7E08 41 82 00 08 */ beq lbl_802DAED0 +/* 802DAECC 002D7E0C 4B FF 3E 71 */ bl __dl__FPv +lbl_802DAED0: +/* 802DAED0 002D7E10 80 7F 00 54 */ lwz r3, 0x54(r31) +/* 802DAED4 002D7E14 28 03 00 00 */ cmplwi r3, 0 +/* 802DAED8 002D7E18 41 82 00 18 */ beq lbl_802DAEF0 +/* 802DAEDC 002D7E1C 38 80 00 01 */ li r4, 1 +/* 802DAEE0 002D7E20 81 83 00 00 */ lwz r12, 0(r3) +/* 802DAEE4 002D7E24 81 8C 00 08 */ lwz r12, 8(r12) +/* 802DAEE8 002D7E28 7D 89 03 A6 */ mtctr r12 +/* 802DAEEC 002D7E2C 4E 80 04 21 */ bctrl +lbl_802DAEF0: +/* 802DAEF0 002D7E30 38 00 00 00 */ li r0, 0 +/* 802DAEF4 002D7E34 90 1F 00 50 */ stw r0, 0x50(r31) +/* 802DAEF8 002D7E38 38 7F 00 34 */ addi r3, r31, 0x34 +/* 802DAEFC 002D7E3C 48 06 42 21 */ bl OSUnlockMutex +/* 802DAF00 002D7E40 38 60 00 01 */ li r3, 1 +lbl_802DAF04: +/* 802DAF04 002D7E44 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DAF08 002D7E48 48 08 73 21 */ bl _restgpr_29 +/* 802DAF0C 002D7E4C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DAF10 002D7E50 7C 08 03 A6 */ mtlr r0 +/* 802DAF14 002D7E54 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DAF18 002D7E58 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF1C.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF1C.s new file mode 100644 index 0000000000..310ca46737 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF1C.s @@ -0,0 +1,18 @@ +/* __ct__12JKRADCommandFv __ct__12JKRADCommandFv::__ct(void) */ +/* JKRADCommand */ +/* 802DAF1C 002D7E5C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DAF20 002D7E60 7C 08 02 A6 */ mflr r0 +/* 802DAF24 002D7E64 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DAF28 002D7E68 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DAF2C 002D7E6C 7C 7F 1B 78 */ mr r31, r3 +/* 802DAF30 002D7E70 7F E4 FB 78 */ mr r4, r31 +/* 802DAF34 002D7E74 48 00 0E C9 */ bl __ct__10JSUPtrLinkFPv +/* 802DAF38 002D7E78 38 00 00 00 */ li r0, 0 +/* 802DAF3C 002D7E7C 90 1F 00 48 */ stw r0, 0x48(r31) +/* 802DAF40 002D7E80 98 1F 00 4C */ stb r0, 0x4c(r31) +/* 802DAF44 002D7E84 7F E3 FB 78 */ mr r3, r31 +/* 802DAF48 002D7E88 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DAF4C 002D7E8C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DAF50 002D7E90 7C 08 03 A6 */ mtlr r0 +/* 802DAF54 002D7E94 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DAF58 002D7E98 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF5C.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF5C.s new file mode 100644 index 0000000000..ed19e1257c --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF5C.s @@ -0,0 +1,40 @@ +/* __dt__12JKRADCommandFv __ct__12JKRADCommandFv::__dt(void) */ +/* JKRADCommand_NS_dtor */ +/* 802DAF5C 002D7E9C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DAF60 002D7EA0 7C 08 02 A6 */ mflr r0 +/* 802DAF64 002D7EA4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DAF68 002D7EA8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DAF6C 002D7EAC 93 C1 00 08 */ stw r30, 8(r1) +/* 802DAF70 002D7EB0 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802DAF74 002D7EB4 7C 9F 23 78 */ mr r31, r4 +/* 802DAF78 002D7EB8 41 82 00 54 */ beq lbl_802DAFCC +/* 802DAF7C 002D7EBC 88 1E 00 4C */ lbz r0, 0x4c(r30) +/* 802DAF80 002D7EC0 28 00 00 01 */ cmplwi r0, 1 +/* 802DAF84 002D7EC4 40 82 00 24 */ bne lbl_802DAFA8 +/* 802DAF88 002D7EC8 80 7E 00 28 */ lwz r3, 0x28(r30) +/* 802DAF8C 002D7ECC 28 03 00 00 */ cmplwi r3, 0 +/* 802DAF90 002D7ED0 41 82 00 18 */ beq lbl_802DAFA8 +/* 802DAF94 002D7ED4 38 80 00 01 */ li r4, 1 +/* 802DAF98 002D7ED8 81 83 00 00 */ lwz r12, 0(r3) +/* 802DAF9C 002D7EDC 81 8C 00 08 */ lwz r12, 8(r12) +/* 802DAFA0 002D7EE0 7D 89 03 A6 */ mtctr r12 +/* 802DAFA4 002D7EE4 4E 80 04 21 */ bctrl +lbl_802DAFA8: +/* 802DAFA8 002D7EE8 28 1E 00 00 */ cmplwi r30, 0 +/* 802DAFAC 002D7EEC 41 82 00 10 */ beq lbl_802DAFBC +/* 802DAFB0 002D7EF0 7F C3 F3 78 */ mr r3, r30 +/* 802DAFB4 002D7EF4 38 80 00 00 */ li r4, 0 +/* 802DAFB8 002D7EF8 48 00 0E 5D */ bl __dt__10JSUPtrLinkFv +lbl_802DAFBC: +/* 802DAFBC 002D7EFC 7F E0 07 35 */ extsh. r0, r31 +/* 802DAFC0 002D7F00 40 81 00 0C */ ble lbl_802DAFCC +/* 802DAFC4 002D7F04 7F C3 F3 78 */ mr r3, r30 +/* 802DAFC8 002D7F08 4B FF 3D 75 */ bl __dl__FPv +lbl_802DAFCC: +/* 802DAFCC 002D7F0C 7F C3 F3 78 */ mr r3, r30 +/* 802DAFD0 002D7F10 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DAFD4 002D7F14 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DAFD8 002D7F18 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DAFDC 002D7F1C 7C 08 03 A6 */ mtlr r0 +/* 802DAFE0 002D7F20 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DAFE4 002D7F24 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s new file mode 100644 index 0000000000..8f0bab04f7 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s @@ -0,0 +1,101 @@ +/* JKRDecompressFromDVDToAram__FP10JKRDvdFileUlUlUlUlUlPUl JKRDecompressFromDVDToAram(JKRDvdFile *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long *) */ +/* JKRDecompressFromDVDToAram */ +/* 802DAFE8 002D7F28 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802DAFEC 002D7F2C 7C 08 02 A6 */ mflr r0 +/* 802DAFF0 002D7F30 90 01 00 34 */ stw r0, 0x34(r1) +/* 802DAFF4 002D7F34 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DAFF8 002D7F38 48 08 71 D1 */ bl func_803621C8 +/* 802DAFFC 002D7F3C 7C 79 1B 78 */ mr r25, r3 +/* 802DB000 002D7F40 7C 9A 23 78 */ mr r26, r4 +/* 802DB004 002D7F44 7C BB 2B 78 */ mr r27, r5 +/* 802DB008 002D7F48 7C DC 33 78 */ mr r28, r6 +/* 802DB00C 002D7F4C 7C FD 3B 78 */ mr r29, r7 +/* 802DB010 002D7F50 7D 1E 43 78 */ mr r30, r8 +/* 802DB014 002D7F54 7D 3F 4B 78 */ mr r31, r9 +/* 802DB018 002D7F58 48 06 26 DD */ bl __RAS_OSDisableInterrupts_begin +/* 802DB01C 002D7F5C 7C 78 1B 78 */ mr r24, r3 +/* 802DB020 002D7F60 88 0D 8F 24 */ lbz r0, lbl_804514A4-_SDA_BASE_(r13) +/* 802DB024 002D7F64 28 00 00 00 */ cmplwi r0, 0 +/* 802DB028 002D7F68 40 82 00 18 */ bne lbl_802DB040 +/* 802DB02C 002D7F6C 3C 60 80 43 */ lis r3, lbl_804343C0@ha +/* 802DB030 002D7F70 38 63 43 C0 */ addi r3, r3, lbl_804343C0@l +/* 802DB034 002D7F74 48 06 3F D5 */ bl OSInitMutex +/* 802DB038 002D7F78 38 00 00 01 */ li r0, 1 +/* 802DB03C 002D7F7C 98 0D 8F 24 */ stb r0, lbl_804514A4-_SDA_BASE_(r13) +lbl_802DB040: +/* 802DB040 002D7F80 7F 03 C3 78 */ mr r3, r24 +/* 802DB044 002D7F84 48 06 26 D9 */ bl OSRestoreInterrupts +/* 802DB048 002D7F88 3C 60 80 43 */ lis r3, lbl_804343C0@ha +/* 802DB04C 002D7F8C 38 63 43 C0 */ addi r3, r3, lbl_804343C0@l +/* 802DB050 002D7F90 48 06 3F F1 */ bl OSLockMutex +/* 802DB054 002D7F94 83 0D 83 54 */ lwz r24, lbl_804508D4-_SDA_BASE_(r13) +/* 802DB058 002D7F98 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802DB05C 002D7F9C 7F 04 C3 78 */ mr r4, r24 +/* 802DB060 002D7FA0 38 A0 00 20 */ li r5, 0x20 +/* 802DB064 002D7FA4 4B FF 34 71 */ bl alloc__7JKRHeapFUli +/* 802DB068 002D7FA8 90 6D 8E E8 */ stw r3, lbl_80451468-_SDA_BASE_(r13) +/* 802DB06C 002D7FAC 7C 03 C2 14 */ add r0, r3, r24 +/* 802DB070 002D7FB0 90 0D 8E EC */ stw r0, lbl_8045146C-_SDA_BASE_(r13) +/* 802DB074 002D7FB4 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802DB078 002D7FB8 38 80 11 20 */ li r4, 0x1120 +/* 802DB07C 002D7FBC 38 A0 00 00 */ li r5, 0 +/* 802DB080 002D7FC0 4B FF 34 55 */ bl alloc__7JKRHeapFUli +/* 802DB084 002D7FC4 90 6D 8E F0 */ stw r3, lbl_80451470-_SDA_BASE_(r13) +/* 802DB088 002D7FC8 38 03 11 20 */ addi r0, r3, 0x1120 +/* 802DB08C 002D7FCC 90 0D 8E F4 */ stw r0, lbl_80451474-_SDA_BASE_(r13) +/* 802DB090 002D7FD0 90 6D 8E F8 */ stw r3, lbl_80451478-_SDA_BASE_(r13) +/* 802DB094 002D7FD4 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802DB098 002D7FD8 38 80 01 00 */ li r4, 0x100 +/* 802DB09C 002D7FDC 38 A0 00 20 */ li r5, 0x20 +/* 802DB0A0 002D7FE0 4B FF 34 35 */ bl alloc__7JKRHeapFUli +/* 802DB0A4 002D7FE4 90 6D 8E FC */ stw r3, lbl_8045147C-_SDA_BASE_(r13) +/* 802DB0A8 002D7FE8 38 03 01 00 */ addi r0, r3, 0x100 +/* 802DB0AC 002D7FEC 90 0D 8F 00 */ stw r0, lbl_80451480-_SDA_BASE_(r13) +/* 802DB0B0 002D7FF0 90 6D 8F 04 */ stw r3, lbl_80451484-_SDA_BASE_(r13) +/* 802DB0B4 002D7FF4 93 2D 8F 14 */ stw r25, lbl_80451494-_SDA_BASE_(r13) +/* 802DB0B8 002D7FF8 93 CD 8F 08 */ stw r30, lbl_80451488-_SDA_BASE_(r13) +/* 802DB0BC 002D7FFC 7C 1E D8 50 */ subf r0, r30, r27 +/* 802DB0C0 002D8000 90 0D 8F 0C */ stw r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB0C4 002D8004 93 AD 8F 18 */ stw r29, lbl_80451498-_SDA_BASE_(r13) +/* 802DB0C8 002D8008 38 00 00 00 */ li r0, 0 +/* 802DB0CC 002D800C 90 0D 8F 1C */ stw r0, lbl_8045149C-_SDA_BASE_(r13) +/* 802DB0D0 002D8010 93 8D 8F 20 */ stw r28, lbl_804514A0-_SDA_BASE_(r13) +/* 802DB0D4 002D8014 28 1F 00 00 */ cmplwi r31, 0 +/* 802DB0D8 002D8018 41 82 00 0C */ beq lbl_802DB0E4 +/* 802DB0DC 002D801C 7F E3 FB 78 */ mr r3, r31 +/* 802DB0E0 002D8020 48 00 00 08 */ b lbl_802DB0E8 +lbl_802DB0E4: +/* 802DB0E4 002D8024 38 6D 8F 2C */ addi r3, r13, 0x804514AC-0x80458580 +lbl_802DB0E8: +/* 802DB0E8 002D8028 90 6D 8F 28 */ stw r3, lbl_804514A8-_SDA_BASE_(r13) +/* 802DB0EC 002D802C 38 00 00 00 */ li r0, 0 +/* 802DB0F0 002D8030 90 03 00 00 */ stw r0, 0(r3) +/* 802DB0F4 002D8034 48 00 02 F5 */ bl firstSrcData__Fv +/* 802DB0F8 002D8038 28 03 00 00 */ cmplwi r3, 0 +/* 802DB0FC 002D803C 41 82 00 14 */ beq lbl_802DB110 +/* 802DB100 002D8040 7F 44 D3 78 */ mr r4, r26 +/* 802DB104 002D8044 48 00 00 5D */ bl decompSZS_subroutine__FPUcUl +/* 802DB108 002D8048 7C 79 1B 78 */ mr r25, r3 +/* 802DB10C 002D804C 48 00 00 08 */ b lbl_802DB114 +lbl_802DB110: +/* 802DB110 002D8050 3B 20 FF FF */ li r25, -1 +lbl_802DB114: +/* 802DB114 002D8054 80 6D 8E E8 */ lwz r3, lbl_80451468-_SDA_BASE_(r13) +/* 802DB118 002D8058 38 80 00 00 */ li r4, 0 +/* 802DB11C 002D805C 4B FF 33 E5 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802DB120 002D8060 80 6D 8E F0 */ lwz r3, lbl_80451470-_SDA_BASE_(r13) +/* 802DB124 002D8064 38 80 00 00 */ li r4, 0 +/* 802DB128 002D8068 4B FF 33 D9 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802DB12C 002D806C 80 6D 8E FC */ lwz r3, lbl_8045147C-_SDA_BASE_(r13) +/* 802DB130 002D8070 38 80 00 00 */ li r4, 0 +/* 802DB134 002D8074 4B FF 33 CD */ bl free__7JKRHeapFPvP7JKRHeap +/* 802DB138 002D8078 3C 60 80 43 */ lis r3, lbl_804343C0@ha +/* 802DB13C 002D807C 38 63 43 C0 */ addi r3, r3, lbl_804343C0@l +/* 802DB140 002D8080 48 06 3F DD */ bl OSUnlockMutex +/* 802DB144 002D8084 7F 23 CB 78 */ mr r3, r25 +/* 802DB148 002D8088 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DB14C 002D808C 48 08 70 C9 */ bl func_80362214 +/* 802DB150 002D8090 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802DB154 002D8094 7C 08 03 A6 */ mtlr r0 +/* 802DB158 002D8098 38 21 00 30 */ addi r1, r1, 0x30 +/* 802DB15C 002D809C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB160.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB160.s new file mode 100644 index 0000000000..efe9c68887 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB160.s @@ -0,0 +1,184 @@ +/* decompSZS_subroutine__FPUcUl decompSZS_subroutine(unsigned char *, unsigned long) */ +/* decompSZS_subroutine_X2_ */ +/* 802DB160 002D80A0 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802DB164 002D80A4 7C 08 02 A6 */ mflr r0 +/* 802DB168 002D80A8 90 01 00 34 */ stw r0, 0x34(r1) +/* 802DB16C 002D80AC 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DB170 002D80B0 48 08 70 55 */ bl func_803621C4 +/* 802DB174 002D80B4 7C 98 23 78 */ mr r24, r4 +/* 802DB178 002D80B8 3B A0 00 00 */ li r29, 0 +/* 802DB17C 002D80BC 3B 80 00 00 */ li r28, 0 +/* 802DB180 002D80C0 3B 40 00 00 */ li r26, 0 +/* 802DB184 002D80C4 7F 19 C3 78 */ mr r25, r24 +/* 802DB188 002D80C8 88 03 00 00 */ lbz r0, 0(r3) +/* 802DB18C 002D80CC 2C 00 00 59 */ cmpwi r0, 0x59 +/* 802DB190 002D80D0 40 82 00 28 */ bne lbl_802DB1B8 +/* 802DB194 002D80D4 88 03 00 01 */ lbz r0, 1(r3) +/* 802DB198 002D80D8 2C 00 00 61 */ cmpwi r0, 0x61 +/* 802DB19C 002D80DC 40 82 00 1C */ bne lbl_802DB1B8 +/* 802DB1A0 002D80E0 88 03 00 02 */ lbz r0, 2(r3) +/* 802DB1A4 002D80E4 2C 00 00 7A */ cmpwi r0, 0x7a +/* 802DB1A8 002D80E8 40 82 00 10 */ bne lbl_802DB1B8 +/* 802DB1AC 002D80EC 88 03 00 03 */ lbz r0, 3(r3) +/* 802DB1B0 002D80F0 2C 00 00 30 */ cmpwi r0, 0x30 +/* 802DB1B4 002D80F4 41 82 00 0C */ beq lbl_802DB1C0 +lbl_802DB1B8: +/* 802DB1B8 002D80F8 38 60 FF FF */ li r3, -1 +/* 802DB1BC 002D80FC 48 00 02 14 */ b lbl_802DB3D0 +lbl_802DB1C0: +/* 802DB1C0 002D8100 80 8D 8F 18 */ lwz r4, lbl_80451498-_SDA_BASE_(r13) +/* 802DB1C4 002D8104 80 03 00 04 */ lwz r0, 4(r3) +/* 802DB1C8 002D8108 7C 04 00 50 */ subf r0, r4, r0 +/* 802DB1CC 002D810C 7F F8 02 14 */ add r31, r24, r0 +/* 802DB1D0 002D8110 80 0D 8F 20 */ lwz r0, lbl_804514A0-_SDA_BASE_(r13) +/* 802DB1D4 002D8114 7C 18 02 14 */ add r0, r24, r0 +/* 802DB1D8 002D8118 7C 1F 00 40 */ cmplw r31, r0 +/* 802DB1DC 002D811C 40 81 00 08 */ ble lbl_802DB1E4 +/* 802DB1E0 002D8120 7C 1F 03 78 */ mr r31, r0 +lbl_802DB1E4: +/* 802DB1E4 002D8124 3A E3 00 10 */ addi r23, r3, 0x10 +lbl_802DB1E8: +/* 802DB1E8 002D8128 2C 1D 00 00 */ cmpwi r29, 0 +/* 802DB1EC 002D812C 40 82 00 34 */ bne lbl_802DB220 +/* 802DB1F0 002D8130 80 0D 8F 10 */ lwz r0, lbl_80451490-_SDA_BASE_(r13) +/* 802DB1F4 002D8134 7C 17 00 40 */ cmplw r23, r0 +/* 802DB1F8 002D8138 40 81 00 1C */ ble lbl_802DB214 +/* 802DB1FC 002D813C 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB200 002D8140 28 00 00 00 */ cmplwi r0, 0 +/* 802DB204 002D8144 41 82 00 10 */ beq lbl_802DB214 +/* 802DB208 002D8148 7E E3 BB 78 */ mr r3, r23 +/* 802DB20C 002D814C 48 00 02 91 */ bl nextSrcData__FPUc +/* 802DB210 002D8150 7C 77 1B 78 */ mr r23, r3 +lbl_802DB214: +/* 802DB214 002D8154 8B 97 00 00 */ lbz r28, 0(r23) +/* 802DB218 002D8158 3B A0 00 08 */ li r29, 8 +/* 802DB21C 002D815C 3A F7 00 01 */ addi r23, r23, 1 +lbl_802DB220: +/* 802DB220 002D8160 57 80 06 31 */ rlwinm. r0, r28, 0, 0x18, 0x18 +/* 802DB224 002D8164 41 82 00 94 */ beq lbl_802DB2B8 +/* 802DB228 002D8168 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) +/* 802DB22C 002D816C 80 0D 8F 18 */ lwz r0, lbl_80451498-_SDA_BASE_(r13) +/* 802DB230 002D8170 7C 03 00 40 */ cmplw r3, r0 +/* 802DB234 002D8174 41 80 00 44 */ blt lbl_802DB278 +/* 802DB238 002D8178 88 97 00 00 */ lbz r4, 0(r23) +/* 802DB23C 002D817C 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) +/* 802DB240 002D8180 38 03 00 01 */ addi r0, r3, 1 +/* 802DB244 002D8184 90 0D 8F 04 */ stw r0, lbl_80451484-_SDA_BASE_(r13) +/* 802DB248 002D8188 98 83 00 00 */ stb r4, 0(r3) +/* 802DB24C 002D818C 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) +/* 802DB250 002D8190 80 0D 8F 00 */ lwz r0, lbl_80451480-_SDA_BASE_(r13) +/* 802DB254 002D8194 7C 03 00 40 */ cmplw r3, r0 +/* 802DB258 002D8198 3B 18 00 01 */ addi r24, r24, 1 +/* 802DB25C 002D819C 3B 5A 00 01 */ addi r26, r26, 1 +/* 802DB260 002D81A0 40 82 00 10 */ bne lbl_802DB270 +/* 802DB264 002D81A4 7F 23 CB 78 */ mr r3, r25 +/* 802DB268 002D81A8 48 00 03 19 */ bl dmaBufferFlush__FUl +/* 802DB26C 002D81AC 7F 39 1A 14 */ add r25, r25, r3 +lbl_802DB270: +/* 802DB270 002D81B0 7C 18 F8 40 */ cmplw r24, r31 +/* 802DB274 002D81B4 41 82 01 48 */ beq lbl_802DB3BC +lbl_802DB278: +/* 802DB278 002D81B8 88 97 00 00 */ lbz r4, 0(r23) +/* 802DB27C 002D81BC 80 6D 8E F8 */ lwz r3, lbl_80451478-_SDA_BASE_(r13) +/* 802DB280 002D81C0 38 03 00 01 */ addi r0, r3, 1 +/* 802DB284 002D81C4 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) +/* 802DB288 002D81C8 98 83 00 00 */ stb r4, 0(r3) +/* 802DB28C 002D81CC 80 6D 8E F8 */ lwz r3, lbl_80451478-_SDA_BASE_(r13) +/* 802DB290 002D81D0 80 0D 8E F4 */ lwz r0, lbl_80451474-_SDA_BASE_(r13) +/* 802DB294 002D81D4 7C 03 00 40 */ cmplw r3, r0 +/* 802DB298 002D81D8 40 82 00 0C */ bne lbl_802DB2A4 +/* 802DB29C 002D81DC 80 0D 8E F0 */ lwz r0, lbl_80451470-_SDA_BASE_(r13) +/* 802DB2A0 002D81E0 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) +lbl_802DB2A4: +/* 802DB2A4 002D81E4 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) +/* 802DB2A8 002D81E8 38 03 00 01 */ addi r0, r3, 1 +/* 802DB2AC 002D81EC 90 0D 8F 1C */ stw r0, lbl_8045149C-_SDA_BASE_(r13) +/* 802DB2B0 002D81F0 3A F7 00 01 */ addi r23, r23, 1 +/* 802DB2B4 002D81F4 48 00 00 F8 */ b lbl_802DB3AC +lbl_802DB2B8: +/* 802DB2B8 002D81F8 88 77 00 00 */ lbz r3, 0(r23) +/* 802DB2BC 002D81FC 88 97 00 01 */ lbz r4, 1(r23) +/* 802DB2C0 002D8200 50 64 45 2E */ rlwimi r4, r3, 8, 0x14, 0x17 +/* 802DB2C4 002D8204 7C 7B 26 70 */ srawi r27, r3, 4 +/* 802DB2C8 002D8208 80 0D 8E F8 */ lwz r0, lbl_80451478-_SDA_BASE_(r13) +/* 802DB2CC 002D820C 7C 64 00 50 */ subf r3, r4, r0 +/* 802DB2D0 002D8210 3B C3 FF FF */ addi r30, r3, -1 +/* 802DB2D4 002D8214 80 6D 8E F0 */ lwz r3, lbl_80451470-_SDA_BASE_(r13) +/* 802DB2D8 002D8218 7C 1E 18 40 */ cmplw r30, r3 +/* 802DB2DC 002D821C 3A F7 00 02 */ addi r23, r23, 2 +/* 802DB2E0 002D8220 40 80 00 10 */ bge lbl_802DB2F0 +/* 802DB2E4 002D8224 80 0D 8E F4 */ lwz r0, lbl_80451474-_SDA_BASE_(r13) +/* 802DB2E8 002D8228 7C 03 00 50 */ subf r0, r3, r0 +/* 802DB2EC 002D822C 7F DE 02 14 */ add r30, r30, r0 +lbl_802DB2F0: +/* 802DB2F0 002D8230 2C 1B 00 00 */ cmpwi r27, 0 +/* 802DB2F4 002D8234 40 82 00 14 */ bne lbl_802DB308 +/* 802DB2F8 002D8238 88 77 00 00 */ lbz r3, 0(r23) +/* 802DB2FC 002D823C 3B 63 00 12 */ addi r27, r3, 0x12 +/* 802DB300 002D8240 3A F7 00 01 */ addi r23, r23, 1 +/* 802DB304 002D8244 48 00 00 08 */ b lbl_802DB30C +lbl_802DB308: +/* 802DB308 002D8248 3B 7B 00 02 */ addi r27, r27, 2 +lbl_802DB30C: +/* 802DB30C 002D824C 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) +/* 802DB310 002D8250 80 0D 8F 18 */ lwz r0, lbl_80451498-_SDA_BASE_(r13) +/* 802DB314 002D8254 7C 03 00 40 */ cmplw r3, r0 +/* 802DB318 002D8258 41 80 00 44 */ blt lbl_802DB35C +/* 802DB31C 002D825C 88 9E 00 00 */ lbz r4, 0(r30) +/* 802DB320 002D8260 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) +/* 802DB324 002D8264 38 03 00 01 */ addi r0, r3, 1 +/* 802DB328 002D8268 90 0D 8F 04 */ stw r0, lbl_80451484-_SDA_BASE_(r13) +/* 802DB32C 002D826C 98 83 00 00 */ stb r4, 0(r3) +/* 802DB330 002D8270 80 6D 8F 04 */ lwz r3, lbl_80451484-_SDA_BASE_(r13) +/* 802DB334 002D8274 80 0D 8F 00 */ lwz r0, lbl_80451480-_SDA_BASE_(r13) +/* 802DB338 002D8278 7C 03 00 40 */ cmplw r3, r0 +/* 802DB33C 002D827C 3B 18 00 01 */ addi r24, r24, 1 +/* 802DB340 002D8280 3B 5A 00 01 */ addi r26, r26, 1 +/* 802DB344 002D8284 40 82 00 10 */ bne lbl_802DB354 +/* 802DB348 002D8288 7F 23 CB 78 */ mr r3, r25 +/* 802DB34C 002D828C 48 00 02 35 */ bl dmaBufferFlush__FUl +/* 802DB350 002D8290 7F 39 1A 14 */ add r25, r25, r3 +lbl_802DB354: +/* 802DB354 002D8294 7C 18 F8 40 */ cmplw r24, r31 +/* 802DB358 002D8298 41 82 00 54 */ beq lbl_802DB3AC +lbl_802DB35C: +/* 802DB35C 002D829C 88 9E 00 00 */ lbz r4, 0(r30) +/* 802DB360 002D82A0 80 6D 8E F8 */ lwz r3, lbl_80451478-_SDA_BASE_(r13) +/* 802DB364 002D82A4 38 03 00 01 */ addi r0, r3, 1 +/* 802DB368 002D82A8 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) +/* 802DB36C 002D82AC 98 83 00 00 */ stb r4, 0(r3) +/* 802DB370 002D82B0 80 0D 8E F8 */ lwz r0, lbl_80451478-_SDA_BASE_(r13) +/* 802DB374 002D82B4 80 6D 8E F4 */ lwz r3, lbl_80451474-_SDA_BASE_(r13) +/* 802DB378 002D82B8 7C 00 18 40 */ cmplw r0, r3 +/* 802DB37C 002D82BC 40 82 00 0C */ bne lbl_802DB388 +/* 802DB380 002D82C0 80 0D 8E F0 */ lwz r0, lbl_80451470-_SDA_BASE_(r13) +/* 802DB384 002D82C4 90 0D 8E F8 */ stw r0, lbl_80451478-_SDA_BASE_(r13) +lbl_802DB388: +/* 802DB388 002D82C8 3B DE 00 01 */ addi r30, r30, 1 +/* 802DB38C 002D82CC 7C 1E 18 40 */ cmplw r30, r3 +/* 802DB390 002D82D0 40 82 00 08 */ bne lbl_802DB398 +/* 802DB394 002D82D4 83 CD 8E F0 */ lwz r30, lbl_80451470-_SDA_BASE_(r13) +lbl_802DB398: +/* 802DB398 002D82D8 80 6D 8F 1C */ lwz r3, lbl_8045149C-_SDA_BASE_(r13) +/* 802DB39C 002D82DC 38 03 00 01 */ addi r0, r3, 1 +/* 802DB3A0 002D82E0 90 0D 8F 1C */ stw r0, lbl_8045149C-_SDA_BASE_(r13) +/* 802DB3A4 002D82E4 37 7B FF FF */ addic. r27, r27, -1 +/* 802DB3A8 002D82E8 40 82 FF 64 */ bne lbl_802DB30C +lbl_802DB3AC: +/* 802DB3AC 002D82EC 57 9C 08 3C */ slwi r28, r28, 1 +/* 802DB3B0 002D82F0 7C 18 F8 40 */ cmplw r24, r31 +/* 802DB3B4 002D82F4 3B BD FF FF */ addi r29, r29, -1 +/* 802DB3B8 002D82F8 41 80 FE 30 */ blt lbl_802DB1E8 +lbl_802DB3BC: +/* 802DB3BC 002D82FC 7F 23 CB 78 */ mr r3, r25 +/* 802DB3C0 002D8300 48 00 01 C1 */ bl dmaBufferFlush__FUl +/* 802DB3C4 002D8304 80 6D 8F 28 */ lwz r3, lbl_804514A8-_SDA_BASE_(r13) +/* 802DB3C8 002D8308 93 43 00 00 */ stw r26, 0(r3) +/* 802DB3CC 002D830C 38 60 00 00 */ li r3, 0 +lbl_802DB3D0: +/* 802DB3D0 002D8310 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DB3D4 002D8314 48 08 6E 3D */ bl func_80362210 +/* 802DB3D8 002D8318 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802DB3DC 002D831C 7C 08 03 A6 */ mtlr r0 +/* 802DB3E0 002D8320 38 21 00 30 */ addi r1, r1, 0x30 +/* 802DB3E4 002D8324 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB3E8.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB3E8.s new file mode 100644 index 0000000000..3a8194a7a7 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB3E8.s @@ -0,0 +1,51 @@ +/* firstSrcData__Fv firstSrcData(void) */ +/* firstSrcData_X2_ */ +/* 802DB3E8 002D8328 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB3EC 002D832C 7C 08 02 A6 */ mflr r0 +/* 802DB3F0 002D8330 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB3F4 002D8334 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB3F8 002D8338 93 C1 00 08 */ stw r30, 8(r1) +/* 802DB3FC 002D833C 80 6D 8E EC */ lwz r3, lbl_8045146C-_SDA_BASE_(r13) +/* 802DB400 002D8340 38 03 FF E7 */ addi r0, r3, -25 +/* 802DB404 002D8344 90 0D 8F 10 */ stw r0, lbl_80451490-_SDA_BASE_(r13) +/* 802DB408 002D8348 80 0D 8E E8 */ lwz r0, lbl_80451468-_SDA_BASE_(r13) +/* 802DB40C 002D834C 7C 1E 03 78 */ mr r30, r0 +/* 802DB410 002D8350 7C 60 18 50 */ subf r3, r0, r3 +/* 802DB414 002D8354 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB418 002D8358 7C 00 18 40 */ cmplw r0, r3 +/* 802DB41C 002D835C 7C 7F 1B 78 */ mr r31, r3 +/* 802DB420 002D8360 40 80 00 08 */ bge lbl_802DB428 +/* 802DB424 002D8364 7C 1F 03 78 */ mr r31, r0 +lbl_802DB428: +/* 802DB428 002D8368 80 6D 8F 14 */ lwz r3, lbl_80451494-_SDA_BASE_(r13) +/* 802DB42C 002D836C 38 63 00 5C */ addi r3, r3, 0x5c +/* 802DB430 002D8370 7F C4 F3 78 */ mr r4, r30 +/* 802DB434 002D8374 7F E5 FB 78 */ mr r5, r31 +/* 802DB438 002D8378 38 C0 00 00 */ li r6, 0 +/* 802DB43C 002D837C 38 E0 00 02 */ li r7, 2 +/* 802DB440 002D8380 48 06 DA 05 */ bl DVDReadPrio +/* 802DB444 002D8384 2C 03 00 00 */ cmpwi r3, 0 +/* 802DB448 002D8388 40 80 00 20 */ bge lbl_802DB468 +/* 802DB44C 002D838C 88 0D 83 50 */ lbz r0, lbl_804508D0-_SDA_BASE_(r13) +/* 802DB450 002D8390 28 00 00 00 */ cmplwi r0, 0 +/* 802DB454 002D8394 40 82 00 0C */ bne lbl_802DB460 +/* 802DB458 002D8398 38 60 00 00 */ li r3, 0 +/* 802DB45C 002D839C 48 00 00 28 */ b lbl_802DB484 +lbl_802DB460: +/* 802DB460 002D83A0 48 07 15 65 */ bl VIWaitForRetrace +/* 802DB464 002D83A4 4B FF FF C4 */ b lbl_802DB428 +lbl_802DB468: +/* 802DB468 002D83A8 80 0D 8F 08 */ lwz r0, lbl_80451488-_SDA_BASE_(r13) +/* 802DB46C 002D83AC 7C 00 FA 14 */ add r0, r0, r31 +/* 802DB470 002D83B0 90 0D 8F 08 */ stw r0, lbl_80451488-_SDA_BASE_(r13) +/* 802DB474 002D83B4 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB478 002D83B8 7C 1F 00 50 */ subf r0, r31, r0 +/* 802DB47C 002D83BC 90 0D 8F 0C */ stw r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB480 002D83C0 7F C3 F3 78 */ mr r3, r30 +lbl_802DB484: +/* 802DB484 002D83C4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB488 002D83C8 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DB48C 002D83CC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB490 002D83D0 7C 08 03 A6 */ mtlr r0 +/* 802DB494 002D83D4 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB498 002D83D8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB49C.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB49C.s new file mode 100644 index 0000000000..58a8fff621 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB49C.s @@ -0,0 +1,66 @@ +/* nextSrcData__FPUc nextSrcData(unsigned char *) */ +/* nextSrcData_X2_ */ +/* 802DB49C 002D83DC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DB4A0 002D83E0 7C 08 02 A6 */ mflr r0 +/* 802DB4A4 002D83E4 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DB4A8 002D83E8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DB4AC 002D83EC 48 08 6D 31 */ bl _savegpr_29 +/* 802DB4B0 002D83F0 7C 64 1B 78 */ mr r4, r3 +/* 802DB4B4 002D83F4 80 0D 8E EC */ lwz r0, lbl_8045146C-_SDA_BASE_(r13) +/* 802DB4B8 002D83F8 7F C4 00 50 */ subf r30, r4, r0 +/* 802DB4BC 002D83FC 57 C5 06 FF */ clrlwi. r5, r30, 0x1b +/* 802DB4C0 002D8400 41 82 00 14 */ beq lbl_802DB4D4 +/* 802DB4C4 002D8404 80 6D 8E E8 */ lwz r3, lbl_80451468-_SDA_BASE_(r13) +/* 802DB4C8 002D8408 38 03 00 20 */ addi r0, r3, 0x20 +/* 802DB4CC 002D840C 7F A5 00 50 */ subf r29, r5, r0 +/* 802DB4D0 002D8410 48 00 00 08 */ b lbl_802DB4D8 +lbl_802DB4D4: +/* 802DB4D4 002D8414 83 AD 8E E8 */ lwz r29, lbl_80451468-_SDA_BASE_(r13) +lbl_802DB4D8: +/* 802DB4D8 002D8418 7F A3 EB 78 */ mr r3, r29 +/* 802DB4DC 002D841C 7F C5 F3 78 */ mr r5, r30 +/* 802DB4E0 002D8420 4B D2 80 61 */ bl func_80003540 +/* 802DB4E4 002D8424 7F DD F2 14 */ add r30, r29, r30 +/* 802DB4E8 002D8428 80 0D 8E EC */ lwz r0, lbl_8045146C-_SDA_BASE_(r13) +/* 802DB4EC 002D842C 7F FE 00 50 */ subf r31, r30, r0 +/* 802DB4F0 002D8430 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB4F4 002D8434 7C 1F 00 40 */ cmplw r31, r0 +/* 802DB4F8 002D8438 40 81 00 08 */ ble lbl_802DB500 +/* 802DB4FC 002D843C 7C 1F 03 78 */ mr r31, r0 +lbl_802DB500: +/* 802DB500 002D8440 80 6D 8F 14 */ lwz r3, lbl_80451494-_SDA_BASE_(r13) +/* 802DB504 002D8444 38 63 00 5C */ addi r3, r3, 0x5c +/* 802DB508 002D8448 7F C4 F3 78 */ mr r4, r30 +/* 802DB50C 002D844C 7F E5 FB 78 */ mr r5, r31 +/* 802DB510 002D8450 80 CD 8F 08 */ lwz r6, lbl_80451488-_SDA_BASE_(r13) +/* 802DB514 002D8454 38 E0 00 02 */ li r7, 2 +/* 802DB518 002D8458 48 06 D9 2D */ bl DVDReadPrio +/* 802DB51C 002D845C 2C 03 00 00 */ cmpwi r3, 0 +/* 802DB520 002D8460 40 80 00 20 */ bge lbl_802DB540 +/* 802DB524 002D8464 88 0D 83 50 */ lbz r0, lbl_804508D0-_SDA_BASE_(r13) +/* 802DB528 002D8468 28 00 00 00 */ cmplwi r0, 0 +/* 802DB52C 002D846C 40 82 00 0C */ bne lbl_802DB538 +/* 802DB530 002D8470 38 60 00 00 */ li r3, 0 +/* 802DB534 002D8474 48 00 00 34 */ b lbl_802DB568 +lbl_802DB538: +/* 802DB538 002D8478 48 07 14 8D */ bl VIWaitForRetrace +/* 802DB53C 002D847C 4B FF FF C4 */ b lbl_802DB500 +lbl_802DB540: +/* 802DB540 002D8480 80 0D 8F 08 */ lwz r0, lbl_80451488-_SDA_BASE_(r13) +/* 802DB544 002D8484 7C 00 FA 14 */ add r0, r0, r31 +/* 802DB548 002D8488 90 0D 8F 08 */ stw r0, lbl_80451488-_SDA_BASE_(r13) +/* 802DB54C 002D848C 80 0D 8F 0C */ lwz r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB550 002D8490 7C 1F 00 51 */ subf. r0, r31, r0 +/* 802DB554 002D8494 90 0D 8F 0C */ stw r0, lbl_8045148C-_SDA_BASE_(r13) +/* 802DB558 002D8498 40 82 00 0C */ bne lbl_802DB564 +/* 802DB55C 002D849C 7C 1E FA 14 */ add r0, r30, r31 +/* 802DB560 002D84A0 90 0D 8F 10 */ stw r0, lbl_80451490-_SDA_BASE_(r13) +lbl_802DB564: +/* 802DB564 002D84A4 7F A3 EB 78 */ mr r3, r29 +lbl_802DB568: +/* 802DB568 002D84A8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DB56C 002D84AC 48 08 6C BD */ bl _restgpr_29 +/* 802DB570 002D84B0 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DB574 002D84B4 7C 08 03 A6 */ mtlr r0 +/* 802DB578 002D84B8 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DB57C 002D84BC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB580.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB580.s new file mode 100644 index 0000000000..bf9dfb1eec --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB580.s @@ -0,0 +1,30 @@ +/* dmaBufferFlush__FUl dmaBufferFlush(unsigned long) */ +/* dmaBufferFlush */ +/* 802DB580 002D84C0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB584 002D84C4 7C 08 02 A6 */ mflr r0 +/* 802DB588 002D84C8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB58C 002D84CC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB590 002D84D0 7C 65 1B 78 */ mr r5, r3 +/* 802DB594 002D84D4 80 0D 8F 04 */ lwz r0, lbl_80451484-_SDA_BASE_(r13) +/* 802DB598 002D84D8 80 8D 8E FC */ lwz r4, lbl_8045147C-_SDA_BASE_(r13) +/* 802DB59C 002D84DC 7C 00 20 40 */ cmplw r0, r4 +/* 802DB5A0 002D84E0 40 82 00 0C */ bne lbl_802DB5AC +/* 802DB5A4 002D84E4 38 60 00 00 */ li r3, 0 +/* 802DB5A8 002D84E8 48 00 00 2C */ b lbl_802DB5D4 +lbl_802DB5AC: +/* 802DB5AC 002D84EC 7C 64 00 50 */ subf r3, r4, r0 +/* 802DB5B0 002D84F0 38 03 00 1F */ addi r0, r3, 0x1f +/* 802DB5B4 002D84F4 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a +/* 802DB5B8 002D84F8 38 60 00 00 */ li r3, 0 +/* 802DB5BC 002D84FC 7F E6 FB 78 */ mr r6, r31 +/* 802DB5C0 002D8500 38 E0 00 00 */ li r7, 0 +/* 802DB5C4 002D8504 4B FF 82 75 */ bl orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock +/* 802DB5C8 002D8508 80 0D 8E FC */ lwz r0, lbl_8045147C-_SDA_BASE_(r13) +/* 802DB5CC 002D850C 90 0D 8F 04 */ stw r0, lbl_80451484-_SDA_BASE_(r13) +/* 802DB5D0 002D8510 7F E3 FB 78 */ mr r3, r31 +lbl_802DB5D4: +/* 802DB5D4 002D8514 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB5D8 002D8518 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB5DC 002D851C 7C 08 03 A6 */ mtlr r0 +/* 802DB5E0 002D8520 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB5E4 002D8524 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB5E8.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB5E8.s new file mode 100644 index 0000000000..0bd5cf1d6a --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB5E8.s @@ -0,0 +1,19 @@ +/* __sinit_JKRDvdAramRipper_cpp __sinit_JKRDvdAramRipper_cpp */ +/* missing reference */ +/* 802DB5E8 002D8528 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB5EC 002D852C 7C 08 02 A6 */ mflr r0 +/* 802DB5F0 002D8530 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB5F4 002D8534 3C 60 80 43 */ lis r3, lbl_804343B4@ha +/* 802DB5F8 002D8538 38 63 43 B4 */ addi r3, r3, lbl_804343B4@l +/* 802DB5FC 002D853C 48 00 09 19 */ bl initiate__10JSUPtrListFv +/* 802DB600 002D8540 3C 60 80 43 */ lis r3, lbl_804343B4@ha +/* 802DB604 002D8544 38 63 43 B4 */ addi r3, r3, lbl_804343B4@l +/* 802DB608 002D8548 3C 80 80 2E */ lis r4, JSUList_NS_dtor_X9_@ha +/* 802DB60C 002D854C 38 84 B6 2C */ addi r4, r4, JSUList_NS_dtor_X9_@l +/* 802DB610 002D8550 3C A0 80 43 */ lis r5, lbl_804343A8@ha +/* 802DB614 002D8554 38 A5 43 A8 */ addi r5, r5, lbl_804343A8@l +/* 802DB618 002D8558 48 08 66 0D */ bl func_80361C24 +/* 802DB61C 002D855C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB620 002D8560 7C 08 03 A6 */ mtlr r0 +/* 802DB624 002D8564 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB628 002D8568 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB62C.s b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB62C.s new file mode 100644 index 0000000000..506312b54a --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB62C.s @@ -0,0 +1,24 @@ +/* __dt__23JSUList<12JKRADCommand>Fv JSUList<12JKRADCommand>::__dt(void) */ +/* JSUList_NS_dtor_X9_ */ +/* 802DB62C 002D856C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DB630 002D8570 7C 08 02 A6 */ mflr r0 +/* 802DB634 002D8574 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DB638 002D8578 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DB63C 002D857C 93 C1 00 08 */ stw r30, 8(r1) +/* 802DB640 002D8580 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802DB644 002D8584 7C 9F 23 78 */ mr r31, r4 +/* 802DB648 002D8588 41 82 00 1C */ beq lbl_802DB664 +/* 802DB64C 002D858C 38 80 00 00 */ li r4, 0 +/* 802DB650 002D8590 48 00 08 5D */ bl __dt__10JSUPtrListFv +/* 802DB654 002D8594 7F E0 07 35 */ extsh. r0, r31 +/* 802DB658 002D8598 40 81 00 0C */ ble lbl_802DB664 +/* 802DB65C 002D859C 7F C3 F3 78 */ mr r3, r30 +/* 802DB660 002D85A0 4B FF 36 DD */ bl __dl__FPv +lbl_802DB664: +/* 802DB664 002D85A4 7F C3 F3 78 */ mr r3, r30 +/* 802DB668 002D85A8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DB66C 002D85AC 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DB670 002D85B0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DB674 002D85B4 7C 08 03 A6 */ mtlr r0 +/* 802DB678 002D85B8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DB67C 002D85BC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h b/include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h new file mode 100644 index 0000000000..27961403d0 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h @@ -0,0 +1,23 @@ +#ifndef __JKRDVDARCHIVE_H__ +#define __JKRDVDARCHIVE_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRArchive/JKRArchive.h" + +class JKRDvdArchive : public JKRArchive { + public: + JKRDvdArchive(long, JKRArchive::EMountDirection); + virtual ~JKRDvdArchive(); + + void open(long); + + /* vt[15] */ virtual void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ virtual void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ + /* vt[17] */ virtual void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */ + + public: + static void fetchResource_subroutine(long, u32, u32, u8*, u32, int, int); + static void fetchResource_subroutine(long, u32, u32, JKRHeap*, int, int, u8**); +}; + +#endif diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7BF0.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7BF0.s new file mode 100644 index 0000000000..68ebd678fd --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7BF0.s @@ -0,0 +1,46 @@ +/* __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::__ct(long, JKRArchive::EMountDirection) */ +/* JKRDvdArchive */ +/* 802D7BF0 002D4B30 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D7BF4 002D4B34 7C 08 02 A6 */ mflr r0 +/* 802D7BF8 002D4B38 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D7BFC 002D4B3C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7C00 002D4B40 48 08 A5 DD */ bl _savegpr_29 +/* 802D7C04 002D4B44 7C 7D 1B 78 */ mr r29, r3 +/* 802D7C08 002D4B48 7C 9E 23 78 */ mr r30, r4 +/* 802D7C0C 002D4B4C 7C BF 2B 78 */ mr r31, r5 +/* 802D7C10 002D4B50 38 A0 00 03 */ li r5, 3 +/* 802D7C14 002D4B54 4B FF E6 81 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode +/* 802D7C18 002D4B58 3C 60 80 3D */ lis r3, lbl_803CC398@ha +/* 802D7C1C 002D4B5C 38 03 C3 98 */ addi r0, r3, lbl_803CC398@l +/* 802D7C20 002D4B60 90 1D 00 00 */ stw r0, 0(r29) +/* 802D7C24 002D4B64 93 FD 00 60 */ stw r31, 0x60(r29) +/* 802D7C28 002D4B68 7F A3 EB 78 */ mr r3, r29 +/* 802D7C2C 002D4B6C 7F C4 F3 78 */ mr r4, r30 +/* 802D7C30 002D4B70 48 00 01 85 */ bl open__13JKRDvdArchiveFl +/* 802D7C34 002D4B74 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D7C38 002D4B78 40 82 00 0C */ bne lbl_802D7C44 +/* 802D7C3C 002D4B7C 7F A3 EB 78 */ mr r3, r29 +/* 802D7C40 002D4B80 48 00 00 40 */ b lbl_802D7C80 +lbl_802D7C44: +/* 802D7C44 002D4B84 3C 60 52 41 */ lis r3, 0x52415243@ha +/* 802D7C48 002D4B88 38 03 52 43 */ addi r0, r3, 0x52415243@l +/* 802D7C4C 002D4B8C 90 1D 00 2C */ stw r0, 0x2c(r29) +/* 802D7C50 002D4B90 80 9D 00 54 */ lwz r4, 0x54(r29) +/* 802D7C54 002D4B94 80 7D 00 48 */ lwz r3, 0x48(r29) +/* 802D7C58 002D4B98 80 03 00 04 */ lwz r0, 4(r3) +/* 802D7C5C 002D4B9C 7C 04 02 14 */ add r0, r4, r0 +/* 802D7C60 002D4BA0 90 1D 00 28 */ stw r0, 0x28(r29) +/* 802D7C64 002D4BA4 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D7C68 002D4BA8 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D7C6C 002D4BAC 38 9D 00 18 */ addi r4, r29, 0x18 +/* 802D7C70 002D4BB0 48 00 43 81 */ bl prepend__10JSUPtrListFP10JSUPtrLink +/* 802D7C74 002D4BB4 38 00 00 01 */ li r0, 1 +/* 802D7C78 002D4BB8 98 1D 00 30 */ stb r0, 0x30(r29) +/* 802D7C7C 002D4BBC 7F A3 EB 78 */ mr r3, r29 +lbl_802D7C80: +/* 802D7C80 002D4BC0 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7C84 002D4BC4 48 08 A5 A5 */ bl _restgpr_29 +/* 802D7C88 002D4BC8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D7C8C 002D4BCC 7C 08 03 A6 */ mtlr r0 +/* 802D7C90 002D4BD0 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D7C94 002D4BD4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7C98.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7C98.s new file mode 100644 index 0000000000..6d28d9b860 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7C98.s @@ -0,0 +1,81 @@ +/* __dt__13JKRDvdArchiveFv __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::__dt(void) */ +/* missing reference */ +/* 802D7C98 002D4BD8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D7C9C 002D4BDC 7C 08 02 A6 */ mflr r0 +/* 802D7CA0 002D4BE0 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D7CA4 002D4BE4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7CA8 002D4BE8 48 08 A5 31 */ bl _savegpr_28 +/* 802D7CAC 002D4BEC 7C 7F 1B 79 */ or. r31, r3, r3 +/* 802D7CB0 002D4BF0 7C 9C 23 78 */ mr r28, r4 +/* 802D7CB4 002D4BF4 41 82 00 E4 */ beq lbl_802D7D98 +/* 802D7CB8 002D4BF8 3C 60 80 3D */ lis r3, lbl_803CC398@ha +/* 802D7CBC 002D4BFC 38 03 C3 98 */ addi r0, r3, lbl_803CC398@l +/* 802D7CC0 002D4C00 90 1F 00 00 */ stw r0, 0(r31) +/* 802D7CC4 002D4C04 88 1F 00 30 */ lbz r0, 0x30(r31) +/* 802D7CC8 002D4C08 28 00 00 01 */ cmplwi r0, 1 +/* 802D7CCC 002D4C0C 40 82 00 B0 */ bne lbl_802D7D7C +/* 802D7CD0 002D4C10 80 1F 00 44 */ lwz r0, 0x44(r31) +/* 802D7CD4 002D4C14 28 00 00 00 */ cmplwi r0, 0 +/* 802D7CD8 002D4C18 41 82 00 4C */ beq lbl_802D7D24 +/* 802D7CDC 002D4C1C 83 DF 00 4C */ lwz r30, 0x4c(r31) +/* 802D7CE0 002D4C20 3B A0 00 00 */ li r29, 0 +/* 802D7CE4 002D4C24 48 00 00 20 */ b lbl_802D7D04 +lbl_802D7CE8: +/* 802D7CE8 002D4C28 80 7E 00 10 */ lwz r3, 0x10(r30) +/* 802D7CEC 002D4C2C 28 03 00 00 */ cmplwi r3, 0 +/* 802D7CF0 002D4C30 41 82 00 0C */ beq lbl_802D7CFC +/* 802D7CF4 002D4C34 80 9F 00 38 */ lwz r4, 0x38(r31) +/* 802D7CF8 002D4C38 4B FF 68 09 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D7CFC: +/* 802D7CFC 002D4C3C 3B DE 00 14 */ addi r30, r30, 0x14 +/* 802D7D00 002D4C40 3B BD 00 01 */ addi r29, r29, 1 +lbl_802D7D04: +/* 802D7D04 002D4C44 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D7D08 002D4C48 80 03 00 08 */ lwz r0, 8(r3) +/* 802D7D0C 002D4C4C 7C 1D 00 40 */ cmplw r29, r0 +/* 802D7D10 002D4C50 41 80 FF D8 */ blt lbl_802D7CE8 +/* 802D7D14 002D4C54 80 9F 00 38 */ lwz r4, 0x38(r31) +/* 802D7D18 002D4C58 4B FF 67 E9 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D7D1C 002D4C5C 38 00 00 00 */ li r0, 0 +/* 802D7D20 002D4C60 90 1F 00 44 */ stw r0, 0x44(r31) +lbl_802D7D24: +/* 802D7D24 002D4C64 80 7F 00 50 */ lwz r3, 0x50(r31) +/* 802D7D28 002D4C68 28 03 00 00 */ cmplwi r3, 0 +/* 802D7D2C 002D4C6C 41 82 00 14 */ beq lbl_802D7D40 +/* 802D7D30 002D4C70 38 80 00 00 */ li r4, 0 +/* 802D7D34 002D4C74 4B FF 67 CD */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D7D38 002D4C78 38 00 00 00 */ li r0, 0 +/* 802D7D3C 002D4C7C 90 1F 00 50 */ stw r0, 0x50(r31) +lbl_802D7D40: +/* 802D7D40 002D4C80 80 7F 00 68 */ lwz r3, 0x68(r31) +/* 802D7D44 002D4C84 28 03 00 00 */ cmplwi r3, 0 +/* 802D7D48 002D4C88 41 82 00 1C */ beq lbl_802D7D64 +/* 802D7D4C 002D4C8C 41 82 00 18 */ beq lbl_802D7D64 +/* 802D7D50 002D4C90 38 80 00 01 */ li r4, 1 +/* 802D7D54 002D4C94 81 83 00 00 */ lwz r12, 0(r3) +/* 802D7D58 002D4C98 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D7D5C 002D4C9C 7D 89 03 A6 */ mtctr r12 +/* 802D7D60 002D4CA0 4E 80 04 21 */ bctrl +lbl_802D7D64: +/* 802D7D64 002D4CA4 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D7D68 002D4CA8 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D7D6C 002D4CAC 38 9F 00 18 */ addi r4, r31, 0x18 +/* 802D7D70 002D4CB0 48 00 43 ED */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802D7D74 002D4CB4 38 00 00 00 */ li r0, 0 +/* 802D7D78 002D4CB8 98 1F 00 30 */ stb r0, 0x30(r31) +lbl_802D7D7C: +/* 802D7D7C 002D4CBC 7F E3 FB 78 */ mr r3, r31 +/* 802D7D80 002D4CC0 38 80 00 00 */ li r4, 0 +/* 802D7D84 002D4CC4 4B FF E5 B1 */ bl __dt__10JKRArchiveFv +/* 802D7D88 002D4CC8 7F 80 07 35 */ extsh. r0, r28 +/* 802D7D8C 002D4CCC 40 81 00 0C */ ble lbl_802D7D98 +/* 802D7D90 002D4CD0 7F E3 FB 78 */ mr r3, r31 +/* 802D7D94 002D4CD4 4B FF 6F A9 */ bl __dl__FPv +lbl_802D7D98: +/* 802D7D98 002D4CD8 7F E3 FB 78 */ mr r3, r31 +/* 802D7D9C 002D4CDC 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7DA0 002D4CE0 48 08 A4 85 */ bl _restgpr_28 +/* 802D7DA4 002D4CE4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D7DA8 002D4CE8 7C 08 03 A6 */ mtlr r0 +/* 802D7DAC 002D4CEC 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D7DB0 002D4CF0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7DB4.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7DB4.s new file mode 100644 index 0000000000..d14b367ea8 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D7DB4.s @@ -0,0 +1,184 @@ +/* open__13JKRDvdArchiveFl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::open(long) */ +/* JKRDvdArchive_NS_open */ +/* 802D7DB4 002D4CF4 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D7DB8 002D4CF8 7C 08 02 A6 */ mflr r0 +/* 802D7DBC 002D4CFC 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D7DC0 002D4D00 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D7DC4 002D4D04 48 08 A4 15 */ bl _savegpr_28 +/* 802D7DC8 002D4D08 7C 7D 1B 78 */ mr r29, r3 +/* 802D7DCC 002D4D0C 7C 9C 23 78 */ mr r28, r4 +/* 802D7DD0 002D4D10 38 00 00 00 */ li r0, 0 +/* 802D7DD4 002D4D14 90 03 00 44 */ stw r0, 0x44(r3) +/* 802D7DD8 002D4D18 90 03 00 64 */ stw r0, 0x64(r3) +/* 802D7DDC 002D4D1C 90 03 00 48 */ stw r0, 0x48(r3) +/* 802D7DE0 002D4D20 90 03 00 4C */ stw r0, 0x4c(r3) +/* 802D7DE4 002D4D24 90 03 00 54 */ stw r0, 0x54(r3) +/* 802D7DE8 002D4D28 38 60 00 F8 */ li r3, 0xf8 +/* 802D7DEC 002D4D2C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13) +/* 802D7DF0 002D4D30 38 A0 00 00 */ li r5, 0 +/* 802D7DF4 002D4D34 4B FF 6E A5 */ bl __nw__FUlP7JKRHeapi +/* 802D7DF8 002D4D38 7C 60 1B 79 */ or. r0, r3, r3 +/* 802D7DFC 002D4D3C 41 82 00 10 */ beq lbl_802D7E0C +/* 802D7E00 002D4D40 7F 84 E3 78 */ mr r4, r28 +/* 802D7E04 002D4D44 48 00 18 9D */ bl __ct__10JKRDvdFileFl +/* 802D7E08 002D4D48 7C 60 1B 78 */ mr r0, r3 +lbl_802D7E0C: +/* 802D7E0C 002D4D4C 90 1D 00 68 */ stw r0, 0x68(r29) +/* 802D7E10 002D4D50 80 1D 00 68 */ lwz r0, 0x68(r29) +/* 802D7E14 002D4D54 28 00 00 00 */ cmplwi r0, 0 +/* 802D7E18 002D4D58 40 82 00 14 */ bne lbl_802D7E2C +/* 802D7E1C 002D4D5C 38 00 00 00 */ li r0, 0 +/* 802D7E20 002D4D60 98 1D 00 3C */ stb r0, 0x3c(r29) +/* 802D7E24 002D4D64 38 60 00 00 */ li r3, 0 +/* 802D7E28 002D4D68 48 00 02 10 */ b lbl_802D8038 +lbl_802D7E2C: +/* 802D7E2C 002D4D6C 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D7E30 002D4D70 38 80 00 20 */ li r4, 0x20 +/* 802D7E34 002D4D74 38 A0 00 20 */ li r5, 0x20 +/* 802D7E38 002D4D78 4B FF 66 9D */ bl alloc__7JKRHeapFUli +/* 802D7E3C 002D4D7C 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D7E40 002D4D80 40 82 00 10 */ bne lbl_802D7E50 +/* 802D7E44 002D4D84 38 00 00 00 */ li r0, 0 +/* 802D7E48 002D4D88 98 1D 00 3C */ stb r0, 0x3c(r29) +/* 802D7E4C 002D4D8C 48 00 01 9C */ b lbl_802D7FE8 +lbl_802D7E50: +/* 802D7E50 002D4D90 38 00 00 00 */ li r0, 0 +/* 802D7E54 002D4D94 90 01 00 08 */ stw r0, 8(r1) +/* 802D7E58 002D4D98 7F 83 E3 78 */ mr r3, r28 +/* 802D7E5C 002D4D9C 7F C4 F3 78 */ mr r4, r30 +/* 802D7E60 002D4DA0 38 A0 00 01 */ li r5, 1 +/* 802D7E64 002D4DA4 38 C0 00 20 */ li r6, 0x20 +/* 802D7E68 002D4DA8 38 E0 00 00 */ li r7, 0 +/* 802D7E6C 002D4DAC 39 00 00 01 */ li r8, 1 +/* 802D7E70 002D4DB0 39 20 00 00 */ li r9, 0 +/* 802D7E74 002D4DB4 39 5D 00 5C */ addi r10, r29, 0x5c +/* 802D7E78 002D4DB8 48 00 1D DD */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D7E7C 002D4DBC 7F C3 F3 78 */ mr r3, r30 +/* 802D7E80 002D4DC0 38 80 00 20 */ li r4, 0x20 +/* 802D7E84 002D4DC4 48 06 36 FD */ bl DCInvalidateRange +/* 802D7E88 002D4DC8 80 1D 00 60 */ lwz r0, 0x60(r29) +/* 802D7E8C 002D4DCC 2C 00 00 01 */ cmpwi r0, 1 +/* 802D7E90 002D4DD0 3B E0 FF E0 */ li r31, -32 +/* 802D7E94 002D4DD4 40 82 00 08 */ bne lbl_802D7E9C +/* 802D7E98 002D4DD8 3B E0 00 20 */ li r31, 0x20 +lbl_802D7E9C: +/* 802D7E9C 002D4DDC 80 7E 00 0C */ lwz r3, 0xc(r30) +/* 802D7EA0 002D4DE0 7F E4 FB 78 */ mr r4, r31 +/* 802D7EA4 002D4DE4 80 BD 00 38 */ lwz r5, 0x38(r29) +/* 802D7EA8 002D4DE8 4B FF 65 CD */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D7EAC 002D4DEC 90 7D 00 44 */ stw r3, 0x44(r29) +/* 802D7EB0 002D4DF0 80 9D 00 44 */ lwz r4, 0x44(r29) +/* 802D7EB4 002D4DF4 28 04 00 00 */ cmplwi r4, 0 +/* 802D7EB8 002D4DF8 40 82 00 10 */ bne lbl_802D7EC8 +/* 802D7EBC 002D4DFC 38 00 00 00 */ li r0, 0 +/* 802D7EC0 002D4E00 98 1D 00 3C */ stb r0, 0x3c(r29) +/* 802D7EC4 002D4E04 48 00 01 24 */ b lbl_802D7FE8 +lbl_802D7EC8: +/* 802D7EC8 002D4E08 38 00 00 00 */ li r0, 0 +/* 802D7ECC 002D4E0C 90 01 00 08 */ stw r0, 8(r1) +/* 802D7ED0 002D4E10 7F 83 E3 78 */ mr r3, r28 +/* 802D7ED4 002D4E14 38 A0 00 01 */ li r5, 1 +/* 802D7ED8 002D4E18 80 DE 00 0C */ lwz r6, 0xc(r30) +/* 802D7EDC 002D4E1C 38 E0 00 00 */ li r7, 0 +/* 802D7EE0 002D4E20 39 00 00 01 */ li r8, 1 +/* 802D7EE4 002D4E24 39 20 00 20 */ li r9, 0x20 +/* 802D7EE8 002D4E28 39 40 00 00 */ li r10, 0 +/* 802D7EEC 002D4E2C 48 00 1D 69 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D7EF0 002D4E30 80 7D 00 44 */ lwz r3, 0x44(r29) +/* 802D7EF4 002D4E34 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 802D7EF8 002D4E38 48 06 36 89 */ bl DCInvalidateRange +/* 802D7EFC 002D4E3C 80 7D 00 44 */ lwz r3, 0x44(r29) +/* 802D7F00 002D4E40 80 03 00 04 */ lwz r0, 4(r3) +/* 802D7F04 002D4E44 7C 03 02 14 */ add r0, r3, r0 +/* 802D7F08 002D4E48 90 1D 00 48 */ stw r0, 0x48(r29) +/* 802D7F0C 002D4E4C 80 7D 00 44 */ lwz r3, 0x44(r29) +/* 802D7F10 002D4E50 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802D7F14 002D4E54 7C 03 02 14 */ add r0, r3, r0 +/* 802D7F18 002D4E58 90 1D 00 4C */ stw r0, 0x4c(r29) +/* 802D7F1C 002D4E5C 80 7D 00 44 */ lwz r3, 0x44(r29) +/* 802D7F20 002D4E60 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802D7F24 002D4E64 7C 03 02 14 */ add r0, r3, r0 +/* 802D7F28 002D4E68 90 1D 00 54 */ stw r0, 0x54(r29) +/* 802D7F2C 002D4E6C 38 00 00 00 */ li r0, 0 +/* 802D7F30 002D4E70 90 1D 00 50 */ stw r0, 0x50(r29) +/* 802D7F34 002D4E74 38 80 00 00 */ li r4, 0 +/* 802D7F38 002D4E78 80 BD 00 4C */ lwz r5, 0x4c(r29) +/* 802D7F3C 002D4E7C 80 7D 00 44 */ lwz r3, 0x44(r29) +/* 802D7F40 002D4E80 80 03 00 08 */ lwz r0, 8(r3) +/* 802D7F44 002D4E84 7C 09 03 A6 */ mtctr r0 +/* 802D7F48 002D4E88 28 00 00 00 */ cmplwi r0, 0 +/* 802D7F4C 002D4E8C 40 81 00 28 */ ble lbl_802D7F74 +lbl_802D7F50: +/* 802D7F50 002D4E90 80 05 00 04 */ lwz r0, 4(r5) +/* 802D7F54 002D4E94 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D7F58 002D4E98 54 00 47 FF */ rlwinm. r0, r0, 8, 0x1f, 0x1f +/* 802D7F5C 002D4E9C 41 82 00 10 */ beq lbl_802D7F6C +/* 802D7F60 002D4EA0 54 60 07 7A */ rlwinm r0, r3, 0, 0x1d, 0x1d +/* 802D7F64 002D4EA4 7C 80 03 78 */ or r0, r4, r0 +/* 802D7F68 002D4EA8 54 04 06 3E */ clrlwi r4, r0, 0x18 +lbl_802D7F6C: +/* 802D7F6C 002D4EAC 38 A5 00 14 */ addi r5, r5, 0x14 +/* 802D7F70 002D4EB0 42 00 FF E0 */ bdnz lbl_802D7F50 +lbl_802D7F74: +/* 802D7F74 002D4EB4 54 80 06 3F */ clrlwi. r0, r4, 0x18 +/* 802D7F78 002D4EB8 41 82 00 60 */ beq lbl_802D7FD8 +/* 802D7F7C 002D4EBC 7F E3 FB 78 */ mr r3, r31 +/* 802D7F80 002D4EC0 48 08 D1 51 */ bl func_803650D0 +/* 802D7F84 002D4EC4 7C 64 1B 78 */ mr r4, r3 +/* 802D7F88 002D4EC8 80 BD 00 38 */ lwz r5, 0x38(r29) +/* 802D7F8C 002D4ECC 80 7D 00 44 */ lwz r3, 0x44(r29) +/* 802D7F90 002D4ED0 80 03 00 08 */ lwz r0, 8(r3) +/* 802D7F94 002D4ED4 54 03 10 3A */ slwi r3, r0, 2 +/* 802D7F98 002D4ED8 4B FF 64 DD */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D7F9C 002D4EDC 90 7D 00 50 */ stw r3, 0x50(r29) +/* 802D7FA0 002D4EE0 80 7D 00 50 */ lwz r3, 0x50(r29) +/* 802D7FA4 002D4EE4 28 03 00 00 */ cmplwi r3, 0 +/* 802D7FA8 002D4EE8 40 82 00 1C */ bne lbl_802D7FC4 +/* 802D7FAC 002D4EEC 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D7FB0 002D4EF0 80 9D 00 44 */ lwz r4, 0x44(r29) +/* 802D7FB4 002D4EF4 4B FF 65 95 */ bl free__7JKRHeapFPv +/* 802D7FB8 002D4EF8 38 00 00 00 */ li r0, 0 +/* 802D7FBC 002D4EFC 98 1D 00 3C */ stb r0, 0x3c(r29) +/* 802D7FC0 002D4F00 48 00 00 28 */ b lbl_802D7FE8 +lbl_802D7FC4: +/* 802D7FC4 002D4F04 38 80 00 00 */ li r4, 0 +/* 802D7FC8 002D4F08 80 BD 00 44 */ lwz r5, 0x44(r29) +/* 802D7FCC 002D4F0C 80 05 00 08 */ lwz r0, 8(r5) +/* 802D7FD0 002D4F10 54 05 10 3A */ slwi r5, r0, 2 +/* 802D7FD4 002D4F14 4B D2 B4 85 */ bl func_80003458 +lbl_802D7FD8: +/* 802D7FD8 002D4F18 80 7E 00 08 */ lwz r3, 8(r30) +/* 802D7FDC 002D4F1C 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802D7FE0 002D4F20 7C 03 02 14 */ add r0, r3, r0 +/* 802D7FE4 002D4F24 90 1D 00 64 */ stw r0, 0x64(r29) +lbl_802D7FE8: +/* 802D7FE8 002D4F28 28 1E 00 00 */ cmplwi r30, 0 +/* 802D7FEC 002D4F2C 41 82 00 10 */ beq lbl_802D7FFC +/* 802D7FF0 002D4F30 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802D7FF4 002D4F34 7F C4 F3 78 */ mr r4, r30 +/* 802D7FF8 002D4F38 4B FF 65 51 */ bl free__7JKRHeapFPv +lbl_802D7FFC: +/* 802D7FFC 002D4F3C 88 1D 00 3C */ lbz r0, 0x3c(r29) +/* 802D8000 002D4F40 28 00 00 00 */ cmplwi r0, 0 +/* 802D8004 002D4F44 40 82 00 30 */ bne lbl_802D8034 +/* 802D8008 002D4F48 80 7D 00 68 */ lwz r3, 0x68(r29) +/* 802D800C 002D4F4C 28 03 00 00 */ cmplwi r3, 0 +/* 802D8010 002D4F50 41 82 00 1C */ beq lbl_802D802C +/* 802D8014 002D4F54 41 82 00 18 */ beq lbl_802D802C +/* 802D8018 002D4F58 38 80 00 01 */ li r4, 1 +/* 802D801C 002D4F5C 81 83 00 00 */ lwz r12, 0(r3) +/* 802D8020 002D4F60 81 8C 00 08 */ lwz r12, 8(r12) +/* 802D8024 002D4F64 7D 89 03 A6 */ mtctr r12 +/* 802D8028 002D4F68 4E 80 04 21 */ bctrl +lbl_802D802C: +/* 802D802C 002D4F6C 38 60 00 00 */ li r3, 0 +/* 802D8030 002D4F70 48 00 00 08 */ b lbl_802D8038 +lbl_802D8034: +/* 802D8034 002D4F74 38 60 00 01 */ li r3, 1 +lbl_802D8038: +/* 802D8038 002D4F78 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D803C 002D4F7C 48 08 A1 E9 */ bl _restgpr_28 +/* 802D8040 002D4F80 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D8044 002D4F84 7C 08 03 A6 */ mtlr r0 +/* 802D8048 002D4F88 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D804C 002D4F8C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s new file mode 100644 index 0000000000..6189fe641f --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s @@ -0,0 +1,81 @@ +/* fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D8050 002D4F90 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D8054 002D4F94 7C 08 02 A6 */ mflr r0 +/* 802D8058 002D4F98 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D805C 002D4F9C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D8060 002D4FA0 48 08 A1 79 */ bl _savegpr_28 +/* 802D8064 002D4FA4 7C 7C 1B 78 */ mr r28, r3 +/* 802D8068 002D4FA8 7C 9D 23 78 */ mr r29, r4 +/* 802D806C 002D4FAC 7C BE 2B 79 */ or. r30, r5, r5 +/* 802D8070 002D4FB0 40 82 00 08 */ bne lbl_802D8078 +/* 802D8074 002D4FB4 3B C1 00 0C */ addi r30, r1, 0xc +lbl_802D8078: +/* 802D8078 002D4FB8 80 1D 00 04 */ lwz r0, 4(r29) +/* 802D807C 002D4FBC 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D8080 002D4FC0 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D8084 002D4FC4 40 82 00 0C */ bne lbl_802D8090 +/* 802D8088 002D4FC8 3B E0 00 00 */ li r31, 0 +/* 802D808C 002D4FCC 48 00 00 18 */ b lbl_802D80A4 +lbl_802D8090: +/* 802D8090 002D4FD0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 802D8094 002D4FD4 41 82 00 0C */ beq lbl_802D80A0 +/* 802D8098 002D4FD8 3B E0 00 02 */ li r31, 2 +/* 802D809C 002D4FDC 48 00 00 08 */ b lbl_802D80A4 +lbl_802D80A0: +/* 802D80A0 002D4FE0 3B E0 00 01 */ li r31, 1 +lbl_802D80A4: +/* 802D80A4 002D4FE4 80 1D 00 10 */ lwz r0, 0x10(r29) +/* 802D80A8 002D4FE8 28 00 00 00 */ cmplwi r0, 0 +/* 802D80AC 002D4FEC 40 82 00 70 */ bne lbl_802D811C +/* 802D80B0 002D4FF0 80 7C 00 40 */ lwz r3, 0x40(r28) +/* 802D80B4 002D4FF4 80 9C 00 64 */ lwz r4, 0x64(r28) +/* 802D80B8 002D4FF8 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D80BC 002D4FFC 7C 84 02 14 */ add r4, r4, r0 +/* 802D80C0 002D5000 80 BD 00 0C */ lwz r5, 0xc(r29) +/* 802D80C4 002D5004 80 DC 00 38 */ lwz r6, 0x38(r28) +/* 802D80C8 002D5008 7F E7 FB 78 */ mr r7, r31 +/* 802D80CC 002D500C 81 1C 00 5C */ lwz r8, 0x5c(r28) +/* 802D80D0 002D5010 39 21 00 08 */ addi r9, r1, 8 +/* 802D80D4 002D5014 48 00 03 A1 */ bl fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc +/* 802D80D8 002D5018 90 7E 00 00 */ stw r3, 0(r30) +/* 802D80DC 002D501C 28 03 00 00 */ cmplwi r3, 0 +/* 802D80E0 002D5020 40 82 00 0C */ bne lbl_802D80EC +/* 802D80E4 002D5024 38 60 00 00 */ li r3, 0 +/* 802D80E8 002D5028 48 00 00 68 */ b lbl_802D8150 +lbl_802D80EC: +/* 802D80EC 002D502C 80 01 00 08 */ lwz r0, 8(r1) +/* 802D80F0 002D5030 90 1D 00 10 */ stw r0, 0x10(r29) +/* 802D80F4 002D5034 2C 1F 00 02 */ cmpwi r31, 2 +/* 802D80F8 002D5038 40 82 00 54 */ bne lbl_802D814C +/* 802D80FC 002D503C 7F 83 E3 78 */ mr r3, r28 +/* 802D8100 002D5040 7F A4 EB 78 */ mr r4, r29 +/* 802D8104 002D5044 80 BE 00 00 */ lwz r5, 0(r30) +/* 802D8108 002D5048 81 9C 00 00 */ lwz r12, 0(r28) +/* 802D810C 002D504C 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802D8110 002D5050 7D 89 03 A6 */ mtctr r12 +/* 802D8114 002D5054 4E 80 04 21 */ bctrl +/* 802D8118 002D5058 48 00 00 34 */ b lbl_802D814C +lbl_802D811C: +/* 802D811C 002D505C 2C 1F 00 02 */ cmpwi r31, 2 +/* 802D8120 002D5060 40 82 00 24 */ bne lbl_802D8144 +/* 802D8124 002D5064 7F 83 E3 78 */ mr r3, r28 +/* 802D8128 002D5068 7F A4 EB 78 */ mr r4, r29 +/* 802D812C 002D506C 81 9C 00 00 */ lwz r12, 0(r28) +/* 802D8130 002D5070 81 8C 00 4C */ lwz r12, 0x4c(r12) +/* 802D8134 002D5074 7D 89 03 A6 */ mtctr r12 +/* 802D8138 002D5078 4E 80 04 21 */ bctrl +/* 802D813C 002D507C 90 7E 00 00 */ stw r3, 0(r30) +/* 802D8140 002D5080 48 00 00 0C */ b lbl_802D814C +lbl_802D8144: +/* 802D8144 002D5084 80 1D 00 0C */ lwz r0, 0xc(r29) +/* 802D8148 002D5088 90 1E 00 00 */ stw r0, 0(r30) +lbl_802D814C: +/* 802D814C 002D508C 80 7D 00 10 */ lwz r3, 0x10(r29) +lbl_802D8150: +/* 802D8150 002D5090 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D8154 002D5094 48 08 A0 D1 */ bl _restgpr_28 +/* 802D8158 002D5098 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D815C 002D509C 7C 08 03 A6 */ mtlr r0 +/* 802D8160 002D50A0 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D8164 002D50A4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s new file mode 100644 index 0000000000..083955f69f --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s @@ -0,0 +1,75 @@ +/* fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D8168 002D50A8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D816C 002D50AC 7C 08 02 A6 */ mflr r0 +/* 802D8170 002D50B0 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D8174 002D50B4 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D8178 002D50B8 48 08 A0 5D */ bl _savegpr_27 +/* 802D817C 002D50BC 7C 69 1B 78 */ mr r9, r3 +/* 802D8180 002D50C0 7C 9B 23 78 */ mr r27, r4 +/* 802D8184 002D50C4 7C BC 2B 78 */ mr r28, r5 +/* 802D8188 002D50C8 7C DD 33 78 */ mr r29, r6 +/* 802D818C 002D50CC 7C FE 3B 78 */ mr r30, r7 +/* 802D8190 002D50D0 80 A6 00 0C */ lwz r5, 0xc(r6) +/* 802D8194 002D50D4 7C BF 2B 78 */ mr r31, r5 +/* 802D8198 002D50D8 80 06 00 04 */ lwz r0, 4(r6) +/* 802D819C 002D50DC 54 03 46 3E */ srwi r3, r0, 0x18 +/* 802D81A0 002D50E0 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D81A4 002D50E4 40 82 00 0C */ bne lbl_802D81B0 +/* 802D81A8 002D50E8 39 00 00 00 */ li r8, 0 +/* 802D81AC 002D50EC 48 00 00 18 */ b lbl_802D81C4 +lbl_802D81B0: +/* 802D81B0 002D50F0 54 60 06 31 */ rlwinm. r0, r3, 0, 0x18, 0x18 +/* 802D81B4 002D50F4 41 82 00 0C */ beq lbl_802D81C0 +/* 802D81B8 002D50F8 39 00 00 02 */ li r8, 2 +/* 802D81BC 002D50FC 48 00 00 08 */ b lbl_802D81C4 +lbl_802D81C0: +/* 802D81C0 002D5100 39 00 00 01 */ li r8, 1 +lbl_802D81C4: +/* 802D81C4 002D5104 80 1D 00 10 */ lwz r0, 0x10(r29) +/* 802D81C8 002D5108 28 00 00 00 */ cmplwi r0, 0 +/* 802D81CC 002D510C 40 82 00 30 */ bne lbl_802D81FC +/* 802D81D0 002D5110 57 9C 00 34 */ rlwinm r28, r28, 0, 0, 0x1a +/* 802D81D4 002D5114 80 69 00 40 */ lwz r3, 0x40(r9) +/* 802D81D8 002D5118 80 89 00 64 */ lwz r4, 0x64(r9) +/* 802D81DC 002D511C 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D81E0 002D5120 7C 84 02 14 */ add r4, r4, r0 +/* 802D81E4 002D5124 7F 66 DB 78 */ mr r6, r27 +/* 802D81E8 002D5128 7F 87 E3 78 */ mr r7, r28 +/* 802D81EC 002D512C 81 29 00 5C */ lwz r9, 0x5c(r9) +/* 802D81F0 002D5130 48 00 00 7D */ bl fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii +/* 802D81F4 002D5134 7C 7F 1B 78 */ mr r31, r3 +/* 802D81F8 002D5138 48 00 00 4C */ b lbl_802D8244 +lbl_802D81FC: +/* 802D81FC 002D513C 2C 08 00 02 */ cmpwi r8, 2 +/* 802D8200 002D5140 40 82 00 28 */ bne lbl_802D8228 +/* 802D8204 002D5144 7D 23 4B 78 */ mr r3, r9 +/* 802D8208 002D5148 7F A4 EB 78 */ mr r4, r29 +/* 802D820C 002D514C 81 89 00 00 */ lwz r12, 0(r9) +/* 802D8210 002D5150 81 8C 00 4C */ lwz r12, 0x4c(r12) +/* 802D8214 002D5154 7D 89 03 A6 */ mtctr r12 +/* 802D8218 002D5158 4E 80 04 21 */ bctrl +/* 802D821C 002D515C 28 03 00 00 */ cmplwi r3, 0 +/* 802D8220 002D5160 41 82 00 08 */ beq lbl_802D8228 +/* 802D8224 002D5164 7C 7F 1B 78 */ mr r31, r3 +lbl_802D8228: +/* 802D8228 002D5168 7C 1F E0 40 */ cmplw r31, r28 +/* 802D822C 002D516C 40 81 00 08 */ ble lbl_802D8234 +/* 802D8230 002D5170 7F 9F E3 78 */ mr r31, r28 +lbl_802D8234: +/* 802D8234 002D5174 7F 63 DB 78 */ mr r3, r27 +/* 802D8238 002D5178 80 9D 00 10 */ lwz r4, 0x10(r29) +/* 802D823C 002D517C 7F E5 FB 78 */ mr r5, r31 +/* 802D8240 002D5180 4B FF 68 D9 */ bl copyMemory__7JKRHeapFPvPvUl +lbl_802D8244: +/* 802D8244 002D5184 28 1E 00 00 */ cmplwi r30, 0 +/* 802D8248 002D5188 41 82 00 08 */ beq lbl_802D8250 +/* 802D824C 002D518C 93 FE 00 00 */ stw r31, 0(r30) +lbl_802D8250: +/* 802D8250 002D5190 7F 63 DB 78 */ mr r3, r27 +/* 802D8254 002D5194 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D8258 002D5198 48 08 9F C9 */ bl _restgpr_27 +/* 802D825C 002D519C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D8260 002D51A0 7C 08 03 A6 */ mtlr r0 +/* 802D8264 002D51A4 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D8268 002D51A8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D826C.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D826C.s new file mode 100644 index 0000000000..6c66977cbb --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D826C.s @@ -0,0 +1,143 @@ +/* fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource_subroutine(long, unsigned long, unsigned long, unsigned char *, unsigned long, int, int) */ +/* JKRDvdArchive_NS_fetchResource_subroutine */ +/* 802D826C 002D51AC 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 802D8270 002D51B0 7C 08 02 A6 */ mflr r0 +/* 802D8274 002D51B4 90 01 00 74 */ stw r0, 0x74(r1) +/* 802D8278 002D51B8 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D827C 002D51BC 48 08 9F 55 */ bl _savegpr_26 +/* 802D8280 002D51C0 7C 7D 1B 78 */ mr r29, r3 +/* 802D8284 002D51C4 7C 9E 23 78 */ mr r30, r4 +/* 802D8288 002D51C8 7C BA 2B 78 */ mr r26, r5 +/* 802D828C 002D51CC 7C DF 33 78 */ mr r31, r6 +/* 802D8290 002D51D0 38 1A 00 1F */ addi r0, r26, 0x1f +/* 802D8294 002D51D4 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a +/* 802D8298 002D51D8 54 FB 00 34 */ rlwinm r27, r7, 0, 0, 0x1a +/* 802D829C 002D51DC 2C 09 00 01 */ cmpwi r9, 1 +/* 802D82A0 002D51E0 41 82 01 80 */ beq lbl_802D8420 +/* 802D82A4 002D51E4 40 80 00 10 */ bge lbl_802D82B4 +/* 802D82A8 002D51E8 2C 09 00 00 */ cmpwi r9, 0 +/* 802D82AC 002D51EC 40 80 00 14 */ bge lbl_802D82C0 +/* 802D82B0 002D51F0 48 00 01 8C */ b lbl_802D843C +lbl_802D82B4: +/* 802D82B4 002D51F4 2C 09 00 03 */ cmpwi r9, 3 +/* 802D82B8 002D51F8 40 80 01 84 */ bge lbl_802D843C +/* 802D82BC 002D51FC 48 00 01 18 */ b lbl_802D83D4 +lbl_802D82C0: +/* 802D82C0 002D5200 2C 08 00 00 */ cmpwi r8, 0 +/* 802D82C4 002D5204 41 82 00 14 */ beq lbl_802D82D8 +/* 802D82C8 002D5208 41 80 01 0C */ blt lbl_802D83D4 +/* 802D82CC 002D520C 2C 08 00 03 */ cmpwi r8, 3 +/* 802D82D0 002D5210 40 80 01 04 */ bge lbl_802D83D4 +/* 802D82D4 002D5214 48 00 00 50 */ b lbl_802D8324 +lbl_802D82D8: +/* 802D82D8 002D5218 7C 1C D8 40 */ cmplw r28, r27 +/* 802D82DC 002D521C 40 81 00 08 */ ble lbl_802D82E4 +/* 802D82E0 002D5220 7F 7C DB 78 */ mr r28, r27 +lbl_802D82E4: +/* 802D82E4 002D5224 38 00 00 00 */ li r0, 0 +/* 802D82E8 002D5228 90 01 00 08 */ stw r0, 8(r1) +/* 802D82EC 002D522C 7F A3 EB 78 */ mr r3, r29 +/* 802D82F0 002D5230 7F E4 FB 78 */ mr r4, r31 +/* 802D82F4 002D5234 38 A0 00 00 */ li r5, 0 +/* 802D82F8 002D5238 7F 86 E3 78 */ mr r6, r28 +/* 802D82FC 002D523C 38 E0 00 00 */ li r7, 0 +/* 802D8300 002D5240 39 00 00 01 */ li r8, 1 +/* 802D8304 002D5244 7F C9 F3 78 */ mr r9, r30 +/* 802D8308 002D5248 39 40 00 00 */ li r10, 0 +/* 802D830C 002D524C 48 00 19 49 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8310 002D5250 7F E3 FB 78 */ mr r3, r31 +/* 802D8314 002D5254 7F 84 E3 78 */ mr r4, r28 +/* 802D8318 002D5258 48 06 32 69 */ bl DCInvalidateRange +/* 802D831C 002D525C 7F 83 E3 78 */ mr r3, r28 +/* 802D8320 002D5260 48 00 01 3C */ b lbl_802D845C +lbl_802D8324: +/* 802D8324 002D5264 38 01 00 2F */ addi r0, r1, 0x2f +/* 802D8328 002D5268 54 1C 00 34 */ rlwinm r28, r0, 0, 0, 0x1a +/* 802D832C 002D526C 38 00 00 00 */ li r0, 0 +/* 802D8330 002D5270 90 01 00 08 */ stw r0, 8(r1) +/* 802D8334 002D5274 7F 84 E3 78 */ mr r4, r28 +/* 802D8338 002D5278 38 A0 00 02 */ li r5, 2 +/* 802D833C 002D527C 38 C0 00 20 */ li r6, 0x20 +/* 802D8340 002D5280 38 E0 00 00 */ li r7, 0 +/* 802D8344 002D5284 39 00 00 01 */ li r8, 1 +/* 802D8348 002D5288 7F C9 F3 78 */ mr r9, r30 +/* 802D834C 002D528C 39 40 00 00 */ li r10, 0 +/* 802D8350 002D5290 48 00 19 05 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8354 002D5294 7F 83 E3 78 */ mr r3, r28 +/* 802D8358 002D5298 38 80 00 20 */ li r4, 0x20 +/* 802D835C 002D529C 48 06 32 25 */ bl DCInvalidateRange +/* 802D8360 002D52A0 88 BC 00 07 */ lbz r5, 7(r28) +/* 802D8364 002D52A4 88 9C 00 06 */ lbz r4, 6(r28) +/* 802D8368 002D52A8 88 7C 00 04 */ lbz r3, 4(r28) +/* 802D836C 002D52AC 88 1C 00 05 */ lbz r0, 5(r28) +/* 802D8370 002D52B0 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D8374 002D52B4 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D8378 002D52B8 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D837C 002D52BC 7C BC 03 78 */ or r28, r5, r0 +/* 802D8380 002D52C0 38 1C 00 1F */ addi r0, r28, 0x1f +/* 802D8384 002D52C4 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a +/* 802D8388 002D52C8 7C 1A D8 40 */ cmplw r26, r27 +/* 802D838C 002D52CC 40 81 00 08 */ ble lbl_802D8394 +/* 802D8390 002D52D0 7F 7A DB 78 */ mr r26, r27 +lbl_802D8394: +/* 802D8394 002D52D4 38 00 00 00 */ li r0, 0 +/* 802D8398 002D52D8 90 01 00 08 */ stw r0, 8(r1) +/* 802D839C 002D52DC 7F A3 EB 78 */ mr r3, r29 +/* 802D83A0 002D52E0 7F E4 FB 78 */ mr r4, r31 +/* 802D83A4 002D52E4 38 A0 00 01 */ li r5, 1 +/* 802D83A8 002D52E8 7F 46 D3 78 */ mr r6, r26 +/* 802D83AC 002D52EC 38 E0 00 00 */ li r7, 0 +/* 802D83B0 002D52F0 39 00 00 01 */ li r8, 1 +/* 802D83B4 002D52F4 7F C9 F3 78 */ mr r9, r30 +/* 802D83B8 002D52F8 39 40 00 00 */ li r10, 0 +/* 802D83BC 002D52FC 48 00 18 99 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D83C0 002D5300 7F E3 FB 78 */ mr r3, r31 +/* 802D83C4 002D5304 7F 44 D3 78 */ mr r4, r26 +/* 802D83C8 002D5308 48 06 31 B9 */ bl DCInvalidateRange +/* 802D83CC 002D530C 7F 83 E3 78 */ mr r3, r28 +/* 802D83D0 002D5310 48 00 00 8C */ b lbl_802D845C +lbl_802D83D4: +/* 802D83D4 002D5314 7C 1A D8 40 */ cmplw r26, r27 +/* 802D83D8 002D5318 40 81 00 08 */ ble lbl_802D83E0 +/* 802D83DC 002D531C 7F 7A DB 78 */ mr r26, r27 +lbl_802D83E0: +/* 802D83E0 002D5320 38 00 00 00 */ li r0, 0 +/* 802D83E4 002D5324 90 01 00 08 */ stw r0, 8(r1) +/* 802D83E8 002D5328 7F A3 EB 78 */ mr r3, r29 +/* 802D83EC 002D532C 7F E4 FB 78 */ mr r4, r31 +/* 802D83F0 002D5330 38 A0 00 01 */ li r5, 1 +/* 802D83F4 002D5334 7F 46 D3 78 */ mr r6, r26 +/* 802D83F8 002D5338 38 E0 00 00 */ li r7, 0 +/* 802D83FC 002D533C 39 00 00 01 */ li r8, 1 +/* 802D8400 002D5340 7F C9 F3 78 */ mr r9, r30 +/* 802D8404 002D5344 39 40 00 00 */ li r10, 0 +/* 802D8408 002D5348 48 00 18 4D */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D840C 002D534C 7F E3 FB 78 */ mr r3, r31 +/* 802D8410 002D5350 7F 44 D3 78 */ mr r4, r26 +/* 802D8414 002D5354 48 06 31 6D */ bl DCInvalidateRange +/* 802D8418 002D5358 7F 43 D3 78 */ mr r3, r26 +/* 802D841C 002D535C 48 00 00 40 */ b lbl_802D845C +lbl_802D8420: +/* 802D8420 002D5360 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha +/* 802D8424 002D5364 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l +/* 802D8428 002D5368 38 80 02 89 */ li r4, 0x289 +/* 802D842C 002D536C 38 A3 00 12 */ addi r5, r3, 0x12 +/* 802D8430 002D5370 38 C3 00 15 */ addi r6, r3, 0x15 +/* 802D8434 002D5374 4C C6 31 82 */ crclr 6 +/* 802D8438 002D5378 48 00 9D C5 */ bl JUTException_NS_panic_f +lbl_802D843C: +/* 802D843C 002D537C 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha +/* 802D8440 002D5380 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l +/* 802D8444 002D5384 38 80 02 8D */ li r4, 0x28d +/* 802D8448 002D5388 38 A3 00 12 */ addi r5, r3, 0x12 +/* 802D844C 002D538C 38 C3 00 3A */ addi r6, r3, 0x3a +/* 802D8450 002D5390 4C C6 31 82 */ crclr 6 +/* 802D8454 002D5394 48 00 9D A9 */ bl JUTException_NS_panic_f +/* 802D8458 002D5398 38 60 00 00 */ li r3, 0 +lbl_802D845C: +/* 802D845C 002D539C 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D8460 002D53A0 48 08 9D BD */ bl _restgpr_26 +/* 802D8464 002D53A4 80 01 00 74 */ lwz r0, 0x74(r1) +/* 802D8468 002D53A8 7C 08 03 A6 */ mtlr r0 +/* 802D846C 002D53AC 38 21 00 70 */ addi r1, r1, 0x70 +/* 802D8470 002D53B0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s new file mode 100644 index 0000000000..4b504daf08 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s @@ -0,0 +1,147 @@ +/* fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::fetchResource_subroutine(long, unsigned long, unsigned long, JKRHeap *, int, int, unsigned char **) */ +/* JKRDvdArchive_NS_fetchResource_subroutine_X1_ */ +/* 802D8474 002D53B4 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 802D8478 002D53B8 7C 08 02 A6 */ mflr r0 +/* 802D847C 002D53BC 90 01 00 74 */ stw r0, 0x74(r1) +/* 802D8480 002D53C0 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D8484 002D53C4 48 08 9D 49 */ bl func_803621CC +/* 802D8488 002D53C8 7C 7D 1B 78 */ mr r29, r3 +/* 802D848C 002D53CC 7C 9E 23 78 */ mr r30, r4 +/* 802D8490 002D53D0 7C B9 2B 78 */ mr r25, r5 +/* 802D8494 002D53D4 7C DA 33 78 */ mr r26, r6 +/* 802D8498 002D53D8 7D 3F 4B 78 */ mr r31, r9 +/* 802D849C 002D53DC 38 19 00 1F */ addi r0, r25, 0x1f +/* 802D84A0 002D53E0 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a +/* 802D84A4 002D53E4 2C 08 00 01 */ cmpwi r8, 1 +/* 802D84A8 002D53E8 41 82 01 9C */ beq lbl_802D8644 +/* 802D84AC 002D53EC 40 80 00 10 */ bge lbl_802D84BC +/* 802D84B0 002D53F0 2C 08 00 00 */ cmpwi r8, 0 +/* 802D84B4 002D53F4 40 80 00 14 */ bge lbl_802D84C8 +/* 802D84B8 002D53F8 48 00 01 A8 */ b lbl_802D8660 +lbl_802D84BC: +/* 802D84BC 002D53FC 2C 08 00 03 */ cmpwi r8, 3 +/* 802D84C0 002D5400 40 80 01 A0 */ bge lbl_802D8660 +/* 802D84C4 002D5404 48 00 01 28 */ b lbl_802D85EC +lbl_802D84C8: +/* 802D84C8 002D5408 2C 07 00 00 */ cmpwi r7, 0 +/* 802D84CC 002D540C 41 82 00 14 */ beq lbl_802D84E0 +/* 802D84D0 002D5410 41 80 01 1C */ blt lbl_802D85EC +/* 802D84D4 002D5414 2C 07 00 03 */ cmpwi r7, 3 +/* 802D84D8 002D5418 40 80 01 14 */ bge lbl_802D85EC +/* 802D84DC 002D541C 48 00 00 5C */ b lbl_802D8538 +lbl_802D84E0: +/* 802D84E0 002D5420 7F 63 DB 78 */ mr r3, r27 +/* 802D84E4 002D5424 38 80 00 20 */ li r4, 0x20 +/* 802D84E8 002D5428 7F 45 D3 78 */ mr r5, r26 +/* 802D84EC 002D542C 4B FF 5F 89 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D84F0 002D5430 7C 7C 1B 78 */ mr r28, r3 +/* 802D84F4 002D5434 38 00 00 00 */ li r0, 0 +/* 802D84F8 002D5438 90 01 00 08 */ stw r0, 8(r1) +/* 802D84FC 002D543C 7F A3 EB 78 */ mr r3, r29 +/* 802D8500 002D5440 7F 84 E3 78 */ mr r4, r28 +/* 802D8504 002D5444 38 A0 00 00 */ li r5, 0 +/* 802D8508 002D5448 7F 66 DB 78 */ mr r6, r27 +/* 802D850C 002D544C 38 E0 00 00 */ li r7, 0 +/* 802D8510 002D5450 39 00 00 01 */ li r8, 1 +/* 802D8514 002D5454 7F C9 F3 78 */ mr r9, r30 +/* 802D8518 002D5458 39 40 00 00 */ li r10, 0 +/* 802D851C 002D545C 48 00 17 39 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8520 002D5460 7F 83 E3 78 */ mr r3, r28 +/* 802D8524 002D5464 7F 64 DB 78 */ mr r4, r27 +/* 802D8528 002D5468 48 06 30 59 */ bl DCInvalidateRange +/* 802D852C 002D546C 93 9F 00 00 */ stw r28, 0(r31) +/* 802D8530 002D5470 7F 63 DB 78 */ mr r3, r27 +/* 802D8534 002D5474 48 00 01 4C */ b lbl_802D8680 +lbl_802D8538: +/* 802D8538 002D5478 38 01 00 2F */ addi r0, r1, 0x2f +/* 802D853C 002D547C 54 1B 00 34 */ rlwinm r27, r0, 0, 0, 0x1a +/* 802D8540 002D5480 38 00 00 00 */ li r0, 0 +/* 802D8544 002D5484 90 01 00 08 */ stw r0, 8(r1) +/* 802D8548 002D5488 7F 64 DB 78 */ mr r4, r27 +/* 802D854C 002D548C 38 A0 00 02 */ li r5, 2 +/* 802D8550 002D5490 38 C0 00 20 */ li r6, 0x20 +/* 802D8554 002D5494 38 E0 00 00 */ li r7, 0 +/* 802D8558 002D5498 39 00 00 01 */ li r8, 1 +/* 802D855C 002D549C 7F C9 F3 78 */ mr r9, r30 +/* 802D8560 002D54A0 39 40 00 00 */ li r10, 0 +/* 802D8564 002D54A4 48 00 16 F1 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8568 002D54A8 7F 63 DB 78 */ mr r3, r27 +/* 802D856C 002D54AC 38 80 00 20 */ li r4, 0x20 +/* 802D8570 002D54B0 48 06 30 11 */ bl DCInvalidateRange +/* 802D8574 002D54B4 88 BB 00 07 */ lbz r5, 7(r27) +/* 802D8578 002D54B8 88 9B 00 06 */ lbz r4, 6(r27) +/* 802D857C 002D54BC 88 7B 00 04 */ lbz r3, 4(r27) +/* 802D8580 002D54C0 88 1B 00 05 */ lbz r0, 5(r27) +/* 802D8584 002D54C4 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D8588 002D54C8 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D858C 002D54CC 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D8590 002D54D0 7C BC 03 78 */ or r28, r5, r0 +/* 802D8594 002D54D4 7F 83 E3 78 */ mr r3, r28 +/* 802D8598 002D54D8 38 80 00 20 */ li r4, 0x20 +/* 802D859C 002D54DC 7F 45 D3 78 */ mr r5, r26 +/* 802D85A0 002D54E0 4B FF 5E D5 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D85A4 002D54E4 7C 7B 1B 78 */ mr r27, r3 +/* 802D85A8 002D54E8 38 00 00 00 */ li r0, 0 +/* 802D85AC 002D54EC 90 01 00 08 */ stw r0, 8(r1) +/* 802D85B0 002D54F0 7F A3 EB 78 */ mr r3, r29 +/* 802D85B4 002D54F4 7F 64 DB 78 */ mr r4, r27 +/* 802D85B8 002D54F8 38 A0 00 01 */ li r5, 1 +/* 802D85BC 002D54FC 7F 86 E3 78 */ mr r6, r28 +/* 802D85C0 002D5500 38 E0 00 00 */ li r7, 0 +/* 802D85C4 002D5504 39 00 00 01 */ li r8, 1 +/* 802D85C8 002D5508 7F C9 F3 78 */ mr r9, r30 +/* 802D85CC 002D550C 39 40 00 00 */ li r10, 0 +/* 802D85D0 002D5510 48 00 16 85 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D85D4 002D5514 7F 63 DB 78 */ mr r3, r27 +/* 802D85D8 002D5518 7F 84 E3 78 */ mr r4, r28 +/* 802D85DC 002D551C 48 06 2F A5 */ bl DCInvalidateRange +/* 802D85E0 002D5520 93 7F 00 00 */ stw r27, 0(r31) +/* 802D85E4 002D5524 7F 83 E3 78 */ mr r3, r28 +/* 802D85E8 002D5528 48 00 00 98 */ b lbl_802D8680 +lbl_802D85EC: +/* 802D85EC 002D552C 7F 63 DB 78 */ mr r3, r27 +/* 802D85F0 002D5530 38 80 00 20 */ li r4, 0x20 +/* 802D85F4 002D5534 7F 45 D3 78 */ mr r5, r26 +/* 802D85F8 002D5538 4B FF 5E 7D */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D85FC 002D553C 7C 7C 1B 78 */ mr r28, r3 +/* 802D8600 002D5540 38 00 00 00 */ li r0, 0 +/* 802D8604 002D5544 90 01 00 08 */ stw r0, 8(r1) +/* 802D8608 002D5548 7F A3 EB 78 */ mr r3, r29 +/* 802D860C 002D554C 7F 84 E3 78 */ mr r4, r28 +/* 802D8610 002D5550 38 A0 00 01 */ li r5, 1 +/* 802D8614 002D5554 7F 26 CB 78 */ mr r6, r25 +/* 802D8618 002D5558 38 E0 00 00 */ li r7, 0 +/* 802D861C 002D555C 39 00 00 01 */ li r8, 1 +/* 802D8620 002D5560 7F C9 F3 78 */ mr r9, r30 +/* 802D8624 002D5564 39 40 00 00 */ li r10, 0 +/* 802D8628 002D5568 48 00 16 2D */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D862C 002D556C 7F 83 E3 78 */ mr r3, r28 +/* 802D8630 002D5570 7F 24 CB 78 */ mr r4, r25 +/* 802D8634 002D5574 48 06 2F 4D */ bl DCInvalidateRange +/* 802D8638 002D5578 93 9F 00 00 */ stw r28, 0(r31) +/* 802D863C 002D557C 7F 63 DB 78 */ mr r3, r27 +/* 802D8640 002D5580 48 00 00 40 */ b lbl_802D8680 +lbl_802D8644: +/* 802D8644 002D5584 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha +/* 802D8648 002D5588 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l +/* 802D864C 002D558C 38 80 02 F2 */ li r4, 0x2f2 +/* 802D8650 002D5590 38 A3 00 12 */ addi r5, r3, 0x12 +/* 802D8654 002D5594 38 C3 00 4C */ addi r6, r3, 0x4c +/* 802D8658 002D5598 4C C6 31 82 */ crclr 6 +/* 802D865C 002D559C 48 00 9B A1 */ bl JUTException_NS_panic_f +lbl_802D8660: +/* 802D8660 002D55A0 3C 60 80 3A */ lis r3, lbl_8039D1B0@ha +/* 802D8664 002D55A4 38 63 D1 B0 */ addi r3, r3, lbl_8039D1B0@l +/* 802D8668 002D55A8 38 80 02 F6 */ li r4, 0x2f6 +/* 802D866C 002D55AC 38 A3 00 12 */ addi r5, r3, 0x12 +/* 802D8670 002D55B0 38 C3 00 3A */ addi r6, r3, 0x3a +/* 802D8674 002D55B4 4C C6 31 82 */ crclr 6 +/* 802D8678 002D55B8 48 00 9B 85 */ bl JUTException_NS_panic_f +/* 802D867C 002D55BC 38 60 00 00 */ li r3, 0 +lbl_802D8680: +/* 802D8680 002D55C0 39 61 00 70 */ addi r11, r1, 0x70 +/* 802D8684 002D55C4 48 08 9B 95 */ bl func_80362218 +/* 802D8688 002D55C8 80 01 00 74 */ lwz r0, 0x74(r1) +/* 802D868C 002D55CC 7C 08 03 A6 */ mtlr r0 +/* 802D8690 002D55D0 38 21 00 70 */ addi r1, r1, 0x70 +/* 802D8694 002D55D4 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8698.s b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8698.s new file mode 100644 index 0000000000..4fe8320948 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdArchive/asm/func_802D8698.s @@ -0,0 +1,86 @@ +/* getExpandedResSize__13JKRDvdArchiveCFPCv __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection::getExpandedResSize( const(void const *)) */ +/* missing reference */ +/* 802D8698 002D55D8 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 802D869C 002D55DC 7C 08 02 A6 */ mflr r0 +/* 802D86A0 002D55E0 90 01 00 64 */ stw r0, 0x64(r1) +/* 802D86A4 002D55E4 39 61 00 60 */ addi r11, r1, 0x60 +/* 802D86A8 002D55E8 48 08 9B 35 */ bl _savegpr_29 +/* 802D86AC 002D55EC 7C 7F 1B 78 */ mr r31, r3 +/* 802D86B0 002D55F0 7C 9E 23 78 */ mr r30, r4 +/* 802D86B4 002D55F4 80 03 00 50 */ lwz r0, 0x50(r3) +/* 802D86B8 002D55F8 28 00 00 00 */ cmplwi r0, 0 +/* 802D86BC 002D55FC 40 82 00 18 */ bne lbl_802D86D4 +/* 802D86C0 002D5600 81 83 00 00 */ lwz r12, 0(r3) +/* 802D86C4 002D5604 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802D86C8 002D5608 7D 89 03 A6 */ mtctr r12 +/* 802D86CC 002D560C 4E 80 04 21 */ bctrl +/* 802D86D0 002D5610 48 00 00 EC */ b lbl_802D87BC +lbl_802D86D4: +/* 802D86D4 002D5614 4B FF E0 61 */ bl findPtrResource__10JKRArchiveCFPCv +/* 802D86D8 002D5618 7C 7D 1B 79 */ or. r29, r3, r3 +/* 802D86DC 002D561C 40 82 00 0C */ bne lbl_802D86E8 +/* 802D86E0 002D5620 38 60 FF FF */ li r3, -1 +/* 802D86E4 002D5624 48 00 00 D8 */ b lbl_802D87BC +lbl_802D86E8: +/* 802D86E8 002D5628 80 1D 00 04 */ lwz r0, 4(r29) +/* 802D86EC 002D562C 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D86F0 002D5630 40 82 00 20 */ bne lbl_802D8710 +/* 802D86F4 002D5634 7F E3 FB 78 */ mr r3, r31 +/* 802D86F8 002D5638 7F C4 F3 78 */ mr r4, r30 +/* 802D86FC 002D563C 81 9F 00 00 */ lwz r12, 0(r31) +/* 802D8700 002D5640 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802D8704 002D5644 7D 89 03 A6 */ mtctr r12 +/* 802D8708 002D5648 4E 80 04 21 */ bctrl +/* 802D870C 002D564C 48 00 00 B0 */ b lbl_802D87BC +lbl_802D8710: +/* 802D8710 002D5650 7F E3 FB 78 */ mr r3, r31 +/* 802D8714 002D5654 7F A4 EB 78 */ mr r4, r29 +/* 802D8718 002D5658 81 9F 00 00 */ lwz r12, 0(r31) +/* 802D871C 002D565C 81 8C 00 4C */ lwz r12, 0x4c(r12) +/* 802D8720 002D5660 7D 89 03 A6 */ mtctr r12 +/* 802D8724 002D5664 4E 80 04 21 */ bctrl +/* 802D8728 002D5668 28 03 00 00 */ cmplwi r3, 0 +/* 802D872C 002D566C 41 82 00 08 */ beq lbl_802D8734 +/* 802D8730 002D5670 48 00 00 8C */ b lbl_802D87BC +lbl_802D8734: +/* 802D8734 002D5674 38 01 00 2F */ addi r0, r1, 0x2f +/* 802D8738 002D5678 54 1E 00 34 */ rlwinm r30, r0, 0, 0, 0x1a +/* 802D873C 002D567C 38 00 00 00 */ li r0, 0 +/* 802D8740 002D5680 90 01 00 08 */ stw r0, 8(r1) +/* 802D8744 002D5684 80 7F 00 40 */ lwz r3, 0x40(r31) +/* 802D8748 002D5688 7F C4 F3 78 */ mr r4, r30 +/* 802D874C 002D568C 38 A0 00 02 */ li r5, 2 +/* 802D8750 002D5690 38 C0 00 20 */ li r6, 0x20 +/* 802D8754 002D5694 38 E0 00 00 */ li r7, 0 +/* 802D8758 002D5698 39 00 00 01 */ li r8, 1 +/* 802D875C 002D569C 81 3F 00 64 */ lwz r9, 0x64(r31) +/* 802D8760 002D56A0 80 1D 00 08 */ lwz r0, 8(r29) +/* 802D8764 002D56A4 7D 29 02 14 */ add r9, r9, r0 +/* 802D8768 002D56A8 39 40 00 00 */ li r10, 0 +/* 802D876C 002D56AC 48 00 14 E9 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D8770 002D56B0 7F C3 F3 78 */ mr r3, r30 +/* 802D8774 002D56B4 38 80 00 20 */ li r4, 0x20 +/* 802D8778 002D56B8 48 06 2E 09 */ bl DCInvalidateRange +/* 802D877C 002D56BC 88 BE 00 07 */ lbz r5, 7(r30) +/* 802D8780 002D56C0 88 9E 00 06 */ lbz r4, 6(r30) +/* 802D8784 002D56C4 88 7E 00 04 */ lbz r3, 4(r30) +/* 802D8788 002D56C8 88 1E 00 05 */ lbz r0, 5(r30) +/* 802D878C 002D56CC 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D8790 002D56D0 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D8794 002D56D4 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D8798 002D56D8 7C BE 03 78 */ or r30, r5, r0 +/* 802D879C 002D56DC 7F E3 FB 78 */ mr r3, r31 +/* 802D87A0 002D56E0 7F A4 EB 78 */ mr r4, r29 +/* 802D87A4 002D56E4 7F C5 F3 78 */ mr r5, r30 +/* 802D87A8 002D56E8 81 9F 00 00 */ lwz r12, 0(r31) +/* 802D87AC 002D56EC 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802D87B0 002D56F0 7D 89 03 A6 */ mtctr r12 +/* 802D87B4 002D56F4 4E 80 04 21 */ bctrl +/* 802D87B8 002D56F8 7F C3 F3 78 */ mr r3, r30 +lbl_802D87BC: +/* 802D87BC 002D56FC 39 61 00 60 */ addi r11, r1, 0x60 +/* 802D87C0 002D5700 48 08 9A 69 */ bl _restgpr_29 +/* 802D87C4 002D5704 80 01 00 64 */ lwz r0, 0x64(r1) +/* 802D87C8 002D5708 7C 08 03 A6 */ mtlr r0 +/* 802D87CC 002D570C 38 21 00 60 */ addi r1, r1, 0x60 +/* 802D87D0 002D5710 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h index 47eae12215..bca06b8e06 100644 --- a/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h +++ b/include/JSystem/JKernel/JKRDvdFile/JKRDvdFile.h @@ -11,18 +11,10 @@ class JKRDvdFile : public JKRFile { JKRDvdFile(); JKRDvdFile(char const*); JKRDvdFile(long); - ~JKRDvdFile(); + virtual ~JKRDvdFile(); void initiate(void); s32 sync(void); - static void doneProcess(long, DVDFileInfo*); - - virtual bool open(char const*); - virtual void close(void); - virtual s32 readData(void*, long, long); - virtual s32 writeData(void const*, long, long); - virtual s32 getFileSize(void) const; - virtual bool open(long); int getFileID() const { return this->mFileID << 2; @@ -36,7 +28,15 @@ class JKRDvdFile : public JKRFile { return DVDGetCommandBlockStatus(&this->mDvdCommandBlock[0]); } - protected: + public: + /* vt[03] */ virtual bool open(char const*); /* override */ + /* vt[04] */ virtual void close(void); /* override */ + /* vt[05] */ virtual s32 readData(void*, long, long); /* override */ + /* vt[06] */ virtual s32 writeData(void const*, long, long); /* override */ + /* vt[07] */ virtual s32 getFileSize(void) const; /* override */ + /* vt[08] */ virtual bool open(long); + + private: OSMutex mMutex1; OSMutex mMutex2; u32 field_0x4c; @@ -54,6 +54,10 @@ class JKRDvdFile : public JKRFile { OSMessage mMessages2[1]; JSULink mDvdLink; OSThread* mOSThread; + + public: + static void doneProcess(long, DVDFileInfo*); }; + #endif diff --git a/include/JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h b/include/JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h new file mode 100644 index 0000000000..e3ede27b0b --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h @@ -0,0 +1,30 @@ +#ifndef __JKRDVDRIPPER_H__ +#define __JKRDVDRIPPER_H__ + +#include "dolphin/types.h" + +enum JKRExpandSwitch { + +}; + +class JKRHeap; +class JKRDvdFile; +class JKRDvdRipper { + public: + enum EAllocDirection { + + }; + + void loadToMainRAM(char const*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, u32, int*, u32*); + void loadToMainRAM(long, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, u32, int*, u32*); + void loadToMainRAM(JKRDvdFile*, u8*, JKRExpandSwitch, u32, JKRHeap*, EAllocDirection, u32, int*, u32*); + + void isErrorRetry(void); +}; + +void JKRDecompressFromDVD(JKRDvdFile*, void*, u32, u32, u32, u32, u32*); +static void decompSZS_subroutine(u8*, u8*); +static void firstSrcData(void); +static void nextSrcData(u8*); + +#endif diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9B98.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9B98.s new file mode 100644 index 0000000000..12ba889071 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9B98.s @@ -0,0 +1,51 @@ +/* loadToMainRAM__12JKRDvdRipperFPCcPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl JKRDvdRipper::loadToMainRAM(char const *, unsigned char *, JKRExpandSwitch, unsigned long, JKRHeap *, JKRDvdRipper::EAllocDirection, unsigned long, int *, unsigned long *) */ +/* JKRDvdRipper_NS_loadToMainRAM */ +/* 802D9B98 002D6AD8 94 21 FE D0 */ stwu r1, -0x130(r1) +/* 802D9B9C 002D6ADC 7C 08 02 A6 */ mflr r0 +/* 802D9BA0 002D6AE0 90 01 01 34 */ stw r0, 0x134(r1) +/* 802D9BA4 002D6AE4 39 61 01 30 */ addi r11, r1, 0x130 +/* 802D9BA8 002D6AE8 48 08 86 1D */ bl func_803621C4 +/* 802D9BAC 002D6AEC 7C 77 1B 78 */ mr r23, r3 +/* 802D9BB0 002D6AF0 7C 98 23 78 */ mr r24, r4 +/* 802D9BB4 002D6AF4 7C B9 2B 78 */ mr r25, r5 +/* 802D9BB8 002D6AF8 7C DA 33 78 */ mr r26, r6 +/* 802D9BBC 002D6AFC 7C FB 3B 78 */ mr r27, r7 +/* 802D9BC0 002D6B00 7D 1C 43 78 */ mr r28, r8 +/* 802D9BC4 002D6B04 7D 3D 4B 78 */ mr r29, r9 +/* 802D9BC8 002D6B08 7D 5E 53 78 */ mr r30, r10 +/* 802D9BCC 002D6B0C 83 E1 01 38 */ lwz r31, 0x138(r1) +/* 802D9BD0 002D6B10 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9BD4 002D6B14 4B FF F9 B1 */ bl __ct__10JKRDvdFileFv +/* 802D9BD8 002D6B18 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9BDC 002D6B1C 7E E4 BB 78 */ mr r4, r23 +/* 802D9BE0 002D6B20 4B FF FC 71 */ bl open__10JKRDvdFileFPCc +/* 802D9BE4 002D6B24 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D9BE8 002D6B28 40 82 00 18 */ bne lbl_802D9C00 +/* 802D9BEC 002D6B2C 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9BF0 002D6B30 38 80 FF FF */ li r4, -1 +/* 802D9BF4 002D6B34 4B FF FB 55 */ bl __dt__10JKRDvdFileFv +/* 802D9BF8 002D6B38 38 60 00 00 */ li r3, 0 +/* 802D9BFC 002D6B3C 48 00 00 40 */ b lbl_802D9C3C +lbl_802D9C00: +/* 802D9C00 002D6B40 93 E1 00 08 */ stw r31, 8(r1) +/* 802D9C04 002D6B44 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9C08 002D6B48 7F 04 C3 78 */ mr r4, r24 +/* 802D9C0C 002D6B4C 7F 25 CB 78 */ mr r5, r25 +/* 802D9C10 002D6B50 7F 46 D3 78 */ mr r6, r26 +/* 802D9C14 002D6B54 7F 67 DB 78 */ mr r7, r27 +/* 802D9C18 002D6B58 7F 88 E3 78 */ mr r8, r28 +/* 802D9C1C 002D6B5C 7F A9 EB 78 */ mr r9, r29 +/* 802D9C20 002D6B60 7F CA F3 78 */ mr r10, r30 +/* 802D9C24 002D6B64 48 00 00 ED */ bl loadToMainRAM__12JKRDvdRipperFP10JKRDvdFilePUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D9C28 002D6B68 7C 7F 1B 78 */ mr r31, r3 +/* 802D9C2C 002D6B6C 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9C30 002D6B70 38 80 FF FF */ li r4, -1 +/* 802D9C34 002D6B74 4B FF FB 15 */ bl __dt__10JKRDvdFileFv +/* 802D9C38 002D6B78 7F E3 FB 78 */ mr r3, r31 +lbl_802D9C3C: +/* 802D9C3C 002D6B7C 39 61 01 30 */ addi r11, r1, 0x130 +/* 802D9C40 002D6B80 48 08 85 D1 */ bl func_80362210 +/* 802D9C44 002D6B84 80 01 01 34 */ lwz r0, 0x134(r1) +/* 802D9C48 002D6B88 7C 08 03 A6 */ mtlr r0 +/* 802D9C4C 002D6B8C 38 21 01 30 */ addi r1, r1, 0x130 +/* 802D9C50 002D6B90 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9C54.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9C54.s new file mode 100644 index 0000000000..e4ee008da8 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9C54.s @@ -0,0 +1,51 @@ +/* loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl JKRDvdRipper::loadToMainRAM(long, unsigned char *, JKRExpandSwitch, unsigned long, JKRHeap *, JKRDvdRipper::EAllocDirection, unsigned long, int *, unsigned long *) */ +/* JKRDvdRipper_NS_loadToMainRAM_X1_ */ +/* 802D9C54 002D6B94 94 21 FE D0 */ stwu r1, -0x130(r1) +/* 802D9C58 002D6B98 7C 08 02 A6 */ mflr r0 +/* 802D9C5C 002D6B9C 90 01 01 34 */ stw r0, 0x134(r1) +/* 802D9C60 002D6BA0 39 61 01 30 */ addi r11, r1, 0x130 +/* 802D9C64 002D6BA4 48 08 85 61 */ bl func_803621C4 +/* 802D9C68 002D6BA8 7C 77 1B 78 */ mr r23, r3 +/* 802D9C6C 002D6BAC 7C 98 23 78 */ mr r24, r4 +/* 802D9C70 002D6BB0 7C B9 2B 78 */ mr r25, r5 +/* 802D9C74 002D6BB4 7C DA 33 78 */ mr r26, r6 +/* 802D9C78 002D6BB8 7C FB 3B 78 */ mr r27, r7 +/* 802D9C7C 002D6BBC 7D 1C 43 78 */ mr r28, r8 +/* 802D9C80 002D6BC0 7D 3D 4B 78 */ mr r29, r9 +/* 802D9C84 002D6BC4 7D 5E 53 78 */ mr r30, r10 +/* 802D9C88 002D6BC8 83 E1 01 38 */ lwz r31, 0x138(r1) +/* 802D9C8C 002D6BCC 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9C90 002D6BD0 4B FF F8 F5 */ bl __ct__10JKRDvdFileFv +/* 802D9C94 002D6BD4 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9C98 002D6BD8 7E E4 BB 78 */ mr r4, r23 +/* 802D9C9C 002D6BDC 4B FF FC 29 */ bl open__10JKRDvdFileFl +/* 802D9CA0 002D6BE0 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D9CA4 002D6BE4 40 82 00 18 */ bne lbl_802D9CBC +/* 802D9CA8 002D6BE8 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9CAC 002D6BEC 38 80 FF FF */ li r4, -1 +/* 802D9CB0 002D6BF0 4B FF FA 99 */ bl __dt__10JKRDvdFileFv +/* 802D9CB4 002D6BF4 38 60 00 00 */ li r3, 0 +/* 802D9CB8 002D6BF8 48 00 00 40 */ b lbl_802D9CF8 +lbl_802D9CBC: +/* 802D9CBC 002D6BFC 93 E1 00 08 */ stw r31, 8(r1) +/* 802D9CC0 002D6C00 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9CC4 002D6C04 7F 04 C3 78 */ mr r4, r24 +/* 802D9CC8 002D6C08 7F 25 CB 78 */ mr r5, r25 +/* 802D9CCC 002D6C0C 7F 46 D3 78 */ mr r6, r26 +/* 802D9CD0 002D6C10 7F 67 DB 78 */ mr r7, r27 +/* 802D9CD4 002D6C14 7F 88 E3 78 */ mr r8, r28 +/* 802D9CD8 002D6C18 7F A9 EB 78 */ mr r9, r29 +/* 802D9CDC 002D6C1C 7F CA F3 78 */ mr r10, r30 +/* 802D9CE0 002D6C20 48 00 00 31 */ bl loadToMainRAM__12JKRDvdRipperFP10JKRDvdFilePUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D9CE4 002D6C24 7C 7F 1B 78 */ mr r31, r3 +/* 802D9CE8 002D6C28 38 61 00 10 */ addi r3, r1, 0x10 +/* 802D9CEC 002D6C2C 38 80 FF FF */ li r4, -1 +/* 802D9CF0 002D6C30 4B FF FA 59 */ bl __dt__10JKRDvdFileFv +/* 802D9CF4 002D6C34 7F E3 FB 78 */ mr r3, r31 +lbl_802D9CF8: +/* 802D9CF8 002D6C38 39 61 01 30 */ addi r11, r1, 0x130 +/* 802D9CFC 002D6C3C 48 08 85 15 */ bl func_80362210 +/* 802D9D00 002D6C40 80 01 01 34 */ lwz r0, 0x134(r1) +/* 802D9D04 002D6C44 7C 08 03 A6 */ mtlr r0 +/* 802D9D08 002D6C48 38 21 01 30 */ addi r1, r1, 0x130 +/* 802D9D0C 002D6C4C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9D10.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9D10.s new file mode 100644 index 0000000000..8df2e794c7 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802D9D10.s @@ -0,0 +1,357 @@ +/* loadToMainRAM__12JKRDvdRipperFP10JKRDvdFilePUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl JKRDvdRipper::loadToMainRAM(JKRDvdFile *, unsigned char *, JKRExpandSwitch, unsigned long, JKRHeap *, JKRDvdRipper::EAllocDirection, unsigned long, int *, unsigned long *) */ +/* JKRDvdRipper_NS_loadToMainRAM_X2_ */ +/* 802D9D10 002D6C50 94 21 FF 40 */ stwu r1, -0xc0(r1) +/* 802D9D14 002D6C54 7C 08 02 A6 */ mflr r0 +/* 802D9D18 002D6C58 90 01 00 C4 */ stw r0, 0xc4(r1) +/* 802D9D1C 002D6C5C 39 61 00 C0 */ addi r11, r1, 0xc0 +/* 802D9D20 002D6C60 48 08 84 91 */ bl func_803621B0 +/* 802D9D24 002D6C64 7C 76 1B 78 */ mr r22, r3 +/* 802D9D28 002D6C68 7C 9C 23 78 */ mr r28, r4 +/* 802D9D2C 002D6C6C 7C B5 2B 78 */ mr r21, r5 +/* 802D9D30 002D6C70 7C DF 33 78 */ mr r31, r6 +/* 802D9D34 002D6C74 7C F4 3B 78 */ mr r20, r7 +/* 802D9D38 002D6C78 7D 12 43 78 */ mr r18, r8 +/* 802D9D3C 002D6C7C 7D 3E 4B 78 */ mr r30, r9 +/* 802D9D40 002D6C80 7D 53 53 78 */ mr r19, r10 +/* 802D9D44 002D6C84 82 E1 00 C8 */ lwz r23, 0xc8(r1) +/* 802D9D48 002D6C88 3B 20 00 00 */ li r25, 0 +/* 802D9D4C 002D6C8C 3B 60 00 00 */ li r27, 0 +/* 802D9D50 002D6C90 3B A0 00 00 */ li r29, 0 +/* 802D9D54 002D6C94 81 83 00 00 */ lwz r12, 0(r3) +/* 802D9D58 002D6C98 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 802D9D5C 002D6C9C 7D 89 03 A6 */ mtctr r12 +/* 802D9D60 002D6CA0 4E 80 04 21 */ bctrl +/* 802D9D64 002D6CA4 38 03 00 1F */ addi r0, r3, 0x1f +/* 802D9D68 002D6CA8 54 18 00 34 */ rlwinm r24, r0, 0, 0, 0x1a +/* 802D9D6C 002D6CAC 2C 15 00 01 */ cmpwi r21, 1 +/* 802D9D70 002D6CB0 40 82 00 94 */ bne lbl_802D9E04 +/* 802D9D74 002D6CB4 38 01 00 67 */ addi r0, r1, 0x67 +/* 802D9D78 002D6CB8 54 1A 00 34 */ rlwinm r26, r0, 0, 0, 0x1a +lbl_802D9D7C: +/* 802D9D7C 002D6CBC 38 76 00 5C */ addi r3, r22, 0x5c +/* 802D9D80 002D6CC0 7F 44 D3 78 */ mr r4, r26 +/* 802D9D84 002D6CC4 38 A0 00 20 */ li r5, 0x20 +/* 802D9D88 002D6CC8 38 C0 00 00 */ li r6, 0 +/* 802D9D8C 002D6CCC 38 E0 00 02 */ li r7, 2 +/* 802D9D90 002D6CD0 48 06 F0 B5 */ bl DVDReadPrio +/* 802D9D94 002D6CD4 2C 03 00 00 */ cmpwi r3, 0 +/* 802D9D98 002D6CD8 40 80 00 28 */ bge lbl_802D9DC0 +/* 802D9D9C 002D6CDC 2C 03 FF FD */ cmpwi r3, -3 +/* 802D9DA0 002D6CE0 41 82 00 10 */ beq lbl_802D9DB0 +/* 802D9DA4 002D6CE4 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) +/* 802D9DA8 002D6CE8 28 00 00 00 */ cmplwi r0, 0 +/* 802D9DAC 002D6CEC 40 82 00 0C */ bne lbl_802D9DB8 +lbl_802D9DB0: +/* 802D9DB0 002D6CF0 38 60 00 00 */ li r3, 0 +/* 802D9DB4 002D6CF4 48 00 04 18 */ b lbl_802DA1CC +lbl_802D9DB8: +/* 802D9DB8 002D6CF8 48 07 2C 0D */ bl VIWaitForRetrace +/* 802D9DBC 002D6CFC 4B FF FF C0 */ b lbl_802D9D7C +lbl_802D9DC0: +/* 802D9DC0 002D6D00 7F 43 D3 78 */ mr r3, r26 +/* 802D9DC4 002D6D04 38 80 00 20 */ li r4, 0x20 +/* 802D9DC8 002D6D08 48 06 17 B9 */ bl DCInvalidateRange +/* 802D9DCC 002D6D0C 7F 43 D3 78 */ mr r3, r26 +/* 802D9DD0 002D6D10 48 00 1F 29 */ bl checkCompressed__9JKRDecompFPUc +/* 802D9DD4 002D6D14 2C 03 00 03 */ cmpwi r3, 3 +/* 802D9DD8 002D6D18 40 82 00 08 */ bne lbl_802D9DE0 +/* 802D9DDC 002D6D1C 38 60 00 00 */ li r3, 0 +lbl_802D9DE0: +/* 802D9DE0 002D6D20 7C 7B 1B 78 */ mr r27, r3 +/* 802D9DE4 002D6D24 88 BA 00 07 */ lbz r5, 7(r26) +/* 802D9DE8 002D6D28 88 9A 00 06 */ lbz r4, 6(r26) +/* 802D9DEC 002D6D2C 88 7A 00 04 */ lbz r3, 4(r26) +/* 802D9DF0 002D6D30 88 1A 00 05 */ lbz r0, 5(r26) +/* 802D9DF4 002D6D34 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D9DF8 002D6D38 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D9DFC 002D6D3C 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D9E00 002D6D40 7C BA 03 78 */ or r26, r5, r0 +lbl_802D9E04: +/* 802D9E04 002D6D44 28 13 00 00 */ cmplwi r19, 0 +/* 802D9E08 002D6D48 41 82 00 08 */ beq lbl_802D9E10 +/* 802D9E0C 002D6D4C 93 73 00 00 */ stw r27, 0(r19) +lbl_802D9E10: +/* 802D9E10 002D6D50 2C 15 00 01 */ cmpwi r21, 1 +/* 802D9E14 002D6D54 40 82 00 9C */ bne lbl_802D9EB0 +/* 802D9E18 002D6D58 2C 1B 00 00 */ cmpwi r27, 0 +/* 802D9E1C 002D6D5C 41 82 00 94 */ beq lbl_802D9EB0 +/* 802D9E20 002D6D60 28 1F 00 00 */ cmplwi r31, 0 +/* 802D9E24 002D6D64 41 82 00 10 */ beq lbl_802D9E34 +/* 802D9E28 002D6D68 7C 1A F8 40 */ cmplw r26, r31 +/* 802D9E2C 002D6D6C 40 81 00 08 */ ble lbl_802D9E34 +/* 802D9E30 002D6D70 7F FA FB 78 */ mr r26, r31 +lbl_802D9E34: +/* 802D9E34 002D6D74 28 1C 00 00 */ cmplwi r28, 0 +/* 802D9E38 002D6D78 40 82 00 28 */ bne lbl_802D9E60 +/* 802D9E3C 002D6D7C 7F 43 D3 78 */ mr r3, r26 +/* 802D9E40 002D6D80 2C 12 00 01 */ cmpwi r18, 1 +/* 802D9E44 002D6D84 38 80 FF E0 */ li r4, -32 +/* 802D9E48 002D6D88 40 82 00 08 */ bne lbl_802D9E50 +/* 802D9E4C 002D6D8C 38 80 00 20 */ li r4, 0x20 +lbl_802D9E50: +/* 802D9E50 002D6D90 7E 85 A3 78 */ mr r5, r20 +/* 802D9E54 002D6D94 4B FF 46 21 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D9E58 002D6D98 7C 7C 1B 78 */ mr r28, r3 +/* 802D9E5C 002D6D9C 3B 20 00 01 */ li r25, 1 +lbl_802D9E60: +/* 802D9E60 002D6DA0 28 1C 00 00 */ cmplwi r28, 0 +/* 802D9E64 002D6DA4 40 82 00 0C */ bne lbl_802D9E70 +/* 802D9E68 002D6DA8 38 60 00 00 */ li r3, 0 +/* 802D9E6C 002D6DAC 48 00 03 60 */ b lbl_802DA1CC +lbl_802D9E70: +/* 802D9E70 002D6DB0 2C 1B 00 01 */ cmpwi r27, 1 +/* 802D9E74 002D6DB4 40 82 00 8C */ bne lbl_802D9F00 +/* 802D9E78 002D6DB8 7F 03 C3 78 */ mr r3, r24 +/* 802D9E7C 002D6DBC 38 80 00 20 */ li r4, 0x20 +/* 802D9E80 002D6DC0 7E 85 A3 78 */ mr r5, r20 +/* 802D9E84 002D6DC4 4B FF 45 F1 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D9E88 002D6DC8 7C 7D 1B 79 */ or. r29, r3, r3 +/* 802D9E8C 002D6DCC 40 82 00 74 */ bne lbl_802D9F00 +/* 802D9E90 002D6DD0 57 20 06 3E */ clrlwi r0, r25, 0x18 +/* 802D9E94 002D6DD4 28 00 00 01 */ cmplwi r0, 1 +/* 802D9E98 002D6DD8 40 82 00 68 */ bne lbl_802D9F00 +/* 802D9E9C 002D6DDC 7F 83 E3 78 */ mr r3, r28 +/* 802D9EA0 002D6DE0 38 80 00 00 */ li r4, 0 +/* 802D9EA4 002D6DE4 4B FF 46 5D */ bl free__7JKRHeapFPvP7JKRHeap +/* 802D9EA8 002D6DE8 38 60 00 00 */ li r3, 0 +/* 802D9EAC 002D6DEC 48 00 03 20 */ b lbl_802DA1CC +lbl_802D9EB0: +/* 802D9EB0 002D6DF0 28 1C 00 00 */ cmplwi r28, 0 +/* 802D9EB4 002D6DF4 40 82 00 3C */ bne lbl_802D9EF0 +/* 802D9EB8 002D6DF8 7C 7E C0 50 */ subf r3, r30, r24 +/* 802D9EBC 002D6DFC 28 1F 00 00 */ cmplwi r31, 0 +/* 802D9EC0 002D6E00 41 82 00 10 */ beq lbl_802D9ED0 +/* 802D9EC4 002D6E04 7C 03 F8 40 */ cmplw r3, r31 +/* 802D9EC8 002D6E08 40 81 00 08 */ ble lbl_802D9ED0 +/* 802D9ECC 002D6E0C 7F E3 FB 78 */ mr r3, r31 +lbl_802D9ED0: +/* 802D9ED0 002D6E10 2C 12 00 01 */ cmpwi r18, 1 +/* 802D9ED4 002D6E14 38 80 FF E0 */ li r4, -32 +/* 802D9ED8 002D6E18 40 82 00 08 */ bne lbl_802D9EE0 +/* 802D9EDC 002D6E1C 38 80 00 20 */ li r4, 0x20 +lbl_802D9EE0: +/* 802D9EE0 002D6E20 7E 85 A3 78 */ mr r5, r20 +/* 802D9EE4 002D6E24 4B FF 45 91 */ bl alloc__7JKRHeapFUliP7JKRHeap +/* 802D9EE8 002D6E28 7C 7C 1B 78 */ mr r28, r3 +/* 802D9EEC 002D6E2C 3B 20 00 01 */ li r25, 1 +lbl_802D9EF0: +/* 802D9EF0 002D6E30 28 1C 00 00 */ cmplwi r28, 0 +/* 802D9EF4 002D6E34 40 82 00 0C */ bne lbl_802D9F00 +/* 802D9EF8 002D6E38 38 60 00 00 */ li r3, 0 +/* 802D9EFC 002D6E3C 48 00 02 D0 */ b lbl_802DA1CC +lbl_802D9F00: +/* 802D9F00 002D6E40 2C 1B 00 00 */ cmpwi r27, 0 +/* 802D9F04 002D6E44 40 82 01 8C */ bne lbl_802DA090 +/* 802D9F08 002D6E48 38 60 00 00 */ li r3, 0 +/* 802D9F0C 002D6E4C 28 1E 00 00 */ cmplwi r30, 0 +/* 802D9F10 002D6E50 41 82 00 8C */ beq lbl_802D9F9C +/* 802D9F14 002D6E54 38 01 00 27 */ addi r0, r1, 0x27 +/* 802D9F18 002D6E58 54 13 00 34 */ rlwinm r19, r0, 0, 0, 0x1a +/* 802D9F1C 002D6E5C 7F D2 F3 78 */ mr r18, r30 +lbl_802D9F20: +/* 802D9F20 002D6E60 38 76 00 5C */ addi r3, r22, 0x5c +/* 802D9F24 002D6E64 7E 64 9B 78 */ mr r4, r19 +/* 802D9F28 002D6E68 38 A0 00 20 */ li r5, 0x20 +/* 802D9F2C 002D6E6C 7E 46 93 78 */ mr r6, r18 +/* 802D9F30 002D6E70 38 E0 00 02 */ li r7, 2 +/* 802D9F34 002D6E74 48 06 EF 11 */ bl DVDReadPrio +/* 802D9F38 002D6E78 2C 03 00 00 */ cmpwi r3, 0 +/* 802D9F3C 002D6E7C 40 80 00 40 */ bge lbl_802D9F7C +/* 802D9F40 002D6E80 2C 03 FF FD */ cmpwi r3, -3 +/* 802D9F44 002D6E84 41 82 00 10 */ beq lbl_802D9F54 +/* 802D9F48 002D6E88 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) +/* 802D9F4C 002D6E8C 28 00 00 00 */ cmplwi r0, 0 +/* 802D9F50 002D6E90 40 82 00 24 */ bne lbl_802D9F74 +lbl_802D9F54: +/* 802D9F54 002D6E94 57 20 06 3E */ clrlwi r0, r25, 0x18 +/* 802D9F58 002D6E98 28 00 00 01 */ cmplwi r0, 1 +/* 802D9F5C 002D6E9C 40 82 00 10 */ bne lbl_802D9F6C +/* 802D9F60 002D6EA0 7F 83 E3 78 */ mr r3, r28 +/* 802D9F64 002D6EA4 38 80 00 00 */ li r4, 0 +/* 802D9F68 002D6EA8 4B FF 45 99 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D9F6C: +/* 802D9F6C 002D6EAC 38 60 00 00 */ li r3, 0 +/* 802D9F70 002D6EB0 48 00 02 5C */ b lbl_802DA1CC +lbl_802D9F74: +/* 802D9F74 002D6EB4 48 07 2A 51 */ bl VIWaitForRetrace +/* 802D9F78 002D6EB8 4B FF FF A8 */ b lbl_802D9F20 +lbl_802D9F7C: +/* 802D9F7C 002D6EBC 7E 63 9B 78 */ mr r3, r19 +/* 802D9F80 002D6EC0 38 80 00 20 */ li r4, 0x20 +/* 802D9F84 002D6EC4 48 06 15 FD */ bl DCInvalidateRange +/* 802D9F88 002D6EC8 7E 63 9B 78 */ mr r3, r19 +/* 802D9F8C 002D6ECC 48 00 1D 6D */ bl checkCompressed__9JKRDecompFPUc +/* 802D9F90 002D6ED0 2C 03 00 03 */ cmpwi r3, 3 +/* 802D9F94 002D6ED4 40 82 00 08 */ bne lbl_802D9F9C +/* 802D9F98 002D6ED8 38 60 00 00 */ li r3, 0 +lbl_802D9F9C: +/* 802D9F9C 002D6EDC 2C 03 00 00 */ cmpwi r3, 0 +/* 802D9FA0 002D6EE0 41 82 00 14 */ beq lbl_802D9FB4 +/* 802D9FA4 002D6EE4 2C 15 00 02 */ cmpwi r21, 2 +/* 802D9FA8 002D6EE8 41 82 00 0C */ beq lbl_802D9FB4 +/* 802D9FAC 002D6EEC 2C 15 00 00 */ cmpwi r21, 0 +/* 802D9FB0 002D6EF0 40 82 00 90 */ bne lbl_802DA040 +lbl_802D9FB4: +/* 802D9FB4 002D6EF4 7E 7E C0 50 */ subf r19, r30, r24 +/* 802D9FB8 002D6EF8 28 1F 00 00 */ cmplwi r31, 0 +/* 802D9FBC 002D6EFC 41 82 00 10 */ beq lbl_802D9FCC +/* 802D9FC0 002D6F00 7C 1F 98 40 */ cmplw r31, r19 +/* 802D9FC4 002D6F04 40 80 00 08 */ bge lbl_802D9FCC +/* 802D9FC8 002D6F08 7F F3 FB 78 */ mr r19, r31 +lbl_802D9FCC: +/* 802D9FCC 002D6F0C 7F D2 F3 78 */ mr r18, r30 +lbl_802D9FD0: +/* 802D9FD0 002D6F10 38 76 00 5C */ addi r3, r22, 0x5c +/* 802D9FD4 002D6F14 7F 84 E3 78 */ mr r4, r28 +/* 802D9FD8 002D6F18 7E 65 9B 78 */ mr r5, r19 +/* 802D9FDC 002D6F1C 7E 46 93 78 */ mr r6, r18 +/* 802D9FE0 002D6F20 38 E0 00 02 */ li r7, 2 +/* 802D9FE4 002D6F24 48 06 EE 61 */ bl DVDReadPrio +/* 802D9FE8 002D6F28 2C 03 00 00 */ cmpwi r3, 0 +/* 802D9FEC 002D6F2C 40 80 00 40 */ bge lbl_802DA02C +/* 802D9FF0 002D6F30 2C 03 FF FD */ cmpwi r3, -3 +/* 802D9FF4 002D6F34 41 82 00 10 */ beq lbl_802DA004 +/* 802D9FF8 002D6F38 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) +/* 802D9FFC 002D6F3C 28 00 00 00 */ cmplwi r0, 0 +/* 802DA000 002D6F40 40 82 00 24 */ bne lbl_802DA024 +lbl_802DA004: +/* 802DA004 002D6F44 57 20 06 3E */ clrlwi r0, r25, 0x18 +/* 802DA008 002D6F48 28 00 00 01 */ cmplwi r0, 1 +/* 802DA00C 002D6F4C 40 82 00 10 */ bne lbl_802DA01C +/* 802DA010 002D6F50 7F 83 E3 78 */ mr r3, r28 +/* 802DA014 002D6F54 38 80 00 00 */ li r4, 0 +/* 802DA018 002D6F58 4B FF 44 E9 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802DA01C: +/* 802DA01C 002D6F5C 38 60 00 00 */ li r3, 0 +/* 802DA020 002D6F60 48 00 01 AC */ b lbl_802DA1CC +lbl_802DA024: +/* 802DA024 002D6F64 48 07 29 A1 */ bl VIWaitForRetrace +/* 802DA028 002D6F68 4B FF FF A8 */ b lbl_802D9FD0 +lbl_802DA02C: +/* 802DA02C 002D6F6C 28 17 00 00 */ cmplwi r23, 0 +/* 802DA030 002D6F70 41 82 00 08 */ beq lbl_802DA038 +/* 802DA034 002D6F74 92 77 00 00 */ stw r19, 0(r23) +lbl_802DA038: +/* 802DA038 002D6F78 7F 83 E3 78 */ mr r3, r28 +/* 802DA03C 002D6F7C 48 00 01 90 */ b lbl_802DA1CC +lbl_802DA040: +/* 802DA040 002D6F80 2C 03 00 02 */ cmpwi r3, 2 +/* 802DA044 002D6F84 40 82 00 28 */ bne lbl_802DA06C +/* 802DA048 002D6F88 7E C3 B3 78 */ mr r3, r22 +/* 802DA04C 002D6F8C 7F 84 E3 78 */ mr r4, r28 +/* 802DA050 002D6F90 7F 05 C3 78 */ mr r5, r24 +/* 802DA054 002D6F94 7F E6 FB 78 */ mr r6, r31 +/* 802DA058 002D6F98 38 E0 00 00 */ li r7, 0 +/* 802DA05C 002D6F9C 7F C8 F3 78 */ mr r8, r30 +/* 802DA060 002D6FA0 7E E9 BB 78 */ mr r9, r23 +/* 802DA064 002D6FA4 48 00 01 81 */ bl JKRDecompressFromDVD__FP10JKRDvdFilePvUlUlUlUlPUl +/* 802DA068 002D6FA8 48 00 00 20 */ b lbl_802DA088 +lbl_802DA06C: +/* 802DA06C 002D6FAC 3C 60 80 3A */ lis r3, lbl_8039D290@ha +/* 802DA070 002D6FB0 38 63 D2 90 */ addi r3, r3, lbl_8039D290@l +/* 802DA074 002D6FB4 38 80 01 43 */ li r4, 0x143 +/* 802DA078 002D6FB8 38 A3 00 11 */ addi r5, r3, 0x11 +/* 802DA07C 002D6FBC 38 C3 00 14 */ addi r6, r3, 0x14 +/* 802DA080 002D6FC0 4C C6 31 82 */ crclr 6 +/* 802DA084 002D6FC4 48 00 81 79 */ bl JUTException_NS_panic_f +lbl_802DA088: +/* 802DA088 002D6FC8 7F 83 E3 78 */ mr r3, r28 +/* 802DA08C 002D6FCC 48 00 01 40 */ b lbl_802DA1CC +lbl_802DA090: +/* 802DA090 002D6FD0 2C 1B 00 01 */ cmpwi r27, 1 +/* 802DA094 002D6FD4 40 82 00 D0 */ bne lbl_802DA164 +/* 802DA098 002D6FD8 28 1E 00 00 */ cmplwi r30, 0 +/* 802DA09C 002D6FDC 41 82 00 20 */ beq lbl_802DA0BC +/* 802DA0A0 002D6FE0 3C 60 80 3A */ lis r3, lbl_8039D290@ha +/* 802DA0A4 002D6FE4 38 63 D2 90 */ addi r3, r3, lbl_8039D290@l +/* 802DA0A8 002D6FE8 38 80 01 4D */ li r4, 0x14d +/* 802DA0AC 002D6FEC 38 A3 00 11 */ addi r5, r3, 0x11 +/* 802DA0B0 002D6FF0 38 C3 00 38 */ addi r6, r3, 0x38 +/* 802DA0B4 002D6FF4 4C C6 31 82 */ crclr 6 +/* 802DA0B8 002D6FF8 48 00 81 45 */ bl JUTException_NS_panic_f +lbl_802DA0BC: +/* 802DA0BC 002D6FFC 38 76 00 5C */ addi r3, r22, 0x5c +/* 802DA0C0 002D7000 7F A4 EB 78 */ mr r4, r29 +/* 802DA0C4 002D7004 7F 05 C3 78 */ mr r5, r24 +/* 802DA0C8 002D7008 38 C0 00 00 */ li r6, 0 +/* 802DA0CC 002D700C 38 E0 00 02 */ li r7, 2 +/* 802DA0D0 002D7010 48 06 ED 75 */ bl DVDReadPrio +/* 802DA0D4 002D7014 2C 03 00 00 */ cmpwi r3, 0 +/* 802DA0D8 002D7018 40 80 00 4C */ bge lbl_802DA124 +/* 802DA0DC 002D701C 2C 03 FF FD */ cmpwi r3, -3 +/* 802DA0E0 002D7020 41 82 00 10 */ beq lbl_802DA0F0 +/* 802DA0E4 002D7024 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) +/* 802DA0E8 002D7028 28 00 00 00 */ cmplwi r0, 0 +/* 802DA0EC 002D702C 40 82 00 30 */ bne lbl_802DA11C +lbl_802DA0F0: +/* 802DA0F0 002D7030 57 20 06 3E */ clrlwi r0, r25, 0x18 +/* 802DA0F4 002D7034 28 00 00 01 */ cmplwi r0, 1 +/* 802DA0F8 002D7038 40 82 00 10 */ bne lbl_802DA108 +/* 802DA0FC 002D703C 7F 83 E3 78 */ mr r3, r28 +/* 802DA100 002D7040 38 80 00 00 */ li r4, 0 +/* 802DA104 002D7044 4B FF 43 FD */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802DA108: +/* 802DA108 002D7048 7F A3 EB 78 */ mr r3, r29 +/* 802DA10C 002D704C 38 80 00 00 */ li r4, 0 +/* 802DA110 002D7050 4B FF 43 F1 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802DA114 002D7054 38 60 00 00 */ li r3, 0 +/* 802DA118 002D7058 48 00 00 B4 */ b lbl_802DA1CC +lbl_802DA11C: +/* 802DA11C 002D705C 48 07 28 A9 */ bl VIWaitForRetrace +/* 802DA120 002D7060 4B FF FF 9C */ b lbl_802DA0BC +lbl_802DA124: +/* 802DA124 002D7064 7F A3 EB 78 */ mr r3, r29 +/* 802DA128 002D7068 7F 04 C3 78 */ mr r4, r24 +/* 802DA12C 002D706C 48 06 14 55 */ bl DCInvalidateRange +/* 802DA130 002D7070 7F A3 EB 78 */ mr r3, r29 +/* 802DA134 002D7074 7F 84 E3 78 */ mr r4, r28 +/* 802DA138 002D7078 7F 45 D3 78 */ mr r5, r26 +/* 802DA13C 002D707C 7F C6 F3 78 */ mr r6, r30 +/* 802DA140 002D7080 48 00 18 49 */ bl orderSync__9JKRDecompFPUcPUcUlUl +/* 802DA144 002D7084 7F A3 EB 78 */ mr r3, r29 +/* 802DA148 002D7088 38 80 00 00 */ li r4, 0 +/* 802DA14C 002D708C 4B FF 43 B5 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802DA150 002D7090 28 17 00 00 */ cmplwi r23, 0 +/* 802DA154 002D7094 41 82 00 08 */ beq lbl_802DA15C +/* 802DA158 002D7098 93 57 00 00 */ stw r26, 0(r23) +lbl_802DA15C: +/* 802DA15C 002D709C 7F 83 E3 78 */ mr r3, r28 +/* 802DA160 002D70A0 48 00 00 6C */ b lbl_802DA1CC +lbl_802DA164: +/* 802DA164 002D70A4 2C 1B 00 02 */ cmpwi r27, 2 +/* 802DA168 002D70A8 40 82 00 4C */ bne lbl_802DA1B4 +/* 802DA16C 002D70AC 7E C3 B3 78 */ mr r3, r22 +/* 802DA170 002D70B0 7F 84 E3 78 */ mr r4, r28 +/* 802DA174 002D70B4 7F 05 C3 78 */ mr r5, r24 +/* 802DA178 002D70B8 7F 46 D3 78 */ mr r6, r26 +/* 802DA17C 002D70BC 7F C7 F3 78 */ mr r7, r30 +/* 802DA180 002D70C0 39 00 00 00 */ li r8, 0 +/* 802DA184 002D70C4 7E E9 BB 78 */ mr r9, r23 +/* 802DA188 002D70C8 48 00 00 5D */ bl JKRDecompressFromDVD__FP10JKRDvdFilePvUlUlUlUlPUl +/* 802DA18C 002D70CC 28 03 00 00 */ cmplwi r3, 0 +/* 802DA190 002D70D0 41 82 00 1C */ beq lbl_802DA1AC +/* 802DA194 002D70D4 57 20 06 3F */ clrlwi. r0, r25, 0x18 +/* 802DA198 002D70D8 41 82 00 10 */ beq lbl_802DA1A8 +/* 802DA19C 002D70DC 7F 83 E3 78 */ mr r3, r28 +/* 802DA1A0 002D70E0 38 80 00 00 */ li r4, 0 +/* 802DA1A4 002D70E4 4B FF 43 5D */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802DA1A8: +/* 802DA1A8 002D70E8 3B 80 00 00 */ li r28, 0 +lbl_802DA1AC: +/* 802DA1AC 002D70EC 7F 83 E3 78 */ mr r3, r28 +/* 802DA1B0 002D70F0 48 00 00 1C */ b lbl_802DA1CC +lbl_802DA1B4: +/* 802DA1B4 002D70F4 57 20 06 3F */ clrlwi. r0, r25, 0x18 +/* 802DA1B8 002D70F8 41 82 00 10 */ beq lbl_802DA1C8 +/* 802DA1BC 002D70FC 7F 83 E3 78 */ mr r3, r28 +/* 802DA1C0 002D7100 38 80 00 00 */ li r4, 0 +/* 802DA1C4 002D7104 4B FF 43 3D */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802DA1C8: +/* 802DA1C8 002D7108 38 60 00 00 */ li r3, 0 +lbl_802DA1CC: +/* 802DA1CC 002D710C 39 61 00 C0 */ addi r11, r1, 0xc0 +/* 802DA1D0 002D7110 48 08 80 2D */ bl func_803621FC +/* 802DA1D4 002D7114 80 01 00 C4 */ lwz r0, 0xc4(r1) +/* 802DA1D8 002D7118 7C 08 03 A6 */ mtlr r0 +/* 802DA1DC 002D711C 38 21 00 C0 */ addi r1, r1, 0xc0 +/* 802DA1E0 002D7120 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s new file mode 100644 index 0000000000..96ddefc380 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s @@ -0,0 +1,104 @@ +/* JKRDecompressFromDVD__FP10JKRDvdFilePvUlUlUlUlPUl JKRDecompressFromDVD(JKRDvdFile *, void *, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long *) */ +/* JKRDecompressFromDVD */ +/* 802DA1E4 002D7124 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802DA1E8 002D7128 7C 08 02 A6 */ mflr r0 +/* 802DA1EC 002D712C 90 01 00 34 */ stw r0, 0x34(r1) +/* 802DA1F0 002D7130 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DA1F4 002D7134 48 08 7F D5 */ bl func_803621C8 +/* 802DA1F8 002D7138 7C 79 1B 78 */ mr r25, r3 +/* 802DA1FC 002D713C 7C 9A 23 78 */ mr r26, r4 +/* 802DA200 002D7140 7C BB 2B 78 */ mr r27, r5 +/* 802DA204 002D7144 7C DC 33 78 */ mr r28, r6 +/* 802DA208 002D7148 7C FD 3B 78 */ mr r29, r7 +/* 802DA20C 002D714C 7D 1E 43 78 */ mr r30, r8 +/* 802DA210 002D7150 7D 3F 4B 78 */ mr r31, r9 +/* 802DA214 002D7154 48 06 34 E1 */ bl __RAS_OSDisableInterrupts_begin +/* 802DA218 002D7158 7C 78 1B 78 */ mr r24, r3 +/* 802DA21C 002D715C 88 0D 8E D8 */ lbz r0, lbl_80451458-_SDA_BASE_(r13) +/* 802DA220 002D7160 28 00 00 00 */ cmplwi r0, 0 +/* 802DA224 002D7164 40 82 00 18 */ bne lbl_802DA23C +/* 802DA228 002D7168 3C 60 80 43 */ lis r3, lbl_80434390@ha +/* 802DA22C 002D716C 38 63 43 90 */ addi r3, r3, lbl_80434390@l +/* 802DA230 002D7170 48 06 4D D9 */ bl OSInitMutex +/* 802DA234 002D7174 38 00 00 01 */ li r0, 1 +/* 802DA238 002D7178 98 0D 8E D8 */ stb r0, lbl_80451458-_SDA_BASE_(r13) +lbl_802DA23C: +/* 802DA23C 002D717C 7F 03 C3 78 */ mr r3, r24 +/* 802DA240 002D7180 48 06 34 DD */ bl OSRestoreInterrupts +/* 802DA244 002D7184 3C 60 80 43 */ lis r3, lbl_80434390@ha +/* 802DA248 002D7188 38 63 43 90 */ addi r3, r3, lbl_80434390@l +/* 802DA24C 002D718C 48 06 4D F5 */ bl OSLockMutex +/* 802DA250 002D7190 83 0D 83 4C */ lwz r24, lbl_804508CC-_SDA_BASE_(r13) +/* 802DA254 002D7194 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802DA258 002D7198 7F 04 C3 78 */ mr r4, r24 +/* 802DA25C 002D719C 38 A0 FF E0 */ li r5, -32 +/* 802DA260 002D71A0 4B FF 42 75 */ bl alloc__7JKRHeapFUli +/* 802DA264 002D71A4 90 6D 8E A8 */ stw r3, lbl_80451428-_SDA_BASE_(r13) +/* 802DA268 002D71A8 7C 03 C2 14 */ add r0, r3, r24 +/* 802DA26C 002D71AC 90 0D 8E AC */ stw r0, lbl_8045142C-_SDA_BASE_(r13) +/* 802DA270 002D71B0 28 1D 00 00 */ cmplwi r29, 0 +/* 802DA274 002D71B4 41 82 00 28 */ beq lbl_802DA29C +/* 802DA278 002D71B8 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13) +/* 802DA27C 002D71BC 38 80 11 20 */ li r4, 0x1120 +/* 802DA280 002D71C0 38 A0 FF FC */ li r5, -4 +/* 802DA284 002D71C4 4B FF 42 51 */ bl alloc__7JKRHeapFUli +/* 802DA288 002D71C8 90 6D 8E B0 */ stw r3, lbl_80451430-_SDA_BASE_(r13) +/* 802DA28C 002D71CC 38 03 11 20 */ addi r0, r3, 0x1120 +/* 802DA290 002D71D0 90 0D 8E B4 */ stw r0, lbl_80451434-_SDA_BASE_(r13) +/* 802DA294 002D71D4 90 6D 8E B8 */ stw r3, lbl_80451438-_SDA_BASE_(r13) +/* 802DA298 002D71D8 48 00 00 0C */ b lbl_802DA2A4 +lbl_802DA29C: +/* 802DA29C 002D71DC 38 00 00 00 */ li r0, 0 +/* 802DA2A0 002D71E0 90 0D 8E B0 */ stw r0, lbl_80451430-_SDA_BASE_(r13) +lbl_802DA2A4: +/* 802DA2A4 002D71E4 93 2D 8E C8 */ stw r25, lbl_80451448-_SDA_BASE_(r13) +/* 802DA2A8 002D71E8 93 CD 8E BC */ stw r30, lbl_8045143C-_SDA_BASE_(r13) +/* 802DA2AC 002D71EC 7C 1E D8 50 */ subf r0, r30, r27 +/* 802DA2B0 002D71F0 90 0D 8E C0 */ stw r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA2B4 002D71F4 93 AD 8E CC */ stw r29, lbl_8045144C-_SDA_BASE_(r13) +/* 802DA2B8 002D71F8 38 00 00 00 */ li r0, 0 +/* 802DA2BC 002D71FC 90 0D 8E D0 */ stw r0, lbl_80451450-_SDA_BASE_(r13) +/* 802DA2C0 002D7200 93 8D 8E D4 */ stw r28, lbl_80451454-_SDA_BASE_(r13) +/* 802DA2C4 002D7204 28 1F 00 00 */ cmplwi r31, 0 +/* 802DA2C8 002D7208 41 82 00 0C */ beq lbl_802DA2D4 +/* 802DA2CC 002D720C 7F E3 FB 78 */ mr r3, r31 +/* 802DA2D0 002D7210 48 00 00 08 */ b lbl_802DA2D8 +lbl_802DA2D4: +/* 802DA2D4 002D7214 38 6D 8E E0 */ addi r3, r13, 0x80451460-0x80458580 /*lbl_80451460-_SDA_BASE_*/ +lbl_802DA2D8: +/* 802DA2D8 002D7218 90 6D 8E DC */ stw r3, lbl_8045145C-_SDA_BASE_(r13) +/* 802DA2DC 002D721C 38 00 00 00 */ li r0, 0 +/* 802DA2E0 002D7220 90 03 00 00 */ stw r0, 0(r3) +/* 802DA2E4 002D7224 48 00 03 29 */ bl firstSrcData__Fv +/* 802DA2E8 002D7228 28 03 00 00 */ cmplwi r3, 0 +/* 802DA2EC 002D722C 41 82 00 10 */ beq lbl_802DA2FC +/* 802DA2F0 002D7230 7F 44 D3 78 */ mr r4, r26 +/* 802DA2F4 002D7234 48 00 00 69 */ bl decompSZS_subroutine__FPUcPUc +/* 802DA2F8 002D7238 48 00 00 08 */ b lbl_802DA300 +lbl_802DA2FC: +/* 802DA2FC 002D723C 38 60 FF FF */ li r3, -1 +lbl_802DA300: +/* 802DA300 002D7240 7C 78 1B 78 */ mr r24, r3 +/* 802DA304 002D7244 80 6D 8E A8 */ lwz r3, lbl_80451428-_SDA_BASE_(r13) +/* 802DA308 002D7248 38 80 00 00 */ li r4, 0 +/* 802DA30C 002D724C 4B FF 41 F5 */ bl free__7JKRHeapFPvP7JKRHeap +/* 802DA310 002D7250 80 6D 8E B0 */ lwz r3, lbl_80451430-_SDA_BASE_(r13) +/* 802DA314 002D7254 28 03 00 00 */ cmplwi r3, 0 +/* 802DA318 002D7258 41 82 00 0C */ beq lbl_802DA324 +/* 802DA31C 002D725C 38 80 00 00 */ li r4, 0 +/* 802DA320 002D7260 4B FF 41 E1 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802DA324: +/* 802DA324 002D7264 7F 43 D3 78 */ mr r3, r26 +/* 802DA328 002D7268 80 8D 8E DC */ lwz r4, lbl_8045145C-_SDA_BASE_(r13) +/* 802DA32C 002D726C 80 84 00 00 */ lwz r4, 0(r4) +/* 802DA330 002D7270 48 06 13 09 */ bl DCStoreRangeNoSync +/* 802DA334 002D7274 3C 60 80 43 */ lis r3, lbl_80434390@ha +/* 802DA338 002D7278 38 63 43 90 */ addi r3, r3, lbl_80434390@l +/* 802DA33C 002D727C 48 06 4D E1 */ bl OSUnlockMutex +/* 802DA340 002D7280 7F 03 C3 78 */ mr r3, r24 +/* 802DA344 002D7284 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DA348 002D7288 48 08 7E CD */ bl func_80362214 +/* 802DA34C 002D728C 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802DA350 002D7290 7C 08 03 A6 */ mtlr r0 +/* 802DA354 002D7294 38 21 00 30 */ addi r1, r1, 0x30 +/* 802DA358 002D7298 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA35C.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA35C.s new file mode 100644 index 0000000000..cdc64211b5 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA35C.s @@ -0,0 +1,197 @@ +/* decompSZS_subroutine__FPUcPUc decompSZS_subroutine(unsigned char *, unsigned char *) */ +/* decompSZS_subroutine_X1_ */ +/* 802DA35C 002D729C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DA360 002D72A0 7C 08 02 A6 */ mflr r0 +/* 802DA364 002D72A4 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DA368 002D72A8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DA36C 002D72AC 48 08 7E 71 */ bl _savegpr_29 +/* 802DA370 002D72B0 7C 9D 23 78 */ mr r29, r4 +/* 802DA374 002D72B4 38 80 00 00 */ li r4, 0 +/* 802DA378 002D72B8 38 00 00 00 */ li r0, 0 +/* 802DA37C 002D72BC 3B C0 00 00 */ li r30, 0 +/* 802DA380 002D72C0 88 A3 00 00 */ lbz r5, 0(r3) +/* 802DA384 002D72C4 2C 05 00 59 */ cmpwi r5, 0x59 +/* 802DA388 002D72C8 40 82 00 28 */ bne lbl_802DA3B0 +/* 802DA38C 002D72CC 88 A3 00 01 */ lbz r5, 1(r3) +/* 802DA390 002D72D0 2C 05 00 61 */ cmpwi r5, 0x61 +/* 802DA394 002D72D4 40 82 00 1C */ bne lbl_802DA3B0 +/* 802DA398 002D72D8 88 A3 00 02 */ lbz r5, 2(r3) +/* 802DA39C 002D72DC 2C 05 00 7A */ cmpwi r5, 0x7a +/* 802DA3A0 002D72E0 40 82 00 10 */ bne lbl_802DA3B0 +/* 802DA3A4 002D72E4 88 A3 00 03 */ lbz r5, 3(r3) +/* 802DA3A8 002D72E8 2C 05 00 30 */ cmpwi r5, 0x30 +/* 802DA3AC 002D72EC 41 82 00 0C */ beq lbl_802DA3B8 +lbl_802DA3B0: +/* 802DA3B0 002D72F0 38 60 FF FF */ li r3, -1 +/* 802DA3B4 002D72F4 48 00 02 40 */ b lbl_802DA5F4 +lbl_802DA3B8: +/* 802DA3B8 002D72F8 80 CD 8E CC */ lwz r6, lbl_8045144C-_SDA_BASE_(r13) +/* 802DA3BC 002D72FC 80 A3 00 04 */ lwz r5, 4(r3) +/* 802DA3C0 002D7300 7C A6 28 50 */ subf r5, r6, r5 +/* 802DA3C4 002D7304 7F FD 2A 14 */ add r31, r29, r5 +/* 802DA3C8 002D7308 80 AD 8E D4 */ lwz r5, lbl_80451454-_SDA_BASE_(r13) +/* 802DA3CC 002D730C 7C BD 2A 14 */ add r5, r29, r5 +/* 802DA3D0 002D7310 7C 1F 28 40 */ cmplw r31, r5 +/* 802DA3D4 002D7314 40 81 00 08 */ ble lbl_802DA3DC +/* 802DA3D8 002D7318 7C BF 2B 78 */ mr r31, r5 +lbl_802DA3DC: +/* 802DA3DC 002D731C 38 63 00 10 */ addi r3, r3, 0x10 +lbl_802DA3E0: +/* 802DA3E0 002D7320 2C 04 00 00 */ cmpwi r4, 0 +/* 802DA3E4 002D7324 40 82 00 3C */ bne lbl_802DA420 +/* 802DA3E8 002D7328 80 0D 8E C4 */ lwz r0, lbl_80451444-_SDA_BASE_(r13) +/* 802DA3EC 002D732C 7C 03 00 40 */ cmplw r3, r0 +/* 802DA3F0 002D7330 40 81 00 24 */ ble lbl_802DA414 +/* 802DA3F4 002D7334 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA3F8 002D7338 28 00 00 00 */ cmplwi r0, 0 +/* 802DA3FC 002D733C 41 82 00 18 */ beq lbl_802DA414 +/* 802DA400 002D7340 48 00 02 D9 */ bl nextSrcData__FPUc +/* 802DA404 002D7344 28 03 00 00 */ cmplwi r3, 0 +/* 802DA408 002D7348 40 82 00 0C */ bne lbl_802DA414 +/* 802DA40C 002D734C 38 60 FF FF */ li r3, -1 +/* 802DA410 002D7350 48 00 01 E4 */ b lbl_802DA5F4 +lbl_802DA414: +/* 802DA414 002D7354 88 03 00 00 */ lbz r0, 0(r3) +/* 802DA418 002D7358 38 80 00 08 */ li r4, 8 +/* 802DA41C 002D735C 38 63 00 01 */ addi r3, r3, 1 +lbl_802DA420: +/* 802DA420 002D7360 54 05 06 31 */ rlwinm. r5, r0, 0, 0x18, 0x18 +/* 802DA424 002D7364 41 82 00 94 */ beq lbl_802DA4B8 +/* 802DA428 002D7368 80 CD 8E CC */ lwz r6, lbl_8045144C-_SDA_BASE_(r13) +/* 802DA42C 002D736C 28 06 00 00 */ cmplwi r6, 0 +/* 802DA430 002D7370 41 82 00 5C */ beq lbl_802DA48C +/* 802DA434 002D7374 80 AD 8E D0 */ lwz r5, lbl_80451450-_SDA_BASE_(r13) +/* 802DA438 002D7378 7C 05 30 40 */ cmplw r5, r6 +/* 802DA43C 002D737C 41 80 00 1C */ blt lbl_802DA458 +/* 802DA440 002D7380 88 A3 00 00 */ lbz r5, 0(r3) +/* 802DA444 002D7384 98 BD 00 00 */ stb r5, 0(r29) +/* 802DA448 002D7388 3B BD 00 01 */ addi r29, r29, 1 +/* 802DA44C 002D738C 7C 1D F8 40 */ cmplw r29, r31 +/* 802DA450 002D7390 3B DE 00 01 */ addi r30, r30, 1 +/* 802DA454 002D7394 41 82 01 94 */ beq lbl_802DA5E8 +lbl_802DA458: +/* 802DA458 002D7398 88 E3 00 00 */ lbz r7, 0(r3) +/* 802DA45C 002D739C 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) +/* 802DA460 002D73A0 38 A6 00 01 */ addi r5, r6, 1 +/* 802DA464 002D73A4 90 AD 8E B8 */ stw r5, lbl_80451438-_SDA_BASE_(r13) +/* 802DA468 002D73A8 98 E6 00 00 */ stb r7, 0(r6) +/* 802DA46C 002D73AC 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) +/* 802DA470 002D73B0 80 AD 8E B4 */ lwz r5, lbl_80451434-_SDA_BASE_(r13) +/* 802DA474 002D73B4 7C 06 28 40 */ cmplw r6, r5 +/* 802DA478 002D73B8 40 82 00 0C */ bne lbl_802DA484 +/* 802DA47C 002D73BC 80 AD 8E B0 */ lwz r5, lbl_80451430-_SDA_BASE_(r13) +/* 802DA480 002D73C0 90 AD 8E B8 */ stw r5, lbl_80451438-_SDA_BASE_(r13) +lbl_802DA484: +/* 802DA484 002D73C4 38 63 00 01 */ addi r3, r3, 1 +/* 802DA488 002D73C8 48 00 00 20 */ b lbl_802DA4A8 +lbl_802DA48C: +/* 802DA48C 002D73CC 88 A3 00 00 */ lbz r5, 0(r3) +/* 802DA490 002D73D0 98 BD 00 00 */ stb r5, 0(r29) +/* 802DA494 002D73D4 3B BD 00 01 */ addi r29, r29, 1 +/* 802DA498 002D73D8 7C 1D F8 40 */ cmplw r29, r31 +/* 802DA49C 002D73DC 38 63 00 01 */ addi r3, r3, 1 +/* 802DA4A0 002D73E0 3B DE 00 01 */ addi r30, r30, 1 +/* 802DA4A4 002D73E4 41 82 01 44 */ beq lbl_802DA5E8 +lbl_802DA4A8: +/* 802DA4A8 002D73E8 80 AD 8E D0 */ lwz r5, lbl_80451450-_SDA_BASE_(r13) +/* 802DA4AC 002D73EC 38 A5 00 01 */ addi r5, r5, 1 +/* 802DA4B0 002D73F0 90 AD 8E D0 */ stw r5, lbl_80451450-_SDA_BASE_(r13) +/* 802DA4B4 002D73F4 48 00 01 24 */ b lbl_802DA5D8 +lbl_802DA4B8: +/* 802DA4B8 002D73F8 88 C3 00 00 */ lbz r6, 0(r3) +/* 802DA4BC 002D73FC 88 E3 00 01 */ lbz r7, 1(r3) +/* 802DA4C0 002D7400 50 C7 45 2E */ rlwimi r7, r6, 8, 0x14, 0x17 +/* 802DA4C4 002D7404 7C C5 26 70 */ srawi r5, r6, 4 +/* 802DA4C8 002D7408 81 0D 8E CC */ lwz r8, lbl_8045144C-_SDA_BASE_(r13) +/* 802DA4CC 002D740C 28 08 00 00 */ cmplwi r8, 0 +/* 802DA4D0 002D7410 38 63 00 02 */ addi r3, r3, 2 +/* 802DA4D4 002D7414 41 82 00 2C */ beq lbl_802DA500 +/* 802DA4D8 002D7418 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) +/* 802DA4DC 002D741C 7C C7 30 50 */ subf r6, r7, r6 +/* 802DA4E0 002D7420 39 26 FF FF */ addi r9, r6, -1 +/* 802DA4E4 002D7424 80 ED 8E B0 */ lwz r7, lbl_80451430-_SDA_BASE_(r13) +/* 802DA4E8 002D7428 7C 09 38 40 */ cmplw r9, r7 +/* 802DA4EC 002D742C 40 80 00 1C */ bge lbl_802DA508 +/* 802DA4F0 002D7430 80 CD 8E B4 */ lwz r6, lbl_80451434-_SDA_BASE_(r13) +/* 802DA4F4 002D7434 7C C7 30 50 */ subf r6, r7, r6 +/* 802DA4F8 002D7438 7D 29 32 14 */ add r9, r9, r6 +/* 802DA4FC 002D743C 48 00 00 0C */ b lbl_802DA508 +lbl_802DA500: +/* 802DA500 002D7440 7C C7 E8 50 */ subf r6, r7, r29 +/* 802DA504 002D7444 39 26 FF FF */ addi r9, r6, -1 +lbl_802DA508: +/* 802DA508 002D7448 2C 05 00 00 */ cmpwi r5, 0 +/* 802DA50C 002D744C 40 82 00 14 */ bne lbl_802DA520 +/* 802DA510 002D7450 88 A3 00 00 */ lbz r5, 0(r3) +/* 802DA514 002D7454 38 A5 00 12 */ addi r5, r5, 0x12 +/* 802DA518 002D7458 38 63 00 01 */ addi r3, r3, 1 +/* 802DA51C 002D745C 48 00 00 08 */ b lbl_802DA524 +lbl_802DA520: +/* 802DA520 002D7460 38 A5 00 02 */ addi r5, r5, 2 +lbl_802DA524: +/* 802DA524 002D7464 28 08 00 00 */ cmplwi r8, 0 +/* 802DA528 002D7468 41 82 00 80 */ beq lbl_802DA5A8 +lbl_802DA52C: +/* 802DA52C 002D746C 80 ED 8E D0 */ lwz r7, lbl_80451450-_SDA_BASE_(r13) +/* 802DA530 002D7470 80 CD 8E CC */ lwz r6, lbl_8045144C-_SDA_BASE_(r13) +/* 802DA534 002D7474 7C 07 30 40 */ cmplw r7, r6 +/* 802DA538 002D7478 41 80 00 1C */ blt lbl_802DA554 +/* 802DA53C 002D747C 88 C9 00 00 */ lbz r6, 0(r9) +/* 802DA540 002D7480 98 DD 00 00 */ stb r6, 0(r29) +/* 802DA544 002D7484 3B BD 00 01 */ addi r29, r29, 1 +/* 802DA548 002D7488 7C 1D F8 40 */ cmplw r29, r31 +/* 802DA54C 002D748C 3B DE 00 01 */ addi r30, r30, 1 +/* 802DA550 002D7490 41 82 00 88 */ beq lbl_802DA5D8 +lbl_802DA554: +/* 802DA554 002D7494 89 09 00 00 */ lbz r8, 0(r9) +/* 802DA558 002D7498 80 ED 8E B8 */ lwz r7, lbl_80451438-_SDA_BASE_(r13) +/* 802DA55C 002D749C 38 C7 00 01 */ addi r6, r7, 1 +/* 802DA560 002D74A0 90 CD 8E B8 */ stw r6, lbl_80451438-_SDA_BASE_(r13) +/* 802DA564 002D74A4 99 07 00 00 */ stb r8, 0(r7) +/* 802DA568 002D74A8 80 CD 8E B8 */ lwz r6, lbl_80451438-_SDA_BASE_(r13) +/* 802DA56C 002D74AC 80 ED 8E B4 */ lwz r7, lbl_80451434-_SDA_BASE_(r13) +/* 802DA570 002D74B0 7C 06 38 40 */ cmplw r6, r7 +/* 802DA574 002D74B4 40 82 00 0C */ bne lbl_802DA580 +/* 802DA578 002D74B8 80 CD 8E B0 */ lwz r6, lbl_80451430-_SDA_BASE_(r13) +/* 802DA57C 002D74BC 90 CD 8E B8 */ stw r6, lbl_80451438-_SDA_BASE_(r13) +lbl_802DA580: +/* 802DA580 002D74C0 39 29 00 01 */ addi r9, r9, 1 +/* 802DA584 002D74C4 7C 09 38 40 */ cmplw r9, r7 +/* 802DA588 002D74C8 40 82 00 08 */ bne lbl_802DA590 +/* 802DA58C 002D74CC 81 2D 8E B0 */ lwz r9, lbl_80451430-_SDA_BASE_(r13) +lbl_802DA590: +/* 802DA590 002D74D0 80 CD 8E D0 */ lwz r6, lbl_80451450-_SDA_BASE_(r13) +/* 802DA594 002D74D4 38 C6 00 01 */ addi r6, r6, 1 +/* 802DA598 002D74D8 90 CD 8E D0 */ stw r6, lbl_80451450-_SDA_BASE_(r13) +/* 802DA59C 002D74DC 34 A5 FF FF */ addic. r5, r5, -1 +/* 802DA5A0 002D74E0 40 82 FF 8C */ bne lbl_802DA52C +/* 802DA5A4 002D74E4 48 00 00 34 */ b lbl_802DA5D8 +lbl_802DA5A8: +/* 802DA5A8 002D74E8 88 C9 00 00 */ lbz r6, 0(r9) +/* 802DA5AC 002D74EC 98 DD 00 00 */ stb r6, 0(r29) +/* 802DA5B0 002D74F0 3B BD 00 01 */ addi r29, r29, 1 +/* 802DA5B4 002D74F4 7C 1D F8 40 */ cmplw r29, r31 +/* 802DA5B8 002D74F8 3B DE 00 01 */ addi r30, r30, 1 +/* 802DA5BC 002D74FC 41 82 00 1C */ beq lbl_802DA5D8 +/* 802DA5C0 002D7500 80 CD 8E D0 */ lwz r6, lbl_80451450-_SDA_BASE_(r13) +/* 802DA5C4 002D7504 38 C6 00 01 */ addi r6, r6, 1 +/* 802DA5C8 002D7508 90 CD 8E D0 */ stw r6, lbl_80451450-_SDA_BASE_(r13) +/* 802DA5CC 002D750C 34 A5 FF FF */ addic. r5, r5, -1 +/* 802DA5D0 002D7510 39 29 00 01 */ addi r9, r9, 1 +/* 802DA5D4 002D7514 40 82 FF D4 */ bne lbl_802DA5A8 +lbl_802DA5D8: +/* 802DA5D8 002D7518 54 00 08 3C */ slwi r0, r0, 1 +/* 802DA5DC 002D751C 7C 1D F8 40 */ cmplw r29, r31 +/* 802DA5E0 002D7520 38 84 FF FF */ addi r4, r4, -1 +/* 802DA5E4 002D7524 41 80 FD FC */ blt lbl_802DA3E0 +lbl_802DA5E8: +/* 802DA5E8 002D7528 80 6D 8E DC */ lwz r3, lbl_8045145C-_SDA_BASE_(r13) +/* 802DA5EC 002D752C 93 C3 00 00 */ stw r30, 0(r3) +/* 802DA5F0 002D7530 38 60 00 00 */ li r3, 0 +lbl_802DA5F4: +/* 802DA5F4 002D7534 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DA5F8 002D7538 48 08 7C 31 */ bl _restgpr_29 +/* 802DA5FC 002D753C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DA600 002D7540 7C 08 03 A6 */ mtlr r0 +/* 802DA604 002D7544 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DA608 002D7548 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA60C.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA60C.s new file mode 100644 index 0000000000..cf83ac6f8f --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA60C.s @@ -0,0 +1,59 @@ +/* firstSrcData__Fv firstSrcData(void) */ +/* firstSrcData_X1_ */ +/* 802DA60C 002D754C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DA610 002D7550 7C 08 02 A6 */ mflr r0 +/* 802DA614 002D7554 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DA618 002D7558 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DA61C 002D755C 48 08 7B C1 */ bl _savegpr_29 +/* 802DA620 002D7560 80 6D 8E AC */ lwz r3, lbl_8045142C-_SDA_BASE_(r13) +/* 802DA624 002D7564 38 03 FF E7 */ addi r0, r3, -25 +/* 802DA628 002D7568 90 0D 8E C4 */ stw r0, lbl_80451444-_SDA_BASE_(r13) +/* 802DA62C 002D756C 80 0D 8E A8 */ lwz r0, lbl_80451428-_SDA_BASE_(r13) +/* 802DA630 002D7570 7C 1D 03 78 */ mr r29, r0 +/* 802DA634 002D7574 7C 60 18 50 */ subf r3, r0, r3 +/* 802DA638 002D7578 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA63C 002D757C 7C 00 18 40 */ cmplw r0, r3 +/* 802DA640 002D7580 7C 7F 1B 78 */ mr r31, r3 +/* 802DA644 002D7584 40 80 00 08 */ bge lbl_802DA64C +/* 802DA648 002D7588 7C 1F 03 78 */ mr r31, r0 +lbl_802DA64C: +/* 802DA64C 002D758C 7F FE FB 78 */ mr r30, r31 +lbl_802DA650: +/* 802DA650 002D7590 80 6D 8E C8 */ lwz r3, lbl_80451448-_SDA_BASE_(r13) +/* 802DA654 002D7594 38 63 00 5C */ addi r3, r3, 0x5c +/* 802DA658 002D7598 7F A4 EB 78 */ mr r4, r29 +/* 802DA65C 002D759C 7F C5 F3 78 */ mr r5, r30 +/* 802DA660 002D75A0 80 CD 8E BC */ lwz r6, lbl_8045143C-_SDA_BASE_(r13) +/* 802DA664 002D75A4 38 E0 00 02 */ li r7, 2 +/* 802DA668 002D75A8 48 06 E7 DD */ bl DVDReadPrio +/* 802DA66C 002D75AC 2C 03 00 00 */ cmpwi r3, 0 +/* 802DA670 002D75B0 40 80 00 28 */ bge lbl_802DA698 +/* 802DA674 002D75B4 2C 03 FF FD */ cmpwi r3, -3 +/* 802DA678 002D75B8 41 82 00 10 */ beq lbl_802DA688 +/* 802DA67C 002D75BC 88 0D 83 48 */ lbz r0, lbl_804508C8-_SDA_BASE_(r13) +/* 802DA680 002D75C0 28 00 00 00 */ cmplwi r0, 0 +/* 802DA684 002D75C4 40 82 00 0C */ bne lbl_802DA690 +lbl_802DA688: +/* 802DA688 002D75C8 38 60 00 00 */ li r3, 0 +/* 802DA68C 002D75CC 48 00 00 34 */ b lbl_802DA6C0 +lbl_802DA690: +/* 802DA690 002D75D0 48 07 23 35 */ bl VIWaitForRetrace +/* 802DA694 002D75D4 4B FF FF BC */ b lbl_802DA650 +lbl_802DA698: +/* 802DA698 002D75D8 7F A3 EB 78 */ mr r3, r29 +/* 802DA69C 002D75DC 7F E4 FB 78 */ mr r4, r31 +/* 802DA6A0 002D75E0 48 06 0E E1 */ bl DCInvalidateRange +/* 802DA6A4 002D75E4 80 0D 8E BC */ lwz r0, lbl_8045143C-_SDA_BASE_(r13) +/* 802DA6A8 002D75E8 7C 00 FA 14 */ add r0, r0, r31 +/* 802DA6AC 002D75EC 90 0D 8E BC */ stw r0, lbl_8045143C-_SDA_BASE_(r13) +/* 802DA6B0 002D75F0 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA6B4 002D75F4 7C 1F 00 50 */ subf r0, r31, r0 +/* 802DA6B8 002D75F8 90 0D 8E C0 */ stw r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA6BC 002D75FC 7F A3 EB 78 */ mr r3, r29 +lbl_802DA6C0: +/* 802DA6C0 002D7600 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DA6C4 002D7604 48 08 7B 65 */ bl _restgpr_29 +/* 802DA6C8 002D7608 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DA6CC 002D760C 7C 08 03 A6 */ mtlr r0 +/* 802DA6D0 002D7610 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DA6D4 002D7614 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA6D8.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA6D8.s new file mode 100644 index 0000000000..59cb364ae4 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA6D8.s @@ -0,0 +1,74 @@ +/* nextSrcData__FPUc nextSrcData(unsigned char *) */ +/* nextSrcData_X1_ */ +/* 802DA6D8 002D7618 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DA6DC 002D761C 7C 08 02 A6 */ mflr r0 +/* 802DA6E0 002D7620 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DA6E4 002D7624 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DA6E8 002D7628 48 08 7A F1 */ bl _savegpr_28 +/* 802DA6EC 002D762C 7C 64 1B 78 */ mr r4, r3 +/* 802DA6F0 002D7630 80 0D 8E AC */ lwz r0, lbl_8045142C-_SDA_BASE_(r13) +/* 802DA6F4 002D7634 7F A4 00 50 */ subf r29, r4, r0 +/* 802DA6F8 002D7638 57 A5 06 FF */ clrlwi. r5, r29, 0x1b +/* 802DA6FC 002D763C 41 82 00 14 */ beq lbl_802DA710 +/* 802DA700 002D7640 80 6D 8E A8 */ lwz r3, lbl_80451428-_SDA_BASE_(r13) +/* 802DA704 002D7644 38 03 00 20 */ addi r0, r3, 0x20 +/* 802DA708 002D7648 7F 85 00 50 */ subf r28, r5, r0 +/* 802DA70C 002D764C 48 00 00 08 */ b lbl_802DA714 +lbl_802DA710: +/* 802DA710 002D7650 83 8D 8E A8 */ lwz r28, lbl_80451428-_SDA_BASE_(r13) +lbl_802DA714: +/* 802DA714 002D7654 7F 83 E3 78 */ mr r3, r28 +/* 802DA718 002D7658 7F A5 EB 78 */ mr r5, r29 +/* 802DA71C 002D765C 4B D2 8E 25 */ bl func_80003540 +/* 802DA720 002D7660 7F BC EA 14 */ add r29, r28, r29 +/* 802DA724 002D7664 80 0D 8E AC */ lwz r0, lbl_8045142C-_SDA_BASE_(r13) +/* 802DA728 002D7668 7F DD 00 50 */ subf r30, r29, r0 +/* 802DA72C 002D766C 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA730 002D7670 7C 1E 00 40 */ cmplw r30, r0 +/* 802DA734 002D7674 40 81 00 08 */ ble lbl_802DA73C +/* 802DA738 002D7678 7C 1E 03 78 */ mr r30, r0 +lbl_802DA73C: +/* 802DA73C 002D767C 3C 60 80 2E */ lis r3, isErrorRetry__12JKRDvdRipperFv@ha +/* 802DA740 002D7680 3B E3 A7 D4 */ addi r31, r3, isErrorRetry__12JKRDvdRipperFv@l +lbl_802DA744: +/* 802DA744 002D7684 80 6D 8E C8 */ lwz r3, lbl_80451448-_SDA_BASE_(r13) +/* 802DA748 002D7688 38 63 00 5C */ addi r3, r3, 0x5c +/* 802DA74C 002D768C 7F A4 EB 78 */ mr r4, r29 +/* 802DA750 002D7690 7F C5 F3 78 */ mr r5, r30 +/* 802DA754 002D7694 80 CD 8E BC */ lwz r6, lbl_8045143C-_SDA_BASE_(r13) +/* 802DA758 002D7698 38 E0 00 02 */ li r7, 2 +/* 802DA75C 002D769C 48 06 E6 E9 */ bl DVDReadPrio +/* 802DA760 002D76A0 2C 03 00 00 */ cmpwi r3, 0 +/* 802DA764 002D76A4 40 80 00 24 */ bge lbl_802DA788 +/* 802DA768 002D76A8 2C 03 FF FD */ cmpwi r3, -3 +/* 802DA76C 002D76AC 41 82 00 0C */ beq lbl_802DA778 +/* 802DA770 002D76B0 28 1F 00 00 */ cmplwi r31, 0 +/* 802DA774 002D76B4 40 82 00 0C */ bne lbl_802DA780 +lbl_802DA778: +/* 802DA778 002D76B8 38 60 00 00 */ li r3, 0 +/* 802DA77C 002D76BC 48 00 00 40 */ b lbl_802DA7BC +lbl_802DA780: +/* 802DA780 002D76C0 48 07 22 45 */ bl VIWaitForRetrace +/* 802DA784 002D76C4 4B FF FF C0 */ b lbl_802DA744 +lbl_802DA788: +/* 802DA788 002D76C8 7F A3 EB 78 */ mr r3, r29 +/* 802DA78C 002D76CC 7F C4 F3 78 */ mr r4, r30 +/* 802DA790 002D76D0 48 06 0D F1 */ bl DCInvalidateRange +/* 802DA794 002D76D4 80 0D 8E BC */ lwz r0, lbl_8045143C-_SDA_BASE_(r13) +/* 802DA798 002D76D8 7C 00 F2 14 */ add r0, r0, r30 +/* 802DA79C 002D76DC 90 0D 8E BC */ stw r0, lbl_8045143C-_SDA_BASE_(r13) +/* 802DA7A0 002D76E0 80 0D 8E C0 */ lwz r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA7A4 002D76E4 7C 1E 00 51 */ subf. r0, r30, r0 +/* 802DA7A8 002D76E8 90 0D 8E C0 */ stw r0, lbl_80451440-_SDA_BASE_(r13) +/* 802DA7AC 002D76EC 40 82 00 0C */ bne lbl_802DA7B8 +/* 802DA7B0 002D76F0 7C 1D F2 14 */ add r0, r29, r30 +/* 802DA7B4 002D76F4 90 0D 8E C4 */ stw r0, lbl_80451444-_SDA_BASE_(r13) +lbl_802DA7B8: +/* 802DA7B8 002D76F8 7F 83 E3 78 */ mr r3, r28 +lbl_802DA7BC: +/* 802DA7BC 002D76FC 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DA7C0 002D7700 48 08 7A 65 */ bl _restgpr_28 +/* 802DA7C4 002D7704 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DA7C8 002D7708 7C 08 03 A6 */ mtlr r0 +/* 802DA7CC 002D770C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DA7D0 002D7710 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7D4.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7D4.s new file mode 100644 index 0000000000..482a80a710 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7D4.s @@ -0,0 +1,4 @@ +/* isErrorRetry__12JKRDvdRipperFv JKRDvdRipper::isErrorRetry(void) */ +/* JKRDvdRipper_NS_isErrorRetry */ +/* 802DA7D4 002D7714 88 6D 83 48 */ lbz r3, lbl_804508C8-_SDA_BASE_(r13) +/* 802DA7D8 002D7718 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7DC.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7DC.s new file mode 100644 index 0000000000..02ee4b465a --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA7DC.s @@ -0,0 +1,19 @@ +/* __sinit_JKRDvdRipper_cpp __sinit_JKRDvdRipper_cpp */ +/* missing reference */ +/* 802DA7DC 002D771C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DA7E0 002D7720 7C 08 02 A6 */ mflr r0 +/* 802DA7E4 002D7724 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DA7E8 002D7728 3C 60 80 43 */ lis r3, lbl_80434384@ha +/* 802DA7EC 002D772C 38 63 43 84 */ addi r3, r3, lbl_80434384@l +/* 802DA7F0 002D7730 48 00 17 25 */ bl initiate__10JSUPtrListFv +/* 802DA7F4 002D7734 3C 60 80 43 */ lis r3, lbl_80434384@ha +/* 802DA7F8 002D7738 38 63 43 84 */ addi r3, r3, lbl_80434384@l +/* 802DA7FC 002D773C 3C 80 80 2E */ lis r4, JSUList_NS_dtor_X8_@ha +/* 802DA800 002D7740 38 84 A8 20 */ addi r4, r4, JSUList_NS_dtor_X8_@l +/* 802DA804 002D7744 3C A0 80 43 */ lis r5, lbl_80434378@ha +/* 802DA808 002D7748 38 A5 43 78 */ addi r5, r5, lbl_80434378@l +/* 802DA80C 002D774C 48 08 74 19 */ bl func_80361C24 +/* 802DA810 002D7750 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DA814 002D7754 7C 08 03 A6 */ mtlr r0 +/* 802DA818 002D7758 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DA81C 002D775C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA820.s b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA820.s new file mode 100644 index 0000000000..58fef44165 --- /dev/null +++ b/include/JSystem/JKernel/JKRDvdRipper/asm/func_802DA820.s @@ -0,0 +1,24 @@ +/* __dt__23JSUList<12JKRDMCommand>Fv JSUList<12JKRDMCommand>::__dt(void) */ +/* JSUList_NS_dtor_X8_ */ +/* 802DA820 002D7760 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DA824 002D7764 7C 08 02 A6 */ mflr r0 +/* 802DA828 002D7768 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DA82C 002D776C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DA830 002D7770 93 C1 00 08 */ stw r30, 8(r1) +/* 802DA834 002D7774 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802DA838 002D7778 7C 9F 23 78 */ mr r31, r4 +/* 802DA83C 002D777C 41 82 00 1C */ beq lbl_802DA858 +/* 802DA840 002D7780 38 80 00 00 */ li r4, 0 +/* 802DA844 002D7784 48 00 16 69 */ bl __dt__10JSUPtrListFv +/* 802DA848 002D7788 7F E0 07 35 */ extsh. r0, r31 +/* 802DA84C 002D778C 40 81 00 0C */ ble lbl_802DA858 +/* 802DA850 002D7790 7F C3 F3 78 */ mr r3, r30 +/* 802DA854 002D7794 4B FF 44 E9 */ bl __dl__FPv +lbl_802DA858: +/* 802DA858 002D7798 7F C3 F3 78 */ mr r3, r30 +/* 802DA85C 002D779C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DA860 002D77A0 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DA864 002D77A4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DA868 002D77A8 7C 08 03 A6 */ mtlr r0 +/* 802DA86C 002D77AC 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DA870 002D77B0 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h b/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h index 926f9b30cf..f5fc4d542c 100644 --- a/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h +++ b/include/JSystem/JKernel/JKRExpHeap/JKRExpHeap.h @@ -18,7 +18,6 @@ class JKRExpHeap : public JKRHeap { this->mGroupId = groupId; } - public: bool isValid() { return this->mMagic == 0x484d; } @@ -52,11 +51,7 @@ class JKRExpHeap : public JKRHeap { CMemBlock* mNext; }; - public: - void createRoot(int, bool); - void create(u32, JKRHeap*, bool); - void create(void*, u32, JKRHeap*, bool); - + protected: JKRExpHeap(void*, u32, JKRHeap*, bool); virtual ~JKRExpHeap(); @@ -64,8 +59,6 @@ class JKRExpHeap : public JKRHeap { void allocFromHead(u32); void allocFromTail(u32, int); void allocFromTail(u32); - s32 getUsedSize(u8) const; - s32 getTotalUsedSize(void) const; void appendUsedList(CMemBlock*); void setFreeBlock(CMemBlock*, CMemBlock*, CMemBlock*); void removeFreeBlock(CMemBlock*); @@ -74,25 +67,29 @@ class JKRExpHeap : public JKRHeap { void joinTwoBlocks(CMemBlock*); public: - virtual u32 getHeapType(); - virtual bool check(); - virtual void dump_sort(); - virtual bool dump(); - virtual void do_destroy(); - virtual void* do_alloc(u32 size, int alignment); - virtual void do_free(void* ptr); - virtual void do_freeAll(); - virtual void do_freeTail(); - virtual void do_fillFreeArea(); - virtual s32 do_resize(void* ptr, u32 size); - virtual s32 do_getSize(void* ptr); - virtual s32 do_getFreeSize(); - virtual void* do_getMaxFreeBlock(); - virtual s32 do_getTotalFreeSize(); - virtual u8 do_changeGroupID(u8 param_1); - virtual u8 do_getCurrentGroupId(); - virtual void state_register(JKRHeap::TState*, u32) const; - virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; + s32 getUsedSize(u8) const; + s32 getTotalUsedSize(void) const; + + public: + /* vt[04] */ virtual u32 getHeapType(); /* override */ + /* vt[05] */ virtual bool check(); /* override */ + /* vt[06] */ virtual void dump_sort(); /* override */ + /* vt[07] */ virtual bool dump(); /* override */ + /* vt[08] */ virtual void do_destroy(); /* override */ + /* vt[09] */ virtual void* do_alloc(u32 size, int alignment); /* override */ + /* vt[10] */ virtual void do_free(void* ptr); /* override */ + /* vt[11] */ virtual void do_freeAll(); /* override */ + /* vt[12] */ virtual void do_freeTail(); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(); /* override */ + /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size); /* override */ + /* vt[15] */ virtual s32 do_getSize(void* ptr); /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(); /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(); /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(); /* override */ + /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); /* override */ + /* vt[20] */ virtual u8 do_getCurrentGroupId(); /* override */ + /* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */ + /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; /* override */ private: u32 field_0x6c; @@ -102,6 +99,11 @@ class JKRExpHeap : public JKRHeap { CMemBlock* mTailFreeList; CMemBlock* mHeadUsedList; CMemBlock* mTailUsedList; + + public: + static void createRoot(int, bool); + static void create(u32, JKRHeap*, bool); + static void create(void*, u32, JKRHeap*, bool); }; #endif diff --git a/include/JSystem/JKernel/JKRFile/JKRFile.h b/include/JSystem/JKernel/JKRFile/JKRFile.h index bc1e850481..0993e022b2 100644 --- a/include/JSystem/JKernel/JKRFile/JKRFile.h +++ b/include/JSystem/JKernel/JKRFile/JKRFile.h @@ -6,20 +6,24 @@ class JKRFile : public JKRDisposer { public: - JKRFile() : mIsOpen(false) {} + JKRFile() : mIsAvailable(false) {} virtual ~JKRFile() {} - virtual bool open(const char*); - virtual void close(); - virtual s32 readData(void*, long, long); - virtual s32 writeData(const void*, long, long); - virtual s32 getFileSize(); - virtual bool open(long); - s32 read(void*, long, long); + bool isAvailable() { + return this->mIsAvailable; + } + + public: + /* vt[03] */ virtual bool open(const char*) = 0; + /* vt[04] */ virtual void close() = 0; + /* vt[05] */ virtual s32 readData(void*, long, long) = 0; + /* vt[06] */ virtual s32 writeData(const void*, long, long) = 0; + /* vt[07] */ virtual s32 getFileSize() const = 0; + protected: - bool mIsOpen; + bool mIsAvailable; u8 field_0x19[3]; }; diff --git a/include/JSystem/JKernel/JKRFileCache/JKRFileCache.h b/include/JSystem/JKernel/JKRFileCache/JKRFileCache.h index 7cbc14d0de..67f0b6ca9f 100644 --- a/include/JSystem/JKernel/JKRFileCache/JKRFileCache.h +++ b/include/JSystem/JKernel/JKRFileCache/JKRFileCache.h @@ -9,35 +9,42 @@ class JKRFileCache : public JKRFileLoader { public: class CCacheBlock { public: - CCacheBlock(unsigned long, unsigned long, void const*); + CCacheBlock(u32, u32, void const*); + + private: + JSULink mLink; + u32 field_0x10; + u32 mFileId; + u32 mFileSize; + void const* mMemoryPtr; }; - static void mount(char const*, JKRHeap*, char const*); - - public: + protected: JKRFileCache(char const*, char const*); virtual ~JKRFileCache(); - void becomeCurrent(char const*); - void getResource(char const*); - void getResource(unsigned long, char const*); - void readResource(void*, unsigned long, char const*); - void readResource(void*, unsigned long, unsigned long, char const*); - void removeResourceAll(void); - void removeResource(void*); - void detachResource(void*); - void getResSize(void const*) const; - void countFile(char const*) const; - void getFirstFile(char const*) const; void findCacheBlock(void const*) const; - void findCacheBlock(unsigned long) const; + void findCacheBlock(u32) const; void findFile(char*, char const*) const; void getDvdPathName(char const*) const; void convStrLower(char*) const; - void getFsResource(char const*); - void getNameResource(unsigned long, char const*); - void readFsResource(void*, unsigned long, char const*); - void readNameResource(void*, unsigned long, unsigned long, char const*); + + public: + /* vt[04] */ virtual void becomeCurrent(char const*); /* override */ + /* vt[05] */ virtual void getResource(char const*); /* override */ + /* vt[06] */ virtual void getResource(u32, char const*); /* override */ + /* vt[07] */ virtual void readResource(void*, u32, char const*); /* override */ + /* vt[08] */ virtual void readResource(void*, u32, u32, char const*); /* override */ + /* vt[09] */ virtual void removeResourceAll(void); /* override */ + /* vt[10] */ virtual void removeResource(void*); /* override */ + /* vt[11] */ virtual void detachResource(void*); /* override */ + /* vt[12] */ virtual void getResSize(void const*) const; /* override */ + /* vt[13] */ virtual void countFile(char const*) const; /* override */ + /* vt[14] */ virtual void getFirstFile(char const*) const; /* override */ + /* vt[15] */ virtual void getFsResource(char const*); + /* vt[16] */ virtual void getNameResource(u32, char const*); + /* vt[17] */ virtual void readFsResource(void*, u32, char const*); + /* vt[18] */ virtual void readNameResource(void*, u32, u32, char const*); private: JKRHeap* mParentHeap; @@ -45,6 +52,9 @@ class JKRFileCache : public JKRFileLoader { char* field_0x40; char* field_0x4c; char* field_0x50; + + public: + static void mount(char const*, JKRHeap*, char const*); }; #endif diff --git a/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h b/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h index ef041748a0..d76237ecb2 100644 --- a/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h +++ b/include/JSystem/JKernel/JKRFileFinder/JKRFileFinder.h @@ -15,12 +15,13 @@ class JKRFileFinder : JKRFileFinder_UnknownBase { JKRFileFinder(); virtual ~JKRFileFinder(); - virtual bool findNextFile(void) = 0; - bool isAvailable() { return this->mIsAvailable; } + public: + /* vt[3] */ virtual bool findNextFile(void) = 0; + private: bool mIsAvailable; bool field_0x11; @@ -33,9 +34,10 @@ class JKRArcFinder : public JKRFileFinder { JKRArcFinder(JKRArchive*, long, long); virtual ~JKRArcFinder(); - virtual bool findNextFile(void); + public: + /* vt[3] */ virtual bool findNextFile(void); /* override */ -private: + private: JKRArchive* mArchive; u32 field_0x18; u32 field_0x1c; @@ -47,7 +49,8 @@ class JKRDvdFinder : public JKRFileFinder { JKRDvdFinder(char const*); virtual ~JKRDvdFinder(); - virtual bool findNextFile(void); + public: + /* vt[3] */ virtual bool findNextFile(void); /* override */ private: u8 mDvd[12]; diff --git a/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h b/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h index 9ab58f5ed2..7ddeba67aa 100644 --- a/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h +++ b/include/JSystem/JKernel/JKRFileLoader/JKRFileLoader.h @@ -9,19 +9,6 @@ class JKRFileLoader : public JKRDisposer { JKRFileLoader(void); virtual ~JKRFileLoader(); - virtual void unmount(void); - virtual void becomeCurrent(char const*) = 0; - virtual void getResource(char const*) = 0; - virtual void getResource(u32, char const*) = 0; - virtual void readResource(void*, u32, char const*) = 0; - virtual void readResource(void*, u32, u32, char const*) = 0; - virtual void removeResourceAll(void) = 0; - virtual void removeResource(void*) = 0; - virtual void detachResource(void*) = 0; - virtual void getResSize(void const*) const = 0; - virtual void countFile(char const*) const = 0; - virtual void getFirstFile(char const*) const = 0; - bool isMounted() { return this->mIsMounted; } @@ -30,12 +17,19 @@ class JKRFileLoader : public JKRDisposer { return this->mVolumeType; } - static void* getGlbResource(char const*); - static void* getGlbResource(char const*, JKRFileLoader*); - static bool removeResource(void*, JKRFileLoader*); - static bool detachResource(void*, JKRFileLoader*); - static JKRFileLoader* findVolume(char const**); - static char* fetchVolumeName(char*, long, char const*); + public: + /* vt[03] */ virtual void unmount(void); + /* vt[04] */ virtual void becomeCurrent(char const*) = 0; + /* vt[05] */ virtual void getResource(char const*) = 0; + /* vt[06] */ virtual void getResource(u32, char const*) = 0; + /* vt[07] */ virtual void readResource(void*, u32, char const*) = 0; + /* vt[08] */ virtual void readResource(void*, u32, u32, char const*) = 0; + /* vt[09] */ virtual void removeResourceAll(void) = 0; + /* vt[10] */ virtual void removeResource(void*) = 0; + /* vt[11] */ virtual void detachResource(void*) = 0; + /* vt[12] */ virtual void getResSize(void const*) const = 0; + /* vt[13] */ virtual void countFile(char const*) const = 0; + /* vt[14] */ virtual void getFirstFile(char const*) const = 0; private: JSULink mFileLoaderLink; @@ -44,6 +38,14 @@ class JKRFileLoader : public JKRDisposer { bool mIsMounted; u8 padding_0x31[3]; int mMountCount; + + public: + static void* getGlbResource(char const*); + static void* getGlbResource(char const*, JKRFileLoader*); + static bool removeResource(void*, JKRFileLoader*); + static bool detachResource(void*, JKRFileLoader*); + static JKRFileLoader* findVolume(char const**); + static char* fetchVolumeName(char*, long, char const*); }; #endif diff --git a/include/JSystem/JKernel/JKRFileLoader/asm/func_802D44C4.s b/include/JSystem/JKernel/JKRFileLoader/asm/func_802D44C4.s index bdca846813..2da72e7650 100644 --- a/include/JSystem/JKernel/JKRFileLoader/asm/func_802D44C4.s +++ b/include/JSystem/JKernel/JKRFileLoader/asm/func_802D44C4.s @@ -15,9 +15,9 @@ /* 802D44F4 002D1434 2C 03 00 00 */ cmpwi r3, 0 /* 802D44F8 002D1438 40 82 00 18 */ bne lbl_802D4510 /* 802D44FC 002D143C 7F A3 EB 78 */ mr r3, r29 -/* 802D4500 002D1440 38 8D 83 40 */ addi r4, r13, lbl_804508C0-_SDA_BASE_(r13) +/* 802D4500 002D1440 38 8D 83 40 */ addi r4, r13, 0x804508C0-0x80458580 /*lbl_804508C0-_SDA_BASE_(r13)*/ /* 802D4504 002D1444 48 09 46 29 */ bl strcpy -/* 802D4508 002D1448 38 6D 83 40 */ addi r3, r13, lbl_804508C0-_SDA_BASE_(r13) +/* 802D4508 002D1448 38 6D 83 40 */ addi r3, r13, 0x804508C0-0x80458580 /*lbl_804508C0-_SDA_BASE_(r13)*/ /* 802D450C 002D144C 48 00 00 7C */ b lbl_802D4588 lbl_802D4510: /* 802D4510 002D1450 3C 60 80 3D */ lis r3, lbl_803D2D18@ha @@ -54,7 +54,7 @@ lbl_802D456C: /* 802D4574 002D14B4 88 1F 00 00 */ lbz r0, 0(r31) /* 802D4578 002D14B8 7C 00 07 75 */ extsb. r0, r0 /* 802D457C 002D14BC 40 82 00 08 */ bne lbl_802D4584 -/* 802D4580 002D14C0 3B ED 83 40 */ addi r31, r13, lbl_804508C0-_SDA_BASE_(r13) +/* 802D4580 002D14C0 3B ED 83 40 */ addi r31, r13, 0x804508C0-0x80458580 /*lbl_804508C0-_SDA_BASE_(r13)*/ lbl_802D4584: /* 802D4584 002D14C4 7F E3 FB 78 */ mr r3, r31 lbl_802D4588: diff --git a/include/JSystem/JKernel/JKRHeap/JKRHeap.h b/include/JSystem/JKernel/JKRHeap/JKRHeap.h index 1c1d043328..e4f92ff47b 100644 --- a/include/JSystem/JKernel/JKRHeap/JKRHeap.h +++ b/include/JSystem/JKernel/JKRHeap/JKRHeap.h @@ -10,6 +10,120 @@ class JKRHeap : public JKRDisposer { public: class TState {}; + public: + JKRHeap(void*, u32, JKRHeap*, bool); + virtual ~JKRHeap(); + + JKRHeap* becomeSystemHeap(); + JKRHeap* becomeCurrentHeap(); + void destroy(); + + void* alloc(u32 size, int alignment); + void free(void* ptr); + void freeAll(); + void freeTail(); + s32 resize(void* ptr, u32 size); + s32 getSize(void* ptr); + s32 getFreeSize(); + void* getMaxFreeBlock(); + s32 getTotalFreeSize(); + u8 changeGroupID(u8 param_1); + s32 getMaxAllocatableSize(int alignment); + + JKRHeap* find(void* ptr) const; + JKRHeap* findAllHeap(void* ptr) const; + + void dispose_subroutine(u32 start, u32 end); + bool dispose(void* ptr, u32 size); + void dispose(void* begin, void* end); + void dispose(); + + bool setErrorFlag(bool param_1); + bool isSubHeap(JKRHeap* heap) const; + + /* vt[03] */ virtual void callAllDisposer(); + /* vt[04] */ virtual u32 getHeapType() = 0; + /* vt[05] */ virtual bool check() = 0; + /* vt[06] */ virtual void dump_sort(); + /* vt[07] */ virtual bool dump() = 0; + /* vt[08] */ virtual void do_destroy() = 0; + /* vt[09] */ virtual void* do_alloc(u32 size, int alignment) = 0; + /* vt[10] */ virtual void do_free(void* ptr) = 0; + /* vt[11] */ virtual void do_freeAll() = 0; + /* vt[12] */ virtual void do_freeTail() = 0; + /* vt[13] */ virtual void do_fillFreeArea() = 0; + /* vt[14] */ virtual s32 do_resize(void* ptr, u32 size) = 0; + /* vt[15] */ virtual s32 do_getSize(void* ptr) = 0; + /* vt[16] */ virtual s32 do_getFreeSize() = 0; + /* vt[17] */ virtual void* do_getMaxFreeBlock() = 0; + /* vt[18] */ virtual s32 do_getTotalFreeSize() = 0; + /* vt[19] */ virtual u8 do_changeGroupID(u8 param_1); + /* vt[20] */ virtual u8 do_getCurrentGroupId(); + /* vt[21] */ virtual void state_register(JKRHeap::TState*, unsigned long) const; + /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; + /* vt[23] */ virtual void state_dump(); + + void setDebugFill(bool debugFill) { + this->mDebugFill = debugFill; + } + + void* getStartAddr() const { + return (void*)mStart; + } + + void* getEndAddr() const { + return (void*)mEnd; + } + + u32 getSize() const { + return mSize; + } + + bool getErrorFlag() { + return mErrorFlag; + } + + JKRHeap* getParent() { + JSUTree* parent = this->mChildTree.getParent(); + return parent->getObject(); + } + + JSUTree& getHeapTree() { + return this->mChildTree; + } + + void appendDisposer(JKRDisposer* disposer) { + mDisposerList.append(&disposer->mLink); + } + + void removeDisposer(JKRDisposer* disposer) { + mDisposerList.remove(&disposer->mLink); + } + + void lock() { + OSLockMutex(&this->mMutex); + } + + void unlock() { + OSUnlockMutex(&this->mMutex); + } + + protected: + OSMutex mMutex; + u32 mStart; + u32 mEnd; + u32 mSize; + bool mDebugFill; + bool mCheckMemoryFilled; + u8 mAllocationMode; // EAllocMode? + u8 mGroupId; + JSUTree mChildTree; + JSUList mDisposerList; + bool mErrorFlag; + bool mInitFlag; + u8 padding_0x6a[2]; + + public: static bool initArena(char**, u32*, int); static void* alloc(u32 size, int alignment, JKRHeap* heap); static void free(void* ptr, JKRHeap* heap); @@ -55,122 +169,6 @@ class JKRHeap : public JKRDisposer { static JKRHeap* getCurrentHeap() { return lbl_80451374; } - - public: - JKRHeap(void*, u32, JKRHeap*, bool); - virtual ~JKRHeap(); - - JKRHeap* becomeSystemHeap(); - JKRHeap* becomeCurrentHeap(); - void destroy(); - - void* alloc(u32 size, int alignment); - void free(void* ptr); - void freeAll(); - void freeTail(); - s32 resize(void* ptr, u32 size); - s32 getSize(void* ptr); - s32 getFreeSize(); - void* getMaxFreeBlock(); - s32 getTotalFreeSize(); - u8 changeGroupID(u8 param_1); - s32 getMaxAllocatableSize(int alignment); - - JKRHeap* find(void* ptr) const; - JKRHeap* findAllHeap(void* ptr) const; - - void dispose_subroutine(u32 start, u32 end); - bool dispose(void* ptr, u32 size); - void dispose(void* begin, void* end); - void dispose(); - - bool setErrorFlag(bool param_1); - bool isSubHeap(JKRHeap* heap) const; - - - void setDebugFill(bool debugFill) { - this->mDebugFill = debugFill; - } - - public: - void* getStartAddr() const { - return (void*)mStart; - } - - void* getEndAddr() const { - return (void*)mEnd; - } - - u32 getSize() const { - return mSize; - } - - bool getErrorFlag() { - return mErrorFlag; - } - - JKRHeap* getParent() { - JSUTree* parent = this->mChildTree.getParent(); - return parent->getObject(); - } - - JSUTree& getHeapTree() { - return this->mChildTree; - } - - void appendDisposer(JKRDisposer* disposer) { - mDisposerList.append(&disposer->mLink); - } - - void removeDisposer(JKRDisposer* disposer) { - mDisposerList.remove(&disposer->mLink); - } - - void lock() { - OSLockMutex(&this->mMutex); - } - - void unlock() { - OSUnlockMutex(&this->mMutex); - } - - public: - virtual void callAllDisposer(); - virtual u32 getHeapType() = 0; - virtual bool check() = 0; - virtual void dump_sort(); - virtual bool dump() = 0; - virtual void do_destroy() = 0; - virtual void* do_alloc(u32 size, int alignment) = 0; - virtual void do_free(void* ptr) = 0; - virtual void do_freeAll() = 0; - virtual void do_freeTail() = 0; - virtual void do_fillFreeArea() = 0; - virtual s32 do_resize(void* ptr, u32 size) = 0; - virtual s32 do_getSize(void* ptr) = 0; - virtual s32 do_getFreeSize() = 0; - virtual void* do_getMaxFreeBlock() = 0; - virtual s32 do_getTotalFreeSize() = 0; - virtual u8 do_changeGroupID(u8 param_1); - virtual u8 do_getCurrentGroupId(); - virtual void state_register(JKRHeap::TState*, unsigned long) const; - virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; - virtual void state_dump(); - - public: - OSMutex mMutex; - u32 mStart; - u32 mEnd; - u32 mSize; - bool mDebugFill; - bool mCheckMemoryFilled; - u8 mAllocationMode; // EAllocMode? - u8 mGroupId; - JSUTree mChildTree; - JSUList mDisposerList; - bool mErrorFlag; - bool mInitFlag; - u8 padding_0x6a[2]; }; void* operator new(u32 size); diff --git a/include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h b/include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h new file mode 100644 index 0000000000..335696ef77 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/JKRMemArchive.h @@ -0,0 +1,31 @@ +#ifndef __JKRMEMARCHIVE_H__ +#define __JKRMEMARCHIVE_H__ + +#include "dolphin/types.h" +#include "JSystem/JKernel/JKRArchive/JKRArchive.h" + +enum JKRMemBreakFlag { + _JKRMemBreakFlag_PADDING_32BIT = 0xFFFFFFFF, +}; + +class JKRMemArchive : public JKRArchive { + public: + JKRMemArchive(long, JKRArchive::EMountDirection); + JKRMemArchive(void*, u32, JKRMemBreakFlag); + virtual ~JKRMemArchive(); + + void open(long, JKRArchive::EMountDirection); + void open(void*, u32, JKRMemBreakFlag); + + /* vt[09] */ void removeResourceAll(void); /* override */ + /* vt[10] */ void removeResource(void*); /* override */ + + /* vt[15] */ void getExpandedResSize(void const*) const; /* override */ + /* vt[16] */ void fetchResource(JKRArchive::SDIFileEntry*, u32*); /* override */ + /* vt[17] */ void fetchResource(void*, u32, JKRArchive::SDIFileEntry*, u32*); /* override */ + + public: + static void fetchResource_subroutine(u8*, u32, u8*, u32, int); +}; + +#endif diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D69B8.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D69B8.s new file mode 100644 index 0000000000..c3adf41b16 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D69B8.s @@ -0,0 +1,49 @@ +/* __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::__ct(long, JKRArchive::EMountDirection) */ +/* JKRMemArchive */ +/* 802D69B8 002D38F8 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D69BC 002D38FC 7C 08 02 A6 */ mflr r0 +/* 802D69C0 002D3900 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D69C4 002D3904 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D69C8 002D3908 48 08 B8 15 */ bl _savegpr_29 +/* 802D69CC 002D390C 7C 7D 1B 78 */ mr r29, r3 +/* 802D69D0 002D3910 7C 9E 23 78 */ mr r30, r4 +/* 802D69D4 002D3914 7C BF 2B 78 */ mr r31, r5 +/* 802D69D8 002D3918 38 A0 00 01 */ li r5, 1 +/* 802D69DC 002D391C 4B FF F8 B9 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode +/* 802D69E0 002D3920 3C 60 80 3D */ lis r3, lbl_803CC2D8@ha +/* 802D69E4 002D3924 38 03 C2 D8 */ addi r0, r3, lbl_803CC2D8@l +/* 802D69E8 002D3928 90 1D 00 00 */ stw r0, 0(r29) +/* 802D69EC 002D392C 38 00 00 00 */ li r0, 0 +/* 802D69F0 002D3930 98 1D 00 30 */ stb r0, 0x30(r29) +/* 802D69F4 002D3934 93 FD 00 60 */ stw r31, 0x60(r29) +/* 802D69F8 002D3938 7F A3 EB 78 */ mr r3, r29 +/* 802D69FC 002D393C 7F C4 F3 78 */ mr r4, r30 +/* 802D6A00 002D3940 80 BD 00 60 */ lwz r5, 0x60(r29) +/* 802D6A04 002D3944 48 00 01 C9 */ bl open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection +/* 802D6A08 002D3948 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D6A0C 002D394C 40 82 00 0C */ bne lbl_802D6A18 +/* 802D6A10 002D3950 7F A3 EB 78 */ mr r3, r29 +/* 802D6A14 002D3954 48 00 00 40 */ b lbl_802D6A54 +lbl_802D6A18: +/* 802D6A18 002D3958 3C 60 52 41 */ lis r3, 0x52415243@ha +/* 802D6A1C 002D395C 38 03 52 43 */ addi r0, r3, 0x52415243@l +/* 802D6A20 002D3960 90 1D 00 2C */ stw r0, 0x2c(r29) +/* 802D6A24 002D3964 80 9D 00 54 */ lwz r4, 0x54(r29) +/* 802D6A28 002D3968 80 7D 00 48 */ lwz r3, 0x48(r29) +/* 802D6A2C 002D396C 80 03 00 04 */ lwz r0, 4(r3) +/* 802D6A30 002D3970 7C 04 02 14 */ add r0, r4, r0 +/* 802D6A34 002D3974 90 1D 00 28 */ stw r0, 0x28(r29) +/* 802D6A38 002D3978 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D6A3C 002D397C 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D6A40 002D3980 38 9D 00 18 */ addi r4, r29, 0x18 +/* 802D6A44 002D3984 48 00 55 AD */ bl prepend__10JSUPtrListFP10JSUPtrLink +/* 802D6A48 002D3988 38 00 00 01 */ li r0, 1 +/* 802D6A4C 002D398C 98 1D 00 30 */ stb r0, 0x30(r29) +/* 802D6A50 002D3990 7F A3 EB 78 */ mr r3, r29 +lbl_802D6A54: +/* 802D6A54 002D3994 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D6A58 002D3998 48 08 B7 D1 */ bl _restgpr_29 +/* 802D6A5C 002D399C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D6A60 002D39A0 7C 08 03 A6 */ mtlr r0 +/* 802D6A64 002D39A4 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D6A68 002D39A8 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6A6C.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6A6C.s new file mode 100644 index 0000000000..3580a5aa7a --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6A6C.s @@ -0,0 +1,50 @@ +/* __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::__ct(void *, unsigned long, JKRMemBreakFlag) */ +/* JKRMemArchive_X1_ */ +/* 802D6A6C 002D39AC 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D6A70 002D39B0 7C 08 02 A6 */ mflr r0 +/* 802D6A74 002D39B4 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D6A78 002D39B8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D6A7C 002D39BC 48 08 B7 5D */ bl _savegpr_28 +/* 802D6A80 002D39C0 7C 7C 1B 78 */ mr r28, r3 +/* 802D6A84 002D39C4 7C 9D 23 78 */ mr r29, r4 +/* 802D6A88 002D39C8 7C BE 2B 78 */ mr r30, r5 +/* 802D6A8C 002D39CC 7C DF 33 78 */ mr r31, r6 +/* 802D6A90 002D39D0 38 A0 00 01 */ li r5, 1 +/* 802D6A94 002D39D4 4B FF F8 01 */ bl __ct__10JKRArchiveFlQ210JKRArchive10EMountMode +/* 802D6A98 002D39D8 3C 60 80 3D */ lis r3, lbl_803CC2D8@ha +/* 802D6A9C 002D39DC 38 03 C2 D8 */ addi r0, r3, lbl_803CC2D8@l +/* 802D6AA0 002D39E0 90 1C 00 00 */ stw r0, 0(r28) +/* 802D6AA4 002D39E4 38 00 00 00 */ li r0, 0 +/* 802D6AA8 002D39E8 98 1C 00 30 */ stb r0, 0x30(r28) +/* 802D6AAC 002D39EC 7F 83 E3 78 */ mr r3, r28 +/* 802D6AB0 002D39F0 7F A4 EB 78 */ mr r4, r29 +/* 802D6AB4 002D39F4 7F C5 F3 78 */ mr r5, r30 +/* 802D6AB8 002D39F8 7F E6 FB 78 */ mr r6, r31 +/* 802D6ABC 002D39FC 48 00 02 75 */ bl open__13JKRMemArchiveFPvUl15JKRMemBreakFlag +/* 802D6AC0 002D3A00 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802D6AC4 002D3A04 40 82 00 0C */ bne lbl_802D6AD0 +/* 802D6AC8 002D3A08 7F 83 E3 78 */ mr r3, r28 +/* 802D6ACC 002D3A0C 48 00 00 40 */ b lbl_802D6B0C +lbl_802D6AD0: +/* 802D6AD0 002D3A10 3C 60 52 41 */ lis r3, 0x52415243@ha +/* 802D6AD4 002D3A14 38 03 52 43 */ addi r0, r3, 0x52415243@l +/* 802D6AD8 002D3A18 90 1C 00 2C */ stw r0, 0x2c(r28) +/* 802D6ADC 002D3A1C 80 9C 00 54 */ lwz r4, 0x54(r28) +/* 802D6AE0 002D3A20 80 7C 00 48 */ lwz r3, 0x48(r28) +/* 802D6AE4 002D3A24 80 03 00 04 */ lwz r0, 4(r3) +/* 802D6AE8 002D3A28 7C 04 02 14 */ add r0, r4, r0 +/* 802D6AEC 002D3A2C 90 1C 00 28 */ stw r0, 0x28(r28) +/* 802D6AF0 002D3A30 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D6AF4 002D3A34 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D6AF8 002D3A38 38 9C 00 18 */ addi r4, r28, 0x18 +/* 802D6AFC 002D3A3C 48 00 54 F5 */ bl prepend__10JSUPtrListFP10JSUPtrLink +/* 802D6B00 002D3A40 38 00 00 01 */ li r0, 1 +/* 802D6B04 002D3A44 98 1C 00 30 */ stb r0, 0x30(r28) +/* 802D6B08 002D3A48 7F 83 E3 78 */ mr r3, r28 +lbl_802D6B0C: +/* 802D6B0C 002D3A4C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D6B10 002D3A50 48 08 B7 15 */ bl _restgpr_28 +/* 802D6B14 002D3A54 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D6B18 002D3A58 7C 08 03 A6 */ mtlr r0 +/* 802D6B1C 002D3A5C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D6B20 002D3A60 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6B24.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6B24.s new file mode 100644 index 0000000000..703975325a --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6B24.s @@ -0,0 +1,47 @@ +/* __dt__13JKRMemArchiveFv __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::__dt(void) */ +/* missing reference */ +/* 802D6B24 002D3A64 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D6B28 002D3A68 7C 08 02 A6 */ mflr r0 +/* 802D6B2C 002D3A6C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D6B30 002D3A70 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D6B34 002D3A74 93 C1 00 08 */ stw r30, 8(r1) +/* 802D6B38 002D3A78 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802D6B3C 002D3A7C 7C 9F 23 78 */ mr r31, r4 +/* 802D6B40 002D3A80 41 82 00 70 */ beq lbl_802D6BB0 +/* 802D6B44 002D3A84 3C 60 80 3D */ lis r3, lbl_803CC2D8@ha +/* 802D6B48 002D3A88 38 03 C2 D8 */ addi r0, r3, lbl_803CC2D8@l +/* 802D6B4C 002D3A8C 90 1E 00 00 */ stw r0, 0(r30) +/* 802D6B50 002D3A90 88 1E 00 30 */ lbz r0, 0x30(r30) +/* 802D6B54 002D3A94 28 00 00 01 */ cmplwi r0, 1 +/* 802D6B58 002D3A98 40 82 00 3C */ bne lbl_802D6B94 +/* 802D6B5C 002D3A9C 88 1E 00 6C */ lbz r0, 0x6c(r30) +/* 802D6B60 002D3AA0 28 00 00 00 */ cmplwi r0, 0 +/* 802D6B64 002D3AA4 41 82 00 18 */ beq lbl_802D6B7C +/* 802D6B68 002D3AA8 80 7E 00 64 */ lwz r3, 0x64(r30) +/* 802D6B6C 002D3AAC 28 03 00 00 */ cmplwi r3, 0 +/* 802D6B70 002D3AB0 41 82 00 0C */ beq lbl_802D6B7C +/* 802D6B74 002D3AB4 80 9E 00 38 */ lwz r4, 0x38(r30) +/* 802D6B78 002D3AB8 4B FF 79 89 */ bl free__7JKRHeapFPvP7JKRHeap +lbl_802D6B7C: +/* 802D6B7C 002D3ABC 3C 60 80 43 */ lis r3, lbl_80434354@ha +/* 802D6B80 002D3AC0 38 63 43 54 */ addi r3, r3, lbl_80434354@l +/* 802D6B84 002D3AC4 38 9E 00 18 */ addi r4, r30, 0x18 +/* 802D6B88 002D3AC8 48 00 55 D5 */ bl remove__10JSUPtrListFP10JSUPtrLink +/* 802D6B8C 002D3ACC 38 00 00 00 */ li r0, 0 +/* 802D6B90 002D3AD0 98 1E 00 30 */ stb r0, 0x30(r30) +lbl_802D6B94: +/* 802D6B94 002D3AD4 7F C3 F3 78 */ mr r3, r30 +/* 802D6B98 002D3AD8 38 80 00 00 */ li r4, 0 +/* 802D6B9C 002D3ADC 4B FF F7 99 */ bl __dt__10JKRArchiveFv +/* 802D6BA0 002D3AE0 7F E0 07 35 */ extsh. r0, r31 +/* 802D6BA4 002D3AE4 40 81 00 0C */ ble lbl_802D6BB0 +/* 802D6BA8 002D3AE8 7F C3 F3 78 */ mr r3, r30 +/* 802D6BAC 002D3AEC 4B FF 81 91 */ bl __dl__FPv +lbl_802D6BB0: +/* 802D6BB0 002D3AF0 7F C3 F3 78 */ mr r3, r30 +/* 802D6BB4 002D3AF4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D6BB8 002D3AF8 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D6BBC 002D3AFC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D6BC0 002D3B00 7C 08 03 A6 */ mtlr r0 +/* 802D6BC4 002D3B04 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D6BC8 002D3B08 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6BCC.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6BCC.s new file mode 100644 index 0000000000..3b028d5bd8 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6BCC.s @@ -0,0 +1,95 @@ +/* open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::open(long, JKRArchive::EMountDirection) */ +/* JKRMemArchive_NS_open */ +/* 802D6BCC 002D3B0C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D6BD0 002D3B10 7C 08 02 A6 */ mflr r0 +/* 802D6BD4 002D3B14 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D6BD8 002D3B18 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802D6BDC 002D3B1C 7C 7F 1B 78 */ mr r31, r3 +/* 802D6BE0 002D3B20 38 00 00 00 */ li r0, 0 +/* 802D6BE4 002D3B24 90 03 00 64 */ stw r0, 0x64(r3) +/* 802D6BE8 002D3B28 90 03 00 44 */ stw r0, 0x44(r3) +/* 802D6BEC 002D3B2C 90 03 00 68 */ stw r0, 0x68(r3) +/* 802D6BF0 002D3B30 90 03 00 48 */ stw r0, 0x48(r3) +/* 802D6BF4 002D3B34 90 03 00 4C */ stw r0, 0x4c(r3) +/* 802D6BF8 002D3B38 90 03 00 54 */ stw r0, 0x54(r3) +/* 802D6BFC 002D3B3C 98 03 00 6C */ stb r0, 0x6c(r3) +/* 802D6C00 002D3B40 90 A3 00 60 */ stw r5, 0x60(r3) +/* 802D6C04 002D3B44 80 03 00 60 */ lwz r0, 0x60(r3) +/* 802D6C08 002D3B48 2C 00 00 01 */ cmpwi r0, 1 +/* 802D6C0C 002D3B4C 40 82 00 4C */ bne lbl_802D6C58 +/* 802D6C10 002D3B50 38 01 00 14 */ addi r0, r1, 0x14 +/* 802D6C14 002D3B54 90 01 00 08 */ stw r0, 8(r1) +/* 802D6C18 002D3B58 7C 83 23 78 */ mr r3, r4 +/* 802D6C1C 002D3B5C 38 80 00 00 */ li r4, 0 +/* 802D6C20 002D3B60 38 A0 00 01 */ li r5, 1 +/* 802D6C24 002D3B64 38 C0 00 00 */ li r6, 0 +/* 802D6C28 002D3B68 80 FF 00 38 */ lwz r7, 0x38(r31) +/* 802D6C2C 002D3B6C 39 00 00 01 */ li r8, 1 +/* 802D6C30 002D3B70 39 20 00 00 */ li r9, 0 +/* 802D6C34 002D3B74 39 5F 00 5C */ addi r10, r31, 0x5c +/* 802D6C38 002D3B78 48 00 30 1D */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D6C3C 002D3B7C 90 7F 00 64 */ stw r3, 0x64(r31) +/* 802D6C40 002D3B80 80 7F 00 64 */ lwz r3, 0x64(r31) +/* 802D6C44 002D3B84 28 03 00 00 */ cmplwi r3, 0 +/* 802D6C48 002D3B88 41 82 00 54 */ beq lbl_802D6C9C +/* 802D6C4C 002D3B8C 80 81 00 14 */ lwz r4, 0x14(r1) +/* 802D6C50 002D3B90 48 06 49 31 */ bl DCInvalidateRange +/* 802D6C54 002D3B94 48 00 00 48 */ b lbl_802D6C9C +lbl_802D6C58: +/* 802D6C58 002D3B98 38 01 00 10 */ addi r0, r1, 0x10 +/* 802D6C5C 002D3B9C 90 01 00 08 */ stw r0, 8(r1) +/* 802D6C60 002D3BA0 7C 83 23 78 */ mr r3, r4 +/* 802D6C64 002D3BA4 38 80 00 00 */ li r4, 0 +/* 802D6C68 002D3BA8 38 A0 00 01 */ li r5, 1 +/* 802D6C6C 002D3BAC 38 C0 00 00 */ li r6, 0 +/* 802D6C70 002D3BB0 80 FF 00 38 */ lwz r7, 0x38(r31) +/* 802D6C74 002D3BB4 39 00 00 02 */ li r8, 2 +/* 802D6C78 002D3BB8 39 20 00 00 */ li r9, 0 +/* 802D6C7C 002D3BBC 39 5F 00 5C */ addi r10, r31, 0x5c +/* 802D6C80 002D3BC0 48 00 2F D5 */ bl loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl +/* 802D6C84 002D3BC4 90 7F 00 64 */ stw r3, 0x64(r31) +/* 802D6C88 002D3BC8 80 7F 00 64 */ lwz r3, 0x64(r31) +/* 802D6C8C 002D3BCC 28 03 00 00 */ cmplwi r3, 0 +/* 802D6C90 002D3BD0 41 82 00 0C */ beq lbl_802D6C9C +/* 802D6C94 002D3BD4 80 81 00 10 */ lwz r4, 0x10(r1) +/* 802D6C98 002D3BD8 48 06 48 E9 */ bl DCInvalidateRange +lbl_802D6C9C: +/* 802D6C9C 002D3BDC 80 7F 00 64 */ lwz r3, 0x64(r31) +/* 802D6CA0 002D3BE0 28 03 00 00 */ cmplwi r3, 0 +/* 802D6CA4 002D3BE4 40 82 00 10 */ bne lbl_802D6CB4 +/* 802D6CA8 002D3BE8 38 00 00 00 */ li r0, 0 +/* 802D6CAC 002D3BEC 98 1F 00 3C */ stb r0, 0x3c(r31) +/* 802D6CB0 002D3BF0 48 00 00 60 */ b lbl_802D6D10 +lbl_802D6CB4: +/* 802D6CB4 002D3BF4 80 03 00 08 */ lwz r0, 8(r3) +/* 802D6CB8 002D3BF8 7C 03 02 14 */ add r0, r3, r0 +/* 802D6CBC 002D3BFC 90 1F 00 44 */ stw r0, 0x44(r31) +/* 802D6CC0 002D3C00 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D6CC4 002D3C04 80 03 00 04 */ lwz r0, 4(r3) +/* 802D6CC8 002D3C08 7C 03 02 14 */ add r0, r3, r0 +/* 802D6CCC 002D3C0C 90 1F 00 48 */ stw r0, 0x48(r31) +/* 802D6CD0 002D3C10 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D6CD4 002D3C14 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802D6CD8 002D3C18 7C 03 02 14 */ add r0, r3, r0 +/* 802D6CDC 002D3C1C 90 1F 00 4C */ stw r0, 0x4c(r31) +/* 802D6CE0 002D3C20 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D6CE4 002D3C24 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802D6CE8 002D3C28 7C 03 02 14 */ add r0, r3, r0 +/* 802D6CEC 002D3C2C 90 1F 00 54 */ stw r0, 0x54(r31) +/* 802D6CF0 002D3C30 80 9F 00 64 */ lwz r4, 0x64(r31) +/* 802D6CF4 002D3C34 80 64 00 0C */ lwz r3, 0xc(r4) +/* 802D6CF8 002D3C38 80 04 00 08 */ lwz r0, 8(r4) +/* 802D6CFC 002D3C3C 7C 00 1A 14 */ add r0, r0, r3 +/* 802D6D00 002D3C40 7C 04 02 14 */ add r0, r4, r0 +/* 802D6D04 002D3C44 90 1F 00 68 */ stw r0, 0x68(r31) +/* 802D6D08 002D3C48 38 00 00 01 */ li r0, 1 +/* 802D6D0C 002D3C4C 98 1F 00 6C */ stb r0, 0x6c(r31) +lbl_802D6D10: +/* 802D6D10 002D3C50 88 7F 00 3C */ lbz r3, 0x3c(r31) +/* 802D6D14 002D3C54 30 03 FF FF */ addic r0, r3, -1 +/* 802D6D18 002D3C58 7C 60 19 10 */ subfe r3, r0, r3 +/* 802D6D1C 002D3C5C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802D6D20 002D3C60 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D6D24 002D3C64 7C 08 03 A6 */ mtlr r0 +/* 802D6D28 002D3C68 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D6D2C 002D3C6C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6D30.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6D30.s new file mode 100644 index 0000000000..df0005a283 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6D30.s @@ -0,0 +1,45 @@ +/* open__13JKRMemArchiveFPvUl15JKRMemBreakFlag __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::open(void *, unsigned long, JKRMemBreakFlag) */ +/* JKRMemArchive_NS_open_X1_ */ +/* 802D6D30 002D3C70 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D6D34 002D3C74 7C 08 02 A6 */ mflr r0 +/* 802D6D38 002D3C78 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D6D3C 002D3C7C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D6D40 002D3C80 7C 7F 1B 78 */ mr r31, r3 +/* 802D6D44 002D3C84 90 83 00 64 */ stw r4, 0x64(r3) +/* 802D6D48 002D3C88 80 63 00 64 */ lwz r3, 0x64(r3) +/* 802D6D4C 002D3C8C 80 03 00 08 */ lwz r0, 8(r3) +/* 802D6D50 002D3C90 7C 03 02 14 */ add r0, r3, r0 +/* 802D6D54 002D3C94 90 1F 00 44 */ stw r0, 0x44(r31) +/* 802D6D58 002D3C98 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D6D5C 002D3C9C 80 03 00 04 */ lwz r0, 4(r3) +/* 802D6D60 002D3CA0 7C 03 02 14 */ add r0, r3, r0 +/* 802D6D64 002D3CA4 90 1F 00 48 */ stw r0, 0x48(r31) +/* 802D6D68 002D3CA8 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D6D6C 002D3CAC 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802D6D70 002D3CB0 7C 03 02 14 */ add r0, r3, r0 +/* 802D6D74 002D3CB4 90 1F 00 4C */ stw r0, 0x4c(r31) +/* 802D6D78 002D3CB8 80 7F 00 44 */ lwz r3, 0x44(r31) +/* 802D6D7C 002D3CBC 80 03 00 14 */ lwz r0, 0x14(r3) +/* 802D6D80 002D3CC0 7C 03 02 14 */ add r0, r3, r0 +/* 802D6D84 002D3CC4 90 1F 00 54 */ stw r0, 0x54(r31) +/* 802D6D88 002D3CC8 80 BF 00 64 */ lwz r5, 0x64(r31) +/* 802D6D8C 002D3CCC 80 65 00 0C */ lwz r3, 0xc(r5) +/* 802D6D90 002D3CD0 80 05 00 08 */ lwz r0, 8(r5) +/* 802D6D94 002D3CD4 7C 00 1A 14 */ add r0, r0, r3 +/* 802D6D98 002D3CD8 7C 05 02 14 */ add r0, r5, r0 +/* 802D6D9C 002D3CDC 90 1F 00 68 */ stw r0, 0x68(r31) +/* 802D6DA0 002D3CE0 20 06 00 01 */ subfic r0, r6, 1 +/* 802D6DA4 002D3CE4 7C 00 00 34 */ cntlzw r0, r0 +/* 802D6DA8 002D3CE8 54 00 D9 7E */ srwi r0, r0, 5 +/* 802D6DAC 002D3CEC 98 1F 00 6C */ stb r0, 0x6c(r31) +/* 802D6DB0 002D3CF0 7C 83 23 78 */ mr r3, r4 +/* 802D6DB4 002D3CF4 4B FF 7A 89 */ bl findFromRoot__7JKRHeapFPv +/* 802D6DB8 002D3CF8 90 7F 00 38 */ stw r3, 0x38(r31) +/* 802D6DBC 002D3CFC 38 00 00 00 */ li r0, 0 +/* 802D6DC0 002D3D00 90 1F 00 5C */ stw r0, 0x5c(r31) +/* 802D6DC4 002D3D04 38 60 00 01 */ li r3, 1 +/* 802D6DC8 002D3D08 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D6DCC 002D3D0C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D6DD0 002D3D10 7C 08 03 A6 */ mtlr r0 +/* 802D6DD4 002D3D14 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D6DD8 002D3D18 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s new file mode 100644 index 0000000000..ed7c5c0d64 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s @@ -0,0 +1,17 @@ +/* fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D6DDC 002D3D1C 80 04 00 10 */ lwz r0, 0x10(r4) +/* 802D6DE0 002D3D20 28 00 00 00 */ cmplwi r0, 0 +/* 802D6DE4 002D3D24 40 82 00 14 */ bne lbl_802D6DF8 +/* 802D6DE8 002D3D28 80 63 00 68 */ lwz r3, 0x68(r3) +/* 802D6DEC 002D3D2C 80 04 00 08 */ lwz r0, 8(r4) +/* 802D6DF0 002D3D30 7C 03 02 14 */ add r0, r3, r0 +/* 802D6DF4 002D3D34 90 04 00 10 */ stw r0, 0x10(r4) +lbl_802D6DF8: +/* 802D6DF8 002D3D38 28 05 00 00 */ cmplwi r5, 0 +/* 802D6DFC 002D3D3C 41 82 00 0C */ beq lbl_802D6E08 +/* 802D6E00 002D3D40 80 04 00 0C */ lwz r0, 0xc(r4) +/* 802D6E04 002D3D44 90 05 00 00 */ stw r0, 0(r5) +lbl_802D6E08: +/* 802D6E08 002D3D48 80 64 00 10 */ lwz r3, 0x10(r4) +/* 802D6E0C 002D3D4C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s new file mode 100644 index 0000000000..2e5a23f182 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s @@ -0,0 +1,57 @@ +/* fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource(void *, unsigned long, JKRArchive::SDIFileEntry *, unsigned long *) */ +/* missing reference */ +/* 802D6E10 002D3D50 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802D6E14 002D3D54 7C 08 02 A6 */ mflr r0 +/* 802D6E18 002D3D58 90 01 00 24 */ stw r0, 0x24(r1) +/* 802D6E1C 002D3D5C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D6E20 002D3D60 48 08 B3 BD */ bl _savegpr_29 +/* 802D6E24 002D3D64 7C 9D 23 78 */ mr r29, r4 +/* 802D6E28 002D3D68 7C A8 2B 78 */ mr r8, r5 +/* 802D6E2C 002D3D6C 7C FE 3B 78 */ mr r30, r7 +/* 802D6E30 002D3D70 83 E6 00 0C */ lwz r31, 0xc(r6) +/* 802D6E34 002D3D74 7C 1F 40 40 */ cmplw r31, r8 +/* 802D6E38 002D3D78 40 81 00 08 */ ble lbl_802D6E40 +/* 802D6E3C 002D3D7C 7D 1F 43 78 */ mr r31, r8 +lbl_802D6E40: +/* 802D6E40 002D3D80 80 86 00 10 */ lwz r4, 0x10(r6) +/* 802D6E44 002D3D84 28 04 00 00 */ cmplwi r4, 0 +/* 802D6E48 002D3D88 41 82 00 14 */ beq lbl_802D6E5C +/* 802D6E4C 002D3D8C 7F A3 EB 78 */ mr r3, r29 +/* 802D6E50 002D3D90 7F E5 FB 78 */ mr r5, r31 +/* 802D6E54 002D3D94 4B D2 C6 ED */ bl func_80003540 +/* 802D6E58 002D3D98 48 00 00 50 */ b lbl_802D6EA8 +lbl_802D6E5C: +/* 802D6E5C 002D3D9C 80 06 00 04 */ lwz r0, 4(r6) +/* 802D6E60 002D3DA0 54 04 46 3E */ srwi r4, r0, 0x18 +/* 802D6E64 002D3DA4 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D6E68 002D3DA8 40 82 00 0C */ bne lbl_802D6E74 +/* 802D6E6C 002D3DAC 38 E0 00 00 */ li r7, 0 +/* 802D6E70 002D3DB0 48 00 00 18 */ b lbl_802D6E88 +lbl_802D6E74: +/* 802D6E74 002D3DB4 54 80 06 31 */ rlwinm. r0, r4, 0, 0x18, 0x18 +/* 802D6E78 002D3DB8 41 82 00 0C */ beq lbl_802D6E84 +/* 802D6E7C 002D3DBC 38 E0 00 02 */ li r7, 2 +/* 802D6E80 002D3DC0 48 00 00 08 */ b lbl_802D6E88 +lbl_802D6E84: +/* 802D6E84 002D3DC4 38 E0 00 01 */ li r7, 1 +lbl_802D6E88: +/* 802D6E88 002D3DC8 80 63 00 68 */ lwz r3, 0x68(r3) +/* 802D6E8C 002D3DCC 80 06 00 08 */ lwz r0, 8(r6) +/* 802D6E90 002D3DD0 7C 63 02 14 */ add r3, r3, r0 +/* 802D6E94 002D3DD4 7F E4 FB 78 */ mr r4, r31 +/* 802D6E98 002D3DD8 7F A5 EB 78 */ mr r5, r29 +/* 802D6E9C 002D3DDC 7D 06 43 78 */ mr r6, r8 +/* 802D6EA0 002D3DE0 48 00 00 BD */ bl fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli +/* 802D6EA4 002D3DE4 7C 7F 1B 78 */ mr r31, r3 +lbl_802D6EA8: +/* 802D6EA8 002D3DE8 28 1E 00 00 */ cmplwi r30, 0 +/* 802D6EAC 002D3DEC 41 82 00 08 */ beq lbl_802D6EB4 +/* 802D6EB0 002D3DF0 93 FE 00 00 */ stw r31, 0(r30) +lbl_802D6EB4: +/* 802D6EB4 002D3DF4 7F A3 EB 78 */ mr r3, r29 +/* 802D6EB8 002D3DF8 39 61 00 20 */ addi r11, r1, 0x20 +/* 802D6EBC 002D3DFC 48 08 B3 6D */ bl _restgpr_29 +/* 802D6EC0 002D3E00 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802D6EC4 002D3E04 7C 08 03 A6 */ mtlr r0 +/* 802D6EC8 002D3E08 38 21 00 20 */ addi r1, r1, 0x20 +/* 802D6ECC 002D3E0C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6ED0.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6ED0.s new file mode 100644 index 0000000000..7cc878c630 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6ED0.s @@ -0,0 +1,25 @@ +/* removeResourceAll__13JKRMemArchiveFv __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::removeResourceAll(void) */ +/* missing reference */ +/* 802D6ED0 002D3E10 80 03 00 44 */ lwz r0, 0x44(r3) +/* 802D6ED4 002D3E14 28 00 00 00 */ cmplwi r0, 0 +/* 802D6ED8 002D3E18 4D 82 00 20 */ beqlr +/* 802D6EDC 002D3E1C 88 03 00 3C */ lbz r0, 0x3c(r3) +/* 802D6EE0 002D3E20 28 00 00 01 */ cmplwi r0, 1 +/* 802D6EE4 002D3E24 4D 82 00 20 */ beqlr +/* 802D6EE8 002D3E28 80 C3 00 4C */ lwz r6, 0x4c(r3) +/* 802D6EEC 002D3E2C 38 E0 00 00 */ li r7, 0 +/* 802D6EF0 002D3E30 38 A0 00 00 */ li r5, 0 +/* 802D6EF4 002D3E34 48 00 00 18 */ b lbl_802D6F0C +lbl_802D6EF8: +/* 802D6EF8 002D3E38 80 06 00 10 */ lwz r0, 0x10(r6) +/* 802D6EFC 002D3E3C 28 00 00 00 */ cmplwi r0, 0 +/* 802D6F00 002D3E40 41 82 00 08 */ beq lbl_802D6F08 +/* 802D6F04 002D3E44 90 A6 00 10 */ stw r5, 0x10(r6) +lbl_802D6F08: +/* 802D6F08 002D3E48 38 E7 00 01 */ addi r7, r7, 1 +lbl_802D6F0C: +/* 802D6F0C 002D3E4C 80 83 00 44 */ lwz r4, 0x44(r3) +/* 802D6F10 002D3E50 80 04 00 08 */ lwz r0, 8(r4) +/* 802D6F14 002D3E54 7C 07 00 40 */ cmplw r7, r0 +/* 802D6F18 002D3E58 41 80 FF E0 */ blt lbl_802D6EF8 +/* 802D6F1C 002D3E5C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F20.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F20.s new file mode 100644 index 0000000000..9b059d8756 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F20.s @@ -0,0 +1,19 @@ +/* removeResource__13JKRMemArchiveFPv __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::removeResource(void *) */ +/* missing reference */ +/* 802D6F20 002D3E60 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D6F24 002D3E64 7C 08 02 A6 */ mflr r0 +/* 802D6F28 002D3E68 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D6F2C 002D3E6C 4B FF F8 09 */ bl findPtrResource__10JKRArchiveCFPCv +/* 802D6F30 002D3E70 28 03 00 00 */ cmplwi r3, 0 +/* 802D6F34 002D3E74 40 82 00 0C */ bne lbl_802D6F40 +/* 802D6F38 002D3E78 38 60 00 00 */ li r3, 0 +/* 802D6F3C 002D3E7C 48 00 00 10 */ b lbl_802D6F4C +lbl_802D6F40: +/* 802D6F40 002D3E80 38 00 00 00 */ li r0, 0 +/* 802D6F44 002D3E84 90 03 00 10 */ stw r0, 0x10(r3) +/* 802D6F48 002D3E88 38 60 00 01 */ li r3, 1 +lbl_802D6F4C: +/* 802D6F4C 002D3E8C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D6F50 002D3E90 7C 08 03 A6 */ mtlr r0 +/* 802D6F54 002D3E94 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D6F58 002D3E98 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F5C.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F5C.s new file mode 100644 index 0000000000..d77400871b --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D6F5C.s @@ -0,0 +1,61 @@ +/* fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::fetchResource_subroutine(unsigned char *, unsigned long, unsigned char *, unsigned long, int) */ +/* JKRMemArchive_NS_fetchResource_subroutine */ +/* 802D6F5C 002D3E9C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D6F60 002D3EA0 7C 08 02 A6 */ mflr r0 +/* 802D6F64 002D3EA4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D6F68 002D3EA8 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D6F6C 002D3EAC 7C 68 1B 78 */ mr r8, r3 +/* 802D6F70 002D3EB0 7C 9F 23 78 */ mr r31, r4 +/* 802D6F74 002D3EB4 2C 07 00 00 */ cmpwi r7, 0 +/* 802D6F78 002D3EB8 41 82 00 14 */ beq lbl_802D6F8C +/* 802D6F7C 002D3EBC 41 80 00 80 */ blt lbl_802D6FFC +/* 802D6F80 002D3EC0 2C 07 00 03 */ cmpwi r7, 3 +/* 802D6F84 002D3EC4 40 80 00 78 */ bge lbl_802D6FFC +/* 802D6F88 002D3EC8 48 00 00 28 */ b lbl_802D6FB0 +lbl_802D6F8C: +/* 802D6F8C 002D3ECC 7C 1F 30 40 */ cmplw r31, r6 +/* 802D6F90 002D3ED0 40 81 00 08 */ ble lbl_802D6F98 +/* 802D6F94 002D3ED4 7C DF 33 78 */ mr r31, r6 +lbl_802D6F98: +/* 802D6F98 002D3ED8 7C A3 2B 78 */ mr r3, r5 +/* 802D6F9C 002D3EDC 7D 04 43 78 */ mr r4, r8 +/* 802D6FA0 002D3EE0 7F E5 FB 78 */ mr r5, r31 +/* 802D6FA4 002D3EE4 4B D2 C5 9D */ bl func_80003540 +/* 802D6FA8 002D3EE8 7F E3 FB 78 */ mr r3, r31 +/* 802D6FAC 002D3EEC 48 00 00 70 */ b lbl_802D701C +lbl_802D6FB0: +/* 802D6FB0 002D3EF0 88 E8 00 07 */ lbz r7, 7(r8) +/* 802D6FB4 002D3EF4 88 88 00 06 */ lbz r4, 6(r8) +/* 802D6FB8 002D3EF8 88 68 00 04 */ lbz r3, 4(r8) +/* 802D6FBC 002D3EFC 88 08 00 05 */ lbz r0, 5(r8) +/* 802D6FC0 002D3F00 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D6FC4 002D3F04 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D6FC8 002D3F08 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D6FCC 002D3F0C 7C E0 03 78 */ or r0, r7, r0 +/* 802D6FD0 002D3F10 7C 1F 03 78 */ mr r31, r0 +/* 802D6FD4 002D3F14 7C 00 30 40 */ cmplw r0, r6 +/* 802D6FD8 002D3F18 40 81 00 08 */ ble lbl_802D6FE0 +/* 802D6FDC 002D3F1C 7C DF 33 78 */ mr r31, r6 +lbl_802D6FE0: +/* 802D6FE0 002D3F20 7D 03 43 78 */ mr r3, r8 +/* 802D6FE4 002D3F24 7C A4 2B 78 */ mr r4, r5 +/* 802D6FE8 002D3F28 7F E5 FB 78 */ mr r5, r31 +/* 802D6FEC 002D3F2C 38 C0 00 00 */ li r6, 0 +/* 802D6FF0 002D3F30 48 00 49 99 */ bl orderSync__9JKRDecompFPUcPUcUlUl +/* 802D6FF4 002D3F34 7F E3 FB 78 */ mr r3, r31 +/* 802D6FF8 002D3F38 48 00 00 24 */ b lbl_802D701C +lbl_802D6FFC: +/* 802D6FFC 002D3F3C 3C 60 80 3A */ lis r3, lbl_8039D160@ha +/* 802D7000 002D3F40 38 63 D1 60 */ addi r3, r3, lbl_8039D160@l +/* 802D7004 002D3F44 38 80 02 D3 */ li r4, 0x2d3 +/* 802D7008 002D3F48 38 A3 00 12 */ addi r5, r3, 0x12 +/* 802D700C 002D3F4C 38 C3 00 15 */ addi r6, r3, 0x15 +/* 802D7010 002D3F50 4C C6 31 82 */ crclr 6 +/* 802D7014 002D3F54 48 00 B1 E9 */ bl JUTException_NS_panic_f +/* 802D7018 002D3F58 38 60 00 00 */ li r3, 0 +lbl_802D701C: +/* 802D701C 002D3F5C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D7020 002D3F60 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D7024 002D3F64 7C 08 03 A6 */ mtlr r0 +/* 802D7028 002D3F68 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D702C 002D3F6C 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRMemArchive/asm/func_802D7030.s b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D7030.s new file mode 100644 index 0000000000..bf41d79755 --- /dev/null +++ b/include/JSystem/JKernel/JKRMemArchive/asm/func_802D7030.s @@ -0,0 +1,41 @@ +/* getExpandedResSize__13JKRMemArchiveCFPCv __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection::getExpandedResSize( const(void const *)) */ +/* missing reference */ +/* 802D7030 002D3F70 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802D7034 002D3F74 7C 08 02 A6 */ mflr r0 +/* 802D7038 002D3F78 90 01 00 14 */ stw r0, 0x14(r1) +/* 802D703C 002D3F7C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802D7040 002D3F80 93 C1 00 08 */ stw r30, 8(r1) +/* 802D7044 002D3F84 7C 7E 1B 78 */ mr r30, r3 +/* 802D7048 002D3F88 7C 9F 23 78 */ mr r31, r4 +/* 802D704C 002D3F8C 4B FF F6 E9 */ bl findPtrResource__10JKRArchiveCFPCv +/* 802D7050 002D3F90 28 03 00 00 */ cmplwi r3, 0 +/* 802D7054 002D3F94 40 82 00 0C */ bne lbl_802D7060 +/* 802D7058 002D3F98 38 60 FF FF */ li r3, -1 +/* 802D705C 002D3F9C 48 00 00 4C */ b lbl_802D70A8 +lbl_802D7060: +/* 802D7060 002D3FA0 80 03 00 04 */ lwz r0, 4(r3) +/* 802D7064 002D3FA4 54 00 47 7B */ rlwinm. r0, r0, 8, 0x1d, 0x1d +/* 802D7068 002D3FA8 40 82 00 20 */ bne lbl_802D7088 +/* 802D706C 002D3FAC 7F C3 F3 78 */ mr r3, r30 +/* 802D7070 002D3FB0 7F E4 FB 78 */ mr r4, r31 +/* 802D7074 002D3FB4 81 9E 00 00 */ lwz r12, 0(r30) +/* 802D7078 002D3FB8 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802D707C 002D3FBC 7D 89 03 A6 */ mtctr r12 +/* 802D7080 002D3FC0 4E 80 04 21 */ bctrl +/* 802D7084 002D3FC4 48 00 00 24 */ b lbl_802D70A8 +lbl_802D7088: +/* 802D7088 002D3FC8 88 BF 00 07 */ lbz r5, 7(r31) +/* 802D708C 002D3FCC 88 9F 00 06 */ lbz r4, 6(r31) +/* 802D7090 002D3FD0 88 7F 00 04 */ lbz r3, 4(r31) +/* 802D7094 002D3FD4 88 1F 00 05 */ lbz r0, 5(r31) +/* 802D7098 002D3FD8 54 00 80 1E */ slwi r0, r0, 0x10 +/* 802D709C 002D3FDC 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7 +/* 802D70A0 002D3FE0 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17 +/* 802D70A4 002D3FE4 7C A3 03 78 */ or r3, r5, r0 +lbl_802D70A8: +/* 802D70A8 002D3FE8 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802D70AC 002D3FEC 83 C1 00 08 */ lwz r30, 8(r1) +/* 802D70B0 002D3FF0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802D70B4 002D3FF4 7C 08 03 A6 */ mtlr r0 +/* 802D70B8 002D3FF8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802D70BC 002D3FFC 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h b/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h index 30bfb85ba8..9fc8e4c249 100644 --- a/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h +++ b/include/JSystem/JKernel/JKRSolidHeap/JKRSolidHeap.h @@ -5,8 +5,7 @@ #include "JSystem/JKernel/JKRHeap/JKRHeap.h" class JKRSolidHeap : public JKRHeap { - public: - void create(u32, JKRHeap*, bool); + protected: JKRSolidHeap(void*, u32, JKRHeap*, bool); virtual ~JKRSolidHeap(void); @@ -15,28 +14,33 @@ class JKRSolidHeap : public JKRHeap { void allocFromTail(u32, int); public: - virtual u32 getHeapType(void); - virtual bool check(void); - virtual bool dump(void); - virtual void do_destroy(void); - virtual void* do_alloc(u32, int); - virtual void do_free(void*); - virtual void do_freeAll(void); - virtual void do_freeTail(void); - virtual void do_fillFreeArea(void); - virtual s32 do_resize(void*, u32); - virtual s32 do_getSize(void*); - virtual s32 do_getFreeSize(void); - virtual void* do_getMaxFreeBlock(void); - virtual s32 do_getTotalFreeSize(void); - virtual void state_register(JKRHeap::TState*, u32) const; - virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; + /* vt[04] */ virtual u32 getHeapType(void); /* override */ + /* vt[05] */ virtual bool check(void); /* override */ + + /* vt[07] */ virtual bool dump(void); /* override */ + /* vt[08] */ virtual void do_destroy(void); /* override */ + /* vt[09] */ virtual void* do_alloc(u32, int); /* override */ + /* vt[10] */ virtual void do_free(void*); /* override */ + /* vt[11] */ virtual void do_freeAll(void); /* override */ + /* vt[12] */ virtual void do_freeTail(void); /* override */ + /* vt[13] */ virtual void do_fillFreeArea(void); /* override */ + /* vt[14] */ virtual s32 do_resize(void*, u32); /* override */ + /* vt[15] */ virtual s32 do_getSize(void*); /* override */ + /* vt[16] */ virtual s32 do_getFreeSize(void); /* override */ + /* vt[17] */ virtual void* do_getMaxFreeBlock(void); /* override */ + /* vt[18] */ virtual s32 do_getTotalFreeSize(void); /* override */ + + /* vt[21] */ virtual void state_register(JKRHeap::TState*, u32) const; /* override */ + /* vt[22] */ virtual bool state_compare(JKRHeap::TState const&, JKRHeap::TState const&) const; /* override */ private: u32 mFreeSize; void* mSolidStart; void* mSolidEnd; u32 field_0x78; + + public: + static void create(u32, JKRHeap*, bool); }; #endif diff --git a/include/JSystem/JKernel/JKRThread/JKRThread.h b/include/JSystem/JKernel/JKRThread/JKRThread.h index 9efba043c4..d083da9845 100644 --- a/include/JSystem/JKernel/JKRThread/JKRThread.h +++ b/include/JSystem/JKernel/JKRThread/JKRThread.h @@ -15,22 +15,16 @@ class JKRThread : JKRDisposer { JKRThread(OSThread* thread, int message_count); virtual ~JKRThread(); + /* vt[03] */ virtual void* run(); + void setCommon_mesgQueue(JKRHeap* heap, int message_count); void setCommon_heapSpecified(JKRHeap* heap, u32 stack_size, int param_3); OSThread* getThreadRecord() { - return this->mOSThread; + return this->mOSThread; } - static void* start(void* param_1); - static JKRThread* searchThread(OSThread* thread); - static JSUList* getList() { - return &lbl_8043428C; - } - - virtual void* run(); - - public: + private: JSULink mThreadListLink; JKRHeap* mHeap; OSThread* mOSThread; @@ -47,6 +41,13 @@ class JKRThread : JKRDisposer { u32 field_0x70; JKRHeap* field_0x74; JKRHeap* field_0x78; + + public: + static void* start(void* param_1); + static JKRThread* searchThread(OSThread* thread); + static JSUList* getList() { + return &lbl_8043428C; + } }; class JKRThreadSwitch { diff --git a/include/JSystem/JSupport/JSUFileInputStream/JSUFileInputStream.h b/include/JSystem/JSupport/JSUFileInputStream/JSUFileInputStream.h new file mode 100644 index 0000000000..5ff4335683 --- /dev/null +++ b/include/JSystem/JSupport/JSUFileInputStream/JSUFileInputStream.h @@ -0,0 +1,12 @@ +#ifndef __JSUFILEINPUTSTREAM_H__ +#define __JSUFILEINPUTSTREAM_H__ + +#include "dolphin/types.h" + +class JSUFileInputStream { + public: + virtual ~JSUFileInputStream(); + +}; + +#endif diff --git a/include/JSystem/JSupport/JSURandomInputStream/JSURandomInputStream.h b/include/JSystem/JSupport/JSURandomInputStream/JSURandomInputStream.h new file mode 100644 index 0000000000..25aea926fc --- /dev/null +++ b/include/JSystem/JSupport/JSURandomInputStream/JSURandomInputStream.h @@ -0,0 +1,12 @@ +#ifndef __JSURANDOMINPUTSTREAM_H__ +#define __JSURANDOMINPUTSTREAM_H__ + +#include "dolphin/types.h" + +class JSURandomInputStream { + public: + void getAvailable(void) const; +}; + + +#endif diff --git a/include/functions.h b/include/functions.h index 4e91598ed2..63dac4c62e 100644 --- a/include/functions.h +++ b/include/functions.h @@ -205,11 +205,53 @@ extern "C" { void JKRArchive_NS_findPtrResource(void); void JKRArchive_NS_findTypeResource(void); void JKRCompArchive(void); - void JKRDvdArchive(void); - void JKRMemArchive(void); - void JKRMemArchive_X1_(void); void func_80365470(void); + + void DCInvalidateRange(void); + void JKRDvdRipper_NS_loadToMainRAM_X1_(void); + void func_80003458(void); + void func_803621CC(void); + void func_80362218(void); + void func_803650D0(void); + + void JKRDecomp_NS_orderSync(void); + void func_80003540(void); + + void JKRAramHeap_NS_alloc(void); + void JKRAram_NS_aramToMainRam(void); + void JKRDvdAramRipper_NS_loadToAram(void); + void JKRAram_NS_mainRamToAram(void); + void JKRAramPiece_NS_sendCommand(void); + + void DCInvalidateRange(void); + void DCStoreRangeNoSync(void); + void __RAS_OSDisableInterrupts_begin(void); + void func_80003540(void); + void func_80361C24(void); + void func_803621B0(void); + void func_803621C4(void); + void func_803621C8(void); + void func_803621FC(void); + void func_80362210(void); + void func_80362214(void); + + void ARQPostRequest(void); + void DCStoreRange(void); + + void JSUInputStream_NS_read(void); + void JSURandomInputStream_NS_seek(void); + + void DCInvalidateRange(void); + void JSUInputStream_NS_dtor(void); + void JSUFileInputStream_ct(void); + + void ARAlloc(void); + void ARGetSize(void); + void ARInit(void); + void ARQInit(void); + void DCStoreRangeNoSync(void); + void __RAS_OSDisableInterrupts_begin(void); } // DVD @@ -689,3 +731,178 @@ extern "C" { void store__Q210JKRArchive8CArcNameFPCc(void); void store__Q210JKRArchive8CArcNameFPCcc(void); }; + +// JSystem/JKernel/JKRDvdArchive +extern "C" { + void __ct__13JKRDvdArchiveFlQ210JKRArchive15EMountDirection(void); + void __dt__13JKRDvdArchiveFv(void); + void fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); + void fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); + void fetchResource_subroutine__13JKRDvdArchiveFlUlUlP7JKRHeapiiPPUc(void); + void fetchResource_subroutine__13JKRDvdArchiveFlUlUlPUcUlii(void); + void getExpandedResSize__13JKRDvdArchiveCFPCv(void); + void open__13JKRDvdArchiveFl(void); +}; + +// JSystem/JKernel/JKRMemArchive +extern "C" { + void __ct__13JKRMemArchiveFPvUl15JKRMemBreakFlag(void); + void __ct__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(void); + void __dt__13JKRMemArchiveFv(void); + void fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); + void fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); + void fetchResource_subroutine__13JKRMemArchiveFPUcUlPUcUli(void); + void getExpandedResSize__13JKRMemArchiveCFPCv(void); + void open__13JKRMemArchiveFPvUl15JKRMemBreakFlag(void); + void open__13JKRMemArchiveFlQ210JKRArchive15EMountDirection(void); + void removeResourceAll__13JKRMemArchiveFv(void); + void removeResource__13JKRMemArchiveFPv(void); +}; + +// JSystem/JKernel/JKRAramArchive +extern "C" { + void __ct__14JKRAramArchiveFlQ210JKRArchive15EMountDirection(void); + void __dt__14JKRAramArchiveFv(void); + void __dt__7JKRFileFv(void); + void fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); + void fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); + void fetchResource_subroutine__14JKRAramArchiveFUlUlP7JKRHeapiPPUc(void); + void fetchResource_subroutine__14JKRAramArchiveFUlUlPUcUli(void); + void getAramAddress_Entry__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntry(void); + void getAramAddress__14JKRAramArchiveFPCc(void); + void getExpandedResSize__14JKRAramArchiveCFPCv(void); + void open__14JKRAramArchiveFl(void); +}; + +// JSystem/JKernel/JKRCompArchive +extern "C" { + void __ct__14JKRCompArchiveFlQ210JKRArchive15EMountDirection(void); + void __dt__14JKRCompArchiveFv(void); + void fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl(void); + void fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl(void); + void getExpandedResSize__14JKRCompArchiveCFPCv(void); + void open__14JKRCompArchiveFl(void); + void removeResourceAll__14JKRCompArchiveFv(void); + void removeResource__14JKRCompArchiveFPv(void); +}; + +// JSystem/JKernel/JKRDecomp +extern "C" { + void __ct__16JKRDecompCommandFv(void); + void __ct__9JKRDecompFl(void); + void __dt__16JKRDecompCommandFv(void); + void __dt__9JKRDecompFv(void); + void checkCompressed__9JKRDecompFPUc(void); + void create__9JKRDecompFl(void); + void decodeSZP__9JKRDecompFPUcPUcUlUl(void); + void decodeSZS__9JKRDecompFPUcPUcUlUl(void); + void decode__9JKRDecompFPUcPUcUlUl(void); + void orderAsync__9JKRDecompFPUcPUcUlUlPFUl_v(void); + void orderSync__9JKRDecompFPUcPUcUlUl(void); + void prepareCommand__9JKRDecompFPUcPUcUlUlPFUl_v(void); + void run__9JKRDecompFv(void); + void sendCommand__9JKRDecompFP16JKRDecompCommand(void); + void sync__9JKRDecompFP16JKRDecompCommandi(void); +}; + +// JSystem/JKernel/JKRDvdRipper +extern "C" { + void JKRDecompressFromDVD__FP10JKRDvdFilePvUlUlUlUlPUl(void); + // void __dt__23JSUList<12JKRDMCommand>Fv(void); + void __sinit_JKRDvdRipper_cpp(void); + void decompSZS_subroutine__FPUcPUc(void); + void firstSrcData__Fv(void); + void isErrorRetry__12JKRDvdRipperFv(void); + void loadToMainRAM__12JKRDvdRipperFP10JKRDvdFilePUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void); + void loadToMainRAM__12JKRDvdRipperFPCcPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void); + void loadToMainRAM__12JKRDvdRipperFlPUc15JKRExpandSwitchUlP7JKRHeapQ212JKRDvdRipper15EAllocDirectionUlPiPUl(void); + void nextSrcData__FPUc(void); +}; + +// JSystem/JKernel/JKRAramBlock +extern "C" { + void __ct__12JKRAramBlockFUlUlUlUcb(void); + void __dt__12JKRAramBlockFv(void); + void allocHead__12JKRAramBlockFUlUcP11JKRAramHeap(void); + void allocTail__12JKRAramBlockFUlUcP11JKRAramHeap(void); +}; + +// JSystem/JKernel/JKRAramHeap +extern "C" { + void __ct__11JKRAramHeapFUlUl(void); + void __dt__11JKRAramHeapFv(void); + // void __dt__23JSUList<12JKRAramBlock>Fv(void); + void __sinit_JKRAramHeap_cpp(void); + void allocFromHead__11JKRAramHeapFUl(void); + void allocFromTail__11JKRAramHeapFUl(void); + void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode(void); + void dump__11JKRAramHeapFv(void); + void getFreeSize__11JKRAramHeapFv(void); + void getTotalFreeSize__11JKRAramHeapFv(void); +}; + +// JSystem/JKernel/JKRAramPiece +extern "C" { + void __ct__12JKRAMCommandFv(void); + void __dt__12JKRAMCommandFv(void); + void __sinit_JKRAramPiece_cpp(void); + void doneDMA__12JKRAramPieceFUl(void); + void orderAsync__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v(void); + void orderSync__12JKRAramPieceFiUlUlUlP12JKRAramBlock(void); + void prepareCommand__12JKRAramPieceFiUlUlUlP12JKRAramBlockPFUl_v(void); + void sendCommand__12JKRAramPieceFP12JKRAMCommand(void); + void startDMA__12JKRAramPieceFP12JKRAMCommand(void); + void sync__12JKRAramPieceFP12JKRAMCommandi(void); +}; + +// JSystem/JKernel/JKRAramStream +extern "C" { + void __ct__13JKRAramStreamFl(void); + void __ct__20JKRAramStreamCommandFv(void); + void __dt__13JKRAramStreamFv(void); + void create__13JKRAramStreamFl(void); + void getAvailable__20JSURandomInputStreamCFv(void); + void readFromAram__13JKRAramStreamFv(void); + void run__13JKRAramStreamFv(void); + void setTransBuffer__13JKRAramStreamFPUcUlP7JKRHeap(void); + void sync__13JKRAramStreamFP20JKRAramStreamCommandi(void); + void writeToAram__13JKRAramStreamFP20JKRAramStreamCommand(void); + void write_StreamToAram_Async__13JKRAramStreamFP18JSUFileInputStreamUlUlUlPUl(void); +}; + +// JSystem/JKernel/JKRDvdAramRipper +extern "C" { + void JKRDecompressFromDVDToAram__FP10JKRDvdFileUlUlUlUlUlPUl(void); + void __ct__12JKRADCommandFv(void); + void __dt__12JKRADCommandFv(void); + void __dt__18JSUFileInputStreamFv(void); + // void __dt__23JSUList<12JKRADCommand>Fv(void); + void __sinit_JKRDvdAramRipper_cpp(void); + void callCommand_Async__16JKRDvdAramRipperFP12JKRADCommand(void); + void decompSZS_subroutine__FPUcUl(void); + void dmaBufferFlush__FUl(void); + void firstSrcData__Fv(void); + void loadToAram_Async__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchPFUl_vUlUlPUl(void); + void loadToAram__16JKRDvdAramRipperFP10JKRDvdFileUl15JKRExpandSwitchUlUlPUl(void); + void loadToAram__16JKRDvdAramRipperFlUl15JKRExpandSwitchUlUlPUl(void); + void nextSrcData__FPUc(void); + void syncAram__16JKRDvdAramRipperFP12JKRADCommandi(void); +}; + +// JSystem/JKernel/JKRAram +extern "C" { + void JKRDecompressFromAramToMainRam__FUlPvUlUlUlPUl(void); + void __ct__7JKRAramFUlUll(void); + // void __dt__23JSUList<12JKRAMCommand>Fv(void); + void __dt__7JKRAramFv(void); + void __sinit_JKRAram_cpp(void); + void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl(void); + void changeGroupIdIfNeed__7JKRAramFPUci(void); + void checkOkAddress__7JKRAramFPUcUlP12JKRAramBlockUl(void); + void create__7JKRAramFUlUllll(void); + void decompSZS_subroutine__FPUcPUc(void); + void firstSrcData__Fv(void); + void mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl(void); + void nextSrcData__FPUc(void); + void run__7JKRAramFv(void); +}; \ No newline at end of file diff --git a/include/m_Do/m_Do_main/asm/func_80005AD8.s b/include/m_Do/m_Do_main/asm/func_80005AD8.s index 7f3c6c8ec6..feb4224288 100644 --- a/include/m_Do/m_Do_main/asm/func_80005AD8.s +++ b/include/m_Do/m_Do_main/asm/func_80005AD8.s @@ -31,7 +31,7 @@ lbl_80005B1C: /* 80005B4C 00002A8C 4C C6 31 82 */ crclr 6 /* 80005B50 00002A90 48 2D A9 E1 */ bl JUTReport__FiiPCce /* 80005B54 00002A94 7F 23 CB 78 */ mr r3, r25 -/* 80005B58 00002A98 48 2C D5 DD */ bl JKRAramHeap_NS_getFreeSize +/* 80005B58 00002A98 48 2C D5 DD */ bl getFreeSize__11JKRAramHeapFv /* 80005B5C 00002A9C 7C 66 1B 78 */ mr r6, r3 /* 80005B60 00002AA0 38 60 01 DB */ li r3, 0x1db /* 80005B64 00002AA4 38 80 00 72 */ li r4, 0x72 @@ -48,7 +48,7 @@ lbl_80005B1C: /* 80005B90 00002AD0 4C C6 31 82 */ crclr 6 /* 80005B94 00002AD4 48 2D A9 9D */ bl JUTReport__FiiPCce /* 80005B98 00002AD8 7F 23 CB 78 */ mr r3, r25 -/* 80005B9C 00002ADC 48 2C D6 11 */ bl JKRAramHeap_NS_getTotalFreeSize +/* 80005B9C 00002ADC 48 2C D6 11 */ bl getTotalFreeSize__11JKRAramHeapFv /* 80005BA0 00002AE0 7C 66 1B 78 */ mr r6, r3 /* 80005BA4 00002AE4 38 60 01 DB */ li r3, 0x1db /* 80005BA8 00002AE8 38 80 00 8E */ li r4, 0x8e diff --git a/include/m_Do/m_Do_main/asm/func_80005D4C.s b/include/m_Do/m_Do_main/asm/func_80005D4C.s index 46268ebcbe..86c2fb0558 100644 --- a/include/m_Do/m_Do_main/asm/func_80005D4C.s +++ b/include/m_Do/m_Do_main/asm/func_80005D4C.s @@ -198,7 +198,7 @@ lbl_80006014: /* 80006020 00002F60 80 63 00 94 */ lwz r3, 0x94(r3) /* 80006024 00002F64 28 03 00 00 */ cmplwi r3, 0 /* 80006028 00002F68 41 82 00 08 */ beq lbl_80006030 -/* 8000602C 00002F6C 48 2C D1 ED */ bl JKRAramHeap_NS_dump +/* 8000602C 00002F6C 48 2C D1 ED */ bl dump__11JKRAramHeapFv lbl_80006030: /* 80006030 00002F70 48 25 C4 41 */ bl DynamicModuleControlBase_NS_dump /* 80006034 00002F74 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha diff --git a/include/os/OS.h b/include/os/OS.h index 709347d7a7..65e3bc2b3b 100644 --- a/include/os/OS.h +++ b/include/os/OS.h @@ -41,7 +41,8 @@ extern "C" { void OSSetArenaHi(u32 param_1); void OSGetTick(void); - + void OSRestoreInterrupts(void); + void OSReport(void); void OSCreateThread(OSThread* thread, void* (*func)(void*), void* param, void* stack, u32 stackSize, int param_6, int param_7); diff --git a/include/variables.h b/include/variables.h index 43e9cfb5b8..ba0796521a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -15,7 +15,6 @@ extern u8 lbl_803A2EF4; extern u8 lbl_803A2EE0; extern u8 lbl_80450B19; extern u8 lbl_80450588; -extern u8 lbl_804513C8; extern u8 lbl_804511B8; extern u8 lbl_80450B20; extern u8 lbl_80451A00; @@ -263,3 +262,118 @@ extern u8 lbl_8037B0D0[0x8]; class JKRThread; extern JSUList lbl_8043428C; // JSUList JKRThread::sThreadList +extern u8 lbl_803CC398; // JKRDvdArchive::__vt +extern u8 lbl_8039D1B0; // "JKRDvdArchive.cpp" + +extern u8 lbl_803CC2D8; // JKRMemArchive::__vt +extern u8 lbl_8039D160; // "JKRMemArchive.cpp" + +extern u8 lbl_803CC348; // JKRAramArchive::__vt +extern u8 lbl_8039D188; // "JKRAramArchive.cpp" + +extern u8 lbl_803CC3E8; // JKRCompArchive::__vt +extern u8 lbl_8039D220; // "JKRCompArchive.cpp" + +extern u8 lbl_803CC460[32]; // JKRDecomp::sMessageBuffer +extern OSMessageQueue lbl_803CC480; // JKRDecomp::sMessageQueue +extern u8 lbl_804514B0; // JKRDecomp::sDecompObject +extern u8 lbl_803CC4A0; // JKRDecomp::__vt + +extern u8 lbl_80434378; // JKernel::@491 (global destructor chain) +extern u8 lbl_80451428; // JKernel::szpBuf +extern u8 lbl_8045142C; // JKernel::szpEnd +extern u8 lbl_80451430; // JKernel::refBuf +extern u8 lbl_80451434; // JKernel::refEnd +extern u8 lbl_80451438; // JKernel::refCurrent +extern u8 lbl_8045143C; // JKernel::srcOffset +extern u8 lbl_80451440; // JKernel::transLeft +extern u8 lbl_80451444; // JKernel::srcLimit +extern u8 lbl_80451448; // JKernel::srcFile +extern u8 lbl_8045144C; // JKernel::fileOffset +extern u8 lbl_80451450; // JKernel::readCount +extern u8 lbl_80451454; // JKernel::maxDest +extern u8 lbl_8045145C; // JKernel::tsPtr +extern u8 lbl_80451458; // DAT_80451458 (init global mutex) +extern u8 lbl_80451460; // JKernel::tsArea +class JKRDMCommand; +extern JSUList lbl_80434384; // JKRDvdRipper::sDvdAsyncList +extern u8 lbl_80434390; // JKernel::decompMutex +extern u8 lbl_804508C8; +extern u8 lbl_804508CC; // JKRDvdRipper::sSZSBufferSize +extern u8 lbl_8039D290; // "JKRDvdRipper.cpp" + +extern u8 lbl_803CC178; // JKRAramBlock::__vt + +extern u8 lbl_803CC168; // JKRAramHeap::__vt +extern u8 lbl_80434300; // JKernel::@297 (global destructor chain) +class JKRAramBlock; +extern JSUList lbl_8043430C; // JKRAramHeap::sAramList + +extern u8 lbl_80434324; // JKRAramPiece::sAramPieceCommandList +extern u8 lbl_80434330; // JKRAramPiece::mMutex +extern u8 lbl_8039D0B8; // "direction = %x\n" +extern u8 lbl_80434318; // JKernel::@492 (global destructor chain) +extern u8 lbl_803CC138; // JKRAram::sMessageQueue + +extern u8 lbl_80451408; // JKRAramStream::sAramStreamObject +extern u8 lbl_80451414; // JKRAramStream::transHeap +extern u8 lbl_8039D120; // "JKRAramStream.cpp" +extern u8 lbl_8045140C; // JKRAramStream::transBuffer +extern u8 lbl_80451410; // JKRAramStream::transSize +extern u8 lbl_803CC1B8; // JKRAramStream::__vt +extern u8 lbl_803CC198; // JKRAramStream::sMessageQueue +extern u8 lbl_803CC188; // JKRAramStream::sMessageBuffer + +extern u8 lbl_804508D0; // DAT_804508d0 +extern u8 lbl_80451468; // JKernel::szpBuf (static?) +extern u8 lbl_8045146C; // JKernel::szpEnd (static?) +extern u8 lbl_80451470; // JKernel::refBuf (static?) +extern u8 lbl_80451474; // JKernel::refEnd (static?) +extern u8 lbl_80451478; // JKernel::refCurrent (static?) +extern u8 lbl_8045147C; // JKernel::dmaBuf (static?) +extern u8 lbl_80451480; // JKernel::dmaEnd (static?) +extern u8 lbl_80451484; // JKernel::dmaCurrent (static?) +extern u8 lbl_80451488; // JKernel::srcOffset (static?) +extern u8 lbl_8045148C; // JKernel::transLeft (static?) +extern u8 lbl_80451490; // JKernel::srcLimit (static?) +extern u8 lbl_80451494; // JKernel::srcFile (static?) +extern u8 lbl_80451498; // JKernel::fileOffset (static?) +extern u8 lbl_8045149C; // JKernel::readCount (static?) +extern u8 lbl_804514A0; // JKernel::maxDest (static?) +extern u8 lbl_804514A4; // DAT_804514a4 (init global mutex) +extern u8 lbl_804514A8; // JKernel::tsPtr (static?) +extern u8 lbl_804514AC; // JKernel::tsArea (static?) + +extern u8 lbl_804508D4; // JKRDvdAramRipper::sSZSBufferSize +extern u8 lbl_803CC4B0; // JSURandomInputStream::__vt +extern u8 lbl_804343A8; // JKernel::@301 (global destructor chain) +extern u8 lbl_804343B4; // JKRDvdAramRipper::sDvdAramAsyncList +extern u8 lbl_804343C0; // JKernel::decompMutex +extern u8 lbl_803CC518; // JSUFileInputStream::__vt + +class JKRAram; +extern JKRAram* lbl_804513C8; // JKRAram::sAramObject +extern u8 lbl_804513CC; // JKernel::szpBuf (static?) +extern u8 lbl_804513D0; // JKernel::szpEnd (static?) +extern u8 lbl_804513D4; // JKernel::refBuf (static?) +extern u8 lbl_804513D8; // JKernel::refEnd (static?) +extern u8 lbl_804513DC; // JKernel::refCurrent (static?) +extern u8 lbl_804513E0; // JKernel::srcOffset (static?) +extern u8 lbl_804513E4; // JKernel::transLeft (static?) +extern u8 lbl_804513E8; // JKernel::srcLimit (static?) +extern u8 lbl_804513EC; // JKernel::srcAddress (static?) +extern u8 lbl_804513F0; // JKernel::fileOffset (static?) +extern u8 lbl_804513F4; // JKernel::readCount (static?) +extern u8 lbl_804513F8; // JKernel::maxDest (static?) +extern u8 lbl_804513FC; // DAT_804513fc (init global mutex) +extern u8 lbl_80451400; // JKernel::tsPtr (static?) +extern u8 lbl_80451404; // JKernel::tsArea (static?) + +extern u8 lbl_803CC158; // JKRAram::__vt +extern u8 lbl_8039D078; // "JKRAram.cpp" +extern u8 lbl_804342D0; // JKernel::@492 (global destructor chain) +extern u8 lbl_803CC138; // JKRAram::sMessageQueue +extern u8 lbl_804342DC; // JKRAram::sAramCommandList +extern u8 lbl_804342E8; // JKernel::decompMutex (static?) +extern u8 lbl_804508B8; // JKRAram::sSZSBufferSize +extern u8 lbl_803CC128; // JKRAram::sMessageBuffer diff --git a/ldscript.lcf b/ldscript.lcf index bea883229c..c05bae80e5 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -755,6 +755,7 @@ SECTIONS { "__vt__12J3DAnmLoader" = 0x803cf260; "__vt__20J3DAnmVisibilityFull" = 0x803cf274; +"__dt__7JKRFileFv" = 0x802D7B90; } FORCEACTIVE { set__17dSv_horse_place_cFPCcRC4cXyzsSc @@ -1263,6 +1264,42 @@ setExpandSize__10JKRArchiveFPQ210JKRArchive12SDIFileEntryUl item_getcheck_func_LV2_BOSS_KEY__Fv item_getcheck_func_KEY_OF_FILONE__Fv isInsect__FUc +__dt__13JKRDvdArchiveFv +fetchResource__13JKRDvdArchiveFPQ210JKRArchive12SDIFileEntryPUl +fetchResource__13JKRDvdArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +getExpandedResSize__13JKRDvdArchiveCFPCv +__dt__13JKRMemArchiveFv +fetchResource__13JKRMemArchiveFPQ210JKRArchive12SDIFileEntryPUl +fetchResource__13JKRMemArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +getExpandedResSize__13JKRMemArchiveCFPCv +removeResourceAll__13JKRMemArchiveFv +removeResource__13JKRMemArchiveFPv +__dt__14JKRAramArchiveFv +__dt__7JKRFileFv +fetchResource__14JKRAramArchiveFPQ210JKRArchive12SDIFileEntryPUl +fetchResource__14JKRAramArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +getExpandedResSize__14JKRAramArchiveCFPCv +__dt__14JKRCompArchiveFv +fetchResource__14JKRCompArchiveFPQ210JKRArchive12SDIFileEntryPUl +fetchResource__14JKRCompArchiveFPvUlPQ210JKRArchive12SDIFileEntryPUl +getExpandedResSize__14JKRCompArchiveCFPCv +removeResourceAll__14JKRCompArchiveFv +removeResource__14JKRCompArchiveFPv +__dt__9JKRDecompFv +run__9JKRDecompFv +__sinit_JKRDvdRipper_cpp +__dt__12JKRAramBlockFv +__dt__11JKRAramHeapFv +__sinit_JKRAramHeap_cpp +__sinit_JKRAramPiece_cpp +__dt__13JKRAramStreamFv +getAvailable__20JSURandomInputStreamCFv +run__13JKRAramStreamFv +__dt__18JSUFileInputStreamFv +__sinit_JKRDvdAramRipper_cpp +__dt__7JKRAramFv +__sinit_JKRAram_cpp +run__7JKRAramFv } /* .init 80003100 - 80005600 diff --git a/libs/JSystem/JKernel/JKRAram.cpp b/libs/JSystem/JKernel/JKRAram.cpp index 4bf93c8658..e04efa172c 100644 --- a/libs/JSystem/JKernel/JKRAram.cpp +++ b/libs/JSystem/JKernel/JKRAram.cpp @@ -1 +1,74 @@ -// ok +#include "JSystem/JKernel/JKRAram/JKRAram.h" +#include "global.h" + +asm void JKRAram::create(u32, u32, long, long, long) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D1FA4.s" +} + +asm JKRAram::JKRAram(u32, u32, long) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D2040.s" +} + +asm JKRAram::~JKRAram() { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D214C.s" +} + +asm void* JKRAram::run(void) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D21DC.s" +} + +asm void JKRAram::checkOkAddress(u8 *, u32, JKRAramBlock *, u32) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D2248.s" +} + +asm void JKRAram::changeGroupIdIfNeed(u8 *, int) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D22DC.s" +} + +asm void JKRAram::mainRamToAram(u8 *, u32, u32, JKRExpandSwitch, u32, JKRHeap *, int, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D233C.s" +} + +asm void JKRAram::aramToMainRam(u32, u8 *, u32, JKRExpandSwitch, u32, JKRHeap *, int, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D25B4.s" +} + +asm void JKRDecompressFromAramToMainRam(u32, void *, u32, u32, u32, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D2830.s" +} + +asm void decompSZS_subroutine(u8 *, u8 *) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D29A0.s" +} + +asm void firstSrcData(void) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D2C40.s" +} + +asm void nextSrcData(u8 *) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D2CE4.s" +} + +#if 0 +asm void __sinit_JKRAram_cpp { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D2DAC.s" +} + +asm JSUList<12JKRAMCommand>::~JSUList<12JKRAMCommand>(void) { + nofralloc + #include "JSystem/JKernel/JKRAram/asm/func_802D2DF0.s" +} +#endif diff --git a/libs/JSystem/JKernel/JKRAramArchive.cpp b/libs/JSystem/JKernel/JKRAramArchive.cpp index 4bf93c8658..9c9c47ca4d 100644 --- a/libs/JSystem/JKernel/JKRAramArchive.cpp +++ b/libs/JSystem/JKernel/JKRAramArchive.cpp @@ -1 +1,61 @@ -// ok +#include "JSystem/JKernel/JKRAramArchive/JKRAramArchive.h" +#include "global.h" + +#include "JSystem/JKernel/JKRFile/JKRFile.h" + +asm JKRAramArchive::JKRAramArchive(long, JKRArchive::EMountDirection) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D70C0.s" +} + +asm JKRAramArchive::~JKRAramArchive() { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D7168.s" +} + +asm void JKRAramArchive::open(long) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D72A8.s" +} + +asm void JKRAramArchive::fetchResource(JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D75E0.s" +} + +asm void JKRAramArchive::fetchResource(void *, u32, JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D76F4.s" +} + +asm void JKRAramArchive::getAramAddress_Entry(JKRArchive::SDIFileEntry *) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D77F8.s" +} + +asm void JKRAramArchive::getAramAddress(char const *) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D781C.s" +} + +asm void JKRAramArchive::fetchResource_subroutine(u32, u32, u8 *, u32, int) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D7858.s" +} + +asm void JKRAramArchive::fetchResource_subroutine(u32, u32, JKRHeap *, int, u8 **) { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D7914.s" +} + +asm void JKRAramArchive::getExpandedResSize(void const *) const { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D7A64.s" +} + +#if 0 +asm JKRFile::~JKRFile() { + nofralloc + #include "JSystem/JKernel/JKRAramArchive/asm/func_802D7B90.s" +} +#endif diff --git a/libs/JSystem/JKernel/JKRAramBlock.cpp b/libs/JSystem/JKernel/JKRAramBlock.cpp index 4bf93c8658..39aa6a2786 100644 --- a/libs/JSystem/JKernel/JKRAramBlock.cpp +++ b/libs/JSystem/JKernel/JKRAramBlock.cpp @@ -1 +1,23 @@ -// ok +#include "JSystem/JKernel/JKRAramBlock/JKRAramBlock.h" +#include "global.h" + +asm JKRAramBlock::JKRAramBlock(u32, u32, u32, u8, bool) { + nofralloc + #include "JSystem/JKernel/JKRAramBlock/asm/func_802D3304.s" +} + +asm JKRAramBlock::~JKRAramBlock(void) { + nofralloc + #include "JSystem/JKernel/JKRAramBlock/asm/func_802D3378.s" +} + +asm void JKRAramBlock::allocHead(u32, u8, JKRAramHeap *) { + nofralloc + #include "JSystem/JKernel/JKRAramBlock/asm/func_802D3434.s" +} + +asm void JKRAramBlock::allocTail(u32, u8, JKRAramHeap *) { + nofralloc + #include "JSystem/JKernel/JKRAramBlock/asm/func_802D34D0.s" +} + diff --git a/libs/JSystem/JKernel/JKRAramHeap.cpp b/libs/JSystem/JKernel/JKRAramHeap.cpp index 4bf93c8658..8549a2ec75 100644 --- a/libs/JSystem/JKernel/JKRAramHeap.cpp +++ b/libs/JSystem/JKernel/JKRAramHeap.cpp @@ -1 +1,54 @@ -// ok +#include "JSystem/JKernel/JKRAramHeap/JKRAramHeap.h" +#include "global.h" + +asm JKRAramHeap::JKRAramHeap(u32, u32) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D2E44.s" +} + +asm JKRAramHeap::~JKRAramHeap(void) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D2F14.s" +} + +asm void JKRAramHeap::alloc(u32, JKRAramHeap::EAllocMode) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D2FBC.s" +} + +asm void JKRAramHeap::allocFromHead(u32) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D3034.s" +} + +asm void JKRAramHeap::allocFromTail(u32) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D30BC.s" +} + +asm void JKRAramHeap::getFreeSize(void) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D3134.s" +} + +asm void JKRAramHeap::getTotalFreeSize(void) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D31AC.s" +} + +asm void JKRAramHeap::dump(void) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D3218.s" +} + +#if 0 +asm void __sinit_JKRAramHeap_cpp { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D326C.s" +} + +asm JSUList<12JKRAramBlock>::~JSUList<12JKRAramBlock>(void) { + nofralloc + #include "JSystem/JKernel/JKRAramHeap/asm/func_802D32B0.s" +} +#endif diff --git a/libs/JSystem/JKernel/JKRAramPiece.cpp b/libs/JSystem/JKernel/JKRAramPiece.cpp index 4bf93c8658..6596502b09 100644 --- a/libs/JSystem/JKernel/JKRAramPiece.cpp +++ b/libs/JSystem/JKernel/JKRAramPiece.cpp @@ -1 +1,54 @@ -// ok +#include "JSystem/JKernel/JKRAramPiece/JKRAramPiece.h" +#include "global.h" + +asm void JKRAramPiece::prepareCommand(int, u32, u32, u32, JKRAramBlock *, void (*)(u32)) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D3574.s" +} + +asm void JKRAramPiece::sendCommand(JKRAMCommand *) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D35F4.s" +} + +asm void JKRAramPiece::orderAsync(int, u32, u32, u32, JKRAramBlock *, void (*)(u32)) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D3614.s" +} + +asm void JKRAramPiece::sync(JKRAMCommand *, int) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D3770.s" +} + +asm void JKRAramPiece::orderSync(int, u32, u32, u32, JKRAramBlock *) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D3838.s" +} + +asm void JKRAramPiece::startDMA(JKRAMCommand *) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D38CC.s" +} + +asm void JKRAramPiece::doneDMA(u32) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D3944.s" +} + +asm JKRAMCommand::JKRAMCommand(void) { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D39EC.s" +} + +asm JKRAMCommand::~JKRAMCommand() { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D3A5C.s" +} + +#if 0 +asm void __sinit_JKRAramPiece_cpp { + nofralloc + #include "JSystem/JKernel/JKRAramPiece/asm/func_802D3B04.s" +} +#endif diff --git a/libs/JSystem/JKernel/JKRAramStream.cpp b/libs/JSystem/JKernel/JKRAramStream.cpp index 4bf93c8658..3a6a5b82c5 100644 --- a/libs/JSystem/JKernel/JKRAramStream.cpp +++ b/libs/JSystem/JKernel/JKRAramStream.cpp @@ -1 +1,57 @@ -// ok +#include "JSystem/JKernel/JKRAramStream/JKRAramStream.h" +#include "global.h" + +asm void JKRAramStream::create(long) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3B48.s" +} + +asm JKRAramStream::JKRAramStream(long) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3BB8.s" +} + +asm JKRAramStream::~JKRAramStream() { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3C08.s" +} + +asm void* JKRAramStream::run(void) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3C68.s" +} + +asm void JKRAramStream::readFromAram(void) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3CD8.s" +} + +asm void JKRAramStream::writeToAram(JKRAramStreamCommand*) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3CE0.s" +} + +asm void JKRAramStream::write_StreamToAram_Async(JSUFileInputStream*, u32, u32, u32, u32*) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3ED0.s" +} + +asm void JKRAramStream::sync(JKRAramStreamCommand*, int) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D3FA0.s" +} + +asm void JKRAramStream::setTransBuffer(u8*, u32, JKRHeap*) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D4034.s" +} + +asm JKRAramStreamCommand::JKRAramStreamCommand(void) { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D4088.s" +} + +asm void JSURandomInputStream::getAvailable(void) const { + nofralloc +#include "JSystem/JKernel/JKRAramStream/asm/func_802D4094.s" +} diff --git a/libs/JSystem/JKernel/JKRCompArchive.cpp b/libs/JSystem/JKernel/JKRCompArchive.cpp index 4bf93c8658..72d61f057e 100644 --- a/libs/JSystem/JKernel/JKRCompArchive.cpp +++ b/libs/JSystem/JKernel/JKRCompArchive.cpp @@ -1 +1,43 @@ -// ok +#include "JSystem/JKernel/JKRCompArchive/JKRCompArchive.h" +#include "global.h" + +asm JKRCompArchive::JKRCompArchive(long, JKRArchive::EMountDirection) { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D87D4.s" +} + +asm JKRCompArchive::~JKRCompArchive(void) { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D887C.s" +} + +asm void JKRCompArchive::open(long) { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D89BC.s" +} + +asm void JKRCompArchive::fetchResource(JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D8F40.s" +} + +asm void JKRCompArchive::fetchResource(void *, u32, JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D90C0.s" +} + +asm void JKRCompArchive::removeResourceAll(void) { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D9260.s" +} + +asm void JKRCompArchive::removeResource(void *) { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D92F4.s" +} + +asm void JKRCompArchive::getExpandedResSize(void const *) const { + nofralloc + #include "JSystem/JKernel/JKRCompArchive/asm/func_802D9360.s" +} + diff --git a/libs/JSystem/JKernel/JKRDecomp.cpp b/libs/JSystem/JKernel/JKRDecomp.cpp index 4bf93c8658..91dd3014fa 100644 --- a/libs/JSystem/JKernel/JKRDecomp.cpp +++ b/libs/JSystem/JKernel/JKRDecomp.cpp @@ -1 +1,78 @@ -// ok +#include "JSystem/JKernel/JKRDecomp/JKRDecomp.h" +#include "global.h" + +asm void JKRDecomp::create(long) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB680.s" +} + +asm JKRDecomp::JKRDecomp(long) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB6E0.s" +} + +asm JKRDecomp::~JKRDecomp(void) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB730.s" +} + +asm void* JKRDecomp::run(void) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB790.s" +} + +asm void JKRDecomp::prepareCommand(u8 *, u8 *, u32, u32, void (*)(u32)) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB858.s" +} + +asm void JKRDecomp::sendCommand(JKRDecompCommand *) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB8D0.s" +} + +asm void JKRDecomp::orderAsync(u8 *, u8 *, u32, u32, void (*)(u32)) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB900.s" +} + +asm void JKRDecomp::sync(JKRDecompCommand *, int) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB934.s" +} + +asm void JKRDecomp::orderSync(u8 *, u8 *, u32, u32) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB988.s" +} + +asm void JKRDecomp::decode(u8 *, u8 *, u32, u32) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DB9DC.s" +} + +asm void JKRDecomp::decodeSZP(u8 *, u8 *, u32, u32) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DBA58.s" +} + +asm void JKRDecomp::decodeSZS(u8 *, u8 *, u32, u32) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DBC14.s" +} + +asm void JKRDecomp::checkCompressed(u8 *) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DBCF8.s" +} + +asm JKRDecompCommand::JKRDecompCommand(void) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DBD70.s" +} + +asm JKRDecompCommand::~JKRDecompCommand(void) { + nofralloc + #include "JSystem/JKernel/JKRDecomp/asm/func_802DBDC0.s" +} + diff --git a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp index 4bf93c8658..d6968b1b6f 100644 --- a/libs/JSystem/JKernel/JKRDvdAramRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdAramRipper.cpp @@ -1 +1,80 @@ -// ok +#include "JSystem/JKernel/JKRDvdAramRipper/JKRDvdAramRipper.h" +#include "global.h" + +asm void JKRDvdAramRipper::loadToAram(long, u32, JKRExpandSwitch, u32, u32, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA874.s" +} + +asm void JKRDvdAramRipper::loadToAram(JKRDvdFile *, u32, JKRExpandSwitch, u32, u32, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA918.s" +} + +asm void JKRDvdAramRipper::loadToAram_Async(JKRDvdFile *, u32, JKRExpandSwitch, void (*)(u32), u32, u32, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DA9C0.s" +} + +asm void JKRDvdAramRipper::callCommand_Async(JKRADCommand *) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAA74.s" +} + +asm JSUFileInputStream::~JSUFileInputStream(void) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DADD8.s" +} + +asm void JKRDvdAramRipper::syncAram(JKRADCommand *, int) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAE48.s" +} + +asm JKRADCommand::JKRADCommand(void) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF1C.s" +} + +asm JKRADCommand::~JKRADCommand() { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAF5C.s" +} + +asm void JKRDecompressFromDVDToAram(JKRDvdFile *, u32, u32, u32, u32, u32, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DAFE8.s" +} + +asm void decompSZS_subroutine(u8 *, u32) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB160.s" +} + +asm void firstSrcData(void) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB3E8.s" +} + +asm void nextSrcData(u8 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB49C.s" +} + +asm void dmaBufferFlush(u32) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB580.s" +} + +#if 0 +asm void __sinit_JKRDvdAramRipper_cpp { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB5E8.s" +} + +asm JSUList<12JKRADCommand>::~JSUList<12JKRADCommand>(void) { + nofralloc + #include "JSystem/JKernel/JKRDvdAramRipper/asm/func_802DB62C.s" +} +#endif + diff --git a/libs/JSystem/JKernel/JKRDvdArchive.cpp b/libs/JSystem/JKernel/JKRDvdArchive.cpp index 4bf93c8658..869b60fc98 100644 --- a/libs/JSystem/JKernel/JKRDvdArchive.cpp +++ b/libs/JSystem/JKernel/JKRDvdArchive.cpp @@ -1 +1,43 @@ -// ok +#include "JSystem/JKernel/JKRDvdArchive/JKRDvdArchive.h" +#include "global.h" + +asm JKRDvdArchive::JKRDvdArchive(long, JKRArchive::EMountDirection) { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D7BF0.s" +} + +asm JKRDvdArchive::~JKRDvdArchive() { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D7C98.s" +} + +asm void JKRDvdArchive::open(long) { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D7DB4.s" +} + +asm void JKRDvdArchive::fetchResource(JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8050.s" +} + +asm void JKRDvdArchive::fetchResource(void *, u32, JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8168.s" +} + +asm void JKRDvdArchive::fetchResource_subroutine(long, u32, u32, u8 *, u32, int, int) { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D826C.s" +} + +asm void JKRDvdArchive::fetchResource_subroutine(long, u32, u32, JKRHeap *, int, int, u8 **) { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8474.s" +} + +asm void JKRDvdArchive::getExpandedResSize(void const *) const { + nofralloc + #include "JSystem/JKernel/JKRDvdArchive/asm/func_802D8698.s" +} + diff --git a/libs/JSystem/JKernel/JKRDvdFile.cpp b/libs/JSystem/JKernel/JKRDvdFile.cpp index ec3d64c16c..daf6d246f6 100644 --- a/libs/JSystem/JKernel/JKRDvdFile.cpp +++ b/libs/JSystem/JKernel/JKRDvdFile.cpp @@ -1,7 +1,6 @@ #include "JSystem/JKernel/JKRDvdFile/JKRDvdFile.h" #include "global.h" -// #include "JSystem/JKernel/JKRDvdFile/asm/func_802D9584.s" JKRDvdFile::JKRDvdFile() : JKRFile(), mDvdLink(this) { this->initiate(); } @@ -10,7 +9,7 @@ JKRDvdFile::JKRDvdFile() : JKRFile(), mDvdLink(this) { JKRDvdFile::JKRDvdFile(char const* param_1) : JKRFile(), mDvdLink(this) { this->initiate(); bool result = this->open(param_1); - this->mIsOpen = result; + this->mIsAvailable = result; } #else asm JKRDvdFile::JKRDvdFile(char const*) { @@ -23,7 +22,7 @@ asm JKRDvdFile::JKRDvdFile(char const*) { JKRDvdFile::JKRDvdFile(long param_1) : JKRFile(), mDvdLink(this) { this->initiate(); bool result = this->open(param_1); - this->mIsOpen = result; + this->mIsAvailable = result; } #else asm JKRDvdFile::JKRDvdFile(long) { @@ -32,10 +31,16 @@ asm JKRDvdFile::JKRDvdFile(long) { } #endif -// #include "JSystem/JKernel/JKRDvdFile/asm/func_802D9748.s" +#ifndef NONMATCHING JKRDvdFile::~JKRDvdFile() { this->close(); } +#else +asm JKRDvdFile::~JKRDvdFile() { + nofralloc + #include "JSystem/JKernel/JKRDvdFile/asm/func_802D9748.s" +} +#endif // #include "JSystem/JKernel/JKRDvdFile/asm/func_802D97E4.s" void JKRDvdFile::initiate(void) { @@ -51,34 +56,34 @@ void JKRDvdFile::initiate(void) { // #include "JSystem/JKernel/JKRDvdFile/asm/func_802D9850.s" bool JKRDvdFile::open(char const* param_1) { - if (!this->mIsOpen) { - this->mIsOpen = DVDOpen(param_1, this->mDvdCommandBlock); - if (this->mIsOpen) { + if (!this->mIsAvailable) { + this->mIsAvailable = DVDOpen(param_1, this->mDvdCommandBlock); + if (this->mIsAvailable) { lbl_8043436C.append(&this->mDvdLink); this->getStatus(); } } - return this->mIsOpen; + return this->mIsAvailable; } // #include "JSystem/JKernel/JKRDvdFile/asm/func_802D98C4.s" bool JKRDvdFile::open(long param_1) { - if (!this->mIsOpen) { - this->mIsOpen = DVDFastOpen(param_1, this->mDvdCommandBlock); - if (this->mIsOpen) { + if (!this->mIsAvailable) { + this->mIsAvailable = DVDFastOpen(param_1, this->mDvdCommandBlock); + if (this->mIsAvailable) { lbl_8043436C.append(&this->mDvdLink); this->getStatus(); } } - return this->mIsOpen; + return this->mIsAvailable; } // #include "JSystem/JKernel/JKRDvdFile/asm/func_802D9938.s" void JKRDvdFile::close() { - if (this->mIsOpen) { + if (this->mIsAvailable) { s32 result = DVDClose(this->mDvdCommandBlock); if (result != 0) { - this->mIsOpen = false; + this->mIsAvailable = false; lbl_8043436C.remove(&this->mDvdLink); } else { const char* filename = lbl_8039D260; // "JKRDvdFile.cpp" diff --git a/libs/JSystem/JKernel/JKRDvdRipper.cpp b/libs/JSystem/JKernel/JKRDvdRipper.cpp index 4bf93c8658..6634e9d3dc 100644 --- a/libs/JSystem/JKernel/JKRDvdRipper.cpp +++ b/libs/JSystem/JKernel/JKRDvdRipper.cpp @@ -1 +1,54 @@ -// ok +#include "JSystem/JKernel/JKRDvdRipper/JKRDvdRipper.h" +#include "global.h" + +asm void JKRDvdRipper::loadToMainRAM(char const *, u8 *, JKRExpandSwitch, u32, JKRHeap *, JKRDvdRipper::EAllocDirection, u32, int *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802D9B98.s" +} + +asm void JKRDvdRipper::loadToMainRAM(long, u8 *, JKRExpandSwitch, u32, JKRHeap *, JKRDvdRipper::EAllocDirection, u32, int *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802D9C54.s" +} + +asm void JKRDvdRipper::loadToMainRAM(JKRDvdFile *, u8 *, JKRExpandSwitch, u32, JKRHeap *, JKRDvdRipper::EAllocDirection, u32, int *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802D9D10.s" +} + +asm void JKRDecompressFromDVD(JKRDvdFile *, void *, u32, u32, u32, u32, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802DA1E4.s" +} + +asm void decompSZS_subroutine(u8 *, u8 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802DA35C.s" +} + +asm void firstSrcData(void) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802DA60C.s" +} + +asm void nextSrcData(u8 *) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802DA6D8.s" +} + +asm void JKRDvdRipper::isErrorRetry(void) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802DA7D4.s" +} + +#if 0 +asm void __sinit_JKRDvdRipper_cpp { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802DA7DC.s" +} + +asm JSUList<12JKRDMCommand>::~JSUList<12JKRDMCommand>(void) { + nofralloc + #include "JSystem/JKernel/JKRDvdRipper/asm/func_802DA820.s" +} +#endif diff --git a/libs/JSystem/JKernel/JKRFileLoader.cpp b/libs/JSystem/JKernel/JKRFileLoader.cpp index de5ed49098..671e2b69b3 100644 --- a/libs/JSystem/JKernel/JKRFileLoader.cpp +++ b/libs/JSystem/JKernel/JKRFileLoader.cpp @@ -41,13 +41,7 @@ asm JKRFileLoader* JKRFileLoader::findVolume(char const **) { #include "JSystem/JKernel/JKRFileLoader/asm/func_802D4438.s" } -#if 0 -// JSystem\JKernel\JKRFileLoader\asm\func_802D44C4.s:18: illegal object reference in constant expression (lbl_804508C0) -// JSystem\JKernel\JKRFileLoader\asm\func_802D44C4.s:20: illegal object reference in constant expression (lbl_804508C0) -// JSystem\JKernel\JKRFileLoader\asm\func_802D44C4.s:57: illegal object reference in constant expression (lbl_804508C0) -asm void JKRFileLoader::fetchVolumeName(char *, long, char const *) { +asm char* JKRFileLoader::fetchVolumeName(char *, long, char const *) { nofralloc #include "JSystem/JKernel/JKRFileLoader/asm/func_802D44C4.s" -} - -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/libs/JSystem/JKernel/JKRMemArchive.cpp b/libs/JSystem/JKernel/JKRMemArchive.cpp index 4bf93c8658..562457956e 100644 --- a/libs/JSystem/JKernel/JKRMemArchive.cpp +++ b/libs/JSystem/JKernel/JKRMemArchive.cpp @@ -1 +1,58 @@ -// ok +#include "JSystem/JKernel/JKRMemArchive/JKRMemArchive.h" +#include "global.h" + +asm JKRMemArchive::JKRMemArchive(long, JKRArchive::EMountDirection) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D69B8.s" +} + +asm JKRMemArchive::JKRMemArchive(void *, u32, JKRMemBreakFlag) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6A6C.s" +} + +asm JKRMemArchive::~JKRMemArchive() { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6B24.s" +} + +asm void JKRMemArchive::open(long, JKRArchive::EMountDirection) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6BCC.s" +} + +asm void JKRMemArchive::open(void *, u32, JKRMemBreakFlag) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6D30.s" +} + +asm void JKRMemArchive::fetchResource(JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6DDC.s" +} + +asm void JKRMemArchive::fetchResource(void *, u32, JKRArchive::SDIFileEntry *, u32 *) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6E10.s" +} + +asm void JKRMemArchive::removeResourceAll(void) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6ED0.s" +} + +asm void JKRMemArchive::removeResource(void *) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6F20.s" +} + +asm void JKRMemArchive::fetchResource_subroutine(u8 *, u32, u8 *, u32, int) { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D6F5C.s" +} + +asm void JKRMemArchive::getExpandedResSize(void const *) const { + nofralloc + #include "JSystem/JKernel/JKRMemArchive/asm/func_802D7030.s" +} + diff --git a/obj_files.mk b/obj_files.mk index 379c5e2f6f..6c056c6256 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -432,11 +432,14 @@ TEXT_O_FILES := \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRDisposer.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRThread.o \ $(BUILD_DIR)/asm/JKernel/JKRThread.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRAram.o \ $(BUILD_DIR)/asm/JKernel/JKRAram.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRAramHeap.o \ $(BUILD_DIR)/asm/JKernel/JKRAramHeap.o \ - $(BUILD_DIR)/asm/JKernel/JKRAramBlock.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRAramBlock.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRAramPiece.o \ $(BUILD_DIR)/asm/JKernel/JKRAramPiece.o \ - $(BUILD_DIR)/asm/JKernel/JKRAramStream.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRAramStream.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRFileLoader.o \ $(BUILD_DIR)/asm/JKernel/JKRFileLoader.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRFileFinder.o \ @@ -444,16 +447,19 @@ TEXT_O_FILES := \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRArchivePub.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRArchivePri.o \ $(BUILD_DIR)/asm/JKernel/JKRArchivePri.o \ - $(BUILD_DIR)/asm/JKernel/JKRMemArchive.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRMemArchive.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRAramArchive.o \ $(BUILD_DIR)/asm/JKernel/JKRAramArchive.o \ - $(BUILD_DIR)/asm/JKernel/JKRDvdArchive.o \ - $(BUILD_DIR)/asm/JKernel/JKRCompArchive.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRDvdArchive.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRCompArchive.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRFile.o \ $(BUILD_DIR)/libs/JSystem/JKernel/JKRDvdFile.o \ $(BUILD_DIR)/asm/JKernel/JKRDvdFile.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRDvdRipper.o \ $(BUILD_DIR)/asm/JKernel/JKRDvdRipper.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRDvdAramRipper.o \ $(BUILD_DIR)/asm/JKernel/JKRDvdAramRipper.o \ - $(BUILD_DIR)/asm/JKernel/JKRDecomp.o \ + $(BUILD_DIR)/libs/JSystem/JKernel/JKRDecomp.o \ $(BUILD_DIR)/asm/JSupport/JSUList.o \ $(BUILD_DIR)/libs/JSystem/JSupport/JSUList.o \ $(BUILD_DIR)/asm/JSupport/JSUInputStream.o \