diff --git a/asm/JSystem/JUtility/JUTAssert/flushMessage__12JUTAssertionFv.s b/asm/JSystem/JUtility/JUTAssert/flushMessage__12JUTAssertionFv.s deleted file mode 100644 index 9d9495aa97d..00000000000 --- a/asm/JSystem/JUtility/JUTAssert/flushMessage__12JUTAssertionFv.s +++ /dev/null @@ -1,48 +0,0 @@ -lbl_802E499C: -/* 802E499C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802E49A0 7C 08 02 A6 */ mflr r0 -/* 802E49A4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802E49A8 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802E49AC 4B FF FF B5 */ bl flush_subroutine__12JUTAssertionFv -/* 802E49B0 28 03 00 00 */ cmplwi r3, 0 -/* 802E49B4 41 82 00 8C */ beq lbl_802E4A40 -/* 802E49B8 88 0D 83 78 */ lbz r0, data_804508F8(r13) -/* 802E49BC 28 00 00 01 */ cmplwi r0, 1 -/* 802E49C0 40 82 00 80 */ bne lbl_802E4A40 -/* 802E49C4 83 ED 8F A8 */ lwz r31, sDirectPrint__14JUTDirectPrint(r13) -/* 802E49C8 80 1F 00 18 */ lwz r0, 0x18(r31) -/* 802E49CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E49D0 38 60 00 FF */ li r3, 0xff -/* 802E49D4 98 61 00 0C */ stb r3, 0xc(r1) -/* 802E49D8 38 00 00 C8 */ li r0, 0xc8 -/* 802E49DC 98 01 00 0D */ stb r0, 0xd(r1) -/* 802E49E0 98 01 00 0E */ stb r0, 0xe(r1) -/* 802E49E4 98 61 00 0F */ stb r3, 0xf(r1) -/* 802E49E8 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802E49EC 90 01 00 10 */ stw r0, 0x10(r1) -/* 802E49F0 7F E3 FB 78 */ mr r3, r31 -/* 802E49F4 38 81 00 10 */ addi r4, r1, 0x10 -/* 802E49F8 4B FF FD A1 */ bl setCharColor__14JUTDirectPrintFQ28JUtility6TColor -/* 802E49FC 7F E3 FB 78 */ mr r3, r31 -/* 802E4A00 38 80 00 10 */ li r4, 0x10 -/* 802E4A04 38 A0 00 10 */ li r5, 0x10 -/* 802E4A08 3C C0 80 43 */ lis r6, data_80434870@ha /* 0x80434870@ha */ -/* 802E4A0C 38 C6 48 70 */ addi r6, r6, data_80434870@l /* 0x80434870@l */ -/* 802E4A10 4B FF FC C9 */ bl drawString__14JUTDirectPrintFUsUsPc -/* 802E4A14 7F E3 FB 78 */ mr r3, r31 -/* 802E4A18 38 80 00 10 */ li r4, 0x10 -/* 802E4A1C 38 A0 00 18 */ li r5, 0x18 -/* 802E4A20 3C C0 80 43 */ lis r6, data_804348B0@ha /* 0x804348B0@ha */ -/* 802E4A24 38 C6 48 B0 */ addi r6, r6, data_804348B0@l /* 0x804348B0@l */ -/* 802E4A28 4B FF FC B1 */ bl drawString__14JUTDirectPrintFUsUsPc -/* 802E4A2C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802E4A30 90 01 00 08 */ stw r0, 8(r1) -/* 802E4A34 7F E3 FB 78 */ mr r3, r31 -/* 802E4A38 38 81 00 08 */ addi r4, r1, 8 -/* 802E4A3C 4B FF FD 5D */ bl setCharColor__14JUTDirectPrintFQ28JUtility6TColor -lbl_802E4A40: -/* 802E4A40 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802E4A44 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802E4A48 7C 08 03 A6 */ mtlr r0 -/* 802E4A4C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802E4A50 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTAssert/flushMessage_dbPrint__12JUTAssertionFv.s b/asm/JSystem/JUtility/JUTAssert/flushMessage_dbPrint__12JUTAssertionFv.s deleted file mode 100644 index 7a8edb9c656..00000000000 --- a/asm/JSystem/JUtility/JUTAssert/flushMessage_dbPrint__12JUTAssertionFv.s +++ /dev/null @@ -1,122 +0,0 @@ -lbl_802E4A54: -/* 802E4A54 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 802E4A58 7C 08 02 A6 */ mflr r0 -/* 802E4A5C 90 01 00 54 */ stw r0, 0x54(r1) -/* 802E4A60 DB E1 00 40 */ stfd f31, 0x40(r1) -/* 802E4A64 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */ -/* 802E4A68 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 802E4A6C 93 C1 00 38 */ stw r30, 0x38(r1) -/* 802E4A70 4B FF FE F1 */ bl flush_subroutine__12JUTAssertionFv -/* 802E4A74 28 03 00 00 */ cmplwi r3, 0 -/* 802E4A78 41 82 01 9C */ beq lbl_802E4C14 -/* 802E4A7C 88 0D 83 78 */ lbz r0, data_804508F8(r13) -/* 802E4A80 28 00 00 01 */ cmplwi r0, 1 -/* 802E4A84 40 82 01 90 */ bne lbl_802E4C14 -/* 802E4A88 80 6D 8F 48 */ lwz r3, sDebugPrint__10JUTDbPrint(r13) -/* 802E4A8C 28 03 00 00 */ cmplwi r3, 0 -/* 802E4A90 41 82 01 84 */ beq lbl_802E4C14 -/* 802E4A94 83 E3 00 04 */ lwz r31, 4(r3) -/* 802E4A98 28 1F 00 00 */ cmplwi r31, 0 -/* 802E4A9C 41 82 01 78 */ beq lbl_802E4C14 -/* 802E4AA0 48 06 8E 1D */ bl VIGetRetraceCount -/* 802E4AA4 54 60 16 36 */ rlwinm r0, r3, 2, 0x18, 0x1b -/* 802E4AA8 60 00 00 0F */ ori r0, r0, 0xf -/* 802E4AAC 54 1E 06 3E */ clrlwi r30, r0, 0x18 -/* 802E4AB0 7F E3 FB 78 */ mr r3, r31 -/* 802E4AB4 81 9F 00 00 */ lwz r12, 0(r31) -/* 802E4AB8 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802E4ABC 7D 89 03 A6 */ mtctr r12 -/* 802E4AC0 4E 80 04 21 */ bctrl -/* 802E4AC4 38 00 00 FF */ li r0, 0xff -/* 802E4AC8 98 01 00 08 */ stb r0, 8(r1) -/* 802E4ACC 9B C1 00 09 */ stb r30, 9(r1) -/* 802E4AD0 9B C1 00 0A */ stb r30, 0xa(r1) -/* 802E4AD4 98 01 00 0B */ stb r0, 0xb(r1) -/* 802E4AD8 80 01 00 08 */ lwz r0, 8(r1) -/* 802E4ADC 90 01 00 0C */ stw r0, 0xc(r1) -/* 802E4AE0 7F E3 FB 78 */ mr r3, r31 -/* 802E4AE4 38 81 00 0C */ addi r4, r1, 0xc -/* 802E4AE8 4B FF A2 89 */ bl setCharColor__7JUTFontFQ28JUtility6TColor -/* 802E4AEC 3C 60 80 43 */ lis r3, data_80434870@ha /* 0x80434870@ha */ -/* 802E4AF0 38 63 48 70 */ addi r3, r3, data_80434870@l /* 0x80434870@l */ -/* 802E4AF4 48 08 40 F1 */ bl strlen -/* 802E4AF8 7C 7E 1B 78 */ mr r30, r3 -/* 802E4AFC 7F E3 FB 78 */ mr r3, r31 -/* 802E4B00 81 9F 00 00 */ lwz r12, 0(r31) -/* 802E4B04 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 802E4B08 7D 89 03 A6 */ mtctr r12 -/* 802E4B0C 4E 80 04 21 */ bctrl -/* 802E4B10 C8 22 C6 C8 */ lfd f1, lit_728(r2) -/* 802E4B14 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802E4B18 90 01 00 14 */ stw r0, 0x14(r1) -/* 802E4B1C 3C 00 43 30 */ lis r0, 0x4330 -/* 802E4B20 90 01 00 10 */ stw r0, 0x10(r1) -/* 802E4B24 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802E4B28 EF E0 08 28 */ fsubs f31, f0, f1 -/* 802E4B2C 7F E3 FB 78 */ mr r3, r31 -/* 802E4B30 81 9F 00 00 */ lwz r12, 0(r31) -/* 802E4B34 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 802E4B38 7D 89 03 A6 */ mtctr r12 -/* 802E4B3C 4E 80 04 21 */ bctrl -/* 802E4B40 C8 22 C6 C8 */ lfd f1, lit_728(r2) -/* 802E4B44 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802E4B48 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802E4B4C 3C 00 43 30 */ lis r0, 0x4330 -/* 802E4B50 90 01 00 18 */ stw r0, 0x18(r1) -/* 802E4B54 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 802E4B58 EC 60 08 28 */ fsubs f3, f0, f1 -/* 802E4B5C 7F E3 FB 78 */ mr r3, r31 -/* 802E4B60 C0 22 C6 B8 */ lfs f1, lit_724(r2) -/* 802E4B64 C0 42 C6 BC */ lfs f2, lit_725(r2) -/* 802E4B68 FC 80 F8 90 */ fmr f4, f31 -/* 802E4B6C 3C 80 80 43 */ lis r4, data_80434870@ha /* 0x80434870@ha */ -/* 802E4B70 38 84 48 70 */ addi r4, r4, data_80434870@l /* 0x80434870@l */ -/* 802E4B74 7F C5 F3 78 */ mr r5, r30 -/* 802E4B78 38 C0 00 01 */ li r6, 1 -/* 802E4B7C 4B FF A2 AD */ bl drawString_size_scale__7JUTFontFffffPCcUlb -/* 802E4B80 3C 60 80 43 */ lis r3, data_804348B0@ha /* 0x804348B0@ha */ -/* 802E4B84 38 63 48 B0 */ addi r3, r3, data_804348B0@l /* 0x804348B0@l */ -/* 802E4B88 48 08 40 5D */ bl strlen -/* 802E4B8C 7C 7E 1B 78 */ mr r30, r3 -/* 802E4B90 7F E3 FB 78 */ mr r3, r31 -/* 802E4B94 81 9F 00 00 */ lwz r12, 0(r31) -/* 802E4B98 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 802E4B9C 7D 89 03 A6 */ mtctr r12 -/* 802E4BA0 4E 80 04 21 */ bctrl -/* 802E4BA4 C8 22 C6 C8 */ lfd f1, lit_728(r2) -/* 802E4BA8 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802E4BAC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802E4BB0 3C 00 43 30 */ lis r0, 0x4330 -/* 802E4BB4 90 01 00 20 */ stw r0, 0x20(r1) -/* 802E4BB8 C8 01 00 20 */ lfd f0, 0x20(r1) -/* 802E4BBC EF E0 08 28 */ fsubs f31, f0, f1 -/* 802E4BC0 7F E3 FB 78 */ mr r3, r31 -/* 802E4BC4 81 9F 00 00 */ lwz r12, 0(r31) -/* 802E4BC8 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 802E4BCC 7D 89 03 A6 */ mtctr r12 -/* 802E4BD0 4E 80 04 21 */ bctrl -/* 802E4BD4 C8 22 C6 C8 */ lfd f1, lit_728(r2) -/* 802E4BD8 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802E4BDC 90 01 00 2C */ stw r0, 0x2c(r1) -/* 802E4BE0 3C 00 43 30 */ lis r0, 0x4330 -/* 802E4BE4 90 01 00 28 */ stw r0, 0x28(r1) -/* 802E4BE8 C8 01 00 28 */ lfd f0, 0x28(r1) -/* 802E4BEC EC 60 08 28 */ fsubs f3, f0, f1 -/* 802E4BF0 7F E3 FB 78 */ mr r3, r31 -/* 802E4BF4 C0 22 C6 B8 */ lfs f1, lit_724(r2) -/* 802E4BF8 C0 42 C6 C0 */ lfs f2, lit_726(r2) -/* 802E4BFC FC 80 F8 90 */ fmr f4, f31 -/* 802E4C00 3C 80 80 43 */ lis r4, data_804348B0@ha /* 0x804348B0@ha */ -/* 802E4C04 38 84 48 B0 */ addi r4, r4, data_804348B0@l /* 0x804348B0@l */ -/* 802E4C08 7F C5 F3 78 */ mr r5, r30 -/* 802E4C0C 38 C0 00 01 */ li r6, 1 -/* 802E4C10 4B FF A2 19 */ bl drawString_size_scale__7JUTFontFffffPCcUlb -lbl_802E4C14: -/* 802E4C14 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */ -/* 802E4C18 CB E1 00 40 */ lfd f31, 0x40(r1) -/* 802E4C1C 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 802E4C20 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 802E4C24 80 01 00 54 */ lwz r0, 0x54(r1) -/* 802E4C28 7C 08 03 A6 */ mtlr r0 -/* 802E4C2C 38 21 00 50 */ addi r1, r1, 0x50 -/* 802E4C30 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTAssert/flush_subroutine__12JUTAssertionFv.s b/asm/JSystem/JUtility/JUTAssert/flush_subroutine__12JUTAssertionFv.s deleted file mode 100644 index 7f1397d64cc..00000000000 --- a/asm/JSystem/JUtility/JUTAssert/flush_subroutine__12JUTAssertionFv.s +++ /dev/null @@ -1,18 +0,0 @@ -lbl_802E4960: -/* 802E4960 80 6D 8F B0 */ lwz r3, data_80451530(r13) -/* 802E4964 28 03 00 00 */ cmplwi r3, 0 -/* 802E4968 40 82 00 0C */ bne lbl_802E4974 -/* 802E496C 38 60 00 00 */ li r3, 0 -/* 802E4970 4E 80 00 20 */ blr -lbl_802E4974: -/* 802E4974 3C 03 00 01 */ addis r0, r3, 1 -/* 802E4978 28 00 FF FF */ cmplwi r0, 0xffff -/* 802E497C 41 82 00 0C */ beq lbl_802E4988 -/* 802E4980 38 03 FF FF */ addi r0, r3, -1 -/* 802E4984 90 0D 8F B0 */ stw r0, data_80451530(r13) -lbl_802E4988: -/* 802E4988 80 6D 8F B0 */ lwz r3, data_80451530(r13) -/* 802E498C 28 03 00 05 */ cmplwi r3, 5 -/* 802E4990 4C 80 00 20 */ bgelr -/* 802E4994 38 60 00 00 */ li r3, 0 -/* 802E4998 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTAssert/setMessageCount__12JUTAssertionFi.s b/asm/JSystem/JUtility/JUTAssert/setMessageCount__12JUTAssertionFi.s deleted file mode 100644 index aed5a198edd..00000000000 --- a/asm/JSystem/JUtility/JUTAssert/setMessageCount__12JUTAssertionFi.s +++ /dev/null @@ -1,7 +0,0 @@ -lbl_802E4C3C: -/* 802E4C3C 7C 03 00 D0 */ neg r0, r3 -/* 802E4C40 7C 60 03 38 */ orc r0, r3, r0 -/* 802E4C44 7C 00 FE 70 */ srawi r0, r0, 0x1f -/* 802E4C48 7C 60 00 78 */ andc r0, r3, r0 -/* 802E4C4C 90 0D 8F B0 */ stw r0, data_80451530(r13) -/* 802E4C50 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTAssert/setVisible__12JUTAssertionFb.s b/asm/JSystem/JUtility/JUTAssert/setVisible__12JUTAssertionFb.s deleted file mode 100644 index f17c0b4fd02..00000000000 --- a/asm/JSystem/JUtility/JUTAssert/setVisible__12JUTAssertionFb.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_802E4C34: -/* 802E4C34 98 6D 83 78 */ stb r3, data_804508F8(r13) -/* 802E4C38 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/JUTAssert.h b/include/JSystem/JUtility/JUTAssert.h index 26f1afec9c7..c9d9f3c86f6 100644 --- a/include/JSystem/JUtility/JUTAssert.h +++ b/include/JSystem/JUtility/JUTAssert.h @@ -26,11 +26,13 @@ // TODO: make it a namespace struct JUTAssertion { /* 802E495C */ static void create(); - /* 802E4960 */ static void flush_subroutine(); + /* 802E4960 */ static u32 flush_subroutine(); /* 802E499C */ static void flushMessage(); /* 802E4A54 */ static void flushMessage_dbPrint(); /* 802E4C34 */ static void setVisible(bool); /* 802E4C3C */ static void setMessageCount(int); }; +extern bool sAssertVisible; + #endif /* JUTASSERT_H */ diff --git a/include/JSystem/JUtility/JUTDbPrint.h b/include/JSystem/JUtility/JUTDbPrint.h index 18f951784a1..30b325183d7 100644 --- a/include/JSystem/JUtility/JUTDbPrint.h +++ b/include/JSystem/JUtility/JUTDbPrint.h @@ -26,7 +26,9 @@ public: /* 802E0440 */ void drawString(int, int, int, u8 const*); static JUTDbPrint* getManager() { return sDebugPrint; } + void setVisible(bool visible) { mVisible = visible; } + JUTFont* getFont() const { return mFont; } static JUTDbPrint* sDebugPrint; diff --git a/include/JSystem/JUtility/JUTDirectPrint.h b/include/JSystem/JUtility/JUTDirectPrint.h index 53927bea726..a24dfac7065 100644 --- a/include/JSystem/JUtility/JUTDirectPrint.h +++ b/include/JSystem/JUtility/JUTDirectPrint.h @@ -23,6 +23,7 @@ public: /* 802E4240 */ static JUTDirectPrint* start(); bool isActive() const { return field_0x00 != 0; } + JUtility::TColor getCharColor() const { return mCharColor; } static JUTDirectPrint* getManager() { return sDirectPrint; } diff --git a/include/JSystem/JUtility/JUTFont.h b/include/JSystem/JUtility/JUTFont.h index ab47155562d..fcf49010769 100644 --- a/include/JSystem/JUtility/JUTFont.h +++ b/include/JSystem/JUtility/JUTFont.h @@ -2,6 +2,7 @@ #define JUTFONT_H #include "JSystem/JUtility/TColor.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h" #include "dolphin/gx/GX.h" #include "dolphin/types.h" @@ -88,6 +89,14 @@ public: void setGradColor(JUtility::TColor col1, JUtility::TColor col2); f32 drawString_size_scale(f32 a1, f32 a2, f32 a3, f32 a4, const char* a5, u32 usz, bool a7); + void drawString(int param_0, int param_1, const char* str, bool param_3) { + drawString_size(param_0, param_1, str, strlen(str), param_3); + } + + void drawString_size(int param_0, int param_1, const char* str, u32 len, bool param_4) { + drawString_size_scale(param_0, param_1, getWidth(), getHeight(), str, len, param_4); + } + /* 0x04 */ bool mValid; /* 0x05 */ bool mFixed; /* 0x08 */ int mFixedWidth; diff --git a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp index 99e01d25dbf..4c44330343e 100644 --- a/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp +++ b/libs/JSystem/J2DGraph/J2DMaterialFactory.cpp @@ -86,7 +86,6 @@ extern "C" void _savegpr_19(); extern "C" void _savegpr_29(); extern "C" void _restgpr_19(); extern "C" void _restgpr_29(); -extern "C" void strcpy(); extern "C" extern u8 const j2dDefaultTexCoordInfo[32]; extern "C" extern u8 const j2dDefaultIndTexMtxInfo[28]; extern "C" extern u8 const j2dDefaultIndTevStageInfo[12]; diff --git a/libs/JSystem/J2DGraph/J2DPrint.cpp b/libs/JSystem/J2DGraph/J2DPrint.cpp index a209638370d..c72d6656486 100644 --- a/libs/JSystem/J2DGraph/J2DPrint.cpp +++ b/libs/JSystem/J2DGraph/J2DPrint.cpp @@ -48,7 +48,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strlen(); extern "C" void strtol(); extern "C" void strtoul(); extern "C" u8 sSystemHeap__7JKRHeap[4]; diff --git a/libs/JSystem/JUtility/JUTAssert.cpp b/libs/JSystem/JUtility/JUTAssert.cpp index e91214818e4..94b47865ff8 100644 --- a/libs/JSystem/JUtility/JUTAssert.cpp +++ b/libs/JSystem/JUtility/JUTAssert.cpp @@ -4,57 +4,11 @@ // #include "JSystem/JUtility/JUTAssert.h" +#include "JSystem/JUtility/JUTDbPrint.h" +#include "JSystem/JUtility/JUTDirectPrint.h" #include "dol2asm.h" #include "dolphin/types.h" - -// -// Types: -// - -struct JUtility { - struct TColor {}; -}; - -struct JUTFont { - /* 802DED70 */ void setCharColor(JUtility::TColor); - /* 802DEE28 */ void drawString_size_scale(f32, f32, f32, f32, char const*, u32, bool); -}; - -struct JUTDirectPrint { - /* 802E46D8 */ void drawString(u16, u16, char*); - /* 802E4798 */ void setCharColor(JUtility::TColor); - - static u8 sDirectPrint[4 + 4 /* padding */]; -}; - -struct JUTDbPrint { - static u8 sDebugPrint[4 + 4 /* padding */]; -}; - -// -// Forward References: -// - -extern "C" void create__12JUTAssertionFv(); -extern "C" void flush_subroutine__12JUTAssertionFv(); -extern "C" void flushMessage__12JUTAssertionFv(); -extern "C" void flushMessage_dbPrint__12JUTAssertionFv(); -extern "C" void setVisible__12JUTAssertionFb(); -extern "C" void setMessageCount__12JUTAssertionFi(); - -// -// External References: -// - -extern "C" void setCharColor__7JUTFontFQ28JUtility6TColor(); -extern "C" void drawString_size_scale__7JUTFontFffffPCcUlb(); -extern "C" void drawString__14JUTDirectPrintFUsUsPc(); -extern "C" void setCharColor__14JUTDirectPrintFQ28JUtility6TColor(); -extern "C" void VIGetRetraceCount(); -extern "C" void strlen(); -extern "C" extern u8 data_804508F8[8]; -extern "C" u8 sDebugPrint__10JUTDbPrint[4 + 4 /* padding */]; -extern "C" u8 sDirectPrint__14JUTDirectPrint[4 + 4 /* padding */]; +#include "dolphin/vi/vi.h" // // Declarations: @@ -68,82 +22,67 @@ void JUTAssertion::create() { /* ############################################################################################## */ /* 80451530-80451538 000A30 0004+04 2/2 0/0 0/0 .sbss * sMessageLife__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ -static s32 data_80451530; +static u32 sMessageLife; /* 802E4960-802E499C 2DF2A0 003C+00 2/2 0/0 0/0 .text flush_subroutine__12JUTAssertionFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTAssertion::flush_subroutine() { - nofralloc -#include "asm/JSystem/JUtility/JUTAssert/flush_subroutine__12JUTAssertionFv.s" +u32 JUTAssertion::flush_subroutine() { + if (sMessageLife == 0) { + return 0; + } + + if (sMessageLife != -1) { + sMessageLife--; + } + + if (sMessageLife >= 5) { + return sMessageLife; + } + return 0; } -#pragma pop /* ############################################################################################## */ /* 80434870-804348B0 061590 0040+00 2/2 0/0 0/0 .bss * sMessageFileLine__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ -static u8 data_80434870[64]; +static char sMessageFileLine[64]; /* 804348B0-804349B0 0615D0 0100+00 2/2 0/0 0/0 .bss * sMessageString__Q212JUTAssertion23@unnamed@JUTAssert_cpp@ */ -static u8 data_804348B0[256]; +static char sMessageString[256]; /* 802E499C-802E4A54 2DF2DC 00B8+00 0/0 1/1 0/0 .text flushMessage__12JUTAssertionFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTAssertion::flushMessage() { - nofralloc -#include "asm/JSystem/JUtility/JUTAssert/flushMessage__12JUTAssertionFv.s" +void JUTAssertion::flushMessage() { + if (flush_subroutine() && sAssertVisible == true) { + JUTDirectPrint* manager = JUTDirectPrint::getManager(); + JUtility::TColor color = manager->getCharColor(); + manager->setCharColor(JUtility::TColor(255, 200, 200, 255)); + manager->drawString(16, 16, sMessageFileLine); + manager->drawString(16, 24, sMessageString); + manager->setCharColor(color); + } } -#pragma pop - -/* ############################################################################################## */ -/* 804560B8-804560BC 0046B8 0004+00 1/1 0/0 0/0 .sdata2 @724 */ -SECTION_SDATA2 static f32 lit_724 = 30.0f; - -/* 804560BC-804560C0 0046BC 0004+00 1/1 0/0 0/0 .sdata2 @725 */ -SECTION_SDATA2 static f32 lit_725 = 36.0f; - -/* 804560C0-804560C8 0046C0 0004+04 1/1 0/0 0/0 .sdata2 @726 */ -SECTION_SDATA2 static f32 lit_726[1 + 1 /* padding */] = { - 54.0f, - /* padding */ - 0.0f, -}; - -/* 804560C8-804560D0 0046C8 0008+00 1/1 0/0 0/0 .sdata2 @728 */ -SECTION_SDATA2 static f64 lit_728 = 4503601774854144.0 /* cast s32 to float */; /* 802E4A54-802E4C34 2DF394 01E0+00 0/0 1/1 0/0 .text flushMessage_dbPrint__12JUTAssertionFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTAssertion::flushMessage_dbPrint() { - nofralloc -#include "asm/JSystem/JUtility/JUTAssert/flushMessage_dbPrint__12JUTAssertionFv.s" +void JUTAssertion::flushMessage_dbPrint() { + if (flush_subroutine() && sAssertVisible == true && JUTDbPrint::getManager() != NULL) { + JUTFont* font = JUTDbPrint::getManager()->getFont(); + if (font != NULL) { + u8 tmp = ((VIGetRetraceCount() & 0x3C) << 2) | 0xF; + font->setGX(); + font->setCharColor(JUtility::TColor(255, tmp, tmp, 255)); + font->drawString(30, 36, sMessageFileLine, true); + font->drawString(30, 54, sMessageString, true); + } + } } -#pragma pop /* 802E4C34-802E4C3C 2DF574 0008+00 0/0 2/2 0/0 .text setVisible__12JUTAssertionFb */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTAssertion::setVisible(bool param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTAssert/setVisible__12JUTAssertionFb.s" +void JUTAssertion::setVisible(bool visible) { + sAssertVisible = visible; } -#pragma pop /* 802E4C3C-802E4C54 2DF57C 0018+00 0/0 2/2 0/0 .text setMessageCount__12JUTAssertionFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTAssertion::setMessageCount(int param_0) { - nofralloc -#include "asm/JSystem/JUtility/JUTAssert/setMessageCount__12JUTAssertionFi.s" +void JUTAssertion::setMessageCount(int msg_count) { + sMessageLife = msg_count <= 0 ? 0 : msg_count; } -#pragma pop diff --git a/libs/JSystem/JUtility/JUTConsole.cpp b/libs/JSystem/JUtility/JUTConsole.cpp index b881a4e5080..e65a9f8dceb 100644 --- a/libs/JSystem/JUtility/JUTConsole.cpp +++ b/libs/JSystem/JUtility/JUTConsole.cpp @@ -90,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 strlen(); extern "C" extern void* __vt__14J2DGrafContext[10]; extern "C" extern void* __vt__13J2DOrthoGraph[10]; extern "C" u8 sCurrentHeap__7JKRHeap[4]; diff --git a/libs/JSystem/JUtility/JUTException.cpp b/libs/JSystem/JUtility/JUTException.cpp index de11b02146b..921d0266a7c 100644 --- a/libs/JSystem/JUtility/JUTException.cpp +++ b/libs/JSystem/JUtility/JUTException.cpp @@ -7,10 +7,10 @@ #include "JSystem/JUtility/JUTConsole.h" #include "JSystem/JUtility/JUTDirectPrint.h" #include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/float.h" +#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/printf.h" #include "Runtime.PPCEABI.H/__va_arg.h" #include "dol2asm.h" #include "dolphin/types.h" -#include "msl_c/string.h" // // Forward References: @@ -1146,8 +1146,6 @@ JUTException::~JUTException() {} /* ############################################################################################## */ /* 804508F8-80450900 000378 0008+00 0/0 3/3 0/0 .sdata None */ -SECTION_SDATA extern u8 data_804508F8[8] = { - 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; +SECTION_SDATA extern bool sAssertVisible = true; /* 8039D490-8039D490 029AF0 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ diff --git a/src/d/d_select_cursor.cpp b/src/d/d_select_cursor.cpp index fb6da31781f..28a646cc835 100644 --- a/src/d/d_select_cursor.cpp +++ b/src/d/d_select_cursor.cpp @@ -70,7 +70,6 @@ extern "C" void _restgpr_23(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_29(); -extern "C" void strcmp(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" extern void* __vt__10J2DAnmBase[4]; extern "C" extern void* __vt__15J2DAnmTransform[5 + 4 /* padding */]; diff --git a/src/d/menu/d_menu_collect.cpp b/src/d/menu/d_menu_collect.cpp index 64f0ac856b8..d79e83d1181 100644 --- a/src/d/menu/d_menu_collect.cpp +++ b/src/d/menu/d_menu_collect.cpp @@ -430,7 +430,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcpy(); extern "C" extern void* __vt__12J3DFrameCtrl[3]; extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; diff --git a/src/d/menu/d_menu_dmap.cpp b/src/d/menu/d_menu_dmap.cpp index 231777b8272..f672982e0a6 100644 --- a/src/d/menu/d_menu_dmap.cpp +++ b/src/d/menu/d_menu_dmap.cpp @@ -285,8 +285,6 @@ extern "C" u8 myclass__12dMenu_Dmap_c[4 + 4 /* padding */]; // External References: // -SECTION_INIT void memset(); -SECTION_INIT void memcpy(); extern "C" void mDoExt_getJ2dHeap__Fv(); extern "C" void mDoExt_destroyExpHeap__FP10JKRExpHeap(); extern "C" void mDoExt_setCurrentHeap__FP7JKRHeap(); @@ -420,7 +418,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" extern void* __vt__28dDrawPathWithNormalPattern_c[16]; extern "C" extern void* __vt__15dRenderingMap_c[23]; diff --git a/src/d/menu/d_menu_fishing.cpp b/src/d/menu/d_menu_fishing.cpp index 4d87bb6f4e9..457a8d34c58 100644 --- a/src/d/menu/d_menu_fishing.cpp +++ b/src/d/menu/d_menu_fishing.cpp @@ -100,7 +100,6 @@ extern "C" void _restgpr_25(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; diff --git a/src/d/menu/d_menu_fmap.cpp b/src/d/menu/d_menu_fmap.cpp index ac1db58a5ee..4e63663e93a 100644 --- a/src/d/menu/d_menu_fmap.cpp +++ b/src/d/menu/d_menu_fmap.cpp @@ -453,8 +453,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" void sprintf(); -extern "C" void strcmp(); -extern "C" void strcpy(); extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" extern void* __vt__19dMenuFmapIconDisp_c[3]; extern "C" extern u8 g_dComIfG_gameInfo[122384]; diff --git a/src/d/menu/d_menu_insect.cpp b/src/d/menu/d_menu_insect.cpp index 6ba895e2b17..81282c73a51 100644 --- a/src/d/menu/d_menu_insect.cpp +++ b/src/d/menu/d_menu_insect.cpp @@ -190,8 +190,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" void snprintf(); -extern "C" void strcat(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; diff --git a/src/d/menu/d_menu_letter.cpp b/src/d/menu/d_menu_letter.cpp index 79f15c44d60..5b4751f6844 100644 --- a/src/d/menu/d_menu_letter.cpp +++ b/src/d/menu/d_menu_letter.cpp @@ -200,7 +200,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" void sprintf(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 letter_data__12dMenu_Letter[512]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; diff --git a/src/d/menu/d_menu_option.cpp b/src/d/menu/d_menu_option.cpp index ce562e8322b..f16ff8f1341 100644 --- a/src/d/menu/d_menu_option.cpp +++ b/src/d/menu/d_menu_option.cpp @@ -260,7 +260,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 m_gamePad__8mDoCPd_c[16]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; diff --git a/src/d/menu/d_menu_ring.cpp b/src/d/menu/d_menu_ring.cpp index 19b10355543..8bcd53e40c4 100644 --- a/src/d/menu/d_menu_ring.cpp +++ b/src/d/menu/d_menu_ring.cpp @@ -247,7 +247,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" void* item_resource__10dItem_data[1530]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; diff --git a/src/d/menu/d_menu_save.cpp b/src/d/menu/d_menu_save.cpp index a8f52f73045..2db66924abc 100644 --- a/src/d/menu/d_menu_save.cpp +++ b/src/d/menu/d_menu_save.cpp @@ -354,7 +354,6 @@ extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" void printf(); -extern "C" void strcpy(); extern "C" extern u8 const __ptmf_null[12 + 4 /* padding */]; extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; diff --git a/src/d/menu/d_menu_skill.cpp b/src/d/menu/d_menu_skill.cpp index 14eb7a87496..0c92b021bc6 100644 --- a/src/d/menu/d_menu_skill.cpp +++ b/src/d/menu/d_menu_skill.cpp @@ -140,7 +140,6 @@ extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); -extern "C" void strcpy(); extern "C" extern void* __vt__12dDlst_base_c[3]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256];