From a08acfa69b3ea48ff37a57b649a93164ecee8584 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Mon, 27 Sep 2021 15:27:58 -0700 Subject: [PATCH] m_Do_printf / JUTConsole --- .../JUTConsole/JUTConsole_print_f_va_.s | 20 - .../JUtility/JUTConsole/JUTReportConsole.s | 14 - .../JUtility/JUTConsole/JUTReportConsole_f.s | 34 -- .../JUTConsole/JUTReportConsole_f_va.s | 37 -- .../JUtility/JUTConsole/JUTSetReportConsole.s | 3 - .../JUTConsole/JUTSetWarningConsole.s | 3 - .../JUtility/JUTConsole/JUTWarningConsole.s | 14 - .../JUtility/JUTConsole/JUTWarningConsole_f.s | 34 -- .../JUTConsole/__ct__10JUTConsoleFUiUib.s | 62 --- .../JUTConsole/__ct__17JUTConsoleManagerFv.s | 11 - .../JUTConsole/__dt__10JUTConsoleFv.s | 30 -- .../JUTConsole/clear__10JUTConsoleFv.s | 26 -- ...teManager__17JUTConsoleManagerFP7JKRHeap.s | 22 -- .../drawDirect__17JUTConsoleManagerCFb.s | 33 -- ...getLineFromObjectSize__10JUTConsoleFUlUi.s | 5 - .../getLineOffset__10JUTConsoleCFv.s | 11 - ...ectSizeFromBufferSize__10JUTConsoleFUiUi.s | 5 - .../JUTConsole/getUsedLine__10JUTConsoleCFv.s | 11 - .../JUTConsole/print_f__10JUTConsoleFPCce.s | 34 -- ...nsole__17JUTConsoleManagerFP10JUTConsole.s | 26 -- .../m_Do_machine_exception/print_f__FPCce.s | 37 -- asm/m_Do/m_Do_printf/OSAttention.s | 34 -- asm/m_Do/m_Do_printf/OSReport.s | 34 -- asm/m_Do/m_Do_printf/OSReportDisable.s | 4 - asm/m_Do/m_Do_printf/OSReportEnable.s | 4 - asm/m_Do/m_Do_printf/OSReportForceEnableOff.s | 4 - asm/m_Do/m_Do_printf/OSReportForceEnableOn.s | 4 - asm/m_Do/m_Do_printf/OSReportInit__Fv.s | 7 - asm/m_Do/m_Do_printf/OSReport_Error.s | 59 --- asm/m_Do/m_Do_printf/OSReport_FatalError.s | 54 --- asm/m_Do/m_Do_printf/OSReport_System.s | 47 --- asm/m_Do/m_Do_printf/OSReport_Warning.s | 59 --- .../OSVAttention__FPCcP16__va_list_struct.s | 9 - asm/m_Do/m_Do_printf/OSVReport.s | 9 - asm/m_Do/m_Do_printf/mDoPrintf_VReport.s | 40 -- ...rintf_Interrupt__FPCcP16__va_list_struct.s | 36 -- ..._vprintf_Thread__FPCcP16__va_list_struct.s | 9 - ...oPrintf_vprintf__FPCcP16__va_list_struct.s | 40 -- include/JSystem/JGadget/linklist.h | 56 ++- include/JSystem/JUtility/JUTConsole.h | 59 ++- .../MSL_Common/Src/printf.h | 8 + include/dolphin/os/OS.h | 2 +- include/m_Do/m_Do_machine_exception.h | 1 + include/m_Do/m_Do_main.h | 6 + include/m_Do/m_Do_printf.h | 6 + libs/JSystem/JFramework/JFWSystem.cpp | 4 - libs/JSystem/JUtility/JUTConsole.cpp | 345 ++++++++--------- .../MSL_Common/Src/printf.cpp | 16 +- src/m_Do/m_Do_machine.cpp | 7 - src/m_Do/m_Do_machine_exception.cpp | 15 +- src/m_Do/m_Do_main.cpp | 18 +- src/m_Do/m_Do_printf.cpp | 353 ++++++++---------- 52 files changed, 474 insertions(+), 1347 deletions(-) delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTConsole_print_f_va_.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTReportConsole.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f_va.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTSetReportConsole.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTSetWarningConsole.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTWarningConsole.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/JUTWarningConsole_f.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/__ct__10JUTConsoleFUiUib.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/__ct__17JUTConsoleManagerFv.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/__dt__10JUTConsoleFv.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/clear__10JUTConsoleFv.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/createManager__17JUTConsoleManagerFP7JKRHeap.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/drawDirect__17JUTConsoleManagerCFb.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/getLineFromObjectSize__10JUTConsoleFUlUi.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/getLineOffset__10JUTConsoleCFv.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/getObjectSizeFromBufferSize__10JUTConsoleFUiUi.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/getUsedLine__10JUTConsoleCFv.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/print_f__10JUTConsoleFPCce.s delete mode 100644 asm/JSystem/JUtility/JUTConsole/setDirectConsole__17JUTConsoleManagerFP10JUTConsole.s delete mode 100644 asm/m_Do/m_Do_machine_exception/print_f__FPCce.s delete mode 100644 asm/m_Do/m_Do_printf/OSAttention.s delete mode 100644 asm/m_Do/m_Do_printf/OSReport.s delete mode 100644 asm/m_Do/m_Do_printf/OSReportDisable.s delete mode 100644 asm/m_Do/m_Do_printf/OSReportEnable.s delete mode 100644 asm/m_Do/m_Do_printf/OSReportForceEnableOff.s delete mode 100644 asm/m_Do/m_Do_printf/OSReportForceEnableOn.s delete mode 100644 asm/m_Do/m_Do_printf/OSReportInit__Fv.s delete mode 100644 asm/m_Do/m_Do_printf/OSReport_Error.s delete mode 100644 asm/m_Do/m_Do_printf/OSReport_FatalError.s delete mode 100644 asm/m_Do/m_Do_printf/OSReport_System.s delete mode 100644 asm/m_Do/m_Do_printf/OSReport_Warning.s delete mode 100644 asm/m_Do/m_Do_printf/OSVAttention__FPCcP16__va_list_struct.s delete mode 100644 asm/m_Do/m_Do_printf/OSVReport.s delete mode 100644 asm/m_Do/m_Do_printf/mDoPrintf_VReport.s delete mode 100644 asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct.s delete mode 100644 asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct.s delete mode 100644 asm/m_Do/m_Do_printf/mDoPrintf_vprintf__FPCcP16__va_list_struct.s diff --git a/asm/JSystem/JUtility/JUTConsole/JUTConsole_print_f_va_.s b/asm/JSystem/JUtility/JUTConsole/JUTConsole_print_f_va_.s deleted file mode 100644 index 9da5b69916f..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTConsole_print_f_va_.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_802E7F30: -/* 802E7F30 94 21 FB F0 */ stwu r1, -0x410(r1) -/* 802E7F34 7C 08 02 A6 */ mflr r0 -/* 802E7F38 90 01 04 14 */ stw r0, 0x414(r1) -/* 802E7F3C 93 E1 04 0C */ stw r31, 0x40c(r1) -/* 802E7F40 7C 7F 1B 78 */ mr r31, r3 -/* 802E7F44 7C 80 23 78 */ mr r0, r4 -/* 802E7F48 7C A6 2B 78 */ mr r6, r5 -/* 802E7F4C 38 61 00 08 */ addi r3, r1, 8 -/* 802E7F50 38 80 04 00 */ li r4, 0x400 -/* 802E7F54 7C 05 03 78 */ mr r5, r0 -/* 802E7F58 48 07 E7 39 */ bl vsnprintf -/* 802E7F5C 7F E3 FB 78 */ mr r3, r31 -/* 802E7F60 38 81 00 08 */ addi r4, r1, 8 -/* 802E7F64 4B FF FC D5 */ bl print__10JUTConsoleFPCc -/* 802E7F68 83 E1 04 0C */ lwz r31, 0x40c(r1) -/* 802E7F6C 80 01 04 14 */ lwz r0, 0x414(r1) -/* 802E7F70 7C 08 03 A6 */ mtlr r0 -/* 802E7F74 38 21 04 10 */ addi r1, r1, 0x410 -/* 802E7F78 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/JUTReportConsole.s b/asm/JSystem/JUtility/JUTConsole/JUTReportConsole.s deleted file mode 100644 index 043bbff9f45..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTReportConsole.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802E8648: -/* 802E8648 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E864C 7C 08 02 A6 */ mflr r0 -/* 802E8650 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E8654 7C 64 1B 78 */ mr r4, r3 -/* 802E8658 3C 60 80 3A */ lis r3, JUTConsole__stringBase0@ha /* 0x8039D9A8@ha */ -/* 802E865C 38 63 D9 A8 */ addi r3, r3, JUTConsole__stringBase0@l /* 0x8039D9A8@l */ -/* 802E8660 38 63 00 60 */ addi r3, r3, 0x60 -/* 802E8664 4C C6 31 82 */ crclr 6 -/* 802E8668 4B FF FF 61 */ bl JUTReportConsole_f -/* 802E866C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E8670 7C 08 03 A6 */ mtlr r0 -/* 802E8674 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E8678 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f.s b/asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f.s deleted file mode 100644 index 8e18cc11f24..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802E85C8: -/* 802E85C8 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 802E85CC 7C 08 02 A6 */ mflr r0 -/* 802E85D0 90 01 00 84 */ stw r0, 0x84(r1) -/* 802E85D4 40 86 00 24 */ bne cr1, lbl_802E85F8 -/* 802E85D8 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 802E85DC D8 41 00 30 */ stfd f2, 0x30(r1) -/* 802E85E0 D8 61 00 38 */ stfd f3, 0x38(r1) -/* 802E85E4 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 802E85E8 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 802E85EC D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 802E85F0 D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 802E85F4 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_802E85F8: -/* 802E85F8 90 61 00 08 */ stw r3, 8(r1) -/* 802E85FC 90 81 00 0C */ stw r4, 0xc(r1) -/* 802E8600 90 A1 00 10 */ stw r5, 0x10(r1) -/* 802E8604 90 C1 00 14 */ stw r6, 0x14(r1) -/* 802E8608 90 E1 00 18 */ stw r7, 0x18(r1) -/* 802E860C 91 01 00 1C */ stw r8, 0x1c(r1) -/* 802E8610 91 21 00 20 */ stw r9, 0x20(r1) -/* 802E8614 91 41 00 24 */ stw r10, 0x24(r1) -/* 802E8618 38 81 00 68 */ addi r4, r1, 0x68 -/* 802E861C 3C 00 01 00 */ lis r0, 0x100 -/* 802E8620 90 01 00 68 */ stw r0, 0x68(r1) -/* 802E8624 38 01 00 88 */ addi r0, r1, 0x88 -/* 802E8628 90 01 00 6C */ stw r0, 0x6c(r1) -/* 802E862C 38 01 00 08 */ addi r0, r1, 8 -/* 802E8630 90 01 00 70 */ stw r0, 0x70(r1) -/* 802E8634 4B FF FF 0D */ bl JUTReportConsole_f_va -/* 802E8638 80 01 00 84 */ lwz r0, 0x84(r1) -/* 802E863C 7C 08 03 A6 */ mtlr r0 -/* 802E8640 38 21 00 80 */ addi r1, r1, 0x80 -/* 802E8644 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f_va.s b/asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f_va.s deleted file mode 100644 index 80a520b498f..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f_va.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_802E8540: -/* 802E8540 94 21 FE F0 */ stwu r1, -0x110(r1) -/* 802E8544 7C 08 02 A6 */ mflr r0 -/* 802E8548 90 01 01 14 */ stw r0, 0x114(r1) -/* 802E854C 93 E1 01 0C */ stw r31, 0x10c(r1) -/* 802E8550 93 C1 01 08 */ stw r30, 0x108(r1) -/* 802E8554 7C 7E 1B 78 */ mr r30, r3 -/* 802E8558 7C 9F 23 78 */ mr r31, r4 -/* 802E855C 4B FF FF CD */ bl JUTGetReportConsole -/* 802E8560 28 03 00 00 */ cmplwi r3, 0 -/* 802E8564 40 82 00 1C */ bne lbl_802E8580 -/* 802E8568 38 61 00 08 */ addi r3, r1, 8 -/* 802E856C 38 80 01 00 */ li r4, 0x100 -/* 802E8570 7F C5 F3 78 */ mr r5, r30 -/* 802E8574 7F E6 FB 78 */ mr r6, r31 -/* 802E8578 48 07 E1 19 */ bl vsnprintf -/* 802E857C 48 00 00 34 */ b lbl_802E85B0 -lbl_802E8580: -/* 802E8580 4B FF FF A9 */ bl JUTGetReportConsole -/* 802E8584 80 03 00 58 */ lwz r0, 0x58(r3) -/* 802E8588 54 00 07 BF */ clrlwi. r0, r0, 0x1e -/* 802E858C 41 82 00 24 */ beq lbl_802E85B0 -/* 802E8590 38 61 00 08 */ addi r3, r1, 8 -/* 802E8594 38 80 01 00 */ li r4, 0x100 -/* 802E8598 7F C5 F3 78 */ mr r5, r30 -/* 802E859C 7F E6 FB 78 */ mr r6, r31 -/* 802E85A0 48 07 E0 F1 */ bl vsnprintf -/* 802E85A4 4B FF FF 85 */ bl JUTGetReportConsole -/* 802E85A8 38 81 00 08 */ addi r4, r1, 8 -/* 802E85AC 4B FF F6 8D */ bl print__10JUTConsoleFPCc -lbl_802E85B0: -/* 802E85B0 83 E1 01 0C */ lwz r31, 0x10c(r1) -/* 802E85B4 83 C1 01 08 */ lwz r30, 0x108(r1) -/* 802E85B8 80 01 01 14 */ lwz r0, 0x114(r1) -/* 802E85BC 7C 08 03 A6 */ mtlr r0 -/* 802E85C0 38 21 01 10 */ addi r1, r1, 0x110 -/* 802E85C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/JUTSetReportConsole.s b/asm/JSystem/JUtility/JUTConsole/JUTSetReportConsole.s deleted file mode 100644 index e28d6a97802..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTSetReportConsole.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_802E8520: -/* 802E8520 90 6D 8F F4 */ stw r3, sReportConsole(r13) -/* 802E8524 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/JUTSetWarningConsole.s b/asm/JSystem/JUtility/JUTConsole/JUTSetWarningConsole.s deleted file mode 100644 index bc1cfabebf0..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTSetWarningConsole.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_802E8530: -/* 802E8530 90 6D 8F F8 */ stw r3, sWarningConsole(r13) -/* 802E8534 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/JUTWarningConsole.s b/asm/JSystem/JUtility/JUTConsole/JUTWarningConsole.s deleted file mode 100644 index f66c1aca335..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTWarningConsole.s +++ /dev/null @@ -1,14 +0,0 @@ -lbl_802E86FC: -/* 802E86FC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E8700 7C 08 02 A6 */ mflr r0 -/* 802E8704 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E8708 7C 64 1B 78 */ mr r4, r3 -/* 802E870C 3C 60 80 3A */ lis r3, JUTConsole__stringBase0@ha /* 0x8039D9A8@ha */ -/* 802E8710 38 63 D9 A8 */ addi r3, r3, JUTConsole__stringBase0@l /* 0x8039D9A8@l */ -/* 802E8714 38 63 00 60 */ addi r3, r3, 0x60 -/* 802E8718 4C C6 31 82 */ crclr 6 -/* 802E871C 4B FF FE AD */ bl JUTReportConsole_f -/* 802E8720 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E8724 7C 08 03 A6 */ mtlr r0 -/* 802E8728 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E872C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/JUTWarningConsole_f.s b/asm/JSystem/JUtility/JUTConsole/JUTWarningConsole_f.s deleted file mode 100644 index df13c7a0c37..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/JUTWarningConsole_f.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802E867C: -/* 802E867C 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 802E8680 7C 08 02 A6 */ mflr r0 -/* 802E8684 90 01 00 84 */ stw r0, 0x84(r1) -/* 802E8688 40 86 00 24 */ bne cr1, lbl_802E86AC -/* 802E868C D8 21 00 28 */ stfd f1, 0x28(r1) -/* 802E8690 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 802E8694 D8 61 00 38 */ stfd f3, 0x38(r1) -/* 802E8698 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 802E869C D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 802E86A0 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 802E86A4 D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 802E86A8 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_802E86AC: -/* 802E86AC 90 61 00 08 */ stw r3, 8(r1) -/* 802E86B0 90 81 00 0C */ stw r4, 0xc(r1) -/* 802E86B4 90 A1 00 10 */ stw r5, 0x10(r1) -/* 802E86B8 90 C1 00 14 */ stw r6, 0x14(r1) -/* 802E86BC 90 E1 00 18 */ stw r7, 0x18(r1) -/* 802E86C0 91 01 00 1C */ stw r8, 0x1c(r1) -/* 802E86C4 91 21 00 20 */ stw r9, 0x20(r1) -/* 802E86C8 91 41 00 24 */ stw r10, 0x24(r1) -/* 802E86CC 38 81 00 68 */ addi r4, r1, 0x68 -/* 802E86D0 3C 00 01 00 */ lis r0, 0x100 -/* 802E86D4 90 01 00 68 */ stw r0, 0x68(r1) -/* 802E86D8 38 01 00 88 */ addi r0, r1, 0x88 -/* 802E86DC 90 01 00 6C */ stw r0, 0x6c(r1) -/* 802E86E0 38 01 00 08 */ addi r0, r1, 8 -/* 802E86E4 90 01 00 70 */ stw r0, 0x70(r1) -/* 802E86E8 4B FF FE 59 */ bl JUTReportConsole_f_va -/* 802E86EC 80 01 00 84 */ lwz r0, 0x84(r1) -/* 802E86F0 7C 08 03 A6 */ mtlr r0 -/* 802E86F4 38 21 00 80 */ addi r1, r1, 0x80 -/* 802E86F8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/__ct__10JUTConsoleFUiUib.s b/asm/JSystem/JUtility/JUTConsole/__ct__10JUTConsoleFUiUib.s deleted file mode 100644 index 02291ed1f37..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/__ct__10JUTConsoleFUiUib.s +++ /dev/null @@ -1,62 +0,0 @@ -lbl_802E746C: -/* 802E746C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802E7470 7C 08 02 A6 */ mflr r0 -/* 802E7474 90 01 00 24 */ stw r0, 0x24(r1) -/* 802E7478 39 61 00 20 */ addi r11, r1, 0x20 -/* 802E747C 48 07 AD 5D */ bl _savegpr_28 -/* 802E7480 7C 7C 1B 78 */ mr r28, r3 -/* 802E7484 7C 9D 23 78 */ mr r29, r4 -/* 802E7488 7C BE 2B 78 */ mr r30, r5 -/* 802E748C 7C DF 33 78 */ mr r31, r6 -/* 802E7490 4B FE 9F ED */ bl __ct__11JKRDisposerFv -/* 802E7494 3C 60 80 3D */ lis r3, __vt__10JUTConsole@ha /* 0x803CC9A8@ha */ -/* 802E7498 38 03 C9 A8 */ addi r0, r3, __vt__10JUTConsole@l /* 0x803CC9A8@l */ -/* 802E749C 90 1C 00 00 */ stw r0, 0(r28) -/* 802E74A0 38 00 00 00 */ li r0, 0 -/* 802E74A4 90 1C 00 18 */ stw r0, 0x18(r28) -/* 802E74A8 90 1C 00 1C */ stw r0, 0x1c(r28) -/* 802E74AC 38 00 FF FF */ li r0, -1 -/* 802E74B0 90 1C 00 5C */ stw r0, 0x5c(r28) -/* 802E74B4 90 1C 00 60 */ stw r0, 0x60(r28) -/* 802E74B8 9B FC 00 2C */ stb r31, 0x2c(r28) -/* 802E74BC 93 BC 00 20 */ stw r29, 0x20(r28) -/* 802E74C0 93 DC 00 24 */ stw r30, 0x24(r28) -/* 802E74C4 38 00 00 1E */ li r0, 0x1e -/* 802E74C8 90 1C 00 40 */ stw r0, 0x40(r28) -/* 802E74CC 38 00 00 32 */ li r0, 0x32 -/* 802E74D0 90 1C 00 44 */ stw r0, 0x44(r28) -/* 802E74D4 38 00 00 14 */ li r0, 0x14 -/* 802E74D8 90 1C 00 48 */ stw r0, 0x48(r28) -/* 802E74DC 80 1C 00 48 */ lwz r0, 0x48(r28) -/* 802E74E0 80 7C 00 24 */ lwz r3, 0x24(r28) -/* 802E74E4 7C 00 18 40 */ cmplw r0, r3 -/* 802E74E8 40 81 00 08 */ ble lbl_802E74F0 -/* 802E74EC 90 7C 00 48 */ stw r3, 0x48(r28) -lbl_802E74F0: -/* 802E74F0 38 60 00 00 */ li r3, 0 -/* 802E74F4 90 7C 00 4C */ stw r3, 0x4c(r28) -/* 802E74F8 38 00 00 01 */ li r0, 1 -/* 802E74FC 98 1C 00 68 */ stb r0, 0x68(r28) -/* 802E7500 98 7C 00 69 */ stb r3, 0x69(r28) -/* 802E7504 98 7C 00 6A */ stb r3, 0x6a(r28) -/* 802E7508 98 7C 00 6B */ stb r3, 0x6b(r28) -/* 802E750C 90 1C 00 58 */ stw r0, 0x58(r28) -/* 802E7510 98 7C 00 5C */ stb r3, 0x5c(r28) -/* 802E7514 98 7C 00 5D */ stb r3, 0x5d(r28) -/* 802E7518 98 7C 00 5E */ stb r3, 0x5e(r28) -/* 802E751C 38 00 00 64 */ li r0, 0x64 -/* 802E7520 98 1C 00 5F */ stb r0, 0x5f(r28) -/* 802E7524 98 7C 00 60 */ stb r3, 0x60(r28) -/* 802E7528 98 7C 00 61 */ stb r3, 0x61(r28) -/* 802E752C 98 7C 00 62 */ stb r3, 0x62(r28) -/* 802E7530 38 00 00 E6 */ li r0, 0xe6 -/* 802E7534 98 1C 00 63 */ stb r0, 0x63(r28) -/* 802E7538 38 00 00 08 */ li r0, 8 -/* 802E753C 90 1C 00 64 */ stw r0, 0x64(r28) -/* 802E7540 7F 83 E3 78 */ mr r3, r28 -/* 802E7544 39 61 00 20 */ addi r11, r1, 0x20 -/* 802E7548 48 07 AC DD */ bl _restgpr_28 -/* 802E754C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802E7550 7C 08 03 A6 */ mtlr r0 -/* 802E7554 38 21 00 20 */ addi r1, r1, 0x20 -/* 802E7558 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/__ct__17JUTConsoleManagerFv.s b/asm/JSystem/JUtility/JUTConsole/__ct__17JUTConsoleManagerFv.s deleted file mode 100644 index 3c12ab9def2..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/__ct__17JUTConsoleManagerFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802E81CC: -/* 802E81CC 38 80 00 00 */ li r4, 0 -/* 802E81D0 90 83 00 04 */ stw r4, 4(r3) -/* 802E81D4 90 83 00 08 */ stw r4, 8(r3) -/* 802E81D8 90 83 00 00 */ stw r4, 0(r3) -/* 802E81DC 38 03 00 04 */ addi r0, r3, 4 -/* 802E81E0 90 03 00 04 */ stw r0, 4(r3) -/* 802E81E4 90 03 00 08 */ stw r0, 8(r3) -/* 802E81E8 90 83 00 0C */ stw r4, 0xc(r3) -/* 802E81EC 90 83 00 10 */ stw r4, 0x10(r3) -/* 802E81F0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/__dt__10JUTConsoleFv.s b/asm/JSystem/JUtility/JUTConsole/__dt__10JUTConsoleFv.s deleted file mode 100644 index 2254d2c5f14..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/__dt__10JUTConsoleFv.s +++ /dev/null @@ -1,30 +0,0 @@ -lbl_802E755C: -/* 802E755C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E7560 7C 08 02 A6 */ mflr r0 -/* 802E7564 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E7568 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802E756C 93 C1 00 08 */ stw r30, 8(r1) -/* 802E7570 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802E7574 7C 9F 23 78 */ mr r31, r4 -/* 802E7578 41 82 00 38 */ beq lbl_802E75B0 -/* 802E757C 3C 60 80 3D */ lis r3, __vt__10JUTConsole@ha /* 0x803CC9A8@ha */ -/* 802E7580 38 03 C9 A8 */ addi r0, r3, __vt__10JUTConsole@l /* 0x803CC9A8@l */ -/* 802E7584 90 1E 00 00 */ stw r0, 0(r30) -/* 802E7588 80 6D 8F F0 */ lwz r3, sManager__17JUTConsoleManager(r13) -/* 802E758C 7F C4 F3 78 */ mr r4, r30 -/* 802E7590 48 00 0D 21 */ bl removeConsole__17JUTConsoleManagerFP10JUTConsole -/* 802E7594 7F C3 F3 78 */ mr r3, r30 -/* 802E7598 38 80 00 00 */ li r4, 0 -/* 802E759C 4B FE 9F 49 */ bl __dt__11JKRDisposerFv -/* 802E75A0 7F E0 07 35 */ extsh. r0, r31 -/* 802E75A4 40 81 00 0C */ ble lbl_802E75B0 -/* 802E75A8 7F C3 F3 78 */ mr r3, r30 -/* 802E75AC 4B FE 77 91 */ bl __dl__FPv -lbl_802E75B0: -/* 802E75B0 7F C3 F3 78 */ mr r3, r30 -/* 802E75B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802E75B8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802E75BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E75C0 7C 08 03 A6 */ mtlr r0 -/* 802E75C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E75C8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/clear__10JUTConsoleFv.s b/asm/JSystem/JUtility/JUTConsole/clear__10JUTConsoleFv.s deleted file mode 100644 index b96e4d4edff..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/clear__10JUTConsoleFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802E75EC: -/* 802E75EC 38 C0 00 00 */ li r6, 0 -/* 802E75F0 90 C3 00 30 */ stw r6, 0x30(r3) -/* 802E75F4 90 C3 00 34 */ stw r6, 0x34(r3) -/* 802E75F8 90 C3 00 38 */ stw r6, 0x38(r3) -/* 802E75FC 90 C3 00 3C */ stw r6, 0x3c(r3) -/* 802E7600 38 E0 00 00 */ li r7, 0 -/* 802E7604 48 00 00 1C */ b lbl_802E7620 -lbl_802E7608: -/* 802E7608 80 A3 00 28 */ lwz r5, 0x28(r3) -/* 802E760C 80 83 00 20 */ lwz r4, 0x20(r3) -/* 802E7610 38 04 00 02 */ addi r0, r4, 2 -/* 802E7614 7C 00 39 D6 */ mullw r0, r0, r7 -/* 802E7618 7C C5 01 AE */ stbx r6, r5, r0 -/* 802E761C 38 E7 00 01 */ addi r7, r7, 1 -lbl_802E7620: -/* 802E7620 80 03 00 24 */ lwz r0, 0x24(r3) -/* 802E7624 7C 07 00 40 */ cmplw r7, r0 -/* 802E7628 41 80 FF E0 */ blt lbl_802E7608 -/* 802E762C 38 00 00 FF */ li r0, 0xff -/* 802E7630 80 83 00 28 */ lwz r4, 0x28(r3) -/* 802E7634 98 04 00 00 */ stb r0, 0(r4) -/* 802E7638 38 00 00 00 */ li r0, 0 -/* 802E763C 80 63 00 28 */ lwz r3, 0x28(r3) -/* 802E7640 98 03 00 01 */ stb r0, 1(r3) -/* 802E7644 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/createManager__17JUTConsoleManagerFP7JKRHeap.s b/asm/JSystem/JUtility/JUTConsole/createManager__17JUTConsoleManagerFP7JKRHeap.s deleted file mode 100644 index 3291a306a98..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/createManager__17JUTConsoleManagerFP7JKRHeap.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_802E81F4: -/* 802E81F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E81F8 7C 08 02 A6 */ mflr r0 -/* 802E81FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E8200 7C 64 1B 79 */ or. r4, r3, r3 -/* 802E8204 40 82 00 08 */ bne lbl_802E820C -/* 802E8208 80 8D 8D F4 */ lwz r4, sCurrentHeap__7JKRHeap(r13) -lbl_802E820C: -/* 802E820C 38 60 00 14 */ li r3, 0x14 -/* 802E8210 38 A0 00 00 */ li r5, 0 -/* 802E8214 4B FE 6A 85 */ bl __nw__FUlP7JKRHeapi -/* 802E8218 7C 60 1B 79 */ or. r0, r3, r3 -/* 802E821C 41 82 00 0C */ beq lbl_802E8228 -/* 802E8220 4B FF FF AD */ bl __ct__17JUTConsoleManagerFv -/* 802E8224 7C 60 1B 78 */ mr r0, r3 -lbl_802E8228: -/* 802E8228 90 0D 8F F0 */ stw r0, sManager__17JUTConsoleManager(r13) -/* 802E822C 7C 03 03 78 */ mr r3, r0 -/* 802E8230 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E8234 7C 08 03 A6 */ mtlr r0 -/* 802E8238 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E823C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/drawDirect__17JUTConsoleManagerCFb.s b/asm/JSystem/JUtility/JUTConsole/drawDirect__17JUTConsoleManagerCFb.s deleted file mode 100644 index 06f56f43cfd..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/drawDirect__17JUTConsoleManagerCFb.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_802E8450: -/* 802E8450 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802E8454 7C 08 02 A6 */ mflr r0 -/* 802E8458 90 01 00 24 */ stw r0, 0x24(r1) -/* 802E845C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802E8460 48 07 9D 7D */ bl _savegpr_29 -/* 802E8464 7C 7D 1B 78 */ mr r29, r3 -/* 802E8468 80 03 00 10 */ lwz r0, 0x10(r3) -/* 802E846C 28 00 00 00 */ cmplwi r0, 0 -/* 802E8470 41 82 00 3C */ beq lbl_802E84AC -/* 802E8474 54 80 06 3F */ clrlwi. r0, r4, 0x18 -/* 802E8478 41 82 00 28 */ beq lbl_802E84A0 -/* 802E847C 48 05 52 8D */ bl OSEnableInterrupts -/* 802E8480 7C 7E 1B 78 */ mr r30, r3 -/* 802E8484 48 06 54 39 */ bl VIGetRetraceCount -/* 802E8488 7C 7F 1B 78 */ mr r31, r3 -lbl_802E848C: -/* 802E848C 48 06 54 31 */ bl VIGetRetraceCount -/* 802E8490 7C 1F 18 40 */ cmplw r31, r3 -/* 802E8494 41 82 FF F8 */ beq lbl_802E848C -/* 802E8498 7F C3 F3 78 */ mr r3, r30 -/* 802E849C 48 05 52 81 */ bl OSRestoreInterrupts -lbl_802E84A0: -/* 802E84A0 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 802E84A4 38 80 00 02 */ li r4, 2 -/* 802E84A8 4B FF F1 A1 */ bl doDraw__10JUTConsoleCFQ210JUTConsole12EConsoleType -lbl_802E84AC: -/* 802E84AC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802E84B0 48 07 9D 79 */ bl _restgpr_29 -/* 802E84B4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802E84B8 7C 08 03 A6 */ mtlr r0 -/* 802E84BC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802E84C0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/getLineFromObjectSize__10JUTConsoleFUlUi.s b/asm/JSystem/JUtility/JUTConsole/getLineFromObjectSize__10JUTConsoleFUlUi.s deleted file mode 100644 index a0969425ca9..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/getLineFromObjectSize__10JUTConsoleFUlUi.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_802E75DC: -/* 802E75DC 38 63 FF 94 */ addi r3, r3, -108 -/* 802E75E0 38 04 00 02 */ addi r0, r4, 2 -/* 802E75E4 7C 63 03 96 */ divwu r3, r3, r0 -/* 802E75E8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/getLineOffset__10JUTConsoleCFv.s b/asm/JSystem/JUtility/JUTConsole/getLineOffset__10JUTConsoleCFv.s deleted file mode 100644 index 775956b81b5..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/getLineOffset__10JUTConsoleCFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802E81A8: -/* 802E81A8 80 83 00 34 */ lwz r4, 0x34(r3) -/* 802E81AC 80 03 00 30 */ lwz r0, 0x30(r3) -/* 802E81B0 7C 84 00 51 */ subf. r4, r4, r0 -/* 802E81B4 41 80 00 0C */ blt lbl_802E81C0 -/* 802E81B8 7C 83 23 78 */ mr r3, r4 -/* 802E81BC 4E 80 00 20 */ blr -lbl_802E81C0: -/* 802E81C0 80 03 00 24 */ lwz r0, 0x24(r3) -/* 802E81C4 7C 64 02 14 */ add r3, r4, r0 -/* 802E81C8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/getObjectSizeFromBufferSize__10JUTConsoleFUiUi.s b/asm/JSystem/JUtility/JUTConsole/getObjectSizeFromBufferSize__10JUTConsoleFUiUi.s deleted file mode 100644 index 1fab6a789ec..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/getObjectSizeFromBufferSize__10JUTConsoleFUiUi.s +++ /dev/null @@ -1,5 +0,0 @@ -lbl_802E75CC: -/* 802E75CC 38 03 00 02 */ addi r0, r3, 2 -/* 802E75D0 7C 60 21 D6 */ mullw r3, r0, r4 -/* 802E75D4 38 63 00 6C */ addi r3, r3, 0x6c -/* 802E75D8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/getUsedLine__10JUTConsoleCFv.s b/asm/JSystem/JUtility/JUTConsole/getUsedLine__10JUTConsoleCFv.s deleted file mode 100644 index 3e4e4b5bd06..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/getUsedLine__10JUTConsoleCFv.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_802E8184: -/* 802E8184 80 83 00 34 */ lwz r4, 0x34(r3) -/* 802E8188 80 03 00 38 */ lwz r0, 0x38(r3) -/* 802E818C 7C 84 00 51 */ subf. r4, r4, r0 -/* 802E8190 41 80 00 0C */ blt lbl_802E819C -/* 802E8194 7C 83 23 78 */ mr r3, r4 -/* 802E8198 4E 80 00 20 */ blr -lbl_802E819C: -/* 802E819C 80 03 00 24 */ lwz r0, 0x24(r3) -/* 802E81A0 7C 64 02 14 */ add r3, r4, r0 -/* 802E81A4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/print_f__10JUTConsoleFPCce.s b/asm/JSystem/JUtility/JUTConsole/print_f__10JUTConsoleFPCce.s deleted file mode 100644 index 1b93cc0f34a..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/print_f__10JUTConsoleFPCce.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_802E7BB8: -/* 802E7BB8 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 802E7BBC 7C 08 02 A6 */ mflr r0 -/* 802E7BC0 90 01 00 84 */ stw r0, 0x84(r1) -/* 802E7BC4 40 86 00 24 */ bne cr1, lbl_802E7BE8 -/* 802E7BC8 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 802E7BCC D8 41 00 30 */ stfd f2, 0x30(r1) -/* 802E7BD0 D8 61 00 38 */ stfd f3, 0x38(r1) -/* 802E7BD4 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 802E7BD8 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 802E7BDC D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 802E7BE0 D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 802E7BE4 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_802E7BE8: -/* 802E7BE8 90 61 00 08 */ stw r3, 8(r1) -/* 802E7BEC 90 81 00 0C */ stw r4, 0xc(r1) -/* 802E7BF0 90 A1 00 10 */ stw r5, 0x10(r1) -/* 802E7BF4 90 C1 00 14 */ stw r6, 0x14(r1) -/* 802E7BF8 90 E1 00 18 */ stw r7, 0x18(r1) -/* 802E7BFC 91 01 00 1C */ stw r8, 0x1c(r1) -/* 802E7C00 91 21 00 20 */ stw r9, 0x20(r1) -/* 802E7C04 91 41 00 24 */ stw r10, 0x24(r1) -/* 802E7C08 38 A1 00 68 */ addi r5, r1, 0x68 -/* 802E7C0C 3C 00 02 00 */ lis r0, 0x200 -/* 802E7C10 90 01 00 68 */ stw r0, 0x68(r1) -/* 802E7C14 38 01 00 88 */ addi r0, r1, 0x88 -/* 802E7C18 90 01 00 6C */ stw r0, 0x6c(r1) -/* 802E7C1C 38 01 00 08 */ addi r0, r1, 8 -/* 802E7C20 90 01 00 70 */ stw r0, 0x70(r1) -/* 802E7C24 48 00 03 0D */ bl JUTConsole_print_f_va_ -/* 802E7C28 80 01 00 84 */ lwz r0, 0x84(r1) -/* 802E7C2C 7C 08 03 A6 */ mtlr r0 -/* 802E7C30 38 21 00 80 */ addi r1, r1, 0x80 -/* 802E7C34 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTConsole/setDirectConsole__17JUTConsoleManagerFP10JUTConsole.s b/asm/JSystem/JUtility/JUTConsole/setDirectConsole__17JUTConsoleManagerFP10JUTConsole.s deleted file mode 100644 index 3bf5d84241a..00000000000 --- a/asm/JSystem/JUtility/JUTConsole/setDirectConsole__17JUTConsoleManagerFP10JUTConsole.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_802E84C4: -/* 802E84C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802E84C8 7C 08 02 A6 */ mflr r0 -/* 802E84CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E84D0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802E84D4 93 C1 00 08 */ stw r30, 8(r1) -/* 802E84D8 7C 7E 1B 78 */ mr r30, r3 -/* 802E84DC 7C 9F 23 78 */ mr r31, r4 -/* 802E84E0 80 83 00 10 */ lwz r4, 0x10(r3) -/* 802E84E4 28 04 00 00 */ cmplwi r4, 0 -/* 802E84E8 41 82 00 08 */ beq lbl_802E84F0 -/* 802E84EC 4B FF FD 55 */ bl appendConsole__17JUTConsoleManagerFP10JUTConsole -lbl_802E84F0: -/* 802E84F0 28 1F 00 00 */ cmplwi r31, 0 -/* 802E84F4 41 82 00 10 */ beq lbl_802E8504 -/* 802E84F8 7F C3 F3 78 */ mr r3, r30 -/* 802E84FC 7F E4 FB 78 */ mr r4, r31 -/* 802E8500 4B FF FD B1 */ bl removeConsole__17JUTConsoleManagerFP10JUTConsole -lbl_802E8504: -/* 802E8504 93 FE 00 10 */ stw r31, 0x10(r30) -/* 802E8508 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802E850C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802E8510 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E8514 7C 08 03 A6 */ mtlr r0 -/* 802E8518 38 21 00 10 */ addi r1, r1, 0x10 -/* 802E851C 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_machine_exception/print_f__FPCce.s b/asm/m_Do/m_Do_machine_exception/print_f__FPCce.s deleted file mode 100644 index 06ad5eee0e6..00000000000 --- a/asm/m_Do/m_Do_machine_exception/print_f__FPCce.s +++ /dev/null @@ -1,37 +0,0 @@ -lbl_80017D7C: -/* 80017D7C 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80017D80 7C 08 02 A6 */ mflr r0 -/* 80017D84 90 01 00 84 */ stw r0, 0x84(r1) -/* 80017D88 7C 6B 1B 78 */ mr r11, r3 -/* 80017D8C 40 86 00 24 */ bne cr1, lbl_80017DB0 -/* 80017D90 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80017D94 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 80017D98 D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80017D9C D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80017DA0 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80017DA4 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 80017DA8 D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80017DAC D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80017DB0: -/* 80017DB0 90 61 00 08 */ stw r3, 8(r1) -/* 80017DB4 90 81 00 0C */ stw r4, 0xc(r1) -/* 80017DB8 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80017DBC 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80017DC0 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80017DC4 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80017DC8 91 21 00 20 */ stw r9, 0x20(r1) -/* 80017DCC 91 41 00 24 */ stw r10, 0x24(r1) -/* 80017DD0 38 A1 00 68 */ addi r5, r1, 0x68 -/* 80017DD4 3C 00 01 00 */ lis r0, 0x100 -/* 80017DD8 90 01 00 68 */ stw r0, 0x68(r1) -/* 80017DDC 38 01 00 88 */ addi r0, r1, 0x88 -/* 80017DE0 90 01 00 6C */ stw r0, 0x6c(r1) -/* 80017DE4 38 01 00 08 */ addi r0, r1, 8 -/* 80017DE8 90 01 00 70 */ stw r0, 0x70(r1) -/* 80017DEC 80 6D 87 10 */ lwz r3, sConsole(r13) -/* 80017DF0 7D 64 5B 78 */ mr r4, r11 -/* 80017DF4 48 2D 01 3D */ bl JUTConsole_print_f_va_ -/* 80017DF8 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80017DFC 7C 08 03 A6 */ mtlr r0 -/* 80017E00 38 21 00 80 */ addi r1, r1, 0x80 -/* 80017E04 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSAttention.s b/asm/m_Do/m_Do_printf/OSAttention.s deleted file mode 100644 index bb9e30f5d8b..00000000000 --- a/asm/m_Do/m_Do_printf/OSAttention.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_80006814: -/* 80006814 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80006818 7C 08 02 A6 */ mflr r0 -/* 8000681C 90 01 00 84 */ stw r0, 0x84(r1) -/* 80006820 40 86 00 24 */ bne cr1, lbl_80006844 -/* 80006824 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80006828 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 8000682C D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80006830 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80006834 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80006838 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 8000683C D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80006840 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80006844: -/* 80006844 90 61 00 08 */ stw r3, 8(r1) -/* 80006848 90 81 00 0C */ stw r4, 0xc(r1) -/* 8000684C 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80006850 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80006854 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80006858 91 01 00 1C */ stw r8, 0x1c(r1) -/* 8000685C 91 21 00 20 */ stw r9, 0x20(r1) -/* 80006860 91 41 00 24 */ stw r10, 0x24(r1) -/* 80006864 38 81 00 68 */ addi r4, r1, 0x68 -/* 80006868 3C 00 01 00 */ lis r0, 0x100 -/* 8000686C 90 01 00 68 */ stw r0, 0x68(r1) -/* 80006870 38 01 00 88 */ addi r0, r1, 0x88 -/* 80006874 90 01 00 6C */ stw r0, 0x6c(r1) -/* 80006878 38 01 00 08 */ addi r0, r1, 8 -/* 8000687C 90 01 00 70 */ stw r0, 0x70(r1) -/* 80006880 48 00 01 05 */ bl mDoPrintf_vprintf__FPCcP16__va_list_struct -/* 80006884 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80006888 7C 08 03 A6 */ mtlr r0 -/* 8000688C 38 21 00 80 */ addi r1, r1, 0x80 -/* 80006890 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReport.s b/asm/m_Do/m_Do_printf/OSReport.s deleted file mode 100644 index cbdc8951a62..00000000000 --- a/asm/m_Do/m_Do_printf/OSReport.s +++ /dev/null @@ -1,34 +0,0 @@ -lbl_80006ABC: -/* 80006ABC 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80006AC0 7C 08 02 A6 */ mflr r0 -/* 80006AC4 90 01 00 84 */ stw r0, 0x84(r1) -/* 80006AC8 40 86 00 24 */ bne cr1, lbl_80006AEC -/* 80006ACC D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80006AD0 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 80006AD4 D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80006AD8 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80006ADC D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80006AE0 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 80006AE4 D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80006AE8 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80006AEC: -/* 80006AEC 90 61 00 08 */ stw r3, 8(r1) -/* 80006AF0 90 81 00 0C */ stw r4, 0xc(r1) -/* 80006AF4 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80006AF8 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80006AFC 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80006B00 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80006B04 91 21 00 20 */ stw r9, 0x20(r1) -/* 80006B08 91 41 00 24 */ stw r10, 0x24(r1) -/* 80006B0C 38 81 00 68 */ addi r4, r1, 0x68 -/* 80006B10 3C 00 01 00 */ lis r0, 0x100 -/* 80006B14 90 01 00 68 */ stw r0, 0x68(r1) -/* 80006B18 38 01 00 88 */ addi r0, r1, 0x88 -/* 80006B1C 90 01 00 6C */ stw r0, 0x6c(r1) -/* 80006B20 38 01 00 08 */ addi r0, r1, 8 -/* 80006B24 90 01 00 70 */ stw r0, 0x70(r1) -/* 80006B28 4B FF FF 75 */ bl OSVReport -/* 80006B2C 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80006B30 7C 08 03 A6 */ mtlr r0 -/* 80006B34 38 21 00 80 */ addi r1, r1, 0x80 -/* 80006B38 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReportDisable.s b/asm/m_Do/m_Do_printf/OSReportDisable.s deleted file mode 100644 index 24479976cf0..00000000000 --- a/asm/m_Do/m_Do_printf/OSReportDisable.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80006894: -/* 80006894 38 00 00 01 */ li r0, 1 -/* 80006898 98 0D 86 18 */ stb r0, struct_80450B98+0x0(r13) -/* 8000689C 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReportEnable.s b/asm/m_Do/m_Do_printf/OSReportEnable.s deleted file mode 100644 index 4da608307b2..00000000000 --- a/asm/m_Do/m_Do_printf/OSReportEnable.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_800068A0: -/* 800068A0 38 00 00 00 */ li r0, 0 -/* 800068A4 98 0D 86 18 */ stb r0, struct_80450B98+0x0(r13) -/* 800068A8 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReportForceEnableOff.s b/asm/m_Do/m_Do_printf/OSReportForceEnableOff.s deleted file mode 100644 index be669497624..00000000000 --- a/asm/m_Do/m_Do_printf/OSReportForceEnableOff.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_800068B8: -/* 800068B8 38 00 00 00 */ li r0, 0 -/* 800068BC 98 0D 86 1C */ stb r0, data_80450B9C(r13) -/* 800068C0 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReportForceEnableOn.s b/asm/m_Do/m_Do_printf/OSReportForceEnableOn.s deleted file mode 100644 index 2ffbce2e777..00000000000 --- a/asm/m_Do/m_Do_printf/OSReportForceEnableOn.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_800068AC: -/* 800068AC 38 00 00 01 */ li r0, 1 -/* 800068B0 98 0D 86 1C */ stb r0, data_80450B9C(r13) -/* 800068B4 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReportInit__Fv.s b/asm/m_Do/m_Do_printf/OSReportInit__Fv.s deleted file mode 100644 index 615a180a77e..00000000000 --- a/asm/m_Do/m_Do_printf/OSReportInit__Fv.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_800068C4: -/* 800068C4 88 0D 86 34 */ lbz r0, struct_80450BB4+0x0(r13) -/* 800068C8 28 00 00 00 */ cmplwi r0, 0 -/* 800068CC 4C 82 00 20 */ bnelr -/* 800068D0 38 00 00 01 */ li r0, 1 -/* 800068D4 98 0D 86 34 */ stb r0, struct_80450BB4+0x0(r13) -/* 800068D8 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReport_Error.s b/asm/m_Do/m_Do_printf/OSReport_Error.s deleted file mode 100644 index 6fd2674c884..00000000000 --- a/asm/m_Do/m_Do_printf/OSReport_Error.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_80006C0C: -/* 80006C0C 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80006C10 7C 08 02 A6 */ mflr r0 -/* 80006C14 90 01 00 84 */ stw r0, 0x84(r1) -/* 80006C18 93 E1 00 7C */ stw r31, 0x7c(r1) -/* 80006C1C 7C 7F 1B 78 */ mr r31, r3 -/* 80006C20 40 86 00 24 */ bne cr1, lbl_80006C44 -/* 80006C24 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80006C28 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 80006C2C D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80006C30 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80006C34 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80006C38 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 80006C3C D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80006C40 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80006C44: -/* 80006C44 90 61 00 08 */ stw r3, 8(r1) -/* 80006C48 90 81 00 0C */ stw r4, 0xc(r1) -/* 80006C4C 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80006C50 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80006C54 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80006C58 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80006C5C 91 21 00 20 */ stw r9, 0x20(r1) -/* 80006C60 91 41 00 24 */ stw r10, 0x24(r1) -/* 80006C64 80 6D 86 28 */ lwz r3, print_errors(r13) -/* 80006C68 38 03 00 01 */ addi r0, r3, 1 -/* 80006C6C 90 0D 86 28 */ stw r0, print_errors(r13) -/* 80006C70 88 0D 86 19 */ lbz r0, struct_80450B98+0x1(r13) -/* 80006C74 28 00 00 00 */ cmplwi r0, 0 -/* 80006C78 40 82 00 60 */ bne lbl_80006CD8 -/* 80006C7C 3C 00 01 00 */ lis r0, 0x100 -/* 80006C80 90 01 00 68 */ stw r0, 0x68(r1) -/* 80006C84 38 01 00 88 */ addi r0, r1, 0x88 -/* 80006C88 90 01 00 6C */ stw r0, 0x6c(r1) -/* 80006C8C 38 01 00 08 */ addi r0, r1, 8 -/* 80006C90 90 01 00 70 */ stw r0, 0x70(r1) -/* 80006C94 4B FF FC 19 */ bl OSReportForceEnableOn -/* 80006C98 3C 60 80 37 */ lis r3, m_Do_m_Do_printf__stringBase0@ha /* 0x80373CB0@ha */ -/* 80006C9C 38 63 3C B0 */ addi r3, r3, m_Do_m_Do_printf__stringBase0@l /* 0x80373CB0@l */ -/* 80006CA0 38 63 00 3D */ addi r3, r3, 0x3d -/* 80006CA4 4B FF FB 25 */ bl my_PutString__FPCc -/* 80006CA8 7F E3 FB 78 */ mr r3, r31 -/* 80006CAC 38 81 00 68 */ addi r4, r1, 0x68 -/* 80006CB0 4B FF FD ED */ bl OSVReport -/* 80006CB4 3C 60 80 37 */ lis r3, m_Do_m_Do_printf__stringBase0@ha /* 0x80373CB0@ha */ -/* 80006CB8 38 63 3C B0 */ addi r3, r3, m_Do_m_Do_printf__stringBase0@l /* 0x80373CB0@l */ -/* 80006CBC 38 63 00 4D */ addi r3, r3, 0x4d -/* 80006CC0 4B FF FB 09 */ bl my_PutString__FPCc -/* 80006CC4 4B FF FB F5 */ bl OSReportForceEnableOff -/* 80006CC8 3C 60 80 3D */ lis r3, __files@ha /* 0x803D29B0@ha */ -/* 80006CCC 38 63 29 B0 */ addi r3, r3, __files@l /* 0x803D29B0@l */ -/* 80006CD0 38 63 00 50 */ addi r3, r3, 0x50 -/* 80006CD4 48 35 EB ED */ bl fflush -lbl_80006CD8: -/* 80006CD8 83 E1 00 7C */ lwz r31, 0x7c(r1) -/* 80006CDC 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80006CE0 7C 08 03 A6 */ mtlr r0 -/* 80006CE4 38 21 00 80 */ addi r1, r1, 0x80 -/* 80006CE8 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReport_FatalError.s b/asm/m_Do/m_Do_printf/OSReport_FatalError.s deleted file mode 100644 index 5bb6efd89a6..00000000000 --- a/asm/m_Do/m_Do_printf/OSReport_FatalError.s +++ /dev/null @@ -1,54 +0,0 @@ -lbl_80006B3C: -/* 80006B3C 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80006B40 7C 08 02 A6 */ mflr r0 -/* 80006B44 90 01 00 84 */ stw r0, 0x84(r1) -/* 80006B48 93 E1 00 7C */ stw r31, 0x7c(r1) -/* 80006B4C 7C 7F 1B 78 */ mr r31, r3 -/* 80006B50 40 86 00 24 */ bne cr1, lbl_80006B74 -/* 80006B54 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80006B58 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 80006B5C D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80006B60 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80006B64 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80006B68 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 80006B6C D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80006B70 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80006B74: -/* 80006B74 90 61 00 08 */ stw r3, 8(r1) -/* 80006B78 90 81 00 0C */ stw r4, 0xc(r1) -/* 80006B7C 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80006B80 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80006B84 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80006B88 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80006B8C 91 21 00 20 */ stw r9, 0x20(r1) -/* 80006B90 91 41 00 24 */ stw r10, 0x24(r1) -/* 80006B94 3C 00 01 00 */ lis r0, 0x100 -/* 80006B98 90 01 00 68 */ stw r0, 0x68(r1) -/* 80006B9C 38 01 00 88 */ addi r0, r1, 0x88 -/* 80006BA0 90 01 00 6C */ stw r0, 0x6c(r1) -/* 80006BA4 38 01 00 08 */ addi r0, r1, 8 -/* 80006BA8 90 01 00 70 */ stw r0, 0x70(r1) -/* 80006BAC 4B FF FD 01 */ bl OSReportForceEnableOn -/* 80006BB0 3C 60 80 37 */ lis r3, m_Do_m_Do_printf__stringBase0@ha /* 0x80373CB0@ha */ -/* 80006BB4 38 63 3C B0 */ addi r3, r3, m_Do_m_Do_printf__stringBase0@l /* 0x80373CB0@l */ -/* 80006BB8 4B FF FC 11 */ bl my_PutString__FPCc -/* 80006BBC 7F E3 FB 78 */ mr r3, r31 -/* 80006BC0 38 81 00 68 */ addi r4, r1, 0x68 -/* 80006BC4 4B FF FC 31 */ bl OSVAttention__FPCcP16__va_list_struct -/* 80006BC8 3C 60 80 37 */ lis r3, m_Do_m_Do_printf__stringBase0@ha /* 0x80373CB0@ha */ -/* 80006BCC 38 63 3C B0 */ addi r3, r3, m_Do_m_Do_printf__stringBase0@l /* 0x80373CB0@l */ -/* 80006BD0 38 63 00 21 */ addi r3, r3, 0x21 -/* 80006BD4 4B FF FB F5 */ bl my_PutString__FPCc -/* 80006BD8 4B FF FC E1 */ bl OSReportForceEnableOff -/* 80006BDC 3C 60 80 3D */ lis r3, __files@ha /* 0x803D29B0@ha */ -/* 80006BE0 38 63 29 B0 */ addi r3, r3, __files@l /* 0x803D29B0@l */ -/* 80006BE4 38 63 00 50 */ addi r3, r3, 0x50 -/* 80006BE8 48 35 EC D9 */ bl fflush -/* 80006BEC 80 6D 86 28 */ lwz r3, print_errors(r13) -/* 80006BF0 38 03 00 01 */ addi r0, r3, 1 -/* 80006BF4 90 0D 86 28 */ stw r0, print_errors(r13) -/* 80006BF8 83 E1 00 7C */ lwz r31, 0x7c(r1) -/* 80006BFC 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80006C00 7C 08 03 A6 */ mtlr r0 -/* 80006C04 38 21 00 80 */ addi r1, r1, 0x80 -/* 80006C08 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReport_System.s b/asm/m_Do/m_Do_printf/OSReport_System.s deleted file mode 100644 index 9d452052bd2..00000000000 --- a/asm/m_Do/m_Do_printf/OSReport_System.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_80006DCC: -/* 80006DCC 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80006DD0 7C 08 02 A6 */ mflr r0 -/* 80006DD4 90 01 00 84 */ stw r0, 0x84(r1) -/* 80006DD8 93 E1 00 7C */ stw r31, 0x7c(r1) -/* 80006DDC 7C 7F 1B 78 */ mr r31, r3 -/* 80006DE0 40 86 00 24 */ bne cr1, lbl_80006E04 -/* 80006DE4 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80006DE8 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 80006DEC D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80006DF0 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80006DF4 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80006DF8 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 80006DFC D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80006E00 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80006E04: -/* 80006E04 90 61 00 08 */ stw r3, 8(r1) -/* 80006E08 90 81 00 0C */ stw r4, 0xc(r1) -/* 80006E0C 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80006E10 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80006E14 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80006E18 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80006E1C 91 21 00 20 */ stw r9, 0x20(r1) -/* 80006E20 91 41 00 24 */ stw r10, 0x24(r1) -/* 80006E24 80 6D 86 30 */ lwz r3, print_systems(r13) -/* 80006E28 38 03 00 01 */ addi r0, r3, 1 -/* 80006E2C 90 0D 86 30 */ stw r0, print_systems(r13) -/* 80006E30 88 0D 86 1B */ lbz r0, struct_80450B98+0x3(r13) -/* 80006E34 28 00 00 00 */ cmplwi r0, 0 -/* 80006E38 40 82 00 30 */ bne lbl_80006E68 -/* 80006E3C 3C 00 01 00 */ lis r0, 0x100 -/* 80006E40 90 01 00 68 */ stw r0, 0x68(r1) -/* 80006E44 38 01 00 88 */ addi r0, r1, 0x88 -/* 80006E48 90 01 00 6C */ stw r0, 0x6c(r1) -/* 80006E4C 38 01 00 08 */ addi r0, r1, 8 -/* 80006E50 90 01 00 70 */ stw r0, 0x70(r1) -/* 80006E54 4B FF FA 59 */ bl OSReportForceEnableOn -/* 80006E58 7F E3 FB 78 */ mr r3, r31 -/* 80006E5C 38 81 00 68 */ addi r4, r1, 0x68 -/* 80006E60 4B FF F9 95 */ bl OSVAttention__FPCcP16__va_list_struct -/* 80006E64 4B FF FA 55 */ bl OSReportForceEnableOff -lbl_80006E68: -/* 80006E68 83 E1 00 7C */ lwz r31, 0x7c(r1) -/* 80006E6C 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80006E70 7C 08 03 A6 */ mtlr r0 -/* 80006E74 38 21 00 80 */ addi r1, r1, 0x80 -/* 80006E78 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSReport_Warning.s b/asm/m_Do/m_Do_printf/OSReport_Warning.s deleted file mode 100644 index df1eb4f04db..00000000000 --- a/asm/m_Do/m_Do_printf/OSReport_Warning.s +++ /dev/null @@ -1,59 +0,0 @@ -lbl_80006CEC: -/* 80006CEC 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80006CF0 7C 08 02 A6 */ mflr r0 -/* 80006CF4 90 01 00 84 */ stw r0, 0x84(r1) -/* 80006CF8 93 E1 00 7C */ stw r31, 0x7c(r1) -/* 80006CFC 7C 7F 1B 78 */ mr r31, r3 -/* 80006D00 40 86 00 24 */ bne cr1, lbl_80006D24 -/* 80006D04 D8 21 00 28 */ stfd f1, 0x28(r1) -/* 80006D08 D8 41 00 30 */ stfd f2, 0x30(r1) -/* 80006D0C D8 61 00 38 */ stfd f3, 0x38(r1) -/* 80006D10 D8 81 00 40 */ stfd f4, 0x40(r1) -/* 80006D14 D8 A1 00 48 */ stfd f5, 0x48(r1) -/* 80006D18 D8 C1 00 50 */ stfd f6, 0x50(r1) -/* 80006D1C D8 E1 00 58 */ stfd f7, 0x58(r1) -/* 80006D20 D9 01 00 60 */ stfd f8, 0x60(r1) -lbl_80006D24: -/* 80006D24 90 61 00 08 */ stw r3, 8(r1) -/* 80006D28 90 81 00 0C */ stw r4, 0xc(r1) -/* 80006D2C 90 A1 00 10 */ stw r5, 0x10(r1) -/* 80006D30 90 C1 00 14 */ stw r6, 0x14(r1) -/* 80006D34 90 E1 00 18 */ stw r7, 0x18(r1) -/* 80006D38 91 01 00 1C */ stw r8, 0x1c(r1) -/* 80006D3C 91 21 00 20 */ stw r9, 0x20(r1) -/* 80006D40 91 41 00 24 */ stw r10, 0x24(r1) -/* 80006D44 80 6D 86 2C */ lwz r3, print_warings(r13) -/* 80006D48 38 03 00 01 */ addi r0, r3, 1 -/* 80006D4C 90 0D 86 2C */ stw r0, print_warings(r13) -/* 80006D50 88 0D 86 1A */ lbz r0, struct_80450B98+0x2(r13) -/* 80006D54 28 00 00 00 */ cmplwi r0, 0 -/* 80006D58 40 82 00 60 */ bne lbl_80006DB8 -/* 80006D5C 3C 00 01 00 */ lis r0, 0x100 -/* 80006D60 90 01 00 68 */ stw r0, 0x68(r1) -/* 80006D64 38 01 00 88 */ addi r0, r1, 0x88 -/* 80006D68 90 01 00 6C */ stw r0, 0x6c(r1) -/* 80006D6C 38 01 00 08 */ addi r0, r1, 8 -/* 80006D70 90 01 00 70 */ stw r0, 0x70(r1) -/* 80006D74 4B FF FB 39 */ bl OSReportForceEnableOn -/* 80006D78 3C 60 80 37 */ lis r3, m_Do_m_Do_printf__stringBase0@ha /* 0x80373CB0@ha */ -/* 80006D7C 38 63 3C B0 */ addi r3, r3, m_Do_m_Do_printf__stringBase0@l /* 0x80373CB0@l */ -/* 80006D80 38 63 00 51 */ addi r3, r3, 0x51 -/* 80006D84 4B FF FA 45 */ bl my_PutString__FPCc -/* 80006D88 7F E3 FB 78 */ mr r3, r31 -/* 80006D8C 38 81 00 68 */ addi r4, r1, 0x68 -/* 80006D90 4B FF FA 65 */ bl OSVAttention__FPCcP16__va_list_struct -/* 80006D94 3C 60 80 37 */ lis r3, m_Do_m_Do_printf__stringBase0@ha /* 0x80373CB0@ha */ -/* 80006D98 38 63 3C B0 */ addi r3, r3, m_Do_m_Do_printf__stringBase0@l /* 0x80373CB0@l */ -/* 80006D9C 38 63 00 4D */ addi r3, r3, 0x4d -/* 80006DA0 4B FF FA 29 */ bl my_PutString__FPCc -/* 80006DA4 4B FF FB 15 */ bl OSReportForceEnableOff -/* 80006DA8 3C 60 80 3D */ lis r3, __files@ha /* 0x803D29B0@ha */ -/* 80006DAC 38 63 29 B0 */ addi r3, r3, __files@l /* 0x803D29B0@l */ -/* 80006DB0 38 63 00 50 */ addi r3, r3, 0x50 -/* 80006DB4 48 35 EB 0D */ bl fflush -lbl_80006DB8: -/* 80006DB8 83 E1 00 7C */ lwz r31, 0x7c(r1) -/* 80006DBC 80 01 00 84 */ lwz r0, 0x84(r1) -/* 80006DC0 7C 08 03 A6 */ mtlr r0 -/* 80006DC4 38 21 00 80 */ addi r1, r1, 0x80 -/* 80006DC8 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSVAttention__FPCcP16__va_list_struct.s b/asm/m_Do/m_Do_printf/OSVAttention__FPCcP16__va_list_struct.s deleted file mode 100644 index e77e26c7687..00000000000 --- a/asm/m_Do/m_Do_printf/OSVAttention__FPCcP16__va_list_struct.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_800067F4: -/* 800067F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800067F8 7C 08 02 A6 */ mflr r0 -/* 800067FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80006800 48 00 01 85 */ bl mDoPrintf_vprintf__FPCcP16__va_list_struct -/* 80006804 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80006808 7C 08 03 A6 */ mtlr r0 -/* 8000680C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80006810 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/OSVReport.s b/asm/m_Do/m_Do_printf/OSVReport.s deleted file mode 100644 index 06d2da67dc8..00000000000 --- a/asm/m_Do/m_Do_printf/OSVReport.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80006A9C: -/* 80006A9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80006AA0 7C 08 02 A6 */ mflr r0 -/* 80006AA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80006AA8 4B FF FF 69 */ bl mDoPrintf_VReport -/* 80006AAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80006AB0 7C 08 03 A6 */ mtlr r0 -/* 80006AB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80006AB8 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/mDoPrintf_VReport.s b/asm/m_Do/m_Do_printf/mDoPrintf_VReport.s deleted file mode 100644 index 1ae617d627e..00000000000 --- a/asm/m_Do/m_Do_printf/mDoPrintf_VReport.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_80006A10: -/* 80006A10 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80006A14 7C 08 02 A6 */ mflr r0 -/* 80006A18 90 01 00 14 */ stw r0, 0x14(r1) -/* 80006A1C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80006A20 93 C1 00 08 */ stw r30, 8(r1) -/* 80006A24 7C 7E 1B 78 */ mr r30, r3 -/* 80006A28 7C 9F 23 78 */ mr r31, r4 -/* 80006A2C 88 0D 86 34 */ lbz r0, struct_80450BB4+0x0(r13) -/* 80006A30 28 00 00 00 */ cmplwi r0, 0 -/* 80006A34 40 82 00 08 */ bne lbl_80006A3C -/* 80006A38 4B FF FE 8D */ bl OSReportInit__Fv -lbl_80006A3C: -/* 80006A3C 88 0D 86 1C */ lbz r0, data_80450B9C(r13) -/* 80006A40 28 00 00 00 */ cmplwi r0, 0 -/* 80006A44 40 82 00 10 */ bne lbl_80006A54 -/* 80006A48 88 0D 86 18 */ lbz r0, struct_80450B98+0x0(r13) -/* 80006A4C 28 00 00 00 */ cmplwi r0, 0 -/* 80006A50 40 82 00 34 */ bne lbl_80006A84 -lbl_80006A54: -/* 80006A54 48 00 E3 11 */ bl mDoExt_GetCurrentRunningThread__Fv -/* 80006A58 80 0D 86 20 */ lwz r0, __OSReport_MonopolyThread(r13) -/* 80006A5C 28 00 00 00 */ cmplwi r0, 0 -/* 80006A60 41 82 00 0C */ beq lbl_80006A6C -/* 80006A64 7C 00 18 40 */ cmplw r0, r3 -/* 80006A68 40 82 00 1C */ bne lbl_80006A84 -lbl_80006A6C: -/* 80006A6C 7F C3 F3 78 */ mr r3, r30 -/* 80006A70 7F E4 FB 78 */ mr r4, r31 -/* 80006A74 4B FF FF 11 */ bl mDoPrintf_vprintf__FPCcP16__va_list_struct -/* 80006A78 80 6D 86 24 */ lwz r3, print_counts(r13) -/* 80006A7C 38 03 00 01 */ addi r0, r3, 1 -/* 80006A80 90 0D 86 24 */ stw r0, print_counts(r13) -lbl_80006A84: -/* 80006A84 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80006A88 83 C1 00 08 */ lwz r30, 8(r1) -/* 80006A8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80006A90 7C 08 03 A6 */ mtlr r0 -/* 80006A94 38 21 00 10 */ addi r1, r1, 0x10 -/* 80006A98 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct.s b/asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct.s deleted file mode 100644 index 99a8ff5c3f7..00000000000 --- a/asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct.s +++ /dev/null @@ -1,36 +0,0 @@ -lbl_800068DC: -/* 800068DC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800068E0 7C 08 02 A6 */ mflr r0 -/* 800068E4 90 01 00 24 */ stw r0, 0x24(r1) -/* 800068E8 39 61 00 20 */ addi r11, r1, 0x20 -/* 800068EC 48 35 B8 F1 */ bl _savegpr_29 -/* 800068F0 7C 7D 1B 78 */ mr r29, r3 -/* 800068F4 7C 9E 23 78 */ mr r30, r4 -/* 800068F8 48 33 6D FD */ bl OSDisableInterrupts -/* 800068FC 7C 7F 1B 78 */ mr r31, r3 -/* 80006900 88 0D 86 35 */ lbz r0, struct_80450BB4+0x1(r13) -/* 80006904 28 00 00 00 */ cmplwi r0, 0 -/* 80006908 40 82 00 3C */ bne lbl_80006944 -/* 8000690C 38 00 00 01 */ li r0, 1 -/* 80006910 98 0D 86 35 */ stb r0, struct_80450BB4+0x1(r13) -/* 80006914 7F A3 EB 78 */ mr r3, r29 -/* 80006918 7F C4 F3 78 */ mr r4, r30 -/* 8000691C 38 A0 00 00 */ li r5, 0 -/* 80006920 38 C0 00 00 */ li r6, 0 -/* 80006924 3C E0 80 36 */ lis r7, vprintf@ha /* 0x80366704@ha */ -/* 80006928 38 E7 67 04 */ addi r7, r7, vprintf@l /* 0x80366704@l */ -/* 8000692C 3D 00 80 3E */ lis r8, mDoPrintf_FiberStack@ha /* 0x803DB740@ha */ -/* 80006930 39 08 B7 40 */ addi r8, r8, mDoPrintf_FiberStack@l /* 0x803DB740@l */ -/* 80006934 39 08 08 00 */ addi r8, r8, 0x800 -/* 80006938 4B FF FE 61 */ bl OSSwitchFiberEx__FUlUlUlUlUlUl -/* 8000693C 38 00 00 00 */ li r0, 0 -/* 80006940 98 0D 86 35 */ stb r0, struct_80450BB4+0x1(r13) -lbl_80006944: -/* 80006944 7F E3 FB 78 */ mr r3, r31 -/* 80006948 48 33 6D D5 */ bl OSRestoreInterrupts -/* 8000694C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80006950 48 35 B8 D9 */ bl _restgpr_29 -/* 80006954 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80006958 7C 08 03 A6 */ mtlr r0 -/* 8000695C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80006960 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct.s b/asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct.s deleted file mode 100644 index 02aa9ca2cf7..00000000000 --- a/asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct.s +++ /dev/null @@ -1,9 +0,0 @@ -lbl_80006964: -/* 80006964 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80006968 7C 08 02 A6 */ mflr r0 -/* 8000696C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80006970 48 35 FD 95 */ bl vprintf -/* 80006974 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80006978 7C 08 03 A6 */ mtlr r0 -/* 8000697C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80006980 4E 80 00 20 */ blr diff --git a/asm/m_Do/m_Do_printf/mDoPrintf_vprintf__FPCcP16__va_list_struct.s b/asm/m_Do/m_Do_printf/mDoPrintf_vprintf__FPCcP16__va_list_struct.s deleted file mode 100644 index 924baebf6b6..00000000000 --- a/asm/m_Do/m_Do_printf/mDoPrintf_vprintf__FPCcP16__va_list_struct.s +++ /dev/null @@ -1,40 +0,0 @@ -lbl_80006984: -/* 80006984 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80006988 7C 08 02 A6 */ mflr r0 -/* 8000698C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80006990 39 61 00 20 */ addi r11, r1, 0x20 -/* 80006994 48 35 B8 49 */ bl _savegpr_29 -/* 80006998 7C 7D 1B 78 */ mr r29, r3 -/* 8000699C 7C 9E 23 78 */ mr r30, r4 -/* 800069A0 48 00 E3 C5 */ bl mDoExt_GetCurrentRunningThread__Fv -/* 800069A4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800069A8 40 82 00 14 */ bne lbl_800069BC -/* 800069AC 7F A3 EB 78 */ mr r3, r29 -/* 800069B0 7F C4 F3 78 */ mr r4, r30 -/* 800069B4 4B FF FF 29 */ bl mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct -/* 800069B8 48 00 00 40 */ b lbl_800069F8 -lbl_800069BC: -/* 800069BC 48 33 56 3D */ bl OSGetStackPointer -/* 800069C0 80 9F 03 08 */ lwz r4, 0x308(r31) -/* 800069C4 38 04 0A 00 */ addi r0, r4, 0xa00 -/* 800069C8 7C 03 00 40 */ cmplw r3, r0 -/* 800069CC 41 80 00 10 */ blt lbl_800069DC -/* 800069D0 80 1F 03 04 */ lwz r0, 0x304(r31) -/* 800069D4 7C 03 00 40 */ cmplw r3, r0 -/* 800069D8 40 81 00 14 */ ble lbl_800069EC -lbl_800069DC: -/* 800069DC 7F A3 EB 78 */ mr r3, r29 -/* 800069E0 7F C4 F3 78 */ mr r4, r30 -/* 800069E4 4B FF FE F9 */ bl mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct -/* 800069E8 48 00 00 10 */ b lbl_800069F8 -lbl_800069EC: -/* 800069EC 7F A3 EB 78 */ mr r3, r29 -/* 800069F0 7F C4 F3 78 */ mr r4, r30 -/* 800069F4 4B FF FF 71 */ bl mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct -lbl_800069F8: -/* 800069F8 39 61 00 20 */ addi r11, r1, 0x20 -/* 800069FC 48 35 B8 2D */ bl _restgpr_29 -/* 80006A00 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80006A04 7C 08 03 A6 */ mtlr r0 -/* 80006A08 38 21 00 20 */ addi r1, r1, 0x20 -/* 80006A0C 4E 80 00 20 */ blr diff --git a/include/JSystem/JGadget/linklist.h b/include/JSystem/JGadget/linklist.h index 0bae6087776..1a3390f1ac5 100644 --- a/include/JSystem/JGadget/linklist.h +++ b/include/JSystem/JGadget/linklist.h @@ -5,12 +5,34 @@ namespace JGadget { struct TLinkListNode { + TLinkListNode() { + mNext = NULL; + mPrev = NULL; + } + TLinkListNode* mNext; TLinkListNode* mPrev; }; struct TNodeLinkList { - struct iterator {}; + struct iterator { + iterator(TLinkListNode* pNode) { node = pNode; } + iterator(const iterator& iter) { *this = iter; } + + TLinkListNode* node; + }; + + TNodeLinkList() : mListNode() { Initialize_(); } + void Initialize_() { + ptr = NULL; + mListNode.mNext = &mListNode; + mListNode.mPrev = &mListNode; + } + + iterator end() { + iterator iter(&mListNode); + return iter; + } /* 802DCA1C */ ~TNodeLinkList(); /* 802DCAA0 */ void erase(JGadget::TNodeLinkList::iterator, JGadget::TNodeLinkList::iterator); @@ -20,6 +42,38 @@ struct TNodeLinkList { /* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*); /* 802DCBD4 */ void Erase(JGadget::TLinkListNode*); /* 802DCBF8 */ void Remove(JGadget::TLinkListNode*); + + /* 0x00 */ TNodeLinkList* ptr; + /* 0x04 */ TLinkListNode mListNode; +}; // Size: 0xC + +template +struct TLinkList : public TNodeLinkList { + TLinkList() : TNodeLinkList() {} + + struct iterator : TNodeLinkList::iterator { + iterator(TNodeLinkList::iterator iter) : TNodeLinkList::iterator(iter) {} + }; + + TLinkListNode* Element_toNode(T* element) const { + return &element->mListNode; + } + + void Insert(TLinkList::iterator iter, T* element) { + TLinkListNode* node = Element_toNode(element); + TNodeLinkList::Insert(iter, node); + } + + TLinkList::iterator end() { + TNodeLinkList::iterator node_iter = TNodeLinkList::end(); + TLinkList::iterator iter(node_iter); + return iter; + } + + void Push_back(T* element) { + TLinkList::iterator iter(TLinkList::end()); + this->Insert(iter, element); + } }; }; // namespace JGadget diff --git a/include/JSystem/JUtility/JUTConsole.h b/include/JSystem/JUtility/JUTConsole.h index 358b7a06b55..9c73f30cc7a 100644 --- a/include/JSystem/JUtility/JUTConsole.h +++ b/include/JSystem/JUtility/JUTConsole.h @@ -5,24 +5,27 @@ #include "JSystem/JKernel/JKRDisposer.h" #include "JSystem/JUtility/JUTFont.h" #include "JSystem/JUtility/TColor.h" +#include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/types.h" class JUTConsole : public JKRDisposer { public: - enum EConsoleType {}; + enum EConsoleType { + UNK_TYPE2 = 2, + }; /* 802E73E4 */ void create(unsigned int, void*, u32); /* 802E7354 */ void create(unsigned int, unsigned int, JKRHeap*); /* 802E746C */ JUTConsole(unsigned int, unsigned int, bool); - /* 802E75CC */ void getObjectSizeFromBufferSize(unsigned int, unsigned int); - /* 802E75DC */ void getLineFromObjectSize(u32, unsigned int); + /* 802E75CC */ static size_t getObjectSizeFromBufferSize(unsigned int, unsigned int); + /* 802E75DC */ static size_t getLineFromObjectSize(u32, unsigned int); /* 802E75EC */ void clear(); /* 802E7648 */ void doDraw(JUTConsole::EConsoleType) const; /* 802E7BB8 */ void print_f(char const*, ...); /* 802E7C38 */ void print(char const*); /* 802E7F7C */ void dumpToTerminal(unsigned int); /* 802E80A8 */ void scroll(int); - /* 802E8184 */ void getUsedLine() const; + /* 802E8184 */ int getUsedLine() const; /* 802E81A8 */ int getLineOffset() const; /* 802E755C */ virtual ~JUTConsole(); @@ -44,11 +47,27 @@ public: void setVisible(bool visible) { mVisible = visible; } -private: + void setLineAttr(int param_0, u8 param_1) { + *((u8*)mBuf + (field_0x20 + 2) * param_0) = param_1; + } + + u8* getLinePtr(int param_0) const { + return ((u8*)mBuf + (field_0x20 + 2) * param_0 + 1); + } + + int diffIndex(int param_0, int param_1) const { + int diff = param_1 - param_0; + if (diff >= 0) { + return diff; + } + return diff += field_0x24; + } + /* 0x18 */ JGadget::TLinkListNode mListNode; +private: /* 0x20 */ u32 field_0x20; /* 0x24 */ u32 field_0x24; - /* 0x28 */ u32 field_0x28; + /* 0x28 */ void* mBuf; /* 0x2C */ bool field_0x2c; /* 0x30 */ int field_0x30; /* 0x34 */ int field_0x34; @@ -70,4 +89,32 @@ private: /* 0x6B */ bool field_0x6b; }; // Size: 0x6C +class JUTConsoleManager { +public: + /* 802E81CC */ JUTConsoleManager(); + /* 802E81F4 */ static JUTConsoleManager* createManager(JKRHeap*); + /* 802E8240 */ void appendConsole(JUTConsole*); + /* 802E82B0 */ void removeConsole(JUTConsole*); + /* 802E8384 */ void draw() const; + /* 802E8450 */ void drawDirect(bool) const; + /* 802E84C4 */ void setDirectConsole(JUTConsole*); + + static JUTConsoleManager* getManager() { return sManager; } + + static JUTConsoleManager* sManager; + +private: + /* 0x00 */ JGadget::TLinkList mLinkList; + /* 0x0C */ JUTConsole* mActiveConsole; + /* 0x10 */ JUTConsole* mDirectConsole; +}; // Size: 0x14 + +void JUTConsole_print_f_va_(JUTConsole*, const char*, va_list); +void JUTSetReportConsole(JUTConsole*); +JUTConsole* JUTGetReportConsole(); +void JUTSetWarningConsole(JUTConsole*); +JUTConsole* JUTGetWarningConsole(); +void JUTReportConsole_f_va(const char*, va_list); +void JUTReportConsole_f(const char*, ...); + #endif /* JUTCONSOLE_H */ diff --git a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h index c1c5507c242..de624dee0ee 100644 --- a/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h +++ b/include/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h @@ -3,4 +3,12 @@ #include "dolphin/types.h" +struct __va_list_struct; + +extern "C" size_t sprintf(const char*, const char*, ...); +extern "C" size_t snprintf(const char*, size_t, const char*, ...); +extern "C" size_t vsnprintf(char*, size_t, const char*, __va_list_struct*); +extern "C" size_t vprintf(const char*, __va_list_struct*); +extern "C" size_t printf(const char*, ...); + #endif /* MSL_COMMON_SRC_PRINTF_H */ diff --git a/include/dolphin/os/OS.h b/include/dolphin/os/OS.h index c972b90e927..e6620ecac0c 100644 --- a/include/dolphin/os/OS.h +++ b/include/dolphin/os/OS.h @@ -122,7 +122,7 @@ struct OSThread { void* data[2]; }; -struct __va_list_struct {}; +struct __va_list_struct; extern "C" { s32 OSEnableScheduler(void); diff --git a/include/m_Do/m_Do_machine_exception.h b/include/m_Do/m_Do_machine_exception.h index 91e66a046c5..22776bb2e48 100644 --- a/include/m_Do/m_Do_machine_exception.h +++ b/include/m_Do/m_Do_machine_exception.h @@ -3,6 +3,7 @@ #include "dolphin/types.h" +void print_f(char const*, ...); void print(char const*); void dispHeapInfo(); void dispGameInfo(); diff --git a/include/m_Do/m_Do_main.h b/include/m_Do/m_Do_main.h index a82df3f0f32..09a01987a69 100644 --- a/include/m_Do/m_Do_main.h +++ b/include/m_Do/m_Do_main.h @@ -49,4 +49,10 @@ struct mDoMain { extern s8 data_80450580; +extern bool sOSReportDisabled; +extern bool data_80450B99; +extern bool data_80450B9A; +extern bool data_80450B9B; +extern bool sOSReportForceEnable; + #endif /* M_DO_M_DO_MAIN_H */ diff --git a/include/m_Do/m_Do_printf.h b/include/m_Do/m_Do_printf.h index d90f8dae7cb..a0e5d4a7f17 100644 --- a/include/m_Do/m_Do_printf.h +++ b/include/m_Do/m_Do_printf.h @@ -3,8 +3,14 @@ #include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/char_io.h" #include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h" +#include "Runtime.PPCEABI.H/__va_arg.h" +#include "m_Do/m_Do_main.h" #include "dolphin/types.h" void my_PutString(const char*); +void mDoPrintf_vprintf_Interrupt(char const*, __va_list_struct*); +void mDoPrintf_vprintf_Thread(char const*, __va_list_struct*); +void mDoPrintf_vprintf(const char*, __va_list_struct*); +void mDoPrintf_VReport(const char*, __va_list_struct*); #endif /* M_DO_M_DO_PRINTF_H */ diff --git a/libs/JSystem/JFramework/JFWSystem.cpp b/libs/JSystem/JFramework/JFWSystem.cpp index b102ce1a28d..3339bf57dfd 100644 --- a/libs/JSystem/JFramework/JFWSystem.cpp +++ b/libs/JSystem/JFramework/JFWSystem.cpp @@ -47,10 +47,6 @@ struct JUTDbPrint { /* 802E0204 */ void changeFont(JUTFont*); }; -struct JUTConsoleManager { - /* 802E81F4 */ void createManager(JKRHeap*); -}; - struct JUTAssertion { /* 802E495C */ void create(); }; diff --git a/libs/JSystem/JUtility/JUTConsole.cpp b/libs/JSystem/JUtility/JUTConsole.cpp index 54abc8e400f..3222bcc4cd4 100644 --- a/libs/JSystem/JUtility/JUTConsole.cpp +++ b/libs/JSystem/JUtility/JUTConsole.cpp @@ -4,6 +4,8 @@ // #include "JSystem/JUtility/JUTConsole.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -23,24 +25,6 @@ struct JUTDirectPrint { static u8 sDirectPrint[4 + 4 /* padding */]; }; -struct JKRHeap { - /* 802CE474 */ void alloc(u32, int, JKRHeap*); - - static u8 sCurrentHeap[4]; -}; - -struct JUTConsoleManager { - /* 802E81CC */ JUTConsoleManager(); - /* 802E81F4 */ void createManager(JKRHeap*); - /* 802E8240 */ void appendConsole(JUTConsole*); - /* 802E82B0 */ void removeConsole(JUTConsole*); - /* 802E8384 */ void draw() const; - /* 802E8450 */ void drawDirect(bool) const; - /* 802E84C4 */ void setDirectConsole(JUTConsole*); - - static u8 sManager[4]; -}; - struct J2DOrthoGraph { /* 802E96D0 */ J2DOrthoGraph(f32, f32, f32, f32, f32, f32); /* 802E97B4 */ void setPort(); @@ -60,7 +44,6 @@ extern "C" void clear__10JUTConsoleFv(); extern "C" void doDraw__10JUTConsoleCFQ210JUTConsole12EConsoleType(); extern "C" void print_f__10JUTConsoleFPCce(); extern "C" void print__10JUTConsoleFPCc(); -extern "C" void JUTConsole_print_f_va_(); extern "C" void dumpToTerminal__10JUTConsoleFUi(); extern "C" void scroll__10JUTConsoleFi(); extern "C" void getUsedLine__10JUTConsoleCFv(); @@ -72,15 +55,9 @@ extern "C" void removeConsole__17JUTConsoleManagerFP10JUTConsole(); extern "C" void draw__17JUTConsoleManagerCFv(); extern "C" void drawDirect__17JUTConsoleManagerCFb(); extern "C" void setDirectConsole__17JUTConsoleManagerFP10JUTConsole(); -extern "C" void JUTSetReportConsole(); -extern "C" u32 JUTGetReportConsole(); -extern "C" void JUTSetWarningConsole(); -extern "C" u32 JUTGetWarningConsole(); -extern "C" static void JUTReportConsole_f_va(); -extern "C" void JUTReportConsole_f(); -extern "C" void JUTReportConsole(); -extern "C" void JUTWarningConsole_f(); -extern "C" void JUTWarningConsole(); +extern "C" void JUTReportConsole(const char* message); +extern "C" void JUTWarningConsole_f(const char* fmt, ...); +extern "C" void JUTWarningConsole(const char*); extern "C" extern char const* const JUTConsole__stringBase0; extern "C" u8 sManager__17JUTConsoleManager[4]; @@ -88,7 +65,6 @@ extern "C" u8 sManager__17JUTConsoleManager[4]; // External References: // -extern "C" void OSReport(); extern "C" void alloc__7JKRHeapFUliP7JKRHeap(); extern "C" void* __nw__FUlP7JKRHeapi(); extern "C" void __dl__FPv(); @@ -105,9 +81,7 @@ extern "C" void setCharColor__14JUTDirectPrintFQ28JUtility6TColor(); extern "C" void __ct__13J2DOrthoGraphFffffff(); extern "C" void setPort__13J2DOrthoGraphFv(); extern "C" void J2DFillBox__FffffQ28JUtility6TColor(); -extern "C" void OSEnableInterrupts(); -extern "C" void OSRestoreInterrupts(); -extern "C" void VIGetRetraceCount(); +extern "C" u32 VIGetRetraceCount(); extern "C" void _savegpr_20(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); @@ -116,7 +90,6 @@ extern "C" void _restgpr_20(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void vsnprintf(); extern "C" void strlen(); extern "C" extern void* __vt__14J2DGrafContext[10]; extern "C" extern void* __vt__13J2DOrthoGraph[10]; @@ -130,7 +103,7 @@ extern "C" u8 sManager__8JUTVideo[4]; /* ############################################################################################## */ /* 80451570-80451574 000A70 0004+00 4/4 7/7 0/0 .sbss sManager__17JUTConsoleManager */ -u8 JUTConsoleManager::sManager[4]; +JUTConsoleManager* JUTConsoleManager::sManager; /* 802E7354-802E73E4 2E1C94 0090+00 0/0 1/1 0/0 .text create__10JUTConsoleFUiUiP7JKRHeap */ @@ -164,55 +137,60 @@ SECTION_DATA extern void* __vt__10JUTConsole[3 + 1 /* padding */] = { }; /* 802E746C-802E755C 2E1DAC 00F0+00 2/2 0/0 0/0 .text __ct__10JUTConsoleFUiUib */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JUTConsole::JUTConsole(unsigned int param_0, unsigned int param_1, bool param_2) { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/__ct__10JUTConsoleFUiUib.s" +JUTConsole::JUTConsole(unsigned int param_0, unsigned int param_1, bool param_2) { + field_0x2c = param_2; + field_0x20 = param_0; + field_0x24 = param_1; + + mPositionX = 30; + mPositionY = 50; + mHeight = 20; + + if (mHeight > field_0x24) { + mHeight = field_0x24; + } + + mFont = NULL; + mVisible = true; + field_0x69 = false; + field_0x6a = false; + field_0x6b = false; + mOutput = 1; + + field_0x5c.set(0, 0, 0, 100); + field_0x60.set(0, 0, 0, 230); + field_0x64 = 8; } -#pragma pop /* 802E755C-802E75CC 2E1E9C 0070+00 1/0 0/0 0/0 .text __dt__10JUTConsoleFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JUTConsole::~JUTConsole() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/__dt__10JUTConsoleFv.s" +JUTConsole::~JUTConsole() { + JUTConsoleManager::getManager()->removeConsole(this); } -#pragma pop /* 802E75CC-802E75DC 2E1F0C 0010+00 1/1 0/0 0/0 .text * getObjectSizeFromBufferSize__10JUTConsoleFUiUi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsole::getObjectSizeFromBufferSize(unsigned int param_0, unsigned int param_1) { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/getObjectSizeFromBufferSize__10JUTConsoleFUiUi.s" +size_t JUTConsole::getObjectSizeFromBufferSize(unsigned int param_0, unsigned int param_1) { + return (param_0 + 2) * param_1 + sizeof(JUTConsole); } -#pragma pop /* 802E75DC-802E75EC 2E1F1C 0010+00 1/1 1/1 0/0 .text getLineFromObjectSize__10JUTConsoleFUlUi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsole::getLineFromObjectSize(u32 param_0, unsigned int param_1) { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/getLineFromObjectSize__10JUTConsoleFUlUi.s" +size_t JUTConsole::getLineFromObjectSize(u32 param_0, unsigned int param_1) { + return (param_0 - sizeof(JUTConsole)) / (param_1 + 2); } -#pragma pop /* 802E75EC-802E7648 2E1F2C 005C+00 2/2 2/2 0/0 .text clear__10JUTConsoleFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsole::clear() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/clear__10JUTConsoleFv.s" +void JUTConsole::clear() { + field_0x30 = 0; + field_0x34 = 0; + field_0x38 = 0; + field_0x3c = 0; + + for (int i = 0; i < field_0x24; i++) { + setLineAttr(i, 0); + } + setLineAttr(0, -1); + *getLinePtr(0) = 0; } -#pragma pop /* ############################################################################################## */ /* 80456118-8045611C 004718 0004+00 1/1 0/0 0/0 .sdata2 @2460 */ @@ -263,14 +241,12 @@ asm void JUTConsole::doDraw(JUTConsole::EConsoleType param_0) const { #pragma pop /* 802E7BB8-802E7C38 2E24F8 0080+00 0/0 13/13 0/0 .text print_f__10JUTConsoleFPCce */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsole::print_f(char const* param_0, ...) { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/print_f__10JUTConsoleFPCce.s" +void JUTConsole::print_f(char const* fmt, ...) { + va_list args; + va_start(args, fmt); + JUTConsole_print_f_va_(this, fmt, args); + va_end(args); } -#pragma pop /* 802E7C38-802E7F30 2E2578 02F8+00 2/2 10/10 0/0 .text print__10JUTConsoleFPCc */ #pragma push @@ -283,14 +259,11 @@ asm void JUTConsole::print(char const* param_0) { #pragma pop /* 802E7F30-802E7F7C 2E2870 004C+00 1/1 1/1 0/0 .text JUTConsole_print_f_va_ */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsole_print_f_va_() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTConsole_print_f_va_.s" +void JUTConsole_print_f_va_(JUTConsole* console, const char* fmt, va_list args) { + char buf[1024]; + vsnprintf(buf, sizeof(buf), fmt, args); + console->print(buf); } -#pragma pop /* ############################################################################################## */ /* 8039D9A8-8039D9A8 02A008 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -311,6 +284,36 @@ asm void JUTConsole::dumpToTerminal(unsigned int param_0) { #pragma pop /* 802E80A8-802E8184 2E29E8 00DC+00 0/0 3/3 0/0 .text scroll__10JUTConsoleFi */ +// regalloc +#ifdef NONMATCHING +void JUTConsole::scroll(int param_0) { + if (param_0 < 0) { + int diff = diffIndex(field_0x34, field_0x30); + if (param_0 < -diff) { + param_0 = -diff; + } + } else { + if (param_0 > 0) { + int diff = diffIndex(field_0x34, field_0x38); + if (diff + 1 <= mHeight) { + param_0 = 0; + } else { + diff = diffIndex(field_0x30, field_0x38); + if (param_0 > (int)(diff - mHeight) + 1) { + param_0 = diff; + } + } + } + } + field_0x30 += param_0; + if (field_0x30 < 0) { + field_0x30 += field_0x24; + } + if (field_0x30 >= field_0x24) { + field_0x30 -= field_0x24; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -319,50 +322,45 @@ asm void JUTConsole::scroll(int param_0) { #include "asm/JSystem/JUtility/JUTConsole/scroll__10JUTConsoleFi.s" } #pragma pop +#endif /* 802E8184-802E81A8 2E2AC4 0024+00 0/0 2/2 0/0 .text getUsedLine__10JUTConsoleCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsole::getUsedLine() const { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/getUsedLine__10JUTConsoleCFv.s" +int JUTConsole::getUsedLine() const { + return diffIndex(field_0x34, field_0x38); } -#pragma pop /* 802E81A8-802E81CC 2E2AE8 0024+00 0/0 3/3 0/0 .text getLineOffset__10JUTConsoleCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int JUTConsole::getLineOffset() const { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/getLineOffset__10JUTConsoleCFv.s" +int JUTConsole::getLineOffset() const { + return diffIndex(field_0x34, field_0x30); } -#pragma pop /* 802E81CC-802E81F4 2E2B0C 0028+00 1/1 0/0 0/0 .text __ct__17JUTConsoleManagerFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm JUTConsoleManager::JUTConsoleManager() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/__ct__17JUTConsoleManagerFv.s" +JUTConsoleManager::JUTConsoleManager() { + mActiveConsole = NULL; + mDirectConsole = NULL; } -#pragma pop /* 802E81F4-802E8240 2E2B34 004C+00 0/0 1/1 0/0 .text createManager__17JUTConsoleManagerFP7JKRHeap */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsoleManager::createManager(JKRHeap* param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/createManager__17JUTConsoleManagerFP7JKRHeap.s" +JUTConsoleManager* JUTConsoleManager::createManager(JKRHeap* pHeap) { + if (pHeap == NULL) { + pHeap = JKRHeap::sCurrentHeap; + } + JUTConsoleManager* manager = new (pHeap, 0) JUTConsoleManager(); + sManager = manager; + return manager; } -#pragma pop /* 802E8240-802E82B0 2E2B80 0070+00 3/3 0/0 0/0 .text * appendConsole__17JUTConsoleManagerFP10JUTConsole */ +#ifdef NONMATCHING +void JUTConsoleManager::appendConsole(JUTConsole* param_0) { + mLinkList.Push_back(param_0); + if (mActiveConsole == NULL) { + mActiveConsole = param_0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -371,6 +369,7 @@ asm void JUTConsoleManager::appendConsole(JUTConsole* param_0) { #include "asm/JSystem/JUtility/JUTConsole/appendConsole__17JUTConsoleManagerFP10JUTConsole.s" } #pragma pop +#endif /* 802E82B0-802E8384 2E2BF0 00D4+00 2/2 0/0 0/0 .text * removeConsole__17JUTConsoleManagerFP10JUTConsole */ @@ -395,83 +394,81 @@ asm void JUTConsoleManager::draw() const { /* 802E8450-802E84C4 2E2D90 0074+00 0/0 5/5 0/0 .text drawDirect__17JUTConsoleManagerCFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsoleManager::drawDirect(bool param_0) const { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/drawDirect__17JUTConsoleManagerCFb.s" +void JUTConsoleManager::drawDirect(bool param_0) const { + if (mDirectConsole != NULL) { + if (param_0) { + s32 interrupt_status = OSEnableInterrupts(); + u32 retrace_count = VIGetRetraceCount(); + u32 new_count; + do { + new_count = VIGetRetraceCount(); + } while (retrace_count == new_count); + OSRestoreInterrupts(interrupt_status); + } + mDirectConsole->doDraw(JUTConsole::UNK_TYPE2); + } } -#pragma pop /* 802E84C4-802E8520 2E2E04 005C+00 0/0 2/2 0/0 .text * setDirectConsole__17JUTConsoleManagerFP10JUTConsole */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTConsoleManager::setDirectConsole(JUTConsole* param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/setDirectConsole__17JUTConsoleManagerFP10JUTConsole.s" +void JUTConsoleManager::setDirectConsole(JUTConsole* pConsole) { + if (mDirectConsole != NULL) { + appendConsole(mDirectConsole); + } + + if (pConsole != NULL) { + removeConsole(pConsole); + } + mDirectConsole = pConsole; } -#pragma pop /* ############################################################################################## */ /* 80451574-80451578 000A74 0004+00 2/1 0/0 0/0 .sbss sReportConsole */ -static u8 sReportConsole[4]; +static JUTConsole* sReportConsole; /* 802E8520-802E8528 2E2E60 0008+00 1/1 1/1 0/0 .text JUTSetReportConsole */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTSetReportConsole() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTSetReportConsole.s" +void JUTSetReportConsole(JUTConsole* pConsole) { + sReportConsole = pConsole; } -#pragma pop /* 802E8528-802E8530 -00001 0008+00 0/0 0/0 0/0 .text JUTGetReportConsole */ -u32 JUTGetReportConsole() { - return *(u32*)(&sReportConsole); +JUTConsole* JUTGetReportConsole() { + return sReportConsole; } /* ############################################################################################## */ /* 80451578-80451580 000A78 0004+04 2/1 0/0 0/0 .sbss sWarningConsole */ -static u8 sWarningConsole[4 + 4 /* padding */]; +static JUTConsole* sWarningConsole; /* 802E8530-802E8538 2E2E70 0008+00 1/1 1/1 0/0 .text JUTSetWarningConsole */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTSetWarningConsole() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTSetWarningConsole.s" +void JUTSetWarningConsole(JUTConsole* pConsole) { + sWarningConsole = pConsole; } -#pragma pop /* 802E8538-802E8540 -00001 0008+00 0/0 0/0 0/0 .text JUTGetWarningConsole */ -u32 JUTGetWarningConsole() { - return *(u32*)(&sWarningConsole); +JUTConsole* JUTGetWarningConsole() { + return sWarningConsole; } /* 802E8540-802E85C8 2E2E80 0088+00 2/2 0/0 0/0 .text JUTReportConsole_f_va */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void JUTReportConsole_f_va() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f_va.s" +void JUTReportConsole_f_va(const char* fmt, va_list args) { + char buf[256]; + + if (JUTGetReportConsole() == NULL) { + vsnprintf(buf, sizeof(buf), fmt, args); + } else if (JUTGetReportConsole()->getOutput() & 3) { + vsnprintf(buf, sizeof(buf), fmt, args); + JUTGetReportConsole()->print(buf); + } } -#pragma pop /* 802E85C8-802E8648 2E2F08 0080+00 2/2 8/8 0/0 .text JUTReportConsole_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTReportConsole_f() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTReportConsole_f.s" +void JUTReportConsole_f(const char* fmt, ...) { + va_list args; + va_start(args, fmt); + JUTReportConsole_f_va(fmt, args); + va_end(args); } -#pragma pop /* ############################################################################################## */ /* 8039D9A8-8039D9A8 02A008 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -487,33 +484,21 @@ SECTION_DEAD static char const* const pad_8039DA0B = "\0\0\0\0\0\0\0\0\0\0\0\0\0 #pragma pop /* 802E8648-802E867C 2E2F88 0034+00 0/0 6/6 0/0 .text JUTReportConsole */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTReportConsole() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTReportConsole.s" +void JUTReportConsole(const char* message) { + JUTReportConsole_f("%s", message); } -#pragma pop /* 802E867C-802E86FC 2E2FBC 0080+00 0/0 9/9 0/0 .text JUTWarningConsole_f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTWarningConsole_f() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTWarningConsole_f.s" +void JUTWarningConsole_f(const char* fmt, ...) { + va_list args; + va_start(args, fmt); + JUTReportConsole_f_va(fmt, args); + va_end(args); } -#pragma pop /* 802E86FC-802E8730 2E303C 0034+00 0/0 2/2 0/0 .text JUTWarningConsole */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTWarningConsole() { - nofralloc -#include "asm/JSystem/JUtility/JUTConsole/JUTWarningConsole.s" +void JUTWarningConsole(const char* message) { + JUTReportConsole_f("%s", message); } -#pragma pop /* 8039D9A8-8039D9A8 02A008 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.cpp b/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.cpp index 8c072de963c..cc3bdeeffa8 100644 --- a/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.cpp +++ b/libs/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.cpp @@ -11,15 +11,7 @@ // Forward References: // -struct __va_list_struct; - -extern "C" void sprintf(); -extern "C" void snprintf(); -extern "C" size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, - __va_list_struct* args); -extern "C" void vprintf(); extern "C" void fprintf(); -extern "C" void printf(); extern "C" void __StringWrite(); extern "C" void __FileWrite(); extern "C" void __pformatter(); @@ -60,7 +52,7 @@ extern "C" extern u8 __ctype_map[256]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void sprintf() { +asm size_t sprintf(const char*, const char*, ...) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf/sprintf.s" } @@ -70,7 +62,7 @@ asm void sprintf() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void snprintf() { +asm size_t snprintf(const char*, size_t, const char*, ...) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf/snprintf.s" } @@ -90,7 +82,7 @@ asm size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, __va_ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void vprintf() { +asm size_t vprintf(const char*, __va_list_struct*) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf/vprintf.s" } @@ -110,7 +102,7 @@ asm void fprintf() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void printf() { +asm size_t printf(const char*, ...) { nofralloc #include "asm/MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf/printf.s" } diff --git a/src/m_Do/m_Do_machine.cpp b/src/m_Do/m_Do_machine.cpp index 743fd95fdab..cdf41b89818 100644 --- a/src/m_Do/m_Do_machine.cpp +++ b/src/m_Do/m_Do_machine.cpp @@ -30,13 +30,6 @@ struct cMl { /* 80263220 */ void init(JKRHeap*); }; -struct JUTConsoleManager { - /* 802E8450 */ void drawDirect(bool) const; - /* 802E84C4 */ void setDirectConsole(JUTConsole*); - - static u8 sManager[4]; -}; - struct JUTAssertion { /* 802E4C34 */ static void setVisible(bool); }; diff --git a/src/m_Do/m_Do_machine_exception.cpp b/src/m_Do/m_Do_machine_exception.cpp index 39d2d97291d..c6589cd039d 100644 --- a/src/m_Do/m_Do_machine_exception.cpp +++ b/src/m_Do/m_Do_machine_exception.cpp @@ -12,6 +12,7 @@ #include "dolphin/types.h" #include "m_Do/m_Do_ext.h" #include "m_Do/m_Do_main.h" +#include "Runtime.PPCEABI.H/__va_arg.h" // // Types: @@ -26,7 +27,6 @@ struct DynamicModuleControlBase { // extern "C" void dump__24DynamicModuleControlBaseFv(); -extern "C" void JUTConsole_print_f_va_(); // // Declarations: @@ -39,15 +39,12 @@ static JUTConsole* sConsole; u8 struct_80450C94[4]; #pragma pop -/* 80017D7C-80017E08 0126BC 008C+00 3/3 0/0 0/0 .text print_f__FPCce */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void print_f(char const* param_0, ...) { - nofralloc -#include "asm/m_Do/m_Do_machine_exception/print_f__FPCce.s" +void print_f(char const* fmt, ...) { + va_list args; + va_start(args, fmt); + JUTConsole_print_f_va_(sConsole, fmt, args); + va_end(args); } -#pragma pop void print(char const* string) { sConsole->print(string); diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index a11a1a8613d..54bdb15d628 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -73,8 +73,6 @@ extern "C" extern u8 data_80450B84[4]; extern "C" extern u8 data_80450B88[4]; extern "C" extern u8 data_80450B8C[4]; extern "C" extern u8 data_80450B90[4 + 4 /* padding */]; -extern "C" extern u8 struct_80450B98[4]; -extern "C" extern u8 data_80450B9C[4]; // // External References: @@ -967,15 +965,15 @@ extern u8 data_80450B90[4 + 4 /* padding */]; u8 data_80450B90[4 + 4 /* padding */]; /* 80450B98-80450B9C -00001 0004+00 0/0 6/6 0/0 .sbss None */ -/* 80450B98 0001+00 data_80450B98 None */ -/* 80450B99 0001+00 data_80450B99 None */ -/* 80450B9A 0001+00 data_80450B9A None */ -/* 80450B9B 0001+00 data_80450B9B None */ -extern u8 struct_80450B98[4]; -u8 struct_80450B98[4]; +bool sOSReportDisabled; + +bool data_80450B99; + +bool data_80450B9A; + +bool data_80450B9B; /* 80450B9C-80450BA0 00009C 0004+00 0/0 3/3 0/0 .sbss None */ -extern u8 data_80450B9C[4]; -u8 data_80450B9C[4]; +bool sOSReportForceEnable; /* 803739A0-803739A0 000000 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/m_Do/m_Do_printf.cpp b/src/m_Do/m_Do_printf.cpp index 65b28ad9daf..7cd2475e857 100644 --- a/src/m_Do/m_Do_printf.cpp +++ b/src/m_Do/m_Do_printf.cpp @@ -6,54 +6,41 @@ #include "m_Do/m_Do_printf.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct __va_list_struct {}; +#include "dolphin/os/OS.h" // // Forward References: // -extern "C" static void OSSwitchFiberEx__FUlUlUlUlUlUl(); +extern "C" void OSSwitchFiberEx__FUlUlUlUlUlUl(u32, u32, u32, u32, u32, u32); extern "C" void my_PutString__FPCc(); -extern "C" static void OSVAttention__FPCcP16__va_list_struct(); -extern "C" void OSAttention(); +extern "C" void OSVAttention__FPCcP16__va_list_struct(); extern "C" void OSReportDisable(); extern "C" void OSReportEnable(); -extern "C" static void OSReportForceEnableOn(); -extern "C" static void OSReportForceEnableOff(); +extern "C" void OSReportForceEnableOn(); +extern "C" void OSReportForceEnableOff(); extern "C" void OSReportInit__Fv(); -extern "C" static void mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct(); -extern "C" static void mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct(); -extern "C" static void mDoPrintf_vprintf__FPCcP16__va_list_struct(); -extern "C" static void mDoPrintf_VReport(); -extern "C" static void OSVReport(); -extern "C" void OSReport(); -extern "C" void OSReport_FatalError(); -extern "C" void OSReport_Error(); -extern "C" void OSReport_Warning(); -extern "C" void OSReport_System(); -extern "C" void OSPanic(); +extern "C" void mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct(); +extern "C" void mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct(); +extern "C" void mDoPrintf_vprintf__FPCcP16__va_list_struct(); +extern "C" void mDoPrintf_VReport(const char* fmt, __va_list_struct* args); +extern "C" void OSVReport(const char* fmt, __va_list_struct* args); +extern "C" void OSReport(const char*, ...); +extern "C" void OSReport_FatalError(const char* fmt, ...); +extern "C" void OSReport_Error(const char* fmt, ...); +extern "C" void OSReport_Warning(const char* fmt, ...); +extern "C" void OSReport_System(const char* fmt, ...); extern "C" extern char const* const m_Do_m_Do_printf__stringBase0; // // External References: // -extern "C" void mDoExt_GetCurrentRunningThread__Fv(); +extern "C" OSThread* mDoExt_GetCurrentRunningThread__Fv(); extern "C" void PPCHalt(); -extern "C" void OSGetStackPointer(); -extern "C" void OSDisableInterrupts(); -extern "C" void OSRestoreInterrupts(); extern "C" void _savegpr_29(); extern "C" void _restgpr_29(); -extern "C" void fflush(); -extern "C" void vprintf(); -extern "C" extern u8 struct_80450B98[4]; -extern "C" extern u8 data_80450B9C[4]; +extern "C" s32 fflush(FILE*); // // Declarations: @@ -63,7 +50,7 @@ extern "C" extern u8 data_80450B9C[4]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void OSSwitchFiberEx(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 param_4, +asm void OSSwitchFiberEx(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 param_4, u32 param_5) { nofralloc #include "asm/m_Do/m_Do_printf/OSSwitchFiberEx__FUlUlUlUlUlUl.s" @@ -76,95 +63,66 @@ void my_PutString(const char* string) { } /* 800067F4-80006814 001134 0020+00 3/3 0/0 0/0 .text OSVAttention__FPCcP16__va_list_struct */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSVAttention(char const* param_0, __va_list_struct* param_1) { - nofralloc -#include "asm/m_Do/m_Do_printf/OSVAttention__FPCcP16__va_list_struct.s" +void OSVAttention(char const* fmt, va_list args) { + mDoPrintf_vprintf(fmt, args); } -#pragma pop /* 80006814-80006894 001154 0080+00 1/1 1/1 0/0 .text OSAttention */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSAttention() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSAttention.s" +void OSAttention(const char* fmt, ...) { + va_list args; + va_start(args, fmt); + mDoPrintf_vprintf(fmt, args); + va_end(args); } -#pragma pop /* 80006894-800068A0 0011D4 000C+00 0/0 1/1 0/0 .text OSReportDisable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReportDisable() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReportDisable.s" +void OSReportDisable() { + sOSReportDisabled = true; } -#pragma pop /* 800068A0-800068AC 0011E0 000C+00 0/0 1/1 0/0 .text OSReportEnable */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReportEnable() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReportEnable.s" +void OSReportEnable() { + sOSReportDisabled = false; } -#pragma pop /* 800068AC-800068B8 0011EC 000C+00 4/4 0/0 0/0 .text OSReportForceEnableOn */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSReportForceEnableOn() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReportForceEnableOn.s" +void OSReportForceEnableOn() { + sOSReportForceEnable = true; } -#pragma pop /* 800068B8-800068C4 0011F8 000C+00 4/4 0/0 0/0 .text OSReportForceEnableOff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSReportForceEnableOff() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReportForceEnableOff.s" +void OSReportForceEnableOff() { + sOSReportForceEnable = false; } -#pragma pop /* ############################################################################################## */ /* 80450BA0-80450BA4 0000A0 0004+00 1/1 0/0 0/0 .sbss __OSReport_MonopolyThread */ -static u8 __OSReport_MonopolyThread[4]; +static OSThread* __OSReport_MonopolyThread; /* 80450BA4-80450BA8 0000A4 0004+00 1/1 0/0 0/0 .sbss print_counts */ -static u8 print_counts[4]; +static u32 print_counts; /* 80450BA8-80450BAC 0000A8 0004+00 2/2 0/0 0/0 .sbss print_errors */ -static u8 print_errors[4]; +static u32 print_errors; /* 80450BAC-80450BB0 0000AC 0004+00 1/1 0/0 0/0 .sbss print_warings */ -static u8 print_warings[4]; +static u32 print_warings; /* 80450BB0-80450BB4 0000B0 0004+00 1/1 0/0 0/0 .sbss print_systems */ -static u8 print_systems[4]; +static u32 print_systems; /* 80450BB4-80450BB8 -00001 0004+00 3/3 0/0 0/0 .sbss None */ -/* 80450BB4 0001+00 data_80450BB4 None */ -/* 80450BB5 0003+00 data_80450BB5 None */ -static u8 struct_80450BB4[4]; +static bool sOSReportInit; + +static bool data_80450BB5; /* 800068C4-800068DC 001204 0018+00 1/1 1/1 0/0 .text OSReportInit__Fv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReportInit() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReportInit__Fv.s" +void OSReportInit() { + if (sOSReportInit) { + return; + } + sOSReportInit = true; } -#pragma pop /* ############################################################################################## */ /* 803DB740-803DBF40 008460 0800+00 1/1 0/0 0/0 .bss mDoPrintf_FiberStack */ @@ -172,139 +130,125 @@ static u8 mDoPrintf_FiberStack[2048] ALIGN_DECL(32); /* 800068DC-80006964 00121C 0088+00 1/1 0/0 0/0 .text * mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void mDoPrintf_vprintf_Interrupt(char const* param_0, __va_list_struct* param_1) { - nofralloc -#include "asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Interrupt__FPCcP16__va_list_struct.s" +void mDoPrintf_vprintf_Interrupt(char const* fmt, __va_list_struct* args) { + s32 interruptStatus = OSDisableInterrupts(); + if (!data_80450BB5) { + data_80450BB5 = true; + OSSwitchFiberEx((u32)fmt, (u32)args, 0, 0, (u32)vprintf, (u32)&mDoPrintf_FiberStack + sizeof(mDoPrintf_FiberStack)); + data_80450BB5 = false; + } + OSRestoreInterrupts(interruptStatus); } -#pragma pop /* 80006964-80006984 0012A4 0020+00 1/1 0/0 0/0 .text * mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void mDoPrintf_vprintf_Thread(char const* param_0, __va_list_struct* param_1) { - nofralloc -#include "asm/m_Do/m_Do_printf/mDoPrintf_vprintf_Thread__FPCcP16__va_list_struct.s" +void mDoPrintf_vprintf_Thread(char const* fmt, __va_list_struct* args) { + vprintf(fmt, args); } -#pragma pop /* 80006984-80006A10 0012C4 008C+00 4/4 0/0 0/0 .text mDoPrintf_vprintf__FPCcP16__va_list_struct */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void mDoPrintf_vprintf(char const* param_0, __va_list_struct* param_1) { - nofralloc -#include "asm/m_Do/m_Do_printf/mDoPrintf_vprintf__FPCcP16__va_list_struct.s" +void mDoPrintf_vprintf(char const* fmt, __va_list_struct* args) { + OSThread* currentThread = mDoExt_GetCurrentRunningThread__Fv(); + if (currentThread == NULL) { + mDoPrintf_vprintf_Interrupt(fmt, args); + } else { + u8* stackPtr = OSGetStackPointer(); + if (stackPtr < currentThread->stack_end + 0xA00 || stackPtr > currentThread->stack_base) { + mDoPrintf_vprintf_Interrupt(fmt, args); + } else { + mDoPrintf_vprintf_Thread(fmt, args); + } + } } -#pragma pop /* 80006A10-80006A9C 001350 008C+00 1/1 0/0 0/0 .text mDoPrintf_VReport */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void mDoPrintf_VReport() { - nofralloc -#include "asm/m_Do/m_Do_printf/mDoPrintf_VReport.s" +void mDoPrintf_VReport(const char* fmt, __va_list_struct* args) { + if (!sOSReportInit) { + OSReportInit(); + } + if (sOSReportForceEnable || !sOSReportDisabled) { + OSThread* currentThread = mDoExt_GetCurrentRunningThread__Fv(); + if (__OSReport_MonopolyThread == NULL || __OSReport_MonopolyThread == currentThread) { + mDoPrintf_vprintf(fmt, args); + print_counts++; + } + } } -#pragma pop /* 80006A9C-80006ABC 0013DC 0020+00 2/2 0/0 0/0 .text OSVReport */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void OSVReport() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSVReport.s" +void OSVReport(const char* fmt, __va_list_struct* args) { + mDoPrintf_VReport(fmt, args); } -#pragma pop /* 80006ABC-80006B3C 0013FC 0080+00 0/0 97/97 10/10 .text OSReport */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReport() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReport.s" +void OSReport(const char* fmt, ...) { + va_list args; + va_start(args, fmt); + OSVReport(fmt, args); + va_end(args); } -#pragma pop - -/* ############################################################################################## */ -/* 80373CB0-80373CB0 000310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80373CB0 = "" - "\x1B" - "[41;37m***** FATAL ERROR *****\n"; -SECTION_DEAD static char const* const stringBase_80373CD1 = "***** FATAL ERROR *****\n" - "\x1B" - "[m"; -#pragma pop /* 80006B3C-80006C0C 00147C 00D0+00 0/0 2/2 0/0 .text OSReport_FatalError */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReport_FatalError() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReport_FatalError.s" -} -#pragma pop +void OSReport_FatalError(const char* fmt, ...) { + va_list args; + va_start(args, fmt); -/* ############################################################################################## */ -/* 80373CB0-80373CB0 000310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80373CED = "" - "\x1B" - "[41;37m[ERROR]"; -SECTION_DEAD static char const* const stringBase_80373CFD = "" - "\x1B" - "[m"; -#pragma pop + OSReportForceEnableOn(); + my_PutString("\x1B[41;37m***** FATAL ERROR *****\n"); + OSVAttention(fmt, args); + my_PutString("***** FATAL ERROR *****\n\x1B[m"); + OSReportForceEnableOff(); + fflush(&__files.stdout); + print_errors++; + + va_end(args); +} /* 80006C0C-80006CEC 00154C 00E0+00 0/0 31/31 10/10 .text OSReport_Error */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReport_Error() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReport_Error.s" +void OSReport_Error(const char* fmt, ...) { + print_errors++; + if (!data_80450B99) { + va_list args; + va_start(args, fmt); + OSReportForceEnableOn(); + my_PutString("\x1B[41;37m[ERROR]"); + OSVReport(fmt, args); + my_PutString("\x1B[m"); + OSReportForceEnableOff(); + fflush(&__files.stdout); + va_end(args); + } } -#pragma pop - -/* ############################################################################################## */ -/* 80373CB0-80373CB0 000310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_80373D01 = "" - "\x1B" - "[43;30m[WARN]"; -#pragma pop /* 80006CEC-80006DCC 00162C 00E0+00 0/0 6/6 0/0 .text OSReport_Warning */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReport_Warning() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReport_Warning.s" +void OSReport_Warning(const char* fmt, ...) { + print_warings++; + if (!data_80450B9A) { + va_list args; + va_start(args, fmt); + OSReportForceEnableOn(); + my_PutString("\x1B[43;30m[WARN]"); + OSVAttention(fmt, args); + my_PutString("\x1B[m"); + OSReportForceEnableOff(); + fflush(&__files.stdout); + va_end(args); + } } -#pragma pop /* 80006DCC-80006E7C 00170C 00B0+00 0/0 1/1 0/0 .text OSReport_System */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void OSReport_System() { - nofralloc -#include "asm/m_Do/m_Do_printf/OSReport_System.s" +void OSReport_System(const char* fmt, ...) { + print_systems++; + if (!data_80450B9B) { + va_list args; + va_start(args, fmt); + OSReportForceEnableOn(); + OSVAttention(fmt, args); + OSReportForceEnableOff(); + va_end(args); + } } -#pragma pop /* ############################################################################################## */ /* 80373CB0-80373CB0 000310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -317,13 +261,38 @@ SECTION_DEAD static char const* const stringBase_80373D4C = "0x%08x: 0x%08x #pragma pop /* 80006E7C-80006FB4 0017BC 0138+00 0/0 9/9 0/0 .text OSPanic */ +// loop stuff / ending +#ifdef NONMATCHING +void OSPanic(const char* file, s32 line, const char* fmt, ...) { + OSDisableInterrupts(); + + va_list args; + va_start(args, fmt); + + mDoPrintf_vprintf(fmt, args); + OSAttention(" in \"%s\" on line %d.\n", file, line); + OSAttention("\nAddress: Back Chain LR Save\n"); + + u32 tmp = 0; + u8* stackPtr = OSGetStackPointer(); + while (stackPtr != NULL && tmp < 0x10) { + OSAttention("0x%08x: 0x%08x 0x%08x\n", stackPtr, *(u32*)stackPtr, *(u32*)(stackPtr + 4)); + stackPtr++; + tmp++; + } + PPCHalt(); + + va_end(args); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void OSPanic() { +asm void OSPanic(const char* file, s32 line, const char* fmt, ...) { nofralloc #include "asm/m_Do/m_Do_printf/OSPanic.s" } #pragma pop +#endif /* 80373CB0-80373CB0 000310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */