From 4a424534a530979db7a43ee48eddb860bb31a783 Mon Sep 17 00:00:00 2001 From: hatal175 Date: Thu, 28 Sep 2023 22:32:57 +0300 Subject: [PATCH] JUTCacheFont OK (#1947) --- ...Q37JGadget6binary19TParse_header_blockFv.s | 20 - ...binaryFPCvPUlPUlPQ37JGadget6binary5TEBit.s | 29 -- ...adget6binary19TParse_header_blockFPPCvUl.s | 77 ---- .../determineBlankPage__12JUTCacheFontFv.s | 51 --- .../JUtility/JUTCacheFont/func_802DDBBC.s | 76 ---- .../JUTCacheFont/getAscent__10JUTResFontCFv.s | 4 - .../getDescent__10JUTResFontCFv.s | 4 - .../getFontType__10JUTResFontCFv.s | 4 - .../JUTCacheFont/getHeight__10JUTResFontCFv.s | 24 -- .../getLeading__10JUTResFontCFv.s | 4 - .../getResFont__10JUTResFontCFv.s | 3 - .../JUTCacheFont/getWidth__10JUTResFontCFv.s | 4 - .../invalidiateAllCache__12JUTCacheFontFv.s | 41 -- ...ache_char_subroutine__12JUTCacheFontFPib.s | 94 ----- ...loadImage__12JUTCacheFontFi11_GXTexMapID.s | 47 --- .../JUTCacheFont/setBlock__12JUTCacheFontFv.s | 149 ------- include/JSystem/JKernel/JKRAram.h | 4 +- include/JSystem/JUtility/JUTCacheFont.h | 35 +- libs/JSystem/JUtility/JUTCacheFont.cpp | 385 +++++++++--------- 19 files changed, 212 insertions(+), 843 deletions(-) delete mode 100644 asm/JSystem/JGadget/binary/__dt__Q37JGadget6binary19TParse_header_blockFv.s delete mode 100644 asm/JSystem/JGadget/binary/parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit.s delete mode 100644 asm/JSystem/JGadget/binary/parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/determineBlankPage__12JUTCacheFontFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/func_802DDBBC.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/getAscent__10JUTResFontCFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/getDescent__10JUTResFontCFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/getFontType__10JUTResFontCFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/getHeight__10JUTResFontCFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/getLeading__10JUTResFontCFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/getResFont__10JUTResFontCFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/getWidth__10JUTResFontCFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/invalidiateAllCache__12JUTCacheFontFv.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/loadCache_char_subroutine__12JUTCacheFontFPib.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/loadImage__12JUTCacheFontFi11_GXTexMapID.s delete mode 100644 asm/JSystem/JUtility/JUTCacheFont/setBlock__12JUTCacheFontFv.s diff --git a/asm/JSystem/JGadget/binary/__dt__Q37JGadget6binary19TParse_header_blockFv.s b/asm/JSystem/JGadget/binary/__dt__Q37JGadget6binary19TParse_header_blockFv.s deleted file mode 100644 index 1e63d2a6d1b..00000000000 --- a/asm/JSystem/JGadget/binary/__dt__Q37JGadget6binary19TParse_header_blockFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_802DC8C8: -/* 802DC8C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DC8CC 7C 08 02 A6 */ mflr r0 -/* 802DC8D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DC8D4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DC8D8 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802DC8DC 41 82 00 1C */ beq lbl_802DC8F8 -/* 802DC8E0 3C A0 80 3C */ lis r5, __vt__Q37JGadget6binary19TParse_header_block@ha /* 0x803C488C@ha */ -/* 802DC8E4 38 05 48 8C */ addi r0, r5, __vt__Q37JGadget6binary19TParse_header_block@l /* 0x803C488C@l */ -/* 802DC8E8 90 1F 00 00 */ stw r0, 0(r31) -/* 802DC8EC 7C 80 07 35 */ extsh. r0, r4 -/* 802DC8F0 40 81 00 08 */ ble lbl_802DC8F8 -/* 802DC8F4 4B FF 24 49 */ bl __dl__FPv -lbl_802DC8F8: -/* 802DC8F8 7F E3 FB 78 */ mr r3, r31 -/* 802DC8FC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DC900 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DC904 7C 08 03 A6 */ mtlr r0 -/* 802DC908 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DC90C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JGadget/binary/parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit.s b/asm/JSystem/JGadget/binary/parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit.s deleted file mode 100644 index d69fca63a98..00000000000 --- a/asm/JSystem/JGadget/binary/parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit.s +++ /dev/null @@ -1,29 +0,0 @@ -lbl_802DC864: -/* 802DC864 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DC868 28 06 00 00 */ cmplwi r6, 0 -/* 802DC86C 40 82 00 08 */ bne lbl_802DC874 -/* 802DC870 38 C1 00 08 */ addi r6, r1, 8 -lbl_802DC874: -/* 802DC874 A0 E3 00 00 */ lhz r7, 0(r3) -/* 802DC878 54 E0 04 21 */ rlwinm. r0, r7, 0, 0x10, 0x10 -/* 802DC87C 40 82 00 20 */ bne lbl_802DC89C -/* 802DC880 38 00 00 10 */ li r0, 0x10 -/* 802DC884 90 06 00 00 */ stw r0, 0(r6) -/* 802DC888 90 E4 00 00 */ stw r7, 0(r4) -/* 802DC88C A0 03 00 02 */ lhz r0, 2(r3) -/* 802DC890 90 05 00 00 */ stw r0, 0(r5) -/* 802DC894 38 63 00 04 */ addi r3, r3, 4 -/* 802DC898 48 00 00 28 */ b lbl_802DC8C0 -lbl_802DC89C: -/* 802DC89C 38 00 00 20 */ li r0, 0x20 -/* 802DC8A0 90 06 00 00 */ stw r0, 0(r6) -/* 802DC8A4 54 E7 80 5E */ rlwinm r7, r7, 0x10, 1, 0xf -/* 802DC8A8 A0 03 00 02 */ lhz r0, 2(r3) -/* 802DC8AC 7C E7 03 78 */ or r7, r7, r0 -/* 802DC8B0 90 E4 00 00 */ stw r7, 0(r4) -/* 802DC8B4 80 03 00 04 */ lwz r0, 4(r3) -/* 802DC8B8 90 05 00 00 */ stw r0, 0(r5) -/* 802DC8BC 38 63 00 08 */ addi r3, r3, 8 -lbl_802DC8C0: -/* 802DC8C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DC8C4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JGadget/binary/parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl.s b/asm/JSystem/JGadget/binary/parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl.s deleted file mode 100644 index e0746064e7f..00000000000 --- a/asm/JSystem/JGadget/binary/parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl.s +++ /dev/null @@ -1,77 +0,0 @@ -lbl_802DC910: -/* 802DC910 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802DC914 7C 08 02 A6 */ mflr r0 -/* 802DC918 90 01 00 34 */ stw r0, 0x34(r1) -/* 802DC91C 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DC920 48 08 58 B1 */ bl _savegpr_26 -/* 802DC924 7C 7A 1B 78 */ mr r26, r3 -/* 802DC928 7C 9B 23 79 */ or. r27, r4, r4 -/* 802DC92C 7C BC 2B 78 */ mr r28, r5 -/* 802DC930 41 82 00 10 */ beq lbl_802DC940 -/* 802DC934 80 1B 00 00 */ lwz r0, 0(r27) -/* 802DC938 28 00 00 00 */ cmplwi r0, 0 -/* 802DC93C 40 82 00 0C */ bne lbl_802DC948 -lbl_802DC940: -/* 802DC940 38 60 00 00 */ li r3, 0 -/* 802DC944 48 00 00 C0 */ b lbl_802DCA04 -lbl_802DC948: -/* 802DC948 3B E0 00 00 */ li r31, 0 -/* 802DC94C 38 A1 00 0C */ addi r5, r1, 0xc -/* 802DC950 7F 86 E3 78 */ mr r6, r28 -/* 802DC954 81 83 00 00 */ lwz r12, 0(r3) -/* 802DC958 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802DC95C 7D 89 03 A6 */ mtctr r12 -/* 802DC960 4E 80 04 21 */ bctrl -/* 802DC964 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802DC968 41 82 00 08 */ beq lbl_802DC970 -/* 802DC96C 3B E0 00 01 */ li r31, 1 -lbl_802DC970: -/* 802DC970 7F FD FB 78 */ mr r29, r31 -/* 802DC974 57 80 07 FF */ clrlwi. r0, r28, 0x1f -/* 802DC978 40 82 00 14 */ bne lbl_802DC98C -/* 802DC97C 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 802DC980 40 82 00 0C */ bne lbl_802DC98C -/* 802DC984 7F E3 FB 78 */ mr r3, r31 -/* 802DC988 48 00 00 7C */ b lbl_802DCA04 -lbl_802DC98C: -/* 802DC98C 57 9E 07 BC */ rlwinm r30, r28, 0, 0x1e, 0x1e -/* 802DC990 48 00 00 64 */ b lbl_802DC9F4 -lbl_802DC994: -/* 802DC994 3B E0 00 00 */ li r31, 0 -/* 802DC998 7F 43 D3 78 */ mr r3, r26 -/* 802DC99C 7F 64 DB 78 */ mr r4, r27 -/* 802DC9A0 38 A1 00 08 */ addi r5, r1, 8 -/* 802DC9A4 7F 86 E3 78 */ mr r6, r28 -/* 802DC9A8 81 9A 00 00 */ lwz r12, 0(r26) -/* 802DC9AC 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802DC9B0 7D 89 03 A6 */ mtctr r12 -/* 802DC9B4 4E 80 04 21 */ bctrl -/* 802DC9B8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802DC9BC 41 82 00 10 */ beq lbl_802DC9CC -/* 802DC9C0 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 802DC9C4 41 82 00 08 */ beq lbl_802DC9CC -/* 802DC9C8 3B E0 00 01 */ li r31, 1 -lbl_802DC9CC: -/* 802DC9CC 7F FD FB 78 */ mr r29, r31 -/* 802DC9D0 28 1E 00 00 */ cmplwi r30, 0 -/* 802DC9D4 40 82 00 14 */ bne lbl_802DC9E8 -/* 802DC9D8 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 802DC9DC 40 82 00 0C */ bne lbl_802DC9E8 -/* 802DC9E0 7F E3 FB 78 */ mr r3, r31 -/* 802DC9E4 48 00 00 20 */ b lbl_802DCA04 -lbl_802DC9E8: -/* 802DC9E8 80 61 00 0C */ lwz r3, 0xc(r1) -/* 802DC9EC 38 03 FF FF */ addi r0, r3, -1 -/* 802DC9F0 90 01 00 0C */ stw r0, 0xc(r1) -lbl_802DC9F4: -/* 802DC9F4 80 01 00 0C */ lwz r0, 0xc(r1) -/* 802DC9F8 28 00 00 00 */ cmplwi r0, 0 -/* 802DC9FC 40 82 FF 98 */ bne lbl_802DC994 -/* 802DCA00 7F A3 EB 78 */ mr r3, r29 -lbl_802DCA04: -/* 802DCA04 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DCA08 48 08 58 15 */ bl _restgpr_26 -/* 802DCA0C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802DCA10 7C 08 03 A6 */ mtlr r0 -/* 802DCA14 38 21 00 30 */ addi r1, r1, 0x30 -/* 802DCA18 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/determineBlankPage__12JUTCacheFontFv.s b/asm/JSystem/JUtility/JUTCacheFont/determineBlankPage__12JUTCacheFontFv.s deleted file mode 100644 index 4eec1e1a26c..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/determineBlankPage__12JUTCacheFontFv.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_802DDB0C: -/* 802DDB0C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DDB10 7C 08 02 A6 */ mflr r0 -/* 802DDB14 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DDB18 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DDB1C 93 C1 00 08 */ stw r30, 8(r1) -/* 802DDB20 7C 7E 1B 78 */ mr r30, r3 -/* 802DDB24 80 63 00 A4 */ lwz r3, 0xa4(r3) -/* 802DDB28 28 03 00 00 */ cmplwi r3, 0 -/* 802DDB2C 41 82 00 30 */ beq lbl_802DDB5C -/* 802DDB30 80 03 00 04 */ lwz r0, 4(r3) -/* 802DDB34 90 1E 00 A4 */ stw r0, 0xa4(r30) -/* 802DDB38 80 83 00 04 */ lwz r4, 4(r3) -/* 802DDB3C 28 04 00 00 */ cmplwi r4, 0 -/* 802DDB40 40 82 00 10 */ bne lbl_802DDB50 -/* 802DDB44 38 00 00 00 */ li r0, 0 -/* 802DDB48 90 1E 00 A8 */ stw r0, 0xa8(r30) -/* 802DDB4C 48 00 00 58 */ b lbl_802DDBA4 -lbl_802DDB50: -/* 802DDB50 38 00 00 00 */ li r0, 0 -/* 802DDB54 90 04 00 00 */ stw r0, 0(r4) -/* 802DDB58 48 00 00 4C */ b lbl_802DDBA4 -lbl_802DDB5C: -/* 802DDB5C 83 FE 00 A0 */ lwz r31, 0xa0(r30) -/* 802DDB60 48 00 00 38 */ b lbl_802DDB98 -lbl_802DDB64: -/* 802DDB64 80 7F 00 00 */ lwz r3, 0(r31) -/* 802DDB68 A0 1F 00 1E */ lhz r0, 0x1e(r31) -/* 802DDB6C 28 00 00 00 */ cmplwi r0, 0 -/* 802DDB70 40 82 00 24 */ bne lbl_802DDB94 -/* 802DDB74 7F C3 F3 78 */ mr r3, r30 -/* 802DDB78 7F E4 FB 78 */ mr r4, r31 -/* 802DDB7C 48 00 03 ED */ bl unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo -/* 802DDB80 80 7E 00 B4 */ lwz r3, 0xb4(r30) -/* 802DDB84 38 03 00 01 */ addi r0, r3, 1 -/* 802DDB88 90 1E 00 B4 */ stw r0, 0xb4(r30) -/* 802DDB8C 7F E3 FB 78 */ mr r3, r31 -/* 802DDB90 48 00 00 14 */ b lbl_802DDBA4 -lbl_802DDB94: -/* 802DDB94 7C 7F 1B 78 */ mr r31, r3 -lbl_802DDB98: -/* 802DDB98 28 1F 00 00 */ cmplwi r31, 0 -/* 802DDB9C 40 82 FF C8 */ bne lbl_802DDB64 -/* 802DDBA0 38 60 00 00 */ li r3, 0 -lbl_802DDBA4: -/* 802DDBA4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DDBA8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DDBAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DDBB0 7C 08 03 A6 */ mtlr r0 -/* 802DDBB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DDBB8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/func_802DDBBC.s b/asm/JSystem/JUtility/JUTCacheFont/func_802DDBBC.s deleted file mode 100644 index a59598141c3..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/func_802DDBBC.s +++ /dev/null @@ -1,76 +0,0 @@ -lbl_802DDBBC: -/* 802DDBBC 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DDBC0 7C 08 02 A6 */ mflr r0 -/* 802DDBC4 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DDBC8 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DDBCC 48 08 46 09 */ bl _savegpr_27 -/* 802DDBD0 7C 7B 1B 78 */ mr r27, r3 -/* 802DDBD4 7C 9C 23 78 */ mr r28, r4 -/* 802DDBD8 7C BF 2B 78 */ mr r31, r5 -/* 802DDBDC 7C DD 33 78 */ mr r29, r6 -/* 802DDBE0 7C FE 3B 78 */ mr r30, r7 -/* 802DDBE4 7F E3 FB 78 */ mr r3, r31 -/* 802DDBE8 38 A0 00 20 */ li r5, 0x20 -/* 802DDBEC 4B D2 59 55 */ bl memcpy -/* 802DDBF0 7F 63 DB 78 */ mr r3, r27 -/* 802DDBF4 7F E4 FB 78 */ mr r4, r31 -/* 802DDBF8 48 00 03 B5 */ bl prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo -/* 802DDBFC A0 7F 00 16 */ lhz r3, 0x16(r31) -/* 802DDC00 A0 1F 00 18 */ lhz r0, 0x18(r31) -/* 802DDC04 7C A3 01 D6 */ mullw r5, r3, r0 -/* 802DDC08 80 1D 00 00 */ lwz r0, 0(r29) -/* 802DDC0C 7C C0 2B D6 */ divw r6, r0, r5 -/* 802DDC10 A0 1F 00 08 */ lhz r0, 8(r31) -/* 802DDC14 7C 86 29 D6 */ mullw r4, r6, r5 -/* 802DDC18 7C 00 22 14 */ add r0, r0, r4 -/* 802DDC1C B0 1F 00 08 */ sth r0, 8(r31) -/* 802DDC20 A0 7F 00 08 */ lhz r3, 8(r31) -/* 802DDC24 38 05 FF FF */ addi r0, r5, -1 -/* 802DDC28 7C 03 02 14 */ add r0, r3, r0 -/* 802DDC2C 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 802DDC30 A0 7F 00 0A */ lhz r3, 0xa(r31) -/* 802DDC34 7C 03 00 40 */ cmplw r3, r0 -/* 802DDC38 40 80 00 08 */ bge lbl_802DDC40 -/* 802DDC3C 7C 60 1B 78 */ mr r0, r3 -lbl_802DDC40: -/* 802DDC40 B0 1F 00 0A */ sth r0, 0xa(r31) -/* 802DDC44 90 DE 00 00 */ stw r6, 0(r30) -/* 802DDC48 80 1D 00 00 */ lwz r0, 0(r29) -/* 802DDC4C 7C 04 00 50 */ subf r0, r4, r0 -/* 802DDC50 90 1D 00 00 */ stw r0, 0(r29) -/* 802DDC54 80 BF 00 10 */ lwz r5, 0x10(r31) -/* 802DDC58 80 7C 00 00 */ lwz r3, 0(r28) -/* 802DDC5C 7C 05 31 D6 */ mullw r0, r5, r6 -/* 802DDC60 7C 63 02 14 */ add r3, r3, r0 -/* 802DDC64 38 9F 00 40 */ addi r4, r31, 0x40 -/* 802DDC68 38 C0 00 00 */ li r6, 0 -/* 802DDC6C 38 E0 00 00 */ li r7, 0 -/* 802DDC70 39 00 00 00 */ li r8, 0 -/* 802DDC74 39 20 FF FF */ li r9, -1 -/* 802DDC78 39 40 00 00 */ li r10, 0 -/* 802DDC7C 4B FF 49 39 */ bl aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl -/* 802DDC80 38 7F 00 20 */ addi r3, r31, 0x20 -/* 802DDC84 38 9F 00 40 */ addi r4, r31, 0x40 -/* 802DDC88 A0 BF 00 1A */ lhz r5, 0x1a(r31) -/* 802DDC8C A0 DF 00 1C */ lhz r6, 0x1c(r31) -/* 802DDC90 A0 FF 00 14 */ lhz r7, 0x14(r31) -/* 802DDC94 39 00 00 00 */ li r8, 0 -/* 802DDC98 39 20 00 00 */ li r9, 0 -/* 802DDC9C 39 40 00 00 */ li r10, 0 -/* 802DDCA0 48 08 01 A1 */ bl GXInitTexObj -/* 802DDCA4 38 7F 00 20 */ addi r3, r31, 0x20 -/* 802DDCA8 38 80 00 01 */ li r4, 1 -/* 802DDCAC 38 A0 00 01 */ li r5, 1 -/* 802DDCB0 C0 22 C5 D0 */ lfs f1, lit_721(r2) -/* 802DDCB4 FC 40 08 90 */ fmr f2, f1 -/* 802DDCB8 FC 60 08 90 */ fmr f3, f1 -/* 802DDCBC 38 C0 00 00 */ li r6, 0 -/* 802DDCC0 38 E0 00 00 */ li r7, 0 -/* 802DDCC4 39 00 00 00 */ li r8, 0 -/* 802DDCC8 48 08 04 0D */ bl GXInitTexObjLOD -/* 802DDCCC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DDCD0 48 08 45 51 */ bl _restgpr_27 -/* 802DDCD4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DDCD8 7C 08 03 A6 */ mtlr r0 -/* 802DDCDC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DDCE0 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/getAscent__10JUTResFontCFv.s b/asm/JSystem/JUtility/JUTCacheFont/getAscent__10JUTResFontCFv.s deleted file mode 100644 index 0a608eddca5..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/getAscent__10JUTResFontCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802DE004: -/* 802DE004 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802DE008 A0 63 00 0A */ lhz r3, 0xa(r3) -/* 802DE00C 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/getDescent__10JUTResFontCFv.s b/asm/JSystem/JUtility/JUTCacheFont/getDescent__10JUTResFontCFv.s deleted file mode 100644 index 42e91e13503..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/getDescent__10JUTResFontCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802DE010: -/* 802DE010 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802DE014 A0 63 00 0C */ lhz r3, 0xc(r3) -/* 802DE018 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/getFontType__10JUTResFontCFv.s b/asm/JSystem/JUtility/JUTCacheFont/getFontType__10JUTResFontCFv.s deleted file mode 100644 index f576c0427fc..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/getFontType__10JUTResFontCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802DDFE0: -/* 802DDFE0 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802DDFE4 A0 63 00 08 */ lhz r3, 8(r3) -/* 802DDFE8 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/getHeight__10JUTResFontCFv.s b/asm/JSystem/JUtility/JUTCacheFont/getHeight__10JUTResFontCFv.s deleted file mode 100644 index 04d678c0bbf..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/getHeight__10JUTResFontCFv.s +++ /dev/null @@ -1,24 +0,0 @@ -lbl_802DE01C: -/* 802DE01C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DE020 7C 08 02 A6 */ mflr r0 -/* 802DE024 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DE028 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DE02C 93 C1 00 08 */ stw r30, 8(r1) -/* 802DE030 7C 7E 1B 78 */ mr r30, r3 -/* 802DE034 81 83 00 00 */ lwz r12, 0(r3) -/* 802DE038 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 802DE03C 7D 89 03 A6 */ mtctr r12 -/* 802DE040 4E 80 04 21 */ bctrl -/* 802DE044 7C 7F 1B 78 */ mr r31, r3 -/* 802DE048 7F C3 F3 78 */ mr r3, r30 -/* 802DE04C 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DE050 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802DE054 7D 89 03 A6 */ mtctr r12 -/* 802DE058 4E 80 04 21 */ bctrl -/* 802DE05C 7C 63 FA 14 */ add r3, r3, r31 -/* 802DE060 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DE064 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DE068 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DE06C 7C 08 03 A6 */ mtlr r0 -/* 802DE070 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DE074 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/getLeading__10JUTResFontCFv.s b/asm/JSystem/JUtility/JUTCacheFont/getLeading__10JUTResFontCFv.s deleted file mode 100644 index 652f7170131..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/getLeading__10JUTResFontCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802DDFEC: -/* 802DDFEC 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802DDFF0 A0 63 00 10 */ lhz r3, 0x10(r3) -/* 802DDFF4 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/getResFont__10JUTResFontCFv.s b/asm/JSystem/JUtility/JUTCacheFont/getResFont__10JUTResFontCFv.s deleted file mode 100644 index 04500c9e83c..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/getResFont__10JUTResFontCFv.s +++ /dev/null @@ -1,3 +0,0 @@ -lbl_802DDFD8: -/* 802DDFD8 80 63 00 48 */ lwz r3, 0x48(r3) -/* 802DDFDC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/getWidth__10JUTResFontCFv.s b/asm/JSystem/JUtility/JUTCacheFont/getWidth__10JUTResFontCFv.s deleted file mode 100644 index bf7580f4e1e..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/getWidth__10JUTResFontCFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802DDFF8: -/* 802DDFF8 80 63 00 4C */ lwz r3, 0x4c(r3) -/* 802DDFFC A0 63 00 0E */ lhz r3, 0xe(r3) -/* 802DE000 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/invalidiateAllCache__12JUTCacheFontFv.s b/asm/JSystem/JUtility/JUTCacheFont/invalidiateAllCache__12JUTCacheFontFv.s deleted file mode 100644 index ca23b1a2490..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/invalidiateAllCache__12JUTCacheFontFv.s +++ /dev/null @@ -1,41 +0,0 @@ -lbl_802DDEE0: -/* 802DDEE0 80 A3 00 90 */ lwz r5, 0x90(r3) -/* 802DDEE4 38 C0 00 00 */ li r6, 0 -/* 802DDEE8 48 00 00 50 */ b lbl_802DDF38 -lbl_802DDEEC: -/* 802DDEEC 2C 06 00 00 */ cmpwi r6, 0 -/* 802DDEF0 40 82 00 0C */ bne lbl_802DDEFC -/* 802DDEF4 38 00 00 00 */ li r0, 0 -/* 802DDEF8 48 00 00 0C */ b lbl_802DDF04 -lbl_802DDEFC: -/* 802DDEFC 80 03 00 94 */ lwz r0, 0x94(r3) -/* 802DDF00 7C 00 28 50 */ subf r0, r0, r5 -lbl_802DDF04: -/* 802DDF04 90 05 00 00 */ stw r0, 0(r5) -/* 802DDF08 80 83 00 98 */ lwz r4, 0x98(r3) -/* 802DDF0C 38 04 FF FF */ addi r0, r4, -1 -/* 802DDF10 7C 06 00 40 */ cmplw r6, r0 -/* 802DDF14 40 82 00 0C */ bne lbl_802DDF20 -/* 802DDF18 38 00 00 00 */ li r0, 0 -/* 802DDF1C 48 00 00 0C */ b lbl_802DDF28 -lbl_802DDF20: -/* 802DDF20 80 03 00 94 */ lwz r0, 0x94(r3) -/* 802DDF24 7C 05 02 14 */ add r0, r5, r0 -lbl_802DDF28: -/* 802DDF28 90 05 00 04 */ stw r0, 4(r5) -/* 802DDF2C 80 03 00 94 */ lwz r0, 0x94(r3) -/* 802DDF30 7C A5 02 14 */ add r5, r5, r0 -/* 802DDF34 38 C6 00 01 */ addi r6, r6, 1 -lbl_802DDF38: -/* 802DDF38 80 03 00 98 */ lwz r0, 0x98(r3) -/* 802DDF3C 7C 06 00 40 */ cmplw r6, r0 -/* 802DDF40 41 80 FF AC */ blt lbl_802DDEEC -/* 802DDF44 80 03 00 94 */ lwz r0, 0x94(r3) -/* 802DDF48 7C 00 28 50 */ subf r0, r0, r5 -/* 802DDF4C 90 03 00 A8 */ stw r0, 0xa8(r3) -/* 802DDF50 80 03 00 90 */ lwz r0, 0x90(r3) -/* 802DDF54 90 03 00 A4 */ stw r0, 0xa4(r3) -/* 802DDF58 38 00 00 00 */ li r0, 0 -/* 802DDF5C 90 03 00 9C */ stw r0, 0x9c(r3) -/* 802DDF60 90 03 00 A0 */ stw r0, 0xa0(r3) -/* 802DDF64 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/loadCache_char_subroutine__12JUTCacheFontFPib.s b/asm/JSystem/JUtility/JUTCacheFont/loadCache_char_subroutine__12JUTCacheFontFPib.s deleted file mode 100644 index 8344e0e5533..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/loadCache_char_subroutine__12JUTCacheFontFPib.s +++ /dev/null @@ -1,94 +0,0 @@ -lbl_802DDD98: -/* 802DDD98 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802DDD9C 7C 08 02 A6 */ mflr r0 -/* 802DDDA0 90 01 00 34 */ stw r0, 0x34(r1) -/* 802DDDA4 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DDDA8 48 08 44 2D */ bl _savegpr_27 -/* 802DDDAC 7C 7D 1B 78 */ mr r29, r3 -/* 802DDDB0 7C 9E 23 78 */ mr r30, r4 -/* 802DDDB4 7C BF 2B 78 */ mr r31, r5 -/* 802DDDB8 38 60 00 00 */ li r3, 0 -/* 802DDDBC 80 DD 00 9C */ lwz r6, 0x9c(r29) -/* 802DDDC0 48 00 00 34 */ b lbl_802DDDF4 -lbl_802DDDC4: -/* 802DDDC4 A0 A6 00 08 */ lhz r5, 8(r6) -/* 802DDDC8 80 9E 00 00 */ lwz r4, 0(r30) -/* 802DDDCC 7C 05 20 00 */ cmpw r5, r4 -/* 802DDDD0 41 81 00 20 */ bgt lbl_802DDDF0 -/* 802DDDD4 A0 06 00 0A */ lhz r0, 0xa(r6) -/* 802DDDD8 7C 04 00 00 */ cmpw r4, r0 -/* 802DDDDC 41 81 00 14 */ bgt lbl_802DDDF0 -/* 802DDDE0 7C C3 33 78 */ mr r3, r6 -/* 802DDDE4 7C 05 20 50 */ subf r0, r5, r4 -/* 802DDDE8 90 1E 00 00 */ stw r0, 0(r30) -/* 802DDDEC 48 00 00 10 */ b lbl_802DDDFC -lbl_802DDDF0: -/* 802DDDF0 80 C6 00 04 */ lwz r6, 4(r6) -lbl_802DDDF4: -/* 802DDDF4 28 06 00 00 */ cmplwi r6, 0 -/* 802DDDF8 40 82 FF CC */ bne lbl_802DDDC4 -lbl_802DDDFC: -/* 802DDDFC 28 03 00 00 */ cmplwi r3, 0 -/* 802DDE00 40 82 00 B8 */ bne lbl_802DDEB8 -/* 802DDE04 3B 80 00 00 */ li r28, 0 -/* 802DDE08 38 60 00 00 */ li r3, 0 -/* 802DDE0C A0 1D 00 62 */ lhz r0, 0x62(r29) -/* 802DDE10 7C 09 03 A6 */ mtctr r0 -/* 802DDE14 2C 00 00 00 */ cmpwi r0, 0 -/* 802DDE18 40 81 00 40 */ ble lbl_802DDE58 -lbl_802DDE1C: -/* 802DDE1C 80 9D 00 58 */ lwz r4, 0x58(r29) -/* 802DDE20 7C 84 18 2E */ lwzx r4, r4, r3 -/* 802DDE24 A0 C4 00 08 */ lhz r6, 8(r4) -/* 802DDE28 80 BE 00 00 */ lwz r5, 0(r30) -/* 802DDE2C 7C 06 28 00 */ cmpw r6, r5 -/* 802DDE30 41 81 00 1C */ bgt lbl_802DDE4C -/* 802DDE34 A0 04 00 0A */ lhz r0, 0xa(r4) -/* 802DDE38 7C 05 00 00 */ cmpw r5, r0 -/* 802DDE3C 41 81 00 10 */ bgt lbl_802DDE4C -/* 802DDE40 7C 06 28 50 */ subf r0, r6, r5 -/* 802DDE44 90 1E 00 00 */ stw r0, 0(r30) -/* 802DDE48 48 00 00 10 */ b lbl_802DDE58 -lbl_802DDE4C: -/* 802DDE4C 3B 9C 00 01 */ addi r28, r28, 1 -/* 802DDE50 38 63 00 04 */ addi r3, r3, 4 -/* 802DDE54 42 00 FF C8 */ bdnz lbl_802DDE1C -lbl_802DDE58: -/* 802DDE58 A0 1D 00 62 */ lhz r0, 0x62(r29) -/* 802DDE5C 7C 1C 00 00 */ cmpw r28, r0 -/* 802DDE60 40 80 00 50 */ bge lbl_802DDEB0 -/* 802DDE64 7F A3 EB 78 */ mr r3, r29 -/* 802DDE68 4B FF FC A5 */ bl determineBlankPage__12JUTCacheFontFv -/* 802DDE6C 7C 7B 1B 79 */ or. r27, r3, r3 -/* 802DDE70 40 82 00 0C */ bne lbl_802DDE7C -/* 802DDE74 38 60 00 00 */ li r3, 0 -/* 802DDE78 48 00 00 50 */ b lbl_802DDEC8 -lbl_802DDE7C: -/* 802DDE7C 7F A3 EB 78 */ mr r3, r29 -/* 802DDE80 80 9D 00 58 */ lwz r4, 0x58(r29) -/* 802DDE84 57 80 10 3A */ slwi r0, r28, 2 -/* 802DDE88 7C 84 00 2E */ lwzx r4, r4, r0 -/* 802DDE8C 7F 65 DB 78 */ mr r5, r27 -/* 802DDE90 7F C6 F3 78 */ mr r6, r30 -/* 802DDE94 38 E1 00 08 */ addi r7, r1, 8 -/* 802DDE98 4B FF FD 25 */ bl getGlyphFromAram__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfoPQ212JUTCacheFont10TCachePagePiPi -/* 802DDE9C 80 01 00 08 */ lwz r0, 8(r1) -/* 802DDEA0 90 1D 00 44 */ stw r0, 0x44(r29) -/* 802DDEA4 B3 9D 00 66 */ sth r28, 0x66(r29) -/* 802DDEA8 7F 63 DB 78 */ mr r3, r27 -/* 802DDEAC 48 00 00 0C */ b lbl_802DDEB8 -lbl_802DDEB0: -/* 802DDEB0 38 60 00 00 */ li r3, 0 -/* 802DDEB4 48 00 00 14 */ b lbl_802DDEC8 -lbl_802DDEB8: -/* 802DDEB8 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 802DDEBC 41 82 00 0C */ beq lbl_802DDEC8 -/* 802DDEC0 38 00 00 01 */ li r0, 1 -/* 802DDEC4 B0 03 00 1E */ sth r0, 0x1e(r3) -lbl_802DDEC8: -/* 802DDEC8 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DDECC 48 08 43 55 */ bl _restgpr_27 -/* 802DDED0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802DDED4 7C 08 03 A6 */ mtlr r0 -/* 802DDED8 38 21 00 30 */ addi r1, r1, 0x30 -/* 802DDEDC 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/loadImage__12JUTCacheFontFi11_GXTexMapID.s b/asm/JSystem/JUtility/JUTCacheFont/loadImage__12JUTCacheFontFi11_GXTexMapID.s deleted file mode 100644 index 60c1a7b671b..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/loadImage__12JUTCacheFontFi11_GXTexMapID.s +++ /dev/null @@ -1,47 +0,0 @@ -lbl_802DDCE4: -/* 802DDCE4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DDCE8 7C 08 02 A6 */ mflr r0 -/* 802DDCEC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DDCF0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DDCF4 48 08 44 E9 */ bl _savegpr_29 -/* 802DDCF8 7C 7D 1B 78 */ mr r29, r3 -/* 802DDCFC 90 81 00 08 */ stw r4, 8(r1) -/* 802DDD00 7C BE 2B 78 */ mr r30, r5 -/* 802DDD04 38 81 00 08 */ addi r4, r1, 8 -/* 802DDD08 38 A0 00 00 */ li r5, 0 -/* 802DDD0C 48 00 00 8D */ bl loadCache_char_subroutine__12JUTCacheFontFPib -/* 802DDD10 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802DDD14 41 82 00 6C */ beq lbl_802DDD80 -/* 802DDD18 A0 BF 00 0C */ lhz r5, 0xc(r31) -/* 802DDD1C 80 81 00 08 */ lwz r4, 8(r1) -/* 802DDD20 A0 7F 00 16 */ lhz r3, 0x16(r31) -/* 802DDD24 7C 04 1B D6 */ divw r0, r4, r3 -/* 802DDD28 7C 00 19 D6 */ mullw r0, r0, r3 -/* 802DDD2C 7C 00 20 50 */ subf r0, r0, r4 -/* 802DDD30 7C 05 01 D6 */ mullw r0, r5, r0 -/* 802DDD34 90 1D 00 1C */ stw r0, 0x1c(r29) -/* 802DDD38 A0 9F 00 0E */ lhz r4, 0xe(r31) -/* 802DDD3C 80 61 00 08 */ lwz r3, 8(r1) -/* 802DDD40 A0 1F 00 16 */ lhz r0, 0x16(r31) -/* 802DDD44 7C 03 03 D6 */ divw r0, r3, r0 -/* 802DDD48 7C 04 01 D6 */ mullw r0, r4, r0 -/* 802DDD4C 90 1D 00 20 */ stw r0, 0x20(r29) -/* 802DDD50 38 7F 00 20 */ addi r3, r31, 0x20 -/* 802DDD54 7F C4 F3 78 */ mr r4, r30 -/* 802DDD58 48 08 06 BD */ bl GXLoadTexObj -/* 802DDD5C 80 1D 00 8C */ lwz r0, 0x8c(r29) -/* 802DDD60 2C 00 00 01 */ cmpwi r0, 1 -/* 802DDD64 40 82 00 1C */ bne lbl_802DDD80 -/* 802DDD68 7F A3 EB 78 */ mr r3, r29 -/* 802DDD6C 7F E4 FB 78 */ mr r4, r31 -/* 802DDD70 48 00 01 F9 */ bl unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo -/* 802DDD74 7F A3 EB 78 */ mr r3, r29 -/* 802DDD78 7F E4 FB 78 */ mr r4, r31 -/* 802DDD7C 48 00 02 31 */ bl prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo -lbl_802DDD80: -/* 802DDD80 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DDD84 48 08 44 A5 */ bl _restgpr_29 -/* 802DDD88 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DDD8C 7C 08 03 A6 */ mtlr r0 -/* 802DDD90 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DDD94 4E 80 00 20 */ blr diff --git a/asm/JSystem/JUtility/JUTCacheFont/setBlock__12JUTCacheFontFv.s b/asm/JSystem/JUtility/JUTCacheFont/setBlock__12JUTCacheFontFv.s deleted file mode 100644 index 859a7c38a64..00000000000 --- a/asm/JSystem/JUtility/JUTCacheFont/setBlock__12JUTCacheFontFv.s +++ /dev/null @@ -1,149 +0,0 @@ -lbl_802DD8EC: -/* 802DD8EC 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 802DD8F0 7C 08 02 A6 */ mflr r0 -/* 802DD8F4 90 01 00 44 */ stw r0, 0x44(r1) -/* 802DD8F8 39 61 00 40 */ addi r11, r1, 0x40 -/* 802DD8FC 48 08 48 C1 */ bl _savegpr_21 -/* 802DD900 7C 78 1B 78 */ mr r24, r3 -/* 802DD904 3A E0 00 00 */ li r23, 0 -/* 802DD908 3A C0 00 00 */ li r22, 0 -/* 802DD90C 3A A0 00 00 */ li r21, 0 -/* 802DD910 83 C3 00 7C */ lwz r30, 0x7c(r3) -/* 802DD914 83 A3 00 80 */ lwz r29, 0x80(r3) -/* 802DD918 83 83 00 84 */ lwz r28, 0x84(r3) -/* 802DD91C 80 63 00 AC */ lwz r3, 0xac(r3) -/* 802DD920 83 63 00 14 */ lwz r27, 0x14(r3) -/* 802DD924 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */ -/* 802DD928 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */ -/* 802DD92C B0 18 00 68 */ sth r0, 0x68(r24) -/* 802DD930 80 78 00 48 */ lwz r3, 0x48(r24) -/* 802DD934 3B 43 00 20 */ addi r26, r3, 0x20 -/* 802DD938 3B 20 00 00 */ li r25, 0 -/* 802DD93C 3C 60 4D 41 */ lis r3, 0x4D41 /* 0x4D415031@ha */ -/* 802DD940 3B E3 50 31 */ addi r31, r3, 0x5031 /* 0x4D415031@l */ -/* 802DD944 48 00 01 A0 */ b lbl_802DDAE4 -lbl_802DD948: -/* 802DD948 80 9A 00 00 */ lwz r4, 0(r26) -/* 802DD94C 7C 04 F8 00 */ cmpw r4, r31 -/* 802DD950 41 82 01 34 */ beq lbl_802DDA84 -/* 802DD954 40 80 00 2C */ bge lbl_802DD980 -/* 802DD958 3C 60 49 4E */ lis r3, 0x494E /* 0x494E4631@ha */ -/* 802DD95C 38 03 46 31 */ addi r0, r3, 0x4631 /* 0x494E4631@l */ -/* 802DD960 7C 04 00 00 */ cmpw r4, r0 -/* 802DD964 41 82 00 30 */ beq lbl_802DD994 -/* 802DD968 40 80 01 60 */ bge lbl_802DDAC8 -/* 802DD96C 3C 60 47 4C */ lis r3, 0x474C /* 0x474C5931@ha */ -/* 802DD970 38 03 59 31 */ addi r0, r3, 0x5931 /* 0x474C5931@l */ -/* 802DD974 7C 04 00 00 */ cmpw r4, r0 -/* 802DD978 41 82 00 74 */ beq lbl_802DD9EC -/* 802DD97C 48 00 01 4C */ b lbl_802DDAC8 -lbl_802DD980: -/* 802DD980 3C 60 57 49 */ lis r3, 0x5749 /* 0x57494431@ha */ -/* 802DD984 38 03 44 31 */ addi r0, r3, 0x4431 /* 0x57494431@l */ -/* 802DD988 7C 04 00 00 */ cmpw r4, r0 -/* 802DD98C 41 82 00 38 */ beq lbl_802DD9C4 -/* 802DD990 48 00 01 38 */ b lbl_802DDAC8 -lbl_802DD994: -/* 802DD994 80 78 00 4C */ lwz r3, 0x4c(r24) -/* 802DD998 7F 44 D3 78 */ mr r4, r26 -/* 802DD99C 38 A0 00 20 */ li r5, 0x20 -/* 802DD9A0 4B D2 5B A1 */ bl memcpy -/* 802DD9A4 80 78 00 4C */ lwz r3, 0x4c(r24) -/* 802DD9A8 A0 03 00 08 */ lhz r0, 8(r3) -/* 802DD9AC 54 04 10 3A */ slwi r4, r0, 2 -/* 802DD9B0 3C 60 80 3A */ lis r3, saoAboutEncoding___10JUTResFont@ha /* 0x8039D390@ha */ -/* 802DD9B4 38 03 D3 90 */ addi r0, r3, saoAboutEncoding___10JUTResFont@l /* 0x8039D390@l */ -/* 802DD9B8 7C 00 22 14 */ add r0, r0, r4 -/* 802DD9BC 90 18 00 6C */ stw r0, 0x6c(r24) -/* 802DD9C0 48 00 01 18 */ b lbl_802DDAD8 -lbl_802DD9C4: -/* 802DD9C4 7F C3 F3 78 */ mr r3, r30 -/* 802DD9C8 7F 44 D3 78 */ mr r4, r26 -/* 802DD9CC 80 BA 00 04 */ lwz r5, 4(r26) -/* 802DD9D0 4B D2 5B 71 */ bl memcpy -/* 802DD9D4 80 78 00 54 */ lwz r3, 0x54(r24) -/* 802DD9D8 7F C3 B9 2E */ stwx r30, r3, r23 -/* 802DD9DC 80 1A 00 04 */ lwz r0, 4(r26) -/* 802DD9E0 7F DE 02 14 */ add r30, r30, r0 -/* 802DD9E4 3A F7 00 04 */ addi r23, r23, 4 -/* 802DD9E8 48 00 00 F0 */ b lbl_802DDAD8 -lbl_802DD9EC: -/* 802DD9EC 7F A3 EB 78 */ mr r3, r29 -/* 802DD9F0 7F 44 D3 78 */ mr r4, r26 -/* 802DD9F4 38 A0 00 20 */ li r5, 0x20 -/* 802DD9F8 4B D2 5B 49 */ bl memcpy -/* 802DD9FC 38 7A 00 20 */ addi r3, r26, 0x20 -/* 802DDA00 7F 64 DB 78 */ mr r4, r27 -/* 802DDA04 80 BA 00 04 */ lwz r5, 4(r26) -/* 802DDA08 38 A5 FF E0 */ addi r5, r5, -32 -/* 802DDA0C 38 C0 00 00 */ li r6, 0 -/* 802DDA10 38 E0 00 00 */ li r7, 0 -/* 802DDA14 39 00 00 00 */ li r8, 0 -/* 802DDA18 39 20 FF FF */ li r9, -1 -/* 802DDA1C 39 40 00 00 */ li r10, 0 -/* 802DDA20 4B FF 49 1D */ bl mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl -/* 802DDA24 28 03 00 00 */ cmplwi r3, 0 -/* 802DDA28 40 82 00 24 */ bne lbl_802DDA4C -/* 802DDA2C 3C 60 80 3A */ lis r3, JUTCacheFont__stringBase0@ha /* 0x8039D2F0@ha */ -/* 802DDA30 38 C3 D2 F0 */ addi r6, r3, JUTCacheFont__stringBase0@l /* 0x8039D2F0@l */ -/* 802DDA34 38 66 00 22 */ addi r3, r6, 0x22 -/* 802DDA38 38 80 01 DD */ li r4, 0x1dd -/* 802DDA3C 38 A6 00 33 */ addi r5, r6, 0x33 -/* 802DDA40 38 C6 00 36 */ addi r6, r6, 0x36 -/* 802DDA44 4C C6 31 82 */ crclr 6 -/* 802DDA48 48 00 47 B5 */ bl panic_f__12JUTExceptionFPCciPCce -lbl_802DDA4C: -/* 802DDA4C 93 7D 00 00 */ stw r27, 0(r29) -/* 802DDA50 80 7D 00 10 */ lwz r3, 0x10(r29) -/* 802DDA54 80 18 00 88 */ lwz r0, 0x88(r24) -/* 802DDA58 7C 03 00 40 */ cmplw r3, r0 -/* 802DDA5C 40 81 00 08 */ ble lbl_802DDA64 -/* 802DDA60 90 78 00 88 */ stw r3, 0x88(r24) -lbl_802DDA64: -/* 802DDA64 80 78 00 58 */ lwz r3, 0x58(r24) -/* 802DDA68 7F A3 B1 2E */ stwx r29, r3, r22 -/* 802DDA6C 80 1A 00 04 */ lwz r0, 4(r26) -/* 802DDA70 7F 60 DA 14 */ add r27, r0, r27 -/* 802DDA74 3B 7B FF E0 */ addi r27, r27, -32 -/* 802DDA78 3A D6 00 04 */ addi r22, r22, 4 -/* 802DDA7C 3B BD 00 20 */ addi r29, r29, 0x20 -/* 802DDA80 48 00 00 58 */ b lbl_802DDAD8 -lbl_802DDA84: -/* 802DDA84 7F 83 E3 78 */ mr r3, r28 -/* 802DDA88 7F 44 D3 78 */ mr r4, r26 -/* 802DDA8C 80 BA 00 04 */ lwz r5, 4(r26) -/* 802DDA90 4B D2 5A B1 */ bl memcpy -/* 802DDA94 80 78 00 5C */ lwz r3, 0x5c(r24) -/* 802DDA98 7F 83 A9 2E */ stwx r28, r3, r21 -/* 802DDA9C A0 18 00 68 */ lhz r0, 0x68(r24) -/* 802DDAA0 80 78 00 5C */ lwz r3, 0x5c(r24) -/* 802DDAA4 7C 63 A8 2E */ lwzx r3, r3, r21 -/* 802DDAA8 A0 63 00 0A */ lhz r3, 0xa(r3) -/* 802DDAAC 7C 00 18 40 */ cmplw r0, r3 -/* 802DDAB0 40 81 00 08 */ ble lbl_802DDAB8 -/* 802DDAB4 B0 78 00 68 */ sth r3, 0x68(r24) -lbl_802DDAB8: -/* 802DDAB8 80 1A 00 04 */ lwz r0, 4(r26) -/* 802DDABC 7F 9C 02 14 */ add r28, r28, r0 -/* 802DDAC0 3A B5 00 04 */ addi r21, r21, 4 -/* 802DDAC4 48 00 00 14 */ b lbl_802DDAD8 -lbl_802DDAC8: -/* 802DDAC8 3C 60 80 3A */ lis r3, JUTCacheFont__stringBase0@ha /* 0x8039D2F0@ha */ -/* 802DDACC 38 63 D2 F0 */ addi r3, r3, JUTCacheFont__stringBase0@l /* 0x8039D2F0@l */ -/* 802DDAD0 38 63 00 5C */ addi r3, r3, 0x5c -/* 802DDAD4 48 00 AB 75 */ bl JUTReportConsole -lbl_802DDAD8: -/* 802DDAD8 80 1A 00 04 */ lwz r0, 4(r26) -/* 802DDADC 7F 5A 02 14 */ add r26, r26, r0 -/* 802DDAE0 3B 39 00 01 */ addi r25, r25, 1 -lbl_802DDAE4: -/* 802DDAE4 80 78 00 48 */ lwz r3, 0x48(r24) -/* 802DDAE8 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802DDAEC 7C 19 00 40 */ cmplw r25, r0 -/* 802DDAF0 41 80 FE 58 */ blt lbl_802DD948 -/* 802DDAF4 39 61 00 40 */ addi r11, r1, 0x40 -/* 802DDAF8 48 08 47 11 */ bl _restgpr_21 -/* 802DDAFC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 802DDB00 7C 08 03 A6 */ mtlr r0 -/* 802DDB04 38 21 00 40 */ addi r1, r1, 0x40 -/* 802DDB08 4E 80 00 20 */ blr diff --git a/include/JSystem/JKernel/JKRAram.h b/include/JSystem/JKernel/JKRAram.h index 03063ae07d8..27368cdec04 100644 --- a/include/JSystem/JKernel/JKRAram.h +++ b/include/JSystem/JKernel/JKRAram.h @@ -75,9 +75,9 @@ inline void JKRFreeToAram(JKRAramBlock* block) { JKRAram::getAramHeap()->free(block); } -inline void JKRAramToMainRam(u32 p1, u8* p2, u32 p3, JKRExpandSwitch p4, u32 p5, JKRHeap* p6, +inline u8* JKRAramToMainRam(u32 p1, u8* p2, u32 p3, JKRExpandSwitch p4, u32 p5, JKRHeap* p6, int p7, u32* p8) { - JKRAram::aramToMainRam(p1, p2, p3, p4, p5, p6, p7, p8); + return JKRAram::aramToMainRam(p1, p2, p3, p4, p5, p6, p7, p8); } inline JKRAramBlock *JKRMainRamToAram(u8 *buf, u32 bufSize, u32 alignedSize, JKRExpandSwitch expandSwitch, u32 fileSize, JKRHeap *heap, int id, u32 *pSize) { diff --git a/include/JSystem/JUtility/JUTCacheFont.h b/include/JSystem/JUtility/JUTCacheFont.h index 4d39bae829a..feb348382a6 100644 --- a/include/JSystem/JUtility/JUTCacheFont.h +++ b/include/JSystem/JUtility/JUTCacheFont.h @@ -9,23 +9,25 @@ class JKRAramBlock; class JUTCacheFont : public JUTResFont { public: struct TGlyphCacheInfo { - /* 0x0 */ TGlyphCacheInfo* mPrev; - /* 0x4 */ TGlyphCacheInfo* mNext; - }; - - struct TCachePage { - /* 0x00 */ u8 field_0x0[8]; - /* 0x08 */ s16 field_0x8; + /* 0x00 */ TGlyphCacheInfo* mPrev; + /* 0x04 */ TGlyphCacheInfo* mNext; + /* 0x08 */ u16 field_0x8; /* 0x0A */ u16 field_0xa; - /* 0x0C */ u8 field_0xc[4]; - /* 0x10 */ u8* field_0x10; - /* 0x14 */ u16 field_0x14; + /* 0x0C */ u16 field_0xc; + /* 0x0E */ u16 field_0xe; + /* 0x10 */ u32 field_0x10; + /* 0x14 */ u16 mTexFormat; /* 0x16 */ u16 field_0x16; /* 0x18 */ u16 field_0x18; - /* 0x1A */ u16 field_0x1a; - /* 0x1C */ u16 field_0x1c; + /* 0x1A */ u16 mWidth; + /* 0x1C */ u16 mHeight; /* 0x1E */ u16 field_0x1e; - }; // Size: 0x20 + }; + + struct TCachePage : TGlyphCacheInfo { + /* 0x20 */ GXTexObj mTexObj; + /* 0x40 */ u8 mImage[]; + }; // Size: 0x40 enum EPagingType { PAGE_TYPE_0, @@ -40,10 +42,10 @@ public: /* 802DD54C */ bool internal_initiate(ResFONT const*, void*, u32, JKRHeap*); /* 802DD650 */ bool allocArea(void*, u32, JKRHeap*); /* 802DD804 */ bool allocArray(JKRHeap*); - /* 802DDB0C */ void determineBlankPage(); + /* 802DDB0C */ TGlyphCacheInfo* determineBlankPage(); /* 802DDBBC */ void getGlyphFromAram(JUTCacheFont::TGlyphCacheInfo*, JUTCacheFont::TCachePage*, int*, int*); - /* 802DDD98 */ void loadCache_char_subroutine(int*, bool); + /* 802DDD98 */ TCachePage* loadCache_char_subroutine(int*, bool); /* 802DDEE0 */ void invalidiateAllCache(); /* 802DDF68 */ void unlink(JUTCacheFont::TGlyphCacheInfo*); /* 802DDFAC */ void prepend(JUTCacheFont::TGlyphCacheInfo*); @@ -55,6 +57,7 @@ public: void setPagingType(EPagingType type) { mPagingType = type; } static u32 calcCacheSize(u32 param_0, int param_1) { return (ALIGN_NEXT(param_0, 0x20) + 0x40) * param_1; } + GXTexObj* getTexObj(void* buffer) { return &((TCachePage*)buffer)->mTexObj; } private: /* 0x70 */ u32 mTotalWidSize; @@ -70,7 +73,7 @@ private: /* 0x98 */ u32 mCachePage; /* 0x9C */ TGlyphCacheInfo* field_0x9c; /* 0xA0 */ TGlyphCacheInfo* field_0xa0; - /* 0xA4 */ void* field_0xa4; + /* 0xA4 */ TGlyphCacheInfo* field_0xa4; /* 0xA8 */ u32 field_0xa8; /* 0xAC */ JKRAramBlock* field_0xac; /* 0xB0 */ u8 field_0xb0; diff --git a/libs/JSystem/JUtility/JUTCacheFont.cpp b/libs/JSystem/JUtility/JUTCacheFont.cpp index 3d352a70b5b..6c848231774 100644 --- a/libs/JSystem/JUtility/JUTCacheFont.cpp +++ b/libs/JSystem/JUtility/JUTCacheFont.cpp @@ -4,85 +4,12 @@ // #include "JSystem/JUtility/JUTCacheFont.h" +#include "JSystem/JUtility/JUTException.h" +#include "JSystem/JUtility/JUTAssert.h" +#include "JSystem/JUtility/JUTConsole.h" #include "JSystem/JKernel/JKRAram.h" -#include "dol2asm.h" #include "dolphin/gx/GX.h" -// -// Forward References: -// - -extern "C" void __ct__12JUTCacheFontFPC7ResFONTUlP7JKRHeap(); -extern "C" void __dt__12JUTCacheFontFv(); -extern "C" void deleteMemBlocks_CacheFont__12JUTCacheFontFv(); -extern "C" void initialize_state__12JUTCacheFontFv(); -extern "C" void getMemorySize__12JUTCacheFontFPC7ResFONTPUsPUlPUsPUlPUsPUlPUl(); -extern "C" void initiate__12JUTCacheFontFPC7ResFONTPvUlP7JKRHeap(); -extern "C" void internal_initiate__12JUTCacheFontFPC7ResFONTPvUlP7JKRHeap(); -extern "C" void allocArea__12JUTCacheFontFPvUlP7JKRHeap(); -extern "C" void allocArray__12JUTCacheFontFP7JKRHeap(); -extern "C" void setBlock__12JUTCacheFontFv(); -extern "C" void determineBlankPage__12JUTCacheFontFv(); -extern "C" void -getGlyphFromAram__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfoPQ212JUTCacheFont10TCachePagePiPi(); -extern "C" void loadImage__12JUTCacheFontFi11_GXTexMapID(); -extern "C" void loadCache_char_subroutine__12JUTCacheFontFPib(); -extern "C" void invalidiateAllCache__12JUTCacheFontFv(); -extern "C" void unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo(); -extern "C" void prepend__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo(); -extern "C" void getResFont__10JUTResFontCFv(); -extern "C" void getFontType__10JUTResFontCFv(); -extern "C" void getLeading__10JUTResFontCFv(); -extern "C" void getWidth__10JUTResFontCFv(); -extern "C" void getAscent__10JUTResFontCFv(); -extern "C" void getDescent__10JUTResFontCFv(); -extern "C" void getHeight__10JUTResFontCFv(); -extern "C" extern char const* const JUTCacheFont__stringBase0; - -// -// External References: -// - -extern "C" void* __nw__FUlP7JKRHeapi(); -extern "C" void* __nwa__FUlP7JKRHeapi(); -extern "C" void __dl__FPv(); -extern "C" void __dla__FPv(); -extern "C" void mainRamToAram__7JKRAramFPUcUlUl15JKRExpandSwitchUlP7JKRHeapiPUl(); -extern "C" void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl(); -extern "C" void alloc__11JKRAramHeapFUlQ211JKRAramHeap10EAllocMode(); -extern "C" void initialize_state__7JUTFontFv(); -extern "C" void __ct__10JUTResFontFv(); -extern "C" void __dt__10JUTResFontFv(); -extern "C" void deleteMemBlocks_ResFont__10JUTResFontFv(); -extern "C" void initialize_state__10JUTResFontFv(); -extern "C" void setGX__10JUTResFontFv(); -extern "C" void setGX__10JUTResFontFQ28JUtility6TColorQ28JUtility6TColor(); -extern "C" void drawChar_scale__10JUTResFontFffffib(); -extern "C" void getWidthEntry__10JUTResFontCFiPQ27JUTFont6TWidth(); -extern "C" void getCellWidth__10JUTResFontCFv(); -extern "C" void getCellHeight__10JUTResFontCFv(); -extern "C" void isLeadByte__10JUTResFontCFi(); -extern "C" void panic_f__12JUTExceptionFPCciPCce(); -extern "C" void JUTReportConsole(const char*); -extern "C" void _savegpr_14(); -extern "C" void _savegpr_14(); -extern "C" void _savegpr_21(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_14(); -extern "C" void _restgpr_21(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void _restgpr_29(); -extern "C" void _restgpr_14(); -extern "C" void* const saoAboutEncoding___10JUTResFont[3]; -extern "C" u8 sAramObject__7JKRAram[4]; - -// -// Declarations: -// - /* 802DD188-802DD208 2D7AC8 0080+00 0/0 1/1 0/0 .text __ct__12JUTCacheFontFPC7ResFONTUlP7JKRHeap */ JUTCacheFont::JUTCacheFont(ResFONT const* p_fontRes, u32 cacheSize, JKRHeap* p_heap) { @@ -141,13 +68,6 @@ void JUTCacheFont::initialize_state() { field_0xa0 = NULL; } -/* ############################################################################################## */ -/* 8039D2F0-8039D2F0 029950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D2F0 = "JUTCacheFont: Unknown data block\n"; -#pragma pop - /* 802DD35C-802DD4EC 2D7C9C 0190+00 1/1 0/0 0/0 .text * getMemorySize__12JUTCacheFontFPC7ResFONTPUsPUlPUsPUlPUsPUlPUl */ int JUTCacheFont::getMemorySize(ResFONT const* p_font, u16* o_widCount, u32* o_widSize, @@ -350,88 +270,200 @@ bool JUTCacheFont::allocArray(JKRHeap* param_0) { return true; } -/* ############################################################################################## */ -/* 8039D2F0-8039D2F0 029950 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_8039D312 = "JUTCacheFont.cpp"; -SECTION_DEAD static char const* const stringBase_8039D323 = "%s"; -SECTION_DEAD static char const* const stringBase_8039D326 = "trouble occurred in JKRMainRamToAram."; -SECTION_DEAD static char const* const stringBase_8039D34C = "Unknown data block\n"; -#pragma pop - /* 802DD8EC-802DDB0C 2D822C 0220+00 1/0 0/0 0/0 .text setBlock__12JUTCacheFontFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::setBlock() { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/setBlock__12JUTCacheFontFv.s" +void JUTCacheFont::setBlock() { + int widthNum = 0; + int gylphNum = 0; + int mapNum = 0; + u8* pWidth = (u8*)field_0x7c; + ResFONT::GLY1* piVar5 = (ResFONT::GLY1*)field_0x80; + ResFONT::MAP1* pMap = (ResFONT::MAP1*)field_0x84; + u32 aramAddress = field_0xac->getAddress(); + mMaxCode = 0xffff; + const int* pData = (int*)mResFont->data; + + for (int i = 0; i < mResFont->numBlocks; i++) { + switch (*pData) { + case 'INF1': + memcpy(mInf1Ptr, pData, 0x20); + mIsLeadByte = &JUTResFont::saoAboutEncoding_[mInf1Ptr->fontType]; + break; + case 'WID1': + memcpy(pWidth, pData, pData[1]); + mpWidthBlocks[widthNum] = (ResFONT::WID1*)pWidth; + pWidth += pData[1]; + widthNum++; + break; + case 'GLY1': + memcpy(piVar5, pData, 0x20); + JKRAramBlock* iVar1 = + JKRMainRamToAram((u8*)pData + 0x20, aramAddress, pData[1] - 0x20, + EXPAND_SWITCH_UNKNOWN0, 0, NULL, 0xffffffff, NULL); + if (iVar1 == NULL) { + JUTException::panic("JUTCacheFont.cpp", 0x1dd, + "trouble occurred in JKRMainRamToAram."); + } + piVar5->magic = aramAddress; + if (piVar5->textureSize > mMaxSheetSize) { + mMaxSheetSize = piVar5->textureSize; + } + mpGlyphBlocks[gylphNum] = piVar5; + gylphNum++; + piVar5++; + aramAddress = pData[1] + aramAddress - 0x20; + break; + case 'MAP1': + memcpy(pMap, pData, pData[1]); + mpMapBlocks[mapNum] = pMap; + if (mMaxCode > mpMapBlocks[mapNum]->startCode) { + mMaxCode = mpMapBlocks[mapNum]->startCode; + } + mapNum++; + pMap = (ResFONT::MAP1*)((u8*)pMap + pData[1]); + break; + default: + JUTReportConsole("Unknown data block\n"); + break; + } + + pData = (int*)((u8*)pData + pData[1]); + } } -#pragma pop /* 802DDB0C-802DDBBC 2D844C 00B0+00 1/1 0/0 0/0 .text determineBlankPage__12JUTCacheFontFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::determineBlankPage() { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/determineBlankPage__12JUTCacheFontFv.s" -} -#pragma pop +JUTCacheFont::TGlyphCacheInfo* JUTCacheFont::determineBlankPage() { + TGlyphCacheInfo* pVar1 = field_0xa4; + if (pVar1 != NULL) { + field_0xa4 = pVar1->mNext; + TGlyphCacheInfo* pVar2 = pVar1->mNext; + if (pVar2 == NULL) { + field_0xa8 = 0; + } else { + pVar2->mPrev = NULL; + } + return pVar1; + } -/* ############################################################################################## */ -/* 80455FD0-80455FD8 0045D0 0004+04 1/1 0/0 0/0 .sdata2 @721 */ -SECTION_SDATA2 static f32 lit_721[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; + TGlyphCacheInfo* puVar1 = field_0xa0; + while (puVar1 != NULL) { + TGlyphCacheInfo* prev = puVar1->mPrev; + if (puVar1->field_0x1e == 0) { + unlink(puVar1); + field_0xb4++; + return puVar1; + } + puVar1 = prev; + } + + return NULL; +} /* 802DDBBC-802DDCE4 2D84FC 0128+00 1/1 0/0 0/0 .text * getGlyphFromAram__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfoPQ212JUTCacheFont10TCachePagePiPi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::getGlyphFromAram(JUTCacheFont::TGlyphCacheInfo* param_0, - JUTCacheFont::TCachePage* param_1, int* param_2, - int* param_3) { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/func_802DDBBC.s" +void JUTCacheFont::getGlyphFromAram(JUTCacheFont::TGlyphCacheInfo* param_0, + JUTCacheFont::TCachePage* pCachePage, int* param_2, int* param_3) { + TGlyphCacheInfo* pGylphCacheInfo = pCachePage; + memcpy(pGylphCacheInfo, param_0, sizeof(TGlyphCacheInfo)); + prepend(pGylphCacheInfo); + int iVar3 = pGylphCacheInfo->field_0x16 * pGylphCacheInfo->field_0x18; + int iVar2 = *param_2 / iVar3; + pGylphCacheInfo->field_0x8 += iVar2 * iVar3; + u16 local_30 = pGylphCacheInfo->field_0x8 + iVar3 - 1; + pGylphCacheInfo->field_0xa = pGylphCacheInfo->field_0xa < local_30 ? pGylphCacheInfo->field_0xa : local_30; + *param_3 = iVar2; + *param_2 -= iVar2 * iVar3; + u8* addr = + JKRAramToMainRam((u32)param_0->mPrev + pGylphCacheInfo->field_0x10 * iVar2, pCachePage->mImage, + pGylphCacheInfo->field_0x10, EXPAND_SWITCH_UNKNOWN0, 0, NULL, 0xffffffff, NULL); + JUT_ASSERT(624, addr != NULL); + GXInitTexObj(&pCachePage->mTexObj, pCachePage->mImage, pGylphCacheInfo->mWidth, pGylphCacheInfo->mHeight, + (GXTexFmt)pGylphCacheInfo->mTexFormat, GX_CLAMP, GX_CLAMP, GX_FALSE); + GXInitTexObjLOD(&pCachePage->mTexObj, GX_LINEAR, GX_LINEAR, 0.0f, 0.0f, 0.0f, GX_FALSE, GX_FALSE, + GX_ANISO_1); } -#pragma pop /* 802DDCE4-802DDD98 2D8624 00B4+00 1/0 0/0 0/0 .text loadImage__12JUTCacheFontFi11_GXTexMapID */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::loadImage(int param_0, _GXTexMapID param_1) { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/loadImage__12JUTCacheFontFi11_GXTexMapID.s" +void JUTCacheFont::loadImage(int param_0, _GXTexMapID texMapId) { + TCachePage* cachePage = loadCache_char_subroutine(¶m_0, false); + if (cachePage != NULL) { + mWidth = cachePage->field_0xc * (param_0 % (int)cachePage->field_0x16); + mHeight = cachePage->field_0xe * (param_0 / cachePage->field_0x16); + GXLoadTexObj(getTexObj(cachePage), texMapId); + if (mPagingType == PAGE_TYPE_1) { + unlink(cachePage); + prepend(cachePage); + } + } } -#pragma pop /* 802DDD98-802DDEE0 2D86D8 0148+00 1/1 0/0 0/0 .text * loadCache_char_subroutine__12JUTCacheFontFPib */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::loadCache_char_subroutine(int* param_0, bool param_1) { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/loadCache_char_subroutine__12JUTCacheFontFPib.s" +JUTCacheFont::TCachePage* JUTCacheFont::loadCache_char_subroutine(int* param_0, bool param_1) { + TCachePage* rv = NULL; + for (TCachePage* pCachePage = (TCachePage*)field_0x9c; pCachePage != NULL; + pCachePage = (TCachePage*)pCachePage->mNext) + { + if (pCachePage->field_0x8 <= *param_0 && *param_0 <= pCachePage->field_0xa) { + rv = pCachePage; + *param_0 -= pCachePage->field_0x8; + break; + } + } + + if (rv == NULL) { + int i = 0; + for (; i < mGly1BlockNum; i++) { + if (mpGlyphBlocks[i]->startCode <= *param_0 && *param_0 <= mpGlyphBlocks[i]->endCode) { + *param_0 -= mpGlyphBlocks[i]->startCode; + break; + } + } + if (i < mGly1BlockNum) { + TCachePage* pBlankPage = (TCachePage*)determineBlankPage(); + if (pBlankPage == NULL) { + return NULL; + } + int texPageIdx; + getGlyphFromAram((JUTCacheFont::TGlyphCacheInfo*)mpGlyphBlocks[i], pBlankPage, param_0, + &texPageIdx); + mTexPageIdx = texPageIdx; + field_0x66 = i; + rv = pBlankPage; + } else { + return NULL; + } + } + if (param_1) { + rv->field_0x1e = 1; + } + return rv; } -#pragma pop /* 802DDEE0-802DDF68 2D8820 0088+00 1/1 0/0 0/0 .text invalidiateAllCache__12JUTCacheFontFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void JUTCacheFont::invalidiateAllCache() { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/invalidiateAllCache__12JUTCacheFontFv.s" +void JUTCacheFont::invalidiateAllCache() { + int* piVar3 = (int*)mCacheBuffer; + for (int uVar2 = 0; uVar2 < mCachePage; uVar2++) { + int iVar1; + if (uVar2 == 0) { + iVar1 = 0; + } else { + iVar1 = (int)piVar3 - field_0x94; + } + *piVar3 = iVar1; + if (uVar2 == mCachePage - 1) { + iVar1 = 0; + } else { + iVar1 = (int)piVar3 + field_0x94; + } + piVar3[1] = iVar1; + piVar3 = (int*)((int)piVar3 + field_0x94); + } + field_0xa8 = (int)piVar3 - field_0x94; + field_0xa4 = (TGlyphCacheInfo*)mCacheBuffer; + field_0x9c = NULL; + field_0xa0 = NULL; } -#pragma pop /* 802DDF68-802DDFAC 2D88A8 0044+00 2/2 0/0 0/0 .text * unlink__12JUTCacheFontFPQ212JUTCacheFont15TGlyphCacheInfo */ @@ -465,71 +497,36 @@ void JUTCacheFont::prepend(JUTCacheFont::TGlyphCacheInfo* cacheInfo) { } /* 802DDFD8-802DDFE0 2D8918 0008+00 1/0 1/0 0/0 .text getResFont__10JUTResFontCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm ResFONT* JUTResFont::getResFont() const { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/getResFont__10JUTResFontCFv.s" +ResFONT* JUTResFont::getResFont() const { + return (ResFONT*)mResFont; } -#pragma pop /* 802DDFE0-802DDFEC 2D8920 000C+00 1/0 1/0 0/0 .text getFontType__10JUTResFontCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int JUTResFont::getFontType() const { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/getFontType__10JUTResFontCFv.s" +int JUTResFont::getFontType() const { + return mInf1Ptr->fontType; } -#pragma pop /* 802DDFEC-802DDFF8 2D892C 000C+00 1/0 1/0 0/0 .text getLeading__10JUTResFontCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int JUTResFont::getLeading() const { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/getLeading__10JUTResFontCFv.s" +int JUTResFont::getLeading() const { + return mInf1Ptr->leading; } -#pragma pop /* 802DDFF8-802DE004 2D8938 000C+00 1/0 1/0 0/0 .text getWidth__10JUTResFontCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 JUTResFont::getWidth() const { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/getWidth__10JUTResFontCFv.s" +s32 JUTResFont::getWidth() const { + return mInf1Ptr->width; } -#pragma pop /* 802DE004-802DE010 2D8944 000C+00 1/0 1/0 0/0 .text getAscent__10JUTResFontCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 JUTResFont::getAscent() const { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/getAscent__10JUTResFontCFv.s" +s32 JUTResFont::getAscent() const { + return mInf1Ptr->ascent; } -#pragma pop /* 802DE010-802DE01C 2D8950 000C+00 1/0 1/0 0/0 .text getDescent__10JUTResFontCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 JUTResFont::getDescent() const { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/getDescent__10JUTResFontCFv.s" +s32 JUTResFont::getDescent() const { + return mInf1Ptr->descent; } -#pragma pop /* 802DE01C-802DE078 2D895C 005C+00 1/0 1/0 0/0 .text getHeight__10JUTResFontCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm s32 JUTResFont::getHeight() const { - nofralloc -#include "asm/JSystem/JUtility/JUTCacheFont/getHeight__10JUTResFontCFv.s" +s32 JUTResFont::getHeight() const { + return getAscent() + getDescent(); } -#pragma pop