From 294858f751d8f33cc453116a8d8adb8844ddd8a8 Mon Sep 17 00:00:00 2001 From: notyourav <65437533+notyourav@users.noreply.github.com> Date: Thu, 3 Dec 2020 17:58:53 -0800 Subject: [PATCH] JSystem Font classes, SComponent cBgW (#14) * c_bg_w.cpp OK * JUTFont and JUTResFont partially implemented Co-authored-by: notyouraveragehooman <65437533+notyouraveragehooman@users.noreply.github.com> Co-authored-by: Pheenoh --- asm/J2DGraph/J2DMatBlock.s | 10 +- asm/J2DGraph/J2DPrint.s | 8 +- asm/J2DGraph/J2DTextBox.s | 4 +- asm/JFramework/JFWSystem.s | 2 +- asm/JUtility/JUTAssert.s | 6 +- asm/JUtility/JUTCacheFont.s | 24 +- asm/JUtility/JUTConsole.s | 10 +- asm/JUtility/JUTDbPrint.s | 4 +- asm/JUtility/JUTFont.s | 157 +-- asm/JUtility/JUTResFont.s | 1253 ----------------- asm/SComponent/c/bg/c_bg_w.s | 65 - asm/d/a/d_a_npc.s | 2 +- asm/d/bg/d_bg_s.s | 16 +- asm/d/bg/s/movebg/d_bg_s_movebg_actor.s | 2 +- asm/d/error/d_error_msg.s | 4 +- asm/m/Do/m_Do_ext.s | 4 +- include/JSystem/JUtility/JUTFont/JUTFont.h | 67 +- .../JUTFont/asm/drawString_size_scale.s | 75 + include/JSystem/JUtility/JUTResFont.h | 58 + .../JUtility/asm/JUTResFont__convertSjis.s | 38 + .../JUtility/asm/JUTResFont__countBlock.s | 71 + .../JUtility/asm/JUTResFont__drawChar_scale.s | 270 ++++ .../JUtility/asm/JUTResFont__getFontCode.s | 110 ++ .../JUtility/asm/JUTResFont__getWidthEntry.s | 45 + .../JUtility/asm/JUTResFont__loadImage.s | 95 ++ .../asm/JUTResFont__protected_initiate.s | 73 + .../JUtility/asm/JUTResFont__setBlock.s | 92 ++ include/SComponent/c_bg_w.h | 25 + include/functions.h | 28 + include/variables.h | 3 +- ldscript.lcf | 9 + libs/JSystem/JUtility/JUTFont.cpp | 41 +- libs/JSystem/JUtility/JUTResFont.cpp | 229 ++- libs/SSystem/SComponent/c_bg_w.cpp | 35 +- obj_files.mk | 4 +- 35 files changed, 1412 insertions(+), 1527 deletions(-) delete mode 100644 asm/SComponent/c/bg/c_bg_w.s create mode 100644 include/JSystem/JUtility/JUTFont/asm/drawString_size_scale.s create mode 100644 include/JSystem/JUtility/JUTResFont.h create mode 100644 include/JSystem/JUtility/asm/JUTResFont__convertSjis.s create mode 100644 include/JSystem/JUtility/asm/JUTResFont__countBlock.s create mode 100644 include/JSystem/JUtility/asm/JUTResFont__drawChar_scale.s create mode 100644 include/JSystem/JUtility/asm/JUTResFont__getFontCode.s create mode 100644 include/JSystem/JUtility/asm/JUTResFont__getWidthEntry.s create mode 100644 include/JSystem/JUtility/asm/JUTResFont__loadImage.s create mode 100644 include/JSystem/JUtility/asm/JUTResFont__protected_initiate.s create mode 100644 include/JSystem/JUtility/asm/JUTResFont__setBlock.s create mode 100644 include/SComponent/c_bg_w.h diff --git a/asm/J2DGraph/J2DMatBlock.s b/asm/J2DGraph/J2DMatBlock.s index 699cefd37a..88d86c1c25 100644 --- a/asm/J2DGraph/J2DMatBlock.s +++ b/asm/J2DGraph/J2DMatBlock.s @@ -986,7 +986,7 @@ lbl_802EC14C: /* 802EC158 002E9098 41 82 00 14 */ beq lbl_802EC16C /* 802EC15C 002E909C 7F C4 F3 78 */ mr r4, r30 /* 802EC160 002E90A0 38 A0 00 00 */ li r5, 0 -/* 802EC164 002E90A4 4B FF 2E 31 */ bl JUTResFont_X1_ +/* 802EC164 002E90A4 4B FF 2E 31 */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 802EC168 002E90A8 7C 7F 1B 78 */ mr r31, r3 lbl_802EC16C: /* 802EC16C 002E90AC 28 1F 00 00 */ cmplwi r31, 0 @@ -2232,7 +2232,7 @@ lbl_802ED318: /* 802ED324 002EA264 41 82 00 14 */ beq lbl_802ED338 /* 802ED328 002EA268 7F C4 F3 78 */ mr r4, r30 /* 802ED32C 002EA26C 38 A0 00 00 */ li r5, 0 -/* 802ED330 002EA270 4B FF 1C 65 */ bl JUTResFont_X1_ +/* 802ED330 002EA270 4B FF 1C 65 */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 802ED334 002EA274 7C 7F 1B 78 */ mr r31, r3 lbl_802ED338: /* 802ED338 002EA278 28 1F 00 00 */ cmplwi r31, 0 @@ -3693,7 +3693,7 @@ lbl_802EE7C0: /* 802EE7CC 002EB70C 41 82 00 14 */ beq lbl_802EE7E0 /* 802EE7D0 002EB710 7F C4 F3 78 */ mr r4, r30 /* 802EE7D4 002EB714 38 A0 00 00 */ li r5, 0 -/* 802EE7D8 002EB718 4B FF 07 BD */ bl JUTResFont_X1_ +/* 802EE7D8 002EB718 4B FF 07 BD */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 802EE7DC 002EB71C 7C 7F 1B 78 */ mr r31, r3 lbl_802EE7E0: /* 802EE7E0 002EB720 28 1F 00 00 */ cmplwi r31, 0 @@ -5154,7 +5154,7 @@ lbl_802EFC68: /* 802EFC74 002ECBB4 41 82 00 14 */ beq lbl_802EFC88 /* 802EFC78 002ECBB8 7F C4 F3 78 */ mr r4, r30 /* 802EFC7C 002ECBBC 38 A0 00 00 */ li r5, 0 -/* 802EFC80 002ECBC0 4B FE F3 15 */ bl JUTResFont_X1_ +/* 802EFC80 002ECBC0 4B FE F3 15 */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 802EFC84 002ECBC4 7C 7F 1B 78 */ mr r31, r3 lbl_802EFC88: /* 802EFC88 002ECBC8 28 1F 00 00 */ cmplwi r31, 0 @@ -6604,7 +6604,7 @@ lbl_802F10E8: /* 802F10F4 002EE034 41 82 00 14 */ beq lbl_802F1108 /* 802F10F8 002EE038 7F C4 F3 78 */ mr r4, r30 /* 802F10FC 002EE03C 38 A0 00 00 */ li r5, 0 -/* 802F1100 002EE040 4B FE DE 95 */ bl JUTResFont_X1_ +/* 802F1100 002EE040 4B FE DE 95 */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 802F1104 002EE044 7C 7F 1B 78 */ mr r31, r3 lbl_802F1108: /* 802F1108 002EE048 28 1F 00 00 */ cmplwi r31, 0 diff --git a/asm/J2DGraph/J2DPrint.s b/asm/J2DGraph/J2DPrint.s index 4f70c59051..623b7e8ca5 100644 --- a/asm/J2DGraph/J2DPrint.s +++ b/asm/J2DGraph/J2DPrint.s @@ -673,7 +673,7 @@ lbl_802F4C6C: /* 802F4C7C 002F1BBC 80 74 00 04 */ lwz r3, 4(r20) /* 802F4C80 002F1BC0 38 81 00 14 */ addi r4, r1, 0x14 /* 802F4C84 002F1BC4 38 A1 00 10 */ addi r5, r1, 0x10 -/* 802F4C88 002F1BC8 4B FE A1 3D */ bl JUTFont_NS_setGradColor +/* 802F4C88 002F1BC8 4B FE A1 3D */ bl setGradColor__7JUTFontF6TColor6TColor lbl_802F4C8C: /* 802F4C8C 002F1BCC 3B 80 00 00 */ li r28, 0 /* 802F4C90 002F1BD0 80 74 00 04 */ lwz r3, 4(r20) @@ -1415,7 +1415,7 @@ lbl_802F571C: /* 802F572C 002F266C 80 7A 00 04 */ lwz r3, 4(r26) /* 802F5730 002F2670 38 81 00 20 */ addi r4, r1, 0x20 /* 802F5734 002F2674 38 A1 00 1C */ addi r5, r1, 0x1c -/* 802F5738 002F2678 4B FE 96 8D */ bl JUTFont_NS_setGradColor +/* 802F5738 002F2678 4B FE 96 8D */ bl setGradColor__7JUTFontF6TColor6TColor /* 802F573C 002F267C 48 00 01 F4 */ b lbl_802F5930 lbl_802F5740: /* 802F5740 002F2680 7F 43 D3 78 */ mr r3, r26 @@ -1463,7 +1463,7 @@ lbl_802F57D4: /* 802F57E4 002F2724 80 7A 00 04 */ lwz r3, 4(r26) /* 802F57E8 002F2728 38 81 00 14 */ addi r4, r1, 0x14 /* 802F57EC 002F272C 38 A1 00 10 */ addi r5, r1, 0x10 -/* 802F57F0 002F2730 4B FE 95 D5 */ bl JUTFont_NS_setGradColor +/* 802F57F0 002F2730 4B FE 95 D5 */ bl setGradColor__7JUTFontF6TColor6TColor /* 802F57F4 002F2734 48 00 01 3C */ b lbl_802F5930 lbl_802F57F8: /* 802F57F8 002F2738 7F 43 D3 78 */ mr r3, r26 @@ -1545,7 +1545,7 @@ lbl_802F5904: /* 802F5914 002F2854 80 7A 00 04 */ lwz r3, 4(r26) /* 802F5918 002F2858 38 81 00 0C */ addi r4, r1, 0xc /* 802F591C 002F285C 38 A1 00 08 */ addi r5, r1, 8 -/* 802F5920 002F2860 4B FE 94 A5 */ bl JUTFont_NS_setGradColor +/* 802F5920 002F2860 4B FE 94 A5 */ bl setGradColor__7JUTFontF6TColor6TColor /* 802F5924 002F2864 48 00 00 0C */ b lbl_802F5930 lbl_802F5928: /* 802F5928 002F2868 93 FB 00 00 */ stw r31, 0(r27) diff --git a/asm/J2DGraph/J2DTextBox.s b/asm/J2DGraph/J2DTextBox.s index 9c626ae3cb..c4a4365d24 100644 --- a/asm/J2DGraph/J2DTextBox.s +++ b/asm/J2DGraph/J2DTextBox.s @@ -424,7 +424,7 @@ J2DTextBox_NS_initiate: /* 802FFC94 002FCBD4 41 82 00 14 */ beq lbl_802FFCA8 /* 802FFC98 002FCBD8 7F 44 D3 78 */ mr r4, r26 /* 802FFC9C 002FCBDC 38 A0 00 00 */ li r5, 0 -/* 802FFCA0 002FCBE0 4B FD F2 F5 */ bl JUTResFont_X1_ +/* 802FFCA0 002FCBE0 4B FD F2 F5 */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 802FFCA4 002FCBE4 7C 60 1B 78 */ mr r0, r3 lbl_802FFCA8: /* 802FFCA8 002FCBE8 90 1B 01 00 */ stw r0, 0x100(r27) @@ -600,7 +600,7 @@ J2DTextBox_NS_private_readStream: /* 802FFF2C 002FCE6C 41 82 00 14 */ beq lbl_802FFF40 /* 802FFF30 002FCE70 7F 64 DB 78 */ mr r4, r27 /* 802FFF34 002FCE74 38 A0 00 00 */ li r5, 0 -/* 802FFF38 002FCE78 4B FD F0 5D */ bl JUTResFont_X1_ +/* 802FFF38 002FCE78 4B FD F0 5D */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 802FFF3C 002FCE7C 7C 60 1B 78 */ mr r0, r3 lbl_802FFF40: /* 802FFF40 002FCE80 90 1C 01 00 */ stw r0, 0x100(r28) diff --git a/asm/JFramework/JFWSystem.s b/asm/JFramework/JFWSystem.s index 3f4743d982..f58e9ac3b6 100644 --- a/asm/JFramework/JFWSystem.s +++ b/asm/JFramework/JFWSystem.s @@ -80,7 +80,7 @@ lbl_80271DB4: /* 80271DD8 0026ED18 41 82 00 14 */ beq lbl_80271DEC /* 80271DDC 0026ED1C 80 8D 82 10 */ lwz r4, lbl_80450790-_SDA_BASE_(r13) /* 80271DE0 0026ED20 38 A0 00 00 */ li r5, 0 -/* 80271DE4 0026ED24 48 06 D1 B1 */ bl JUTResFont_X1_ +/* 80271DE4 0026ED24 48 06 D1 B1 */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 80271DE8 0026ED28 7C 60 1B 78 */ mr r0, r3 lbl_80271DEC: /* 80271DEC 0026ED2C 90 0D 8C 30 */ stw r0, lbl_804511B0-_SDA_BASE_(r13) diff --git a/asm/JUtility/JUTAssert.s b/asm/JUtility/JUTAssert.s index f928ade262..cd16a770c4 100644 --- a/asm/JUtility/JUTAssert.s +++ b/asm/JUtility/JUTAssert.s @@ -116,7 +116,7 @@ JUTAssertion_NS_flushMessage_dbPrint: /* 802E4ADC 002E1A1C 90 01 00 0C */ stw r0, 0xc(r1) /* 802E4AE0 002E1A20 7F E3 FB 78 */ mr r3, r31 /* 802E4AE4 002E1A24 38 81 00 0C */ addi r4, r1, 0xc -/* 802E4AE8 002E1A28 4B FF A2 89 */ bl JUTFont_NS_setCharColor +/* 802E4AE8 002E1A28 4B FF A2 89 */ bl setCharColor__7JUTFontF6TColor /* 802E4AEC 002E1A2C 3C 60 80 43 */ lis r3, lbl_80434870@ha /* 802E4AF0 002E1A30 38 63 48 70 */ addi r3, r3, lbl_80434870@l /* 802E4AF4 002E1A34 48 08 40 F1 */ bl func_80368BE4 @@ -153,7 +153,7 @@ JUTAssertion_NS_flushMessage_dbPrint: /* 802E4B70 002E1AB0 38 84 48 70 */ addi r4, r4, lbl_80434870@l /* 802E4B74 002E1AB4 7F C5 F3 78 */ mr r5, r30 /* 802E4B78 002E1AB8 38 C0 00 01 */ li r6, 1 -/* 802E4B7C 002E1ABC 4B FF A2 AD */ bl JUTFont_NS_drawString_size_scale +/* 802E4B7C 002E1ABC 4B FF A2 AD */ bl drawString_size_scale__7JUTFontFffffPcUlb /* 802E4B80 002E1AC0 3C 60 80 43 */ lis r3, lbl_804348B0@ha /* 802E4B84 002E1AC4 38 63 48 B0 */ addi r3, r3, lbl_804348B0@l /* 802E4B88 002E1AC8 48 08 40 5D */ bl func_80368BE4 @@ -190,7 +190,7 @@ JUTAssertion_NS_flushMessage_dbPrint: /* 802E4C04 002E1B44 38 84 48 B0 */ addi r4, r4, lbl_804348B0@l /* 802E4C08 002E1B48 7F C5 F3 78 */ mr r5, r30 /* 802E4C0C 002E1B4C 38 C0 00 01 */ li r6, 1 -/* 802E4C10 002E1B50 4B FF A2 19 */ bl JUTFont_NS_drawString_size_scale +/* 802E4C10 002E1B50 4B FF A2 19 */ bl drawString_size_scale__7JUTFontFffffPcUlb lbl_802E4C14: /* 802E4C14 002E1B54 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0 /* 802E4C18 002E1B58 CB E1 00 40 */ lfd f31, 0x40(r1) diff --git a/asm/JUtility/JUTCacheFont.s b/asm/JUtility/JUTCacheFont.s index 600f498641..1a52ad7c87 100644 --- a/asm/JUtility/JUTCacheFont.s +++ b/asm/JUtility/JUTCacheFont.s @@ -14,16 +14,16 @@ JUTCacheFont: /* 802DD1A0 002DA0E0 7C 9D 23 78 */ mr r29, r4 /* 802DD1A4 002DA0E4 7C BE 2B 78 */ mr r30, r5 /* 802DD1A8 002DA0E8 7C DF 33 78 */ mr r31, r6 -/* 802DD1AC 002DA0EC 48 00 1D 9D */ bl JUTResFont +/* 802DD1AC 002DA0EC 48 00 1D 9D */ bl __ct__10JUTResFontFv /* 802DD1B0 002DA0F0 3C 60 80 3D */ lis r3, lbl_803CC540@ha /* 802DD1B4 002DA0F4 38 03 C5 40 */ addi r0, r3, lbl_803CC540@l /* 802DD1B8 002DA0F8 90 1C 00 00 */ stw r0, 0(r28) /* 802DD1BC 002DA0FC 7F 83 E3 78 */ mr r3, r28 /* 802DD1C0 002DA100 48 00 01 61 */ bl JUTCacheFont_NS_initialize_state /* 802DD1C4 002DA104 7F 83 E3 78 */ mr r3, r28 -/* 802DD1C8 002DA108 48 00 1E E9 */ bl JUTResFont_NS_initialize_state +/* 802DD1C8 002DA108 48 00 1E E9 */ bl initialize_state__10JUTResFontFv /* 802DD1CC 002DA10C 7F 83 E3 78 */ mr r3, r28 -/* 802DD1D0 002DA110 48 00 1B 55 */ bl JUTFont_NS_initialize_state +/* 802DD1D0 002DA110 48 00 1B 55 */ bl initialize_state__7JUTFontFv /* 802DD1D4 002DA114 7F 83 E3 78 */ mr r3, r28 /* 802DD1D8 002DA118 7F A4 EB 78 */ mr r4, r29 /* 802DD1DC 002DA11C 38 A0 00 00 */ li r5, 0 @@ -55,15 +55,15 @@ JUTCacheFont: /* 802DD244 002DA184 7F C3 F3 78 */ mr r3, r30 /* 802DD248 002DA188 48 00 00 D9 */ bl JUTCacheFont_NS_initialize_state /* 802DD24C 002DA18C 7F C3 F3 78 */ mr r3, r30 -/* 802DD250 002DA190 48 00 1E 3D */ bl JUTResFont_NS_deleteMemBlocks_ResFont +/* 802DD250 002DA190 48 00 1E 3D */ bl deleteMemBlocks_ResFont__10JUTResFontFv /* 802DD254 002DA194 7F C3 F3 78 */ mr r3, r30 -/* 802DD258 002DA198 48 00 1E 59 */ bl JUTResFont_NS_initialize_state +/* 802DD258 002DA198 48 00 1E 59 */ bl initialize_state__10JUTResFontFv /* 802DD25C 002DA19C 7F C3 F3 78 */ mr r3, r30 -/* 802DD260 002DA1A0 48 00 1A C5 */ bl JUTFont_NS_initialize_state +/* 802DD260 002DA1A0 48 00 1A C5 */ bl initialize_state__7JUTFontFv lbl_802DD264: /* 802DD264 002DA1A4 7F C3 F3 78 */ mr r3, r30 /* 802DD268 002DA1A8 38 80 00 00 */ li r4, 0 -/* 802DD26C 002DA1AC 48 00 1D 95 */ bl JUTResFont_NS_dtor +/* 802DD26C 002DA1AC 48 00 1D 95 */ bl __dt__10JUTResFontFv /* 802DD270 002DA1B0 7F E0 07 35 */ extsh. r0, r31 /* 802DD274 002DA1B4 40 81 00 0C */ ble lbl_802DD280 /* 802DD278 002DA1B8 7F C3 F3 78 */ mr r3, r30 @@ -266,9 +266,9 @@ JUTCacheFont_NS_initiate: /* 802DD50C 002DA44C 7F E3 FB 78 */ mr r3, r31 /* 802DD510 002DA450 4B FF FD 8D */ bl JUTCacheFont_NS_deleteMemBlocks_CacheFont /* 802DD514 002DA454 7F E3 FB 78 */ mr r3, r31 -/* 802DD518 002DA458 48 00 1B 75 */ bl JUTResFont_NS_deleteMemBlocks_ResFont +/* 802DD518 002DA458 48 00 1B 75 */ bl deleteMemBlocks_ResFont__10JUTResFontFv /* 802DD51C 002DA45C 7F E3 FB 78 */ mr r3, r31 -/* 802DD520 002DA460 48 00 18 05 */ bl JUTFont_NS_initialize_state +/* 802DD520 002DA460 48 00 18 05 */ bl initialize_state__7JUTFontFv /* 802DD524 002DA464 38 00 00 00 */ li r0, 0 /* 802DD528 002DA468 98 1F 00 04 */ stb r0, 4(r31) /* 802DD52C 002DA46C 38 60 00 00 */ li r3, 0 @@ -298,11 +298,11 @@ JUTCacheFont_NS_internal_initiate: /* 802DD578 002DA4B8 7F 63 DB 78 */ mr r3, r27 /* 802DD57C 002DA4BC 4B FF FD A5 */ bl JUTCacheFont_NS_initialize_state /* 802DD580 002DA4C0 7F 63 DB 78 */ mr r3, r27 -/* 802DD584 002DA4C4 48 00 1B 09 */ bl JUTResFont_NS_deleteMemBlocks_ResFont +/* 802DD584 002DA4C4 48 00 1B 09 */ bl deleteMemBlocks_ResFont__10JUTResFontFv /* 802DD588 002DA4C8 7F 63 DB 78 */ mr r3, r27 -/* 802DD58C 002DA4CC 48 00 1B 25 */ bl JUTResFont_NS_initialize_state +/* 802DD58C 002DA4CC 48 00 1B 25 */ bl initialize_state__10JUTResFontFv /* 802DD590 002DA4D0 7F 63 DB 78 */ mr r3, r27 -/* 802DD594 002DA4D4 48 00 17 91 */ bl JUTFont_NS_initialize_state +/* 802DD594 002DA4D4 48 00 17 91 */ bl initialize_state__7JUTFontFv /* 802DD598 002DA4D8 28 1C 00 00 */ cmplwi r28, 0 /* 802DD59C 002DA4DC 40 82 00 0C */ bne lbl_802DD5A8 /* 802DD5A0 002DA4E0 38 60 00 00 */ li r3, 0 diff --git a/asm/JUtility/JUTConsole.s b/asm/JUtility/JUTConsole.s index 6b5359101e..2a7d14c2f9 100644 --- a/asm/JUtility/JUTConsole.s +++ b/asm/JUtility/JUTConsole.s @@ -399,7 +399,7 @@ lbl_802E78D0: /* 802E78F4 002E4834 90 01 00 2C */ stw r0, 0x2c(r1) /* 802E78F8 002E4838 80 79 00 4C */ lwz r3, 0x4c(r25) /* 802E78FC 002E483C 38 81 00 2C */ addi r4, r1, 0x2c -/* 802E7900 002E4840 4B FF 74 71 */ bl JUTFont_NS_setCharColor +/* 802E7900 002E4840 4B FF 74 71 */ bl setCharColor__7JUTFontF6TColor /* 802E7904 002E4844 48 00 01 18 */ b lbl_802E7A1C lbl_802E7908: /* 802E7908 002E4848 80 19 00 34 */ lwz r0, 0x34(r25) @@ -415,7 +415,7 @@ lbl_802E7908: /* 802E7930 002E4870 90 01 00 24 */ stw r0, 0x24(r1) /* 802E7934 002E4874 80 79 00 4C */ lwz r3, 0x4c(r25) /* 802E7938 002E4878 38 81 00 24 */ addi r4, r1, 0x24 -/* 802E793C 002E487C 4B FF 74 35 */ bl JUTFont_NS_setCharColor +/* 802E793C 002E487C 4B FF 74 35 */ bl setCharColor__7JUTFontF6TColor /* 802E7940 002E4880 48 00 00 DC */ b lbl_802E7A1C lbl_802E7944: /* 802E7944 002E4884 38 00 00 E6 */ li r0, 0xe6 @@ -428,7 +428,7 @@ lbl_802E7944: /* 802E7960 002E48A0 90 01 00 1C */ stw r0, 0x1c(r1) /* 802E7964 002E48A4 80 79 00 4C */ lwz r3, 0x4c(r25) /* 802E7968 002E48A8 38 81 00 1C */ addi r4, r1, 0x1c -/* 802E796C 002E48AC 4B FF 74 05 */ bl JUTFont_NS_setCharColor +/* 802E796C 002E48AC 4B FF 74 05 */ bl setCharColor__7JUTFontF6TColor /* 802E7970 002E48B0 48 00 00 AC */ b lbl_802E7A1C lbl_802E7974: /* 802E7974 002E48B4 38 00 00 E6 */ li r0, 0xe6 @@ -441,7 +441,7 @@ lbl_802E7974: /* 802E7990 002E48D0 90 01 00 14 */ stw r0, 0x14(r1) /* 802E7994 002E48D4 80 79 00 4C */ lwz r3, 0x4c(r25) /* 802E7998 002E48D8 38 81 00 14 */ addi r4, r1, 0x14 -/* 802E799C 002E48DC 4B FF 73 D5 */ bl JUTFont_NS_setCharColor +/* 802E799C 002E48DC 4B FF 73 D5 */ bl setCharColor__7JUTFontF6TColor /* 802E79A0 002E48E0 48 00 00 7C */ b lbl_802E7A1C lbl_802E79A4: /* 802E79A4 002E48E4 80 6D 8F A8 */ lwz r3, lbl_80451528-_SDA_BASE_(r13) @@ -527,7 +527,7 @@ lbl_802E7A40: /* 802E7ADC 002E4A1C FC 80 D8 90 */ fmr f4, f27 /* 802E7AE0 002E4A20 7F A4 EB 78 */ mr r4, r29 /* 802E7AE4 002E4A24 38 C0 00 01 */ li r6, 1 -/* 802E7AE8 002E4A28 4B FF 73 41 */ bl JUTFont_NS_drawString_size_scale +/* 802E7AE8 002E4A28 4B FF 73 41 */ bl drawString_size_scale__7JUTFontFffffPcUlb /* 802E7AEC 002E4A2C 48 00 00 60 */ b lbl_802E7B4C lbl_802E7AF0: /* 802E7AF0 002E4A30 80 6D 8F A8 */ lwz r3, lbl_80451528-_SDA_BASE_(r13) diff --git a/asm/JUtility/JUTDbPrint.s b/asm/JUtility/JUTDbPrint.s index 553b216fb2..b227c605b8 100644 --- a/asm/JUtility/JUTDbPrint.s +++ b/asm/JUtility/JUTDbPrint.s @@ -178,7 +178,7 @@ JUTDbPrint_NS_flush_X1_: /* 802E0398 002DD2D8 90 01 00 08 */ stw r0, 8(r1) /* 802E039C 002DD2DC 80 7C 00 04 */ lwz r3, 4(r28) /* 802E03A0 002DD2E0 38 81 00 08 */ addi r4, r1, 8 -/* 802E03A4 002DD2E4 4B FF E9 CD */ bl JUTFont_NS_setCharColor +/* 802E03A4 002DD2E4 4B FF E9 CD */ bl setCharColor__7JUTFontF6TColor /* 802E03A8 002DD2E8 48 00 00 60 */ b lbl_802E0408 lbl_802E03AC: /* 802E03AC 002DD2EC 88 1C 00 0C */ lbz r0, 0xc(r28) @@ -276,7 +276,7 @@ JUTDbPrint_NS_drawString: /* 802E0500 002DD440 7F C4 F3 78 */ mr r4, r30 /* 802E0504 002DD444 7F A5 EB 78 */ mr r5, r29 /* 802E0508 002DD448 38 C0 00 01 */ li r6, 1 -/* 802E050C 002DD44C 4B FF E9 1D */ bl JUTFont_NS_drawString_size_scale +/* 802E050C 002DD44C 4B FF E9 1D */ bl drawString_size_scale__7JUTFontFffffPcUlb /* 802E0510 002DD450 E3 E1 00 48 */ psq_l f31, 72(r1), 0, qr0 /* 802E0514 002DD454 CB E1 00 40 */ lfd f31, 0x40(r1) /* 802E0518 002DD458 39 61 00 40 */ addi r11, r1, 0x40 diff --git a/asm/JUtility/JUTFont.s b/asm/JUtility/JUTFont.s index 77188f1a56..b7a1db1330 100644 --- a/asm/JUtility/JUTFont.s +++ b/asm/JUtility/JUTFont.s @@ -3,8 +3,8 @@ .section .text, "ax" # 802decf8 -.global JUTFont -JUTFont: +.global __ct__7JUTFontFv +__ct__7JUTFontFv: /* 802DECF8 002DBC38 3C 80 80 3A */ lis r4, lbl_803A31F0@ha /* 802DECFC 002DBC3C 38 04 31 F0 */ addi r0, r4, lbl_803A31F0@l /* 802DED00 002DBC40 90 03 00 00 */ stw r0, 0(r3) @@ -16,156 +16,3 @@ JUTFont: /* 802DED18 002DBC58 38 00 00 00 */ li r0, 0 /* 802DED1C 002DBC5C 98 03 00 04 */ stb r0, 4(r3) /* 802DED20 002DBC60 4E 80 00 20 */ blr - -.global JUTFont_NS_initialize_state -JUTFont_NS_initialize_state: -/* 802DED24 002DBC64 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DED28 002DBC68 7C 08 02 A6 */ mflr r0 -/* 802DED2C 002DBC6C 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DED30 002DBC70 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802DED34 002DBC74 7C 7F 1B 78 */ mr r31, r3 -/* 802DED38 002DBC78 38 00 FF FF */ li r0, -1 -/* 802DED3C 002DBC7C 90 01 00 08 */ stw r0, 8(r1) -/* 802DED40 002DBC80 90 01 00 0C */ stw r0, 0xc(r1) -/* 802DED44 002DBC84 38 81 00 0C */ addi r4, r1, 0xc -/* 802DED48 002DBC88 48 00 00 29 */ bl JUTFont_NS_setCharColor -/* 802DED4C 002DBC8C 38 00 00 00 */ li r0, 0 -/* 802DED50 002DBC90 98 1F 00 05 */ stb r0, 5(r31) -/* 802DED54 002DBC94 90 1F 00 08 */ stw r0, 8(r31) -/* 802DED58 002DBC98 98 1F 00 04 */ stb r0, 4(r31) -/* 802DED5C 002DBC9C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802DED60 002DBCA0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DED64 002DBCA4 7C 08 03 A6 */ mtlr r0 -/* 802DED68 002DBCA8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DED6C 002DBCAC 4E 80 00 20 */ blr - -.global JUTFont_NS_setCharColor -JUTFont_NS_setCharColor: -/* 802DED70 002DBCB0 88 E4 00 00 */ lbz r7, 0(r4) -/* 802DED74 002DBCB4 98 E3 00 0C */ stb r7, 0xc(r3) -/* 802DED78 002DBCB8 88 C4 00 01 */ lbz r6, 1(r4) -/* 802DED7C 002DBCBC 98 C3 00 0D */ stb r6, 0xd(r3) -/* 802DED80 002DBCC0 88 A4 00 02 */ lbz r5, 2(r4) -/* 802DED84 002DBCC4 98 A3 00 0E */ stb r5, 0xe(r3) -/* 802DED88 002DBCC8 88 04 00 03 */ lbz r0, 3(r4) -/* 802DED8C 002DBCCC 98 03 00 0F */ stb r0, 0xf(r3) -/* 802DED90 002DBCD0 98 E3 00 10 */ stb r7, 0x10(r3) -/* 802DED94 002DBCD4 98 C3 00 11 */ stb r6, 0x11(r3) -/* 802DED98 002DBCD8 98 A3 00 12 */ stb r5, 0x12(r3) -/* 802DED9C 002DBCDC 98 03 00 13 */ stb r0, 0x13(r3) -/* 802DEDA0 002DBCE0 98 E3 00 14 */ stb r7, 0x14(r3) -/* 802DEDA4 002DBCE4 98 C3 00 15 */ stb r6, 0x15(r3) -/* 802DEDA8 002DBCE8 98 A3 00 16 */ stb r5, 0x16(r3) -/* 802DEDAC 002DBCEC 98 03 00 17 */ stb r0, 0x17(r3) -/* 802DEDB0 002DBCF0 98 E3 00 18 */ stb r7, 0x18(r3) -/* 802DEDB4 002DBCF4 98 C3 00 19 */ stb r6, 0x19(r3) -/* 802DEDB8 002DBCF8 98 A3 00 1A */ stb r5, 0x1a(r3) -/* 802DEDBC 002DBCFC 98 03 00 1B */ stb r0, 0x1b(r3) -/* 802DEDC0 002DBD00 4E 80 00 20 */ blr - -.global JUTFont_NS_setGradColor -JUTFont_NS_setGradColor: -/* 802DEDC4 002DBD04 89 04 00 00 */ lbz r8, 0(r4) -/* 802DEDC8 002DBD08 99 03 00 0C */ stb r8, 0xc(r3) -/* 802DEDCC 002DBD0C 88 E4 00 01 */ lbz r7, 1(r4) -/* 802DEDD0 002DBD10 98 E3 00 0D */ stb r7, 0xd(r3) -/* 802DEDD4 002DBD14 88 C4 00 02 */ lbz r6, 2(r4) -/* 802DEDD8 002DBD18 98 C3 00 0E */ stb r6, 0xe(r3) -/* 802DEDDC 002DBD1C 88 04 00 03 */ lbz r0, 3(r4) -/* 802DEDE0 002DBD20 98 03 00 0F */ stb r0, 0xf(r3) -/* 802DEDE4 002DBD24 99 03 00 10 */ stb r8, 0x10(r3) -/* 802DEDE8 002DBD28 98 E3 00 11 */ stb r7, 0x11(r3) -/* 802DEDEC 002DBD2C 98 C3 00 12 */ stb r6, 0x12(r3) -/* 802DEDF0 002DBD30 98 03 00 13 */ stb r0, 0x13(r3) -/* 802DEDF4 002DBD34 88 E5 00 00 */ lbz r7, 0(r5) -/* 802DEDF8 002DBD38 98 E3 00 14 */ stb r7, 0x14(r3) -/* 802DEDFC 002DBD3C 88 C5 00 01 */ lbz r6, 1(r5) -/* 802DEE00 002DBD40 98 C3 00 15 */ stb r6, 0x15(r3) -/* 802DEE04 002DBD44 88 85 00 02 */ lbz r4, 2(r5) -/* 802DEE08 002DBD48 98 83 00 16 */ stb r4, 0x16(r3) -/* 802DEE0C 002DBD4C 88 05 00 03 */ lbz r0, 3(r5) -/* 802DEE10 002DBD50 98 03 00 17 */ stb r0, 0x17(r3) -/* 802DEE14 002DBD54 98 E3 00 18 */ stb r7, 0x18(r3) -/* 802DEE18 002DBD58 98 C3 00 19 */ stb r6, 0x19(r3) -/* 802DEE1C 002DBD5C 98 83 00 1A */ stb r4, 0x1a(r3) -/* 802DEE20 002DBD60 98 03 00 1B */ stb r0, 0x1b(r3) -/* 802DEE24 002DBD64 4E 80 00 20 */ blr - -.global JUTFont_NS_drawString_size_scale -JUTFont_NS_drawString_size_scale: -/* 802DEE28 002DBD68 94 21 FF 90 */ stwu r1, -0x70(r1) -/* 802DEE2C 002DBD6C 7C 08 02 A6 */ mflr r0 -/* 802DEE30 002DBD70 90 01 00 74 */ stw r0, 0x74(r1) -/* 802DEE34 002DBD74 DB E1 00 60 */ stfd f31, 0x60(r1) -/* 802DEE38 002DBD78 F3 E1 00 68 */ psq_st f31, 104(r1), 0, qr0 -/* 802DEE3C 002DBD7C DB C1 00 50 */ stfd f30, 0x50(r1) -/* 802DEE40 002DBD80 F3 C1 00 58 */ psq_st f30, 88(r1), 0, qr0 -/* 802DEE44 002DBD84 DB A1 00 40 */ stfd f29, 0x40(r1) -/* 802DEE48 002DBD88 F3 A1 00 48 */ psq_st f29, 72(r1), 0, qr0 -/* 802DEE4C 002DBD8C DB 81 00 30 */ stfd f28, 0x30(r1) -/* 802DEE50 002DBD90 F3 81 00 38 */ psq_st f28, 56(r1), 0, qr0 -/* 802DEE54 002DBD94 DB 61 00 20 */ stfd f27, 0x20(r1) -/* 802DEE58 002DBD98 F3 61 00 28 */ psq_st f27, 40(r1), 0, qr0 -/* 802DEE5C 002DBD9C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DEE60 002DBDA0 48 08 33 75 */ bl _savegpr_27 -/* 802DEE64 002DBDA4 7C 7B 1B 78 */ mr r27, r3 -/* 802DEE68 002DBDA8 FF 60 08 90 */ fmr f27, f1 -/* 802DEE6C 002DBDAC FF 80 10 90 */ fmr f28, f2 -/* 802DEE70 002DBDB0 FF A0 18 90 */ fmr f29, f3 -/* 802DEE74 002DBDB4 FF C0 20 90 */ fmr f30, f4 -/* 802DEE78 002DBDB8 7C 9C 23 78 */ mr r28, r4 -/* 802DEE7C 002DBDBC 7C BD 2B 78 */ mr r29, r5 -/* 802DEE80 002DBDC0 7C DE 33 78 */ mr r30, r6 -/* 802DEE84 002DBDC4 FF E0 D8 90 */ fmr f31, f27 -/* 802DEE88 002DBDC8 48 00 00 74 */ b lbl_802DEEFC -lbl_802DEE8C: -/* 802DEE8C 002DBDCC 88 9C 00 00 */ lbz r4, 0(r28) -/* 802DEE90 002DBDD0 7C 9F 23 78 */ mr r31, r4 -/* 802DEE94 002DBDD4 7F 63 DB 78 */ mr r3, r27 -/* 802DEE98 002DBDD8 81 9B 00 00 */ lwz r12, 0(r27) -/* 802DEE9C 002DBDDC 81 8C 00 40 */ lwz r12, 0x40(r12) -/* 802DEEA0 002DBDE0 7D 89 03 A6 */ mtctr r12 -/* 802DEEA4 002DBDE4 4E 80 04 21 */ bctrl -/* 802DEEA8 002DBDE8 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802DEEAC 002DBDEC 41 82 00 14 */ beq lbl_802DEEC0 -/* 802DEEB0 002DBDF0 57 FF 40 2E */ slwi r31, r31, 8 -/* 802DEEB4 002DBDF4 8C 1C 00 01 */ lbzu r0, 1(r28) -/* 802DEEB8 002DBDF8 7F FF 03 78 */ or r31, r31, r0 -/* 802DEEBC 002DBDFC 3B BD FF FF */ addi r29, r29, -1 -lbl_802DEEC0: -/* 802DEEC0 002DBE00 7F 63 DB 78 */ mr r3, r27 -/* 802DEEC4 002DBE04 FC 20 D8 90 */ fmr f1, f27 -/* 802DEEC8 002DBE08 FC 40 E0 90 */ fmr f2, f28 -/* 802DEECC 002DBE0C FC 60 E8 90 */ fmr f3, f29 -/* 802DEED0 002DBE10 FC 80 F0 90 */ fmr f4, f30 -/* 802DEED4 002DBE14 7F E4 FB 78 */ mr r4, r31 -/* 802DEED8 002DBE18 7F C5 F3 78 */ mr r5, r30 -/* 802DEEDC 002DBE1C 81 9B 00 00 */ lwz r12, 0(r27) -/* 802DEEE0 002DBE20 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 802DEEE4 002DBE24 7D 89 03 A6 */ mtctr r12 -/* 802DEEE8 002DBE28 4E 80 04 21 */ bctrl -/* 802DEEEC 002DBE2C EF 7B 08 2A */ fadds f27, f27, f1 -/* 802DEEF0 002DBE30 3B C0 00 01 */ li r30, 1 -/* 802DEEF4 002DBE34 3B BD FF FF */ addi r29, r29, -1 -/* 802DEEF8 002DBE38 3B 9C 00 01 */ addi r28, r28, 1 -lbl_802DEEFC: -/* 802DEEFC 002DBE3C 28 1D 00 00 */ cmplwi r29, 0 -/* 802DEF00 002DBE40 40 82 FF 8C */ bne lbl_802DEE8C -/* 802DEF04 002DBE44 EC 3B F8 28 */ fsubs f1, f27, f31 -/* 802DEF08 002DBE48 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0 -/* 802DEF0C 002DBE4C CB E1 00 60 */ lfd f31, 0x60(r1) -/* 802DEF10 002DBE50 E3 C1 00 58 */ psq_l f30, 88(r1), 0, qr0 -/* 802DEF14 002DBE54 CB C1 00 50 */ lfd f30, 0x50(r1) -/* 802DEF18 002DBE58 E3 A1 00 48 */ psq_l f29, 72(r1), 0, qr0 -/* 802DEF1C 002DBE5C CB A1 00 40 */ lfd f29, 0x40(r1) -/* 802DEF20 002DBE60 E3 81 00 38 */ psq_l f28, 56(r1), 0, qr0 -/* 802DEF24 002DBE64 CB 81 00 30 */ lfd f28, 0x30(r1) -/* 802DEF28 002DBE68 E3 61 00 28 */ psq_l f27, 40(r1), 0, qr0 -/* 802DEF2C 002DBE6C CB 61 00 20 */ lfd f27, 0x20(r1) -/* 802DEF30 002DBE70 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DEF34 002DBE74 48 08 32 ED */ bl _restgpr_27 -/* 802DEF38 002DBE78 80 01 00 74 */ lwz r0, 0x74(r1) -/* 802DEF3C 002DBE7C 7C 08 03 A6 */ mtlr r0 -/* 802DEF40 002DBE80 38 21 00 70 */ addi r1, r1, 0x70 -/* 802DEF44 002DBE84 4E 80 00 20 */ blr - diff --git a/asm/JUtility/JUTResFont.s b/asm/JUtility/JUTResFont.s index 0991642095..6e57e6e726 100644 --- a/asm/JUtility/JUTResFont.s +++ b/asm/JUtility/JUTResFont.s @@ -2,1256 +2,3 @@ .section .text, "ax" # 802def48 - -.global JUTResFont -JUTResFont: -/* 802DEF48 002DBE88 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DEF4C 002DBE8C 7C 08 02 A6 */ mflr r0 -/* 802DEF50 002DBE90 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DEF54 002DBE94 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DEF58 002DBE98 7C 7F 1B 78 */ mr r31, r3 -/* 802DEF5C 002DBE9C 4B FF FD 9D */ bl JUTFont -/* 802DEF60 002DBEA0 3C 60 80 3D */ lis r3, lbl_803CC5A0@ha -/* 802DEF64 002DBEA4 38 03 C5 A0 */ addi r0, r3, lbl_803CC5A0@l -/* 802DEF68 002DBEA8 90 1F 00 00 */ stw r0, 0(r31) -/* 802DEF6C 002DBEAC 7F E3 FB 78 */ mr r3, r31 -/* 802DEF70 002DBEB0 48 00 01 41 */ bl JUTResFont_NS_initialize_state -/* 802DEF74 002DBEB4 7F E3 FB 78 */ mr r3, r31 -/* 802DEF78 002DBEB8 4B FF FD AD */ bl JUTFont_NS_initialize_state -/* 802DEF7C 002DBEBC 7F E3 FB 78 */ mr r3, r31 -/* 802DEF80 002DBEC0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DEF84 002DBEC4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DEF88 002DBEC8 7C 08 03 A6 */ mtlr r0 -/* 802DEF8C 002DBECC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DEF90 002DBED0 4E 80 00 20 */ blr - -.global JUTResFont_X1_ -JUTResFont_X1_: -/* 802DEF94 002DBED4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DEF98 002DBED8 7C 08 02 A6 */ mflr r0 -/* 802DEF9C 002DBEDC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DEFA0 002DBEE0 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DEFA4 002DBEE4 48 08 32 39 */ bl _savegpr_29 -/* 802DEFA8 002DBEE8 7C 7D 1B 78 */ mr r29, r3 -/* 802DEFAC 002DBEEC 7C 9E 23 78 */ mr r30, r4 -/* 802DEFB0 002DBEF0 7C BF 2B 78 */ mr r31, r5 -/* 802DEFB4 002DBEF4 4B FF FD 45 */ bl JUTFont -/* 802DEFB8 002DBEF8 3C 60 80 3D */ lis r3, lbl_803CC5A0@ha -/* 802DEFBC 002DBEFC 38 03 C5 A0 */ addi r0, r3, lbl_803CC5A0@l -/* 802DEFC0 002DBF00 90 1D 00 00 */ stw r0, 0(r29) -/* 802DEFC4 002DBF04 7F A3 EB 78 */ mr r3, r29 -/* 802DEFC8 002DBF08 48 00 00 E9 */ bl JUTResFont_NS_initialize_state -/* 802DEFCC 002DBF0C 7F A3 EB 78 */ mr r3, r29 -/* 802DEFD0 002DBF10 4B FF FD 55 */ bl JUTFont_NS_initialize_state -/* 802DEFD4 002DBF14 7F A3 EB 78 */ mr r3, r29 -/* 802DEFD8 002DBF18 7F C4 F3 78 */ mr r4, r30 -/* 802DEFDC 002DBF1C 7F E5 FB 78 */ mr r5, r31 -/* 802DEFE0 002DBF20 48 00 00 FD */ bl JUTResFont_NS_initiate -/* 802DEFE4 002DBF24 7F A3 EB 78 */ mr r3, r29 -/* 802DEFE8 002DBF28 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DEFEC 002DBF2C 48 08 32 3D */ bl _restgpr_29 -/* 802DEFF0 002DBF30 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DEFF4 002DBF34 7C 08 03 A6 */ mtlr r0 -/* 802DEFF8 002DBF38 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DEFFC 002DBF3C 4E 80 00 20 */ blr - -.global JUTResFont_NS_dtor -JUTResFont_NS_dtor: -/* 802DF000 002DBF40 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DF004 002DBF44 7C 08 02 A6 */ mflr r0 -/* 802DF008 002DBF48 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF00C 002DBF4C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DF010 002DBF50 93 C1 00 08 */ stw r30, 8(r1) -/* 802DF014 002DBF54 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802DF018 002DBF58 7C 9F 23 78 */ mr r31, r4 -/* 802DF01C 002DBF5C 41 82 00 54 */ beq lbl_802DF070 -/* 802DF020 002DBF60 3C 80 80 3D */ lis r4, lbl_803CC5A0@ha -/* 802DF024 002DBF64 38 04 C5 A0 */ addi r0, r4, lbl_803CC5A0@l -/* 802DF028 002DBF68 90 1E 00 00 */ stw r0, 0(r30) -/* 802DF02C 002DBF6C 88 1E 00 04 */ lbz r0, 4(r30) -/* 802DF030 002DBF70 28 00 00 00 */ cmplwi r0, 0 -/* 802DF034 002DBF74 41 82 00 18 */ beq lbl_802DF04C -/* 802DF038 002DBF78 48 00 00 55 */ bl JUTResFont_NS_deleteMemBlocks_ResFont -/* 802DF03C 002DBF7C 7F C3 F3 78 */ mr r3, r30 -/* 802DF040 002DBF80 48 00 00 71 */ bl JUTResFont_NS_initialize_state -/* 802DF044 002DBF84 7F C3 F3 78 */ mr r3, r30 -/* 802DF048 002DBF88 4B FF FC DD */ bl JUTFont_NS_initialize_state -lbl_802DF04C: -/* 802DF04C 002DBF8C 28 1E 00 00 */ cmplwi r30, 0 -/* 802DF050 002DBF90 41 82 00 10 */ beq lbl_802DF060 -/* 802DF054 002DBF94 3C 60 80 3A */ lis r3, lbl_803A31F0@ha -/* 802DF058 002DBF98 38 03 31 F0 */ addi r0, r3, lbl_803A31F0@l -/* 802DF05C 002DBF9C 90 1E 00 00 */ stw r0, 0(r30) -lbl_802DF060: -/* 802DF060 002DBFA0 7F E0 07 35 */ extsh. r0, r31 -/* 802DF064 002DBFA4 40 81 00 0C */ ble lbl_802DF070 -/* 802DF068 002DBFA8 7F C3 F3 78 */ mr r3, r30 -/* 802DF06C 002DBFAC 4B FE FC D1 */ bl __dl__FPv -lbl_802DF070: -/* 802DF070 002DBFB0 7F C3 F3 78 */ mr r3, r30 -/* 802DF074 002DBFB4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DF078 002DBFB8 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DF07C 002DBFBC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DF080 002DBFC0 7C 08 03 A6 */ mtlr r0 -/* 802DF084 002DBFC4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DF088 002DBFC8 4E 80 00 20 */ blr - -.global JUTResFont_NS_deleteMemBlocks_ResFont -JUTResFont_NS_deleteMemBlocks_ResFont: -/* 802DF08C 002DBFCC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DF090 002DBFD0 7C 08 02 A6 */ mflr r0 -/* 802DF094 002DBFD4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF098 002DBFD8 80 63 00 50 */ lwz r3, 0x50(r3) -/* 802DF09C 002DBFDC 4B FE FC C5 */ bl __dla__FPv -/* 802DF0A0 002DBFE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DF0A4 002DBFE4 7C 08 03 A6 */ mtlr r0 -/* 802DF0A8 002DBFE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DF0AC 002DBFEC 4E 80 00 20 */ blr - -.global JUTResFont_NS_initialize_state -JUTResFont_NS_initialize_state: -/* 802DF0B0 002DBFF0 38 00 00 00 */ li r0, 0 -/* 802DF0B4 002DBFF4 90 03 00 48 */ stw r0, 0x48(r3) -/* 802DF0B8 002DBFF8 90 03 00 50 */ stw r0, 0x50(r3) -/* 802DF0BC 002DBFFC 90 03 00 54 */ stw r0, 0x54(r3) -/* 802DF0C0 002DC000 90 03 00 58 */ stw r0, 0x58(r3) -/* 802DF0C4 002DC004 90 03 00 5C */ stw r0, 0x5c(r3) -/* 802DF0C8 002DC008 90 03 00 1C */ stw r0, 0x1c(r3) -/* 802DF0CC 002DC00C 90 03 00 20 */ stw r0, 0x20(r3) -/* 802DF0D0 002DC010 38 00 FF FF */ li r0, -1 -/* 802DF0D4 002DC014 90 03 00 44 */ stw r0, 0x44(r3) -/* 802DF0D8 002DC018 4E 80 00 20 */ blr - -.global JUTResFont_NS_initiate -JUTResFont_NS_initiate: -/* 802DF0DC 002DC01C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DF0E0 002DC020 7C 08 02 A6 */ mflr r0 -/* 802DF0E4 002DC024 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF0E8 002DC028 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DF0EC 002DC02C 7C 7F 1B 78 */ mr r31, r3 -/* 802DF0F0 002DC030 48 00 00 4D */ bl JUTResFont_NS_protected_initiate -/* 802DF0F4 002DC034 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 802DF0F8 002DC038 40 82 00 2C */ bne lbl_802DF124 -/* 802DF0FC 002DC03C 7F E3 FB 78 */ mr r3, r31 -/* 802DF100 002DC040 4B FF FF 8D */ bl JUTResFont_NS_deleteMemBlocks_ResFont -/* 802DF104 002DC044 7F E3 FB 78 */ mr r3, r31 -/* 802DF108 002DC048 4B FF FF A9 */ bl JUTResFont_NS_initialize_state -/* 802DF10C 002DC04C 7F E3 FB 78 */ mr r3, r31 -/* 802DF110 002DC050 4B FF FC 15 */ bl JUTFont_NS_initialize_state -/* 802DF114 002DC054 38 00 00 00 */ li r0, 0 -/* 802DF118 002DC058 98 1F 00 04 */ stb r0, 4(r31) -/* 802DF11C 002DC05C 38 60 00 00 */ li r3, 0 -/* 802DF120 002DC060 48 00 00 08 */ b lbl_802DF128 -lbl_802DF124: -/* 802DF124 002DC064 38 60 00 01 */ li r3, 1 -lbl_802DF128: -/* 802DF128 002DC068 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DF12C 002DC06C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DF130 002DC070 7C 08 03 A6 */ mtlr r0 -/* 802DF134 002DC074 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DF138 002DC078 4E 80 00 20 */ blr - -.global JUTResFont_NS_protected_initiate -JUTResFont_NS_protected_initiate: -/* 802DF13C 002DC07C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DF140 002DC080 7C 08 02 A6 */ mflr r0 -/* 802DF144 002DC084 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DF148 002DC088 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DF14C 002DC08C 48 08 30 91 */ bl _savegpr_29 -/* 802DF150 002DC090 7C 7D 1B 78 */ mr r29, r3 -/* 802DF154 002DC094 7C 9E 23 78 */ mr r30, r4 -/* 802DF158 002DC098 7C BF 2B 78 */ mr r31, r5 -/* 802DF15C 002DC09C 4B FF FF 31 */ bl JUTResFont_NS_deleteMemBlocks_ResFont -/* 802DF160 002DC0A0 7F A3 EB 78 */ mr r3, r29 -/* 802DF164 002DC0A4 4B FF FF 4D */ bl JUTResFont_NS_initialize_state -/* 802DF168 002DC0A8 7F A3 EB 78 */ mr r3, r29 -/* 802DF16C 002DC0AC 4B FF FB B9 */ bl JUTFont_NS_initialize_state -/* 802DF170 002DC0B0 28 1E 00 00 */ cmplwi r30, 0 -/* 802DF174 002DC0B4 40 82 00 0C */ bne lbl_802DF180 -/* 802DF178 002DC0B8 38 60 00 00 */ li r3, 0 -/* 802DF17C 002DC0BC 48 00 00 B4 */ b lbl_802DF230 -lbl_802DF180: -/* 802DF180 002DC0C0 93 DD 00 48 */ stw r30, 0x48(r29) -/* 802DF184 002DC0C4 38 00 00 01 */ li r0, 1 -/* 802DF188 002DC0C8 98 1D 00 04 */ stb r0, 4(r29) -/* 802DF18C 002DC0CC 7F A3 EB 78 */ mr r3, r29 -/* 802DF190 002DC0D0 48 00 00 B9 */ bl JUTResFont_NS_countBlock -/* 802DF194 002DC0D4 A0 9D 00 64 */ lhz r4, 0x64(r29) -/* 802DF198 002DC0D8 A0 7D 00 60 */ lhz r3, 0x60(r29) -/* 802DF19C 002DC0DC A0 1D 00 62 */ lhz r0, 0x62(r29) -/* 802DF1A0 002DC0E0 7C 00 22 14 */ add r0, r0, r4 -/* 802DF1A4 002DC0E4 7C 03 02 14 */ add r0, r3, r0 -/* 802DF1A8 002DC0E8 54 03 10 3A */ slwi r3, r0, 2 -/* 802DF1AC 002DC0EC 7F E4 FB 78 */ mr r4, r31 -/* 802DF1B0 002DC0F0 38 A0 00 00 */ li r5, 0 -/* 802DF1B4 002DC0F4 4B FE FB 5D */ bl __nwa__FUlP7JKRHeapi -/* 802DF1B8 002DC0F8 90 7D 00 50 */ stw r3, 0x50(r29) -/* 802DF1BC 002DC0FC 80 7D 00 50 */ lwz r3, 0x50(r29) -/* 802DF1C0 002DC100 28 03 00 00 */ cmplwi r3, 0 -/* 802DF1C4 002DC104 40 82 00 0C */ bne lbl_802DF1D0 -/* 802DF1C8 002DC108 38 60 00 00 */ li r3, 0 -/* 802DF1CC 002DC10C 48 00 00 64 */ b lbl_802DF230 -lbl_802DF1D0: -/* 802DF1D0 002DC110 A0 1D 00 60 */ lhz r0, 0x60(r29) -/* 802DF1D4 002DC114 28 00 00 00 */ cmplwi r0, 0 -/* 802DF1D8 002DC118 41 82 00 14 */ beq lbl_802DF1EC -/* 802DF1DC 002DC11C 90 7D 00 54 */ stw r3, 0x54(r29) -/* 802DF1E0 002DC120 A0 1D 00 60 */ lhz r0, 0x60(r29) -/* 802DF1E4 002DC124 54 00 10 3A */ slwi r0, r0, 2 -/* 802DF1E8 002DC128 7C 63 02 14 */ add r3, r3, r0 -lbl_802DF1EC: -/* 802DF1EC 002DC12C A0 1D 00 62 */ lhz r0, 0x62(r29) -/* 802DF1F0 002DC130 28 00 00 00 */ cmplwi r0, 0 -/* 802DF1F4 002DC134 41 82 00 14 */ beq lbl_802DF208 -/* 802DF1F8 002DC138 90 7D 00 58 */ stw r3, 0x58(r29) -/* 802DF1FC 002DC13C A0 1D 00 62 */ lhz r0, 0x62(r29) -/* 802DF200 002DC140 54 00 10 3A */ slwi r0, r0, 2 -/* 802DF204 002DC144 7C 63 02 14 */ add r3, r3, r0 -lbl_802DF208: -/* 802DF208 002DC148 A0 1D 00 64 */ lhz r0, 0x64(r29) -/* 802DF20C 002DC14C 28 00 00 00 */ cmplwi r0, 0 -/* 802DF210 002DC150 41 82 00 08 */ beq lbl_802DF218 -/* 802DF214 002DC154 90 7D 00 5C */ stw r3, 0x5c(r29) -lbl_802DF218: -/* 802DF218 002DC158 7F A3 EB 78 */ mr r3, r29 -/* 802DF21C 002DC15C 81 9D 00 00 */ lwz r12, 0(r29) -/* 802DF220 002DC160 81 8C 00 48 */ lwz r12, 0x48(r12) -/* 802DF224 002DC164 7D 89 03 A6 */ mtctr r12 -/* 802DF228 002DC168 4E 80 04 21 */ bctrl -/* 802DF22C 002DC16C 38 60 00 01 */ li r3, 1 -lbl_802DF230: -/* 802DF230 002DC170 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DF234 002DC174 48 08 2F F5 */ bl _restgpr_29 -/* 802DF238 002DC178 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DF23C 002DC17C 7C 08 03 A6 */ mtlr r0 -/* 802DF240 002DC180 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DF244 002DC184 4E 80 00 20 */ blr - -.global JUTResFont_NS_countBlock -JUTResFont_NS_countBlock: -/* 802DF248 002DC188 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DF24C 002DC18C 7C 08 02 A6 */ mflr r0 -/* 802DF250 002DC190 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DF254 002DC194 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DF258 002DC198 48 08 2F 81 */ bl _savegpr_28 -/* 802DF25C 002DC19C 7C 7C 1B 78 */ mr r28, r3 -/* 802DF260 002DC1A0 38 00 00 00 */ li r0, 0 -/* 802DF264 002DC1A4 B0 03 00 60 */ sth r0, 0x60(r3) -/* 802DF268 002DC1A8 B0 03 00 62 */ sth r0, 0x62(r3) -/* 802DF26C 002DC1AC B0 03 00 64 */ sth r0, 0x64(r3) -/* 802DF270 002DC1B0 80 63 00 48 */ lwz r3, 0x48(r3) -/* 802DF274 002DC1B4 3B C3 00 20 */ addi r30, r3, 0x20 -/* 802DF278 002DC1B8 3B A0 00 00 */ li r29, 0 -/* 802DF27C 002DC1BC 3C 60 4D 41 */ lis r3, 0x4D415031@ha -/* 802DF280 002DC1C0 3B E3 50 31 */ addi r31, r3, 0x4D415031@l -/* 802DF284 002DC1C4 48 00 00 98 */ b lbl_802DF31C -lbl_802DF288: -/* 802DF288 002DC1C8 80 9E 00 00 */ lwz r4, 0(r30) -/* 802DF28C 002DC1CC 7C 04 F8 00 */ cmpw r4, r31 -/* 802DF290 002DC1D0 41 82 00 64 */ beq lbl_802DF2F4 -/* 802DF294 002DC1D4 40 80 00 2C */ bge lbl_802DF2C0 -/* 802DF298 002DC1D8 3C 60 49 4E */ lis r3, 0x494E4631@ha -/* 802DF29C 002DC1DC 38 03 46 31 */ addi r0, r3, 0x494E4631@l -/* 802DF2A0 002DC1E0 7C 04 00 00 */ cmpw r4, r0 -/* 802DF2A4 002DC1E4 41 82 00 6C */ beq lbl_802DF310 -/* 802DF2A8 002DC1E8 40 80 00 5C */ bge lbl_802DF304 -/* 802DF2AC 002DC1EC 3C 60 47 4C */ lis r3, 0x474C5931@ha -/* 802DF2B0 002DC1F0 38 03 59 31 */ addi r0, r3, 0x474C5931@l -/* 802DF2B4 002DC1F4 7C 04 00 00 */ cmpw r4, r0 -/* 802DF2B8 002DC1F8 41 82 00 2C */ beq lbl_802DF2E4 -/* 802DF2BC 002DC1FC 48 00 00 48 */ b lbl_802DF304 -lbl_802DF2C0: -/* 802DF2C0 002DC200 3C 60 57 49 */ lis r3, 0x57494431@ha -/* 802DF2C4 002DC204 38 03 44 31 */ addi r0, r3, 0x57494431@l -/* 802DF2C8 002DC208 7C 04 00 00 */ cmpw r4, r0 -/* 802DF2CC 002DC20C 41 82 00 08 */ beq lbl_802DF2D4 -/* 802DF2D0 002DC210 48 00 00 34 */ b lbl_802DF304 -lbl_802DF2D4: -/* 802DF2D4 002DC214 A0 7C 00 60 */ lhz r3, 0x60(r28) -/* 802DF2D8 002DC218 38 03 00 01 */ addi r0, r3, 1 -/* 802DF2DC 002DC21C B0 1C 00 60 */ sth r0, 0x60(r28) -/* 802DF2E0 002DC220 48 00 00 30 */ b lbl_802DF310 -lbl_802DF2E4: -/* 802DF2E4 002DC224 A0 7C 00 62 */ lhz r3, 0x62(r28) -/* 802DF2E8 002DC228 38 03 00 01 */ addi r0, r3, 1 -/* 802DF2EC 002DC22C B0 1C 00 62 */ sth r0, 0x62(r28) -/* 802DF2F0 002DC230 48 00 00 20 */ b lbl_802DF310 -lbl_802DF2F4: -/* 802DF2F4 002DC234 A0 7C 00 64 */ lhz r3, 0x64(r28) -/* 802DF2F8 002DC238 38 03 00 01 */ addi r0, r3, 1 -/* 802DF2FC 002DC23C B0 1C 00 64 */ sth r0, 0x64(r28) -/* 802DF300 002DC240 48 00 00 10 */ b lbl_802DF310 -lbl_802DF304: -/* 802DF304 002DC244 3C 60 80 3A */ lis r3, lbl_8039D45C@ha -/* 802DF308 002DC248 38 63 D4 5C */ addi r3, r3, lbl_8039D45C@l -/* 802DF30C 002DC24C 48 00 93 3D */ bl JUTReportConsole -lbl_802DF310: -/* 802DF310 002DC250 80 1E 00 04 */ lwz r0, 4(r30) -/* 802DF314 002DC254 7F DE 02 14 */ add r30, r30, r0 -/* 802DF318 002DC258 3B BD 00 01 */ addi r29, r29, 1 -lbl_802DF31C: -/* 802DF31C 002DC25C 80 7C 00 48 */ lwz r3, 0x48(r28) -/* 802DF320 002DC260 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802DF324 002DC264 7C 1D 00 40 */ cmplw r29, r0 -/* 802DF328 002DC268 41 80 FF 60 */ blt lbl_802DF288 -/* 802DF32C 002DC26C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DF330 002DC270 48 08 2E F5 */ bl _restgpr_28 -/* 802DF334 002DC274 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DF338 002DC278 7C 08 03 A6 */ mtlr r0 -/* 802DF33C 002DC27C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DF340 002DC280 4E 80 00 20 */ blr -/* 802DF344 002DC284 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802DF348 002DC288 7C 08 02 A6 */ mflr r0 -/* 802DF34C 002DC28C 90 01 00 34 */ stw r0, 0x34(r1) -/* 802DF350 002DC290 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DF354 002DC294 48 08 2E 79 */ bl func_803621CC -/* 802DF358 002DC298 7C 7C 1B 78 */ mr r28, r3 -/* 802DF35C 002DC29C 3B 60 00 00 */ li r27, 0 -/* 802DF360 002DC2A0 3B 40 00 00 */ li r26, 0 -/* 802DF364 002DC2A4 3B 20 00 00 */ li r25, 0 -/* 802DF368 002DC2A8 3C 60 00 01 */ lis r3, 0x0000FFFF@ha -/* 802DF36C 002DC2AC 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l -/* 802DF370 002DC2B0 B0 1C 00 68 */ sth r0, 0x68(r28) -/* 802DF374 002DC2B4 80 7C 00 48 */ lwz r3, 0x48(r28) -/* 802DF378 002DC2B8 3B C3 00 20 */ addi r30, r3, 0x20 -/* 802DF37C 002DC2BC 3B A0 00 00 */ li r29, 0 -/* 802DF380 002DC2C0 3C 60 4D 41 */ lis r3, 0x4D415031@ha -/* 802DF384 002DC2C4 3B E3 50 31 */ addi r31, r3, 0x4D415031@l -/* 802DF388 002DC2C8 48 00 00 DC */ b lbl_802DF464 -lbl_802DF38C: -/* 802DF38C 002DC2CC 80 9E 00 00 */ lwz r4, 0(r30) -/* 802DF390 002DC2D0 7C 04 F8 00 */ cmpw r4, r31 -/* 802DF394 002DC2D4 41 82 00 88 */ beq lbl_802DF41C -/* 802DF398 002DC2D8 40 80 00 2C */ bge lbl_802DF3C4 -/* 802DF39C 002DC2DC 3C 60 49 4E */ lis r3, 0x494E4631@ha -/* 802DF3A0 002DC2E0 38 03 46 31 */ addi r0, r3, 0x494E4631@l -/* 802DF3A4 002DC2E4 7C 04 00 00 */ cmpw r4, r0 -/* 802DF3A8 002DC2E8 41 82 00 30 */ beq lbl_802DF3D8 -/* 802DF3AC 002DC2EC 40 80 00 9C */ bge lbl_802DF448 -/* 802DF3B0 002DC2F0 3C 60 47 4C */ lis r3, 0x474C5931@ha -/* 802DF3B4 002DC2F4 38 03 59 31 */ addi r0, r3, 0x474C5931@l -/* 802DF3B8 002DC2F8 7C 04 00 00 */ cmpw r4, r0 -/* 802DF3BC 002DC2FC 41 82 00 50 */ beq lbl_802DF40C -/* 802DF3C0 002DC300 48 00 00 88 */ b lbl_802DF448 -lbl_802DF3C4: -/* 802DF3C4 002DC304 3C 60 57 49 */ lis r3, 0x57494431@ha -/* 802DF3C8 002DC308 38 03 44 31 */ addi r0, r3, 0x57494431@l -/* 802DF3CC 002DC30C 7C 04 00 00 */ cmpw r4, r0 -/* 802DF3D0 002DC310 41 82 00 2C */ beq lbl_802DF3FC -/* 802DF3D4 002DC314 48 00 00 74 */ b lbl_802DF448 -lbl_802DF3D8: -/* 802DF3D8 002DC318 93 DC 00 4C */ stw r30, 0x4c(r28) -/* 802DF3DC 002DC31C 80 7C 00 4C */ lwz r3, 0x4c(r28) -/* 802DF3E0 002DC320 A0 03 00 08 */ lhz r0, 8(r3) -/* 802DF3E4 002DC324 54 04 10 3A */ slwi r4, r0, 2 -/* 802DF3E8 002DC328 3C 60 80 3A */ lis r3, lbl_8039D390@ha -/* 802DF3EC 002DC32C 38 03 D3 90 */ addi r0, r3, lbl_8039D390@l -/* 802DF3F0 002DC330 7C 00 22 14 */ add r0, r0, r4 -/* 802DF3F4 002DC334 90 1C 00 6C */ stw r0, 0x6c(r28) -/* 802DF3F8 002DC338 48 00 00 60 */ b lbl_802DF458 -lbl_802DF3FC: -/* 802DF3FC 002DC33C 80 7C 00 54 */ lwz r3, 0x54(r28) -/* 802DF400 002DC340 7F C3 D9 2E */ stwx r30, r3, r27 -/* 802DF404 002DC344 3B 7B 00 04 */ addi r27, r27, 4 -/* 802DF408 002DC348 48 00 00 50 */ b lbl_802DF458 -lbl_802DF40C: -/* 802DF40C 002DC34C 80 7C 00 58 */ lwz r3, 0x58(r28) -/* 802DF410 002DC350 7F C3 D1 2E */ stwx r30, r3, r26 -/* 802DF414 002DC354 3B 5A 00 04 */ addi r26, r26, 4 -/* 802DF418 002DC358 48 00 00 40 */ b lbl_802DF458 -lbl_802DF41C: -/* 802DF41C 002DC35C 80 7C 00 5C */ lwz r3, 0x5c(r28) -/* 802DF420 002DC360 7F C3 C9 2E */ stwx r30, r3, r25 -/* 802DF424 002DC364 A0 1C 00 68 */ lhz r0, 0x68(r28) -/* 802DF428 002DC368 80 7C 00 5C */ lwz r3, 0x5c(r28) -/* 802DF42C 002DC36C 7C 63 C8 2E */ lwzx r3, r3, r25 -/* 802DF430 002DC370 A0 63 00 0A */ lhz r3, 0xa(r3) -/* 802DF434 002DC374 7C 00 18 40 */ cmplw r0, r3 -/* 802DF438 002DC378 40 81 00 08 */ ble lbl_802DF440 -/* 802DF43C 002DC37C B0 7C 00 68 */ sth r3, 0x68(r28) -lbl_802DF440: -/* 802DF440 002DC380 3B 39 00 04 */ addi r25, r25, 4 -/* 802DF444 002DC384 48 00 00 14 */ b lbl_802DF458 -lbl_802DF448: -/* 802DF448 002DC388 3C 60 80 3A */ lis r3, lbl_8039D45C@ha -/* 802DF44C 002DC38C 38 63 D4 5C */ addi r3, r3, lbl_8039D45C@l -/* 802DF450 002DC390 38 63 00 20 */ addi r3, r3, 0x20 -/* 802DF454 002DC394 48 00 91 F5 */ bl JUTReportConsole -lbl_802DF458: -/* 802DF458 002DC398 80 1E 00 04 */ lwz r0, 4(r30) -/* 802DF45C 002DC39C 7F DE 02 14 */ add r30, r30, r0 -/* 802DF460 002DC3A0 3B BD 00 01 */ addi r29, r29, 1 -lbl_802DF464: -/* 802DF464 002DC3A4 80 7C 00 48 */ lwz r3, 0x48(r28) -/* 802DF468 002DC3A8 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802DF46C 002DC3AC 7C 1D 00 40 */ cmplw r29, r0 -/* 802DF470 002DC3B0 41 80 FF 1C */ blt lbl_802DF38C -/* 802DF474 002DC3B4 39 61 00 30 */ addi r11, r1, 0x30 -/* 802DF478 002DC3B8 48 08 2D A1 */ bl func_80362218 -/* 802DF47C 002DC3BC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802DF480 002DC3C0 7C 08 03 A6 */ mtlr r0 -/* 802DF484 002DC3C4 38 21 00 30 */ addi r1, r1, 0x30 -/* 802DF488 002DC3C8 4E 80 00 20 */ blr -/* 802DF48C 002DC3CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DF490 002DC3D0 7C 08 02 A6 */ mflr r0 -/* 802DF494 002DC3D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF498 002DC3D8 38 60 00 01 */ li r3, 1 -/* 802DF49C 002DC3DC 48 07 E6 95 */ bl GXSetNumChans -/* 802DF4A0 002DC3E0 38 60 00 01 */ li r3, 1 -/* 802DF4A4 002DC3E4 48 08 03 ED */ bl GXSetNumTevStages -/* 802DF4A8 002DC3E8 38 60 00 01 */ li r3, 1 -/* 802DF4AC 002DC3EC 48 07 C9 51 */ bl GXSetNumTexGens -/* 802DF4B0 002DC3F0 38 60 00 00 */ li r3, 0 -/* 802DF4B4 002DC3F4 38 80 00 00 */ li r4, 0 -/* 802DF4B8 002DC3F8 38 A0 00 00 */ li r5, 0 -/* 802DF4BC 002DC3FC 38 C0 00 04 */ li r6, 4 -/* 802DF4C0 002DC400 48 08 02 35 */ bl GXSetTevOrder -/* 802DF4C4 002DC404 38 60 00 04 */ li r3, 4 -/* 802DF4C8 002DC408 38 80 00 00 */ li r4, 0 -/* 802DF4CC 002DC40C 38 A0 00 00 */ li r5, 0 -/* 802DF4D0 002DC410 38 C0 00 01 */ li r6, 1 -/* 802DF4D4 002DC414 38 E0 00 00 */ li r7, 0 -/* 802DF4D8 002DC418 39 00 00 00 */ li r8, 0 -/* 802DF4DC 002DC41C 39 20 00 02 */ li r9, 2 -/* 802DF4E0 002DC420 48 07 E6 8D */ bl GXSetChanCtrl -/* 802DF4E4 002DC424 38 60 00 00 */ li r3, 0 -/* 802DF4E8 002DC428 38 80 00 00 */ li r4, 0 -/* 802DF4EC 002DC42C 48 07 FC AD */ bl GXSetTevOp -/* 802DF4F0 002DC430 38 60 00 01 */ li r3, 1 -/* 802DF4F4 002DC434 38 80 00 04 */ li r4, 4 -/* 802DF4F8 002DC438 38 A0 00 05 */ li r5, 5 -/* 802DF4FC 002DC43C 38 C0 00 0F */ li r6, 0xf -/* 802DF500 002DC440 48 08 06 F1 */ bl GXSetBlendMode -/* 802DF504 002DC444 38 60 00 00 */ li r3, 0 -/* 802DF508 002DC448 38 80 00 09 */ li r4, 9 -/* 802DF50C 002DC44C 38 A0 00 01 */ li r5, 1 -/* 802DF510 002DC450 38 C0 00 03 */ li r6, 3 -/* 802DF514 002DC454 38 E0 00 00 */ li r7, 0 -/* 802DF518 002DC458 48 07 C0 AD */ bl GXSetVtxAttrFmt -/* 802DF51C 002DC45C 38 60 00 00 */ li r3, 0 -/* 802DF520 002DC460 38 80 00 0B */ li r4, 0xb -/* 802DF524 002DC464 38 A0 00 01 */ li r5, 1 -/* 802DF528 002DC468 38 C0 00 05 */ li r6, 5 -/* 802DF52C 002DC46C 38 E0 00 00 */ li r7, 0 -/* 802DF530 002DC470 48 07 C0 95 */ bl GXSetVtxAttrFmt -/* 802DF534 002DC474 38 60 00 00 */ li r3, 0 -/* 802DF538 002DC478 38 80 00 0D */ li r4, 0xd -/* 802DF53C 002DC47C 38 A0 00 01 */ li r5, 1 -/* 802DF540 002DC480 38 C0 00 02 */ li r6, 2 -/* 802DF544 002DC484 38 E0 00 0F */ li r7, 0xf -/* 802DF548 002DC488 48 07 C0 7D */ bl GXSetVtxAttrFmt -/* 802DF54C 002DC48C 48 07 C0 41 */ bl GXClearVtxDesc -/* 802DF550 002DC490 38 60 00 09 */ li r3, 9 -/* 802DF554 002DC494 38 80 00 01 */ li r4, 1 -/* 802DF558 002DC498 48 07 B9 61 */ bl GXSetVtxDesc -/* 802DF55C 002DC49C 38 60 00 0B */ li r3, 0xb -/* 802DF560 002DC4A0 38 80 00 01 */ li r4, 1 -/* 802DF564 002DC4A4 48 07 B9 55 */ bl GXSetVtxDesc -/* 802DF568 002DC4A8 38 60 00 0D */ li r3, 0xd -/* 802DF56C 002DC4AC 38 80 00 01 */ li r4, 1 -/* 802DF570 002DC4B0 48 07 B9 49 */ bl GXSetVtxDesc -/* 802DF574 002DC4B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DF578 002DC4B8 7C 08 03 A6 */ mtlr r0 -/* 802DF57C 002DC4BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DF580 002DC4C0 4E 80 00 20 */ blr -/* 802DF584 002DC4C4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DF588 002DC4C8 7C 08 02 A6 */ mflr r0 -/* 802DF58C 002DC4CC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DF590 002DC4D0 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802DF594 002DC4D4 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802DF598 002DC4D8 7C 9E 23 78 */ mr r30, r4 -/* 802DF59C 002DC4DC 7C BF 2B 78 */ mr r31, r5 -/* 802DF5A0 002DC4E0 80 04 00 00 */ lwz r0, 0(r4) -/* 802DF5A4 002DC4E4 28 00 00 00 */ cmplwi r0, 0 -/* 802DF5A8 002DC4E8 40 82 00 28 */ bne lbl_802DF5D0 -/* 802DF5AC 002DC4EC 80 9F 00 00 */ lwz r4, 0(r31) -/* 802DF5B0 002DC4F0 3C 04 00 01 */ addis r0, r4, 1 -/* 802DF5B4 002DC4F4 28 00 FF FF */ cmplwi r0, 0xffff -/* 802DF5B8 002DC4F8 40 82 00 18 */ bne lbl_802DF5D0 -/* 802DF5BC 002DC4FC 81 83 00 00 */ lwz r12, 0(r3) -/* 802DF5C0 002DC500 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802DF5C4 002DC504 7D 89 03 A6 */ mtctr r12 -/* 802DF5C8 002DC508 4E 80 04 21 */ bctrl -/* 802DF5CC 002DC50C 48 00 01 E0 */ b lbl_802DF7AC -lbl_802DF5D0: -/* 802DF5D0 002DC510 38 60 00 01 */ li r3, 1 -/* 802DF5D4 002DC514 48 07 E5 5D */ bl GXSetNumChans -/* 802DF5D8 002DC518 38 60 00 02 */ li r3, 2 -/* 802DF5DC 002DC51C 48 08 02 B5 */ bl GXSetNumTevStages -/* 802DF5E0 002DC520 38 60 00 01 */ li r3, 1 -/* 802DF5E4 002DC524 48 07 C8 19 */ bl GXSetNumTexGens -/* 802DF5E8 002DC528 38 60 00 00 */ li r3, 0 -/* 802DF5EC 002DC52C 38 80 00 00 */ li r4, 0 -/* 802DF5F0 002DC530 38 A0 00 00 */ li r5, 0 -/* 802DF5F4 002DC534 38 C0 00 FF */ li r6, 0xff -/* 802DF5F8 002DC538 48 08 00 FD */ bl GXSetTevOrder -/* 802DF5FC 002DC53C 38 60 00 04 */ li r3, 4 -/* 802DF600 002DC540 38 80 00 00 */ li r4, 0 -/* 802DF604 002DC544 38 A0 00 00 */ li r5, 0 -/* 802DF608 002DC548 38 C0 00 01 */ li r6, 1 -/* 802DF60C 002DC54C 38 E0 00 00 */ li r7, 0 -/* 802DF610 002DC550 39 00 00 00 */ li r8, 0 -/* 802DF614 002DC554 39 20 00 02 */ li r9, 2 -/* 802DF618 002DC558 48 07 E5 55 */ bl GXSetChanCtrl -/* 802DF61C 002DC55C 80 1E 00 00 */ lwz r0, 0(r30) -/* 802DF620 002DC560 90 01 00 0C */ stw r0, 0xc(r1) -/* 802DF624 002DC564 38 60 00 01 */ li r3, 1 -/* 802DF628 002DC568 38 81 00 0C */ addi r4, r1, 0xc -/* 802DF62C 002DC56C 48 07 FD 51 */ bl GXSetTevColor -/* 802DF630 002DC570 80 1F 00 00 */ lwz r0, 0(r31) -/* 802DF634 002DC574 90 01 00 08 */ stw r0, 8(r1) -/* 802DF638 002DC578 38 60 00 02 */ li r3, 2 -/* 802DF63C 002DC57C 38 81 00 08 */ addi r4, r1, 8 -/* 802DF640 002DC580 48 07 FD 3D */ bl GXSetTevColor -/* 802DF644 002DC584 38 60 00 00 */ li r3, 0 -/* 802DF648 002DC588 38 80 00 02 */ li r4, 2 -/* 802DF64C 002DC58C 38 A0 00 04 */ li r5, 4 -/* 802DF650 002DC590 38 C0 00 08 */ li r6, 8 -/* 802DF654 002DC594 38 E0 00 0F */ li r7, 0xf -/* 802DF658 002DC598 48 07 FB CD */ bl GXSetTevColorIn -/* 802DF65C 002DC59C 38 60 00 00 */ li r3, 0 -/* 802DF660 002DC5A0 38 80 00 01 */ li r4, 1 -/* 802DF664 002DC5A4 38 A0 00 02 */ li r5, 2 -/* 802DF668 002DC5A8 38 C0 00 04 */ li r6, 4 -/* 802DF66C 002DC5AC 38 E0 00 07 */ li r7, 7 -/* 802DF670 002DC5B0 48 07 FB F9 */ bl GXSetTevAlphaIn -/* 802DF674 002DC5B4 38 60 00 00 */ li r3, 0 -/* 802DF678 002DC5B8 38 80 00 00 */ li r4, 0 -/* 802DF67C 002DC5BC 38 A0 00 00 */ li r5, 0 -/* 802DF680 002DC5C0 38 C0 00 00 */ li r6, 0 -/* 802DF684 002DC5C4 38 E0 00 01 */ li r7, 1 -/* 802DF688 002DC5C8 39 00 00 00 */ li r8, 0 -/* 802DF68C 002DC5CC 48 07 FC 21 */ bl GXSetTevColorOp -/* 802DF690 002DC5D0 38 60 00 00 */ li r3, 0 -/* 802DF694 002DC5D4 38 80 00 00 */ li r4, 0 -/* 802DF698 002DC5D8 38 A0 00 00 */ li r5, 0 -/* 802DF69C 002DC5DC 38 C0 00 00 */ li r6, 0 -/* 802DF6A0 002DC5E0 38 E0 00 01 */ li r7, 1 -/* 802DF6A4 002DC5E4 39 00 00 00 */ li r8, 0 -/* 802DF6A8 002DC5E8 48 07 FC 6D */ bl GXSetTevAlphaOp -/* 802DF6AC 002DC5EC 38 60 00 01 */ li r3, 1 -/* 802DF6B0 002DC5F0 38 80 00 FF */ li r4, 0xff -/* 802DF6B4 002DC5F4 38 A0 00 FF */ li r5, 0xff -/* 802DF6B8 002DC5F8 38 C0 00 04 */ li r6, 4 -/* 802DF6BC 002DC5FC 48 08 00 39 */ bl GXSetTevOrder -/* 802DF6C0 002DC600 38 60 00 01 */ li r3, 1 -/* 802DF6C4 002DC604 38 80 00 0F */ li r4, 0xf -/* 802DF6C8 002DC608 38 A0 00 00 */ li r5, 0 -/* 802DF6CC 002DC60C 38 C0 00 0A */ li r6, 0xa -/* 802DF6D0 002DC610 38 E0 00 0F */ li r7, 0xf -/* 802DF6D4 002DC614 48 07 FB 51 */ bl GXSetTevColorIn -/* 802DF6D8 002DC618 38 60 00 01 */ li r3, 1 -/* 802DF6DC 002DC61C 38 80 00 07 */ li r4, 7 -/* 802DF6E0 002DC620 38 A0 00 00 */ li r5, 0 -/* 802DF6E4 002DC624 38 C0 00 05 */ li r6, 5 -/* 802DF6E8 002DC628 38 E0 00 07 */ li r7, 7 -/* 802DF6EC 002DC62C 48 07 FB 7D */ bl GXSetTevAlphaIn -/* 802DF6F0 002DC630 38 60 00 01 */ li r3, 1 -/* 802DF6F4 002DC634 38 80 00 00 */ li r4, 0 -/* 802DF6F8 002DC638 38 A0 00 00 */ li r5, 0 -/* 802DF6FC 002DC63C 38 C0 00 00 */ li r6, 0 -/* 802DF700 002DC640 38 E0 00 01 */ li r7, 1 -/* 802DF704 002DC644 39 00 00 00 */ li r8, 0 -/* 802DF708 002DC648 48 07 FB A5 */ bl GXSetTevColorOp -/* 802DF70C 002DC64C 38 60 00 01 */ li r3, 1 -/* 802DF710 002DC650 38 80 00 00 */ li r4, 0 -/* 802DF714 002DC654 38 A0 00 00 */ li r5, 0 -/* 802DF718 002DC658 38 C0 00 00 */ li r6, 0 -/* 802DF71C 002DC65C 38 E0 00 01 */ li r7, 1 -/* 802DF720 002DC660 39 00 00 00 */ li r8, 0 -/* 802DF724 002DC664 48 07 FB F1 */ bl GXSetTevAlphaOp -/* 802DF728 002DC668 38 60 00 01 */ li r3, 1 -/* 802DF72C 002DC66C 38 80 00 04 */ li r4, 4 -/* 802DF730 002DC670 38 A0 00 05 */ li r5, 5 -/* 802DF734 002DC674 38 C0 00 0F */ li r6, 0xf -/* 802DF738 002DC678 48 08 04 B9 */ bl GXSetBlendMode -/* 802DF73C 002DC67C 38 60 00 00 */ li r3, 0 -/* 802DF740 002DC680 38 80 00 09 */ li r4, 9 -/* 802DF744 002DC684 38 A0 00 01 */ li r5, 1 -/* 802DF748 002DC688 38 C0 00 03 */ li r6, 3 -/* 802DF74C 002DC68C 38 E0 00 00 */ li r7, 0 -/* 802DF750 002DC690 48 07 BE 75 */ bl GXSetVtxAttrFmt -/* 802DF754 002DC694 38 60 00 00 */ li r3, 0 -/* 802DF758 002DC698 38 80 00 0B */ li r4, 0xb -/* 802DF75C 002DC69C 38 A0 00 01 */ li r5, 1 -/* 802DF760 002DC6A0 38 C0 00 05 */ li r6, 5 -/* 802DF764 002DC6A4 38 E0 00 00 */ li r7, 0 -/* 802DF768 002DC6A8 48 07 BE 5D */ bl GXSetVtxAttrFmt -/* 802DF76C 002DC6AC 38 60 00 00 */ li r3, 0 -/* 802DF770 002DC6B0 38 80 00 0D */ li r4, 0xd -/* 802DF774 002DC6B4 38 A0 00 01 */ li r5, 1 -/* 802DF778 002DC6B8 38 C0 00 02 */ li r6, 2 -/* 802DF77C 002DC6BC 38 E0 00 0F */ li r7, 0xf -/* 802DF780 002DC6C0 48 07 BE 45 */ bl GXSetVtxAttrFmt -/* 802DF784 002DC6C4 48 07 BE 09 */ bl GXClearVtxDesc -/* 802DF788 002DC6C8 38 60 00 09 */ li r3, 9 -/* 802DF78C 002DC6CC 38 80 00 01 */ li r4, 1 -/* 802DF790 002DC6D0 48 07 B7 29 */ bl GXSetVtxDesc -/* 802DF794 002DC6D4 38 60 00 0B */ li r3, 0xb -/* 802DF798 002DC6D8 38 80 00 01 */ li r4, 1 -/* 802DF79C 002DC6DC 48 07 B7 1D */ bl GXSetVtxDesc -/* 802DF7A0 002DC6E0 38 60 00 0D */ li r3, 0xd -/* 802DF7A4 002DC6E4 38 80 00 01 */ li r4, 1 -/* 802DF7A8 002DC6E8 48 07 B7 11 */ bl GXSetVtxDesc -lbl_802DF7AC: -/* 802DF7AC 002DC6EC 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 802DF7B0 002DC6F0 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 802DF7B4 002DC6F4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DF7B8 002DC6F8 7C 08 03 A6 */ mtlr r0 -/* 802DF7BC 002DC6FC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DF7C0 002DC700 4E 80 00 20 */ blr -/* 802DF7C4 002DC704 94 21 FF 50 */ stwu r1, -0xb0(r1) -/* 802DF7C8 002DC708 7C 08 02 A6 */ mflr r0 -/* 802DF7CC 002DC70C 90 01 00 B4 */ stw r0, 0xb4(r1) -/* 802DF7D0 002DC710 DB E1 00 A0 */ stfd f31, 0xa0(r1) -/* 802DF7D4 002DC714 F3 E1 00 A8 */ psq_st f31, 168(r1), 0, qr0 -/* 802DF7D8 002DC718 DB C1 00 90 */ stfd f30, 0x90(r1) -/* 802DF7DC 002DC71C F3 C1 00 98 */ psq_st f30, 152(r1), 0, qr0 -/* 802DF7E0 002DC720 DB A1 00 80 */ stfd f29, 0x80(r1) -/* 802DF7E4 002DC724 F3 A1 00 88 */ psq_st f29, 136(r1), 0, qr0 -/* 802DF7E8 002DC728 DB 81 00 70 */ stfd f28, 0x70(r1) -/* 802DF7EC 002DC72C F3 81 00 78 */ psq_st f28, 120(r1), 0, qr0 -/* 802DF7F0 002DC730 DB 61 00 60 */ stfd f27, 0x60(r1) -/* 802DF7F4 002DC734 F3 61 00 68 */ psq_st f27, 104(r1), 0, qr0 -/* 802DF7F8 002DC738 DB 41 00 50 */ stfd f26, 0x50(r1) -/* 802DF7FC 002DC73C F3 41 00 58 */ psq_st f26, 88(r1), 0, qr0 -/* 802DF800 002DC740 39 61 00 50 */ addi r11, r1, 0x50 -/* 802DF804 002DC744 48 08 29 D1 */ bl _savegpr_27 -/* 802DF808 002DC748 7C 7E 1B 78 */ mr r30, r3 -/* 802DF80C 002DC74C FF 40 08 90 */ fmr f26, f1 -/* 802DF810 002DC750 FF 60 10 90 */ fmr f27, f2 -/* 802DF814 002DC754 FF C0 18 90 */ fmr f30, f3 -/* 802DF818 002DC758 FF 80 20 90 */ fmr f28, f4 -/* 802DF81C 002DC75C 7C BB 2B 78 */ mr r27, r5 -/* 802DF820 002DC760 38 A0 00 00 */ li r5, 0 -/* 802DF824 002DC764 38 C1 00 08 */ addi r6, r1, 8 -/* 802DF828 002DC768 48 00 03 C1 */ bl JUTResFont_NS_loadFont -/* 802DF82C 002DC76C 88 1E 00 05 */ lbz r0, 5(r30) -/* 802DF830 002DC770 28 00 00 00 */ cmplwi r0, 0 -/* 802DF834 002DC774 40 82 00 0C */ bne lbl_802DF840 -/* 802DF838 002DC778 57 60 06 3F */ clrlwi. r0, r27, 0x18 -/* 802DF83C 002DC77C 40 82 00 0C */ bne lbl_802DF848 -lbl_802DF840: -/* 802DF840 002DC780 FF E0 D0 90 */ fmr f31, f26 -/* 802DF844 002DC784 48 00 00 58 */ b lbl_802DF89C -lbl_802DF848: -/* 802DF848 002DC788 7F C3 F3 78 */ mr r3, r30 -/* 802DF84C 002DC78C 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DF850 002DC790 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802DF854 002DC794 7D 89 03 A6 */ mtctr r12 -/* 802DF858 002DC798 4E 80 04 21 */ bctrl -/* 802DF85C 002DC79C C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DF860 002DC7A0 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DF864 002DC7A4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF868 002DC7A8 3C 60 43 30 */ lis r3, 0x4330 -/* 802DF86C 002DC7AC 90 61 00 10 */ stw r3, 0x10(r1) -/* 802DF870 002DC7B0 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802DF874 002DC7B4 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DF878 002DC7B8 EC 5E 00 24 */ fdivs f2, f30, f0 -/* 802DF87C 002DC7BC 88 01 00 08 */ lbz r0, 8(r1) -/* 802DF880 002DC7C0 C8 22 C6 00 */ lfd f1, lbl_80456000-_SDA2_BASE_(r2) -/* 802DF884 002DC7C4 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802DF888 002DC7C8 90 61 00 18 */ stw r3, 0x18(r1) -/* 802DF88C 002DC7CC C8 01 00 18 */ lfd f0, 0x18(r1) -/* 802DF890 002DC7D0 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DF894 002DC7D4 EC 00 00 B2 */ fmuls f0, f0, f2 -/* 802DF898 002DC7D8 EF FA 00 28 */ fsubs f31, f26, f0 -lbl_802DF89C: -/* 802DF89C 002DC7DC 7F C3 F3 78 */ mr r3, r30 -/* 802DF8A0 002DC7E0 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DF8A4 002DC7E4 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802DF8A8 002DC7E8 7D 89 03 A6 */ mtctr r12 -/* 802DF8AC 002DC7EC 4E 80 04 21 */ bctrl -/* 802DF8B0 002DC7F0 C8 42 C5 F8 */ lfd f2, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DF8B4 002DC7F4 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DF8B8 002DC7F8 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802DF8BC 002DC7FC 3C 60 43 30 */ lis r3, 0x4330 -/* 802DF8C0 002DC800 90 61 00 18 */ stw r3, 0x18(r1) -/* 802DF8C4 002DC804 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 802DF8C8 002DC808 EC 00 10 28 */ fsubs f0, f0, f2 -/* 802DF8CC 002DC80C EC 3E 00 24 */ fdivs f1, f30, f0 -/* 802DF8D0 002DC810 80 1E 00 08 */ lwz r0, 8(r30) -/* 802DF8D4 002DC814 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 802DF8D8 002DC818 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF8DC 002DC81C 90 61 00 10 */ stw r3, 0x10(r1) -/* 802DF8E0 002DC820 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802DF8E4 002DC824 EC 00 10 28 */ fsubs f0, f0, f2 -/* 802DF8E8 002DC828 EF A0 00 72 */ fmuls f29, f0, f1 -/* 802DF8EC 002DC82C 88 1E 00 05 */ lbz r0, 5(r30) -/* 802DF8F0 002DC830 28 00 00 00 */ cmplwi r0, 0 -/* 802DF8F4 002DC834 40 82 00 B8 */ bne lbl_802DF9AC -/* 802DF8F8 002DC838 57 60 06 3F */ clrlwi. r0, r27, 0x18 -/* 802DF8FC 002DC83C 40 82 00 60 */ bne lbl_802DF95C -/* 802DF900 002DC840 7F C3 F3 78 */ mr r3, r30 -/* 802DF904 002DC844 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DF908 002DC848 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802DF90C 002DC84C 7D 89 03 A6 */ mtctr r12 -/* 802DF910 002DC850 4E 80 04 21 */ bctrl -/* 802DF914 002DC854 C8 42 C5 F8 */ lfd f2, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DF918 002DC858 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DF91C 002DC85C 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802DF920 002DC860 3C 80 43 30 */ lis r4, 0x4330 -/* 802DF924 002DC864 90 81 00 18 */ stw r4, 0x18(r1) -/* 802DF928 002DC868 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 802DF92C 002DC86C EC 00 10 28 */ fsubs f0, f0, f2 -/* 802DF930 002DC870 EC 3E 00 24 */ fdivs f1, f30, f0 -/* 802DF934 002DC874 88 61 00 09 */ lbz r3, 9(r1) -/* 802DF938 002DC878 88 01 00 08 */ lbz r0, 8(r1) -/* 802DF93C 002DC87C 7C 03 02 14 */ add r0, r3, r0 -/* 802DF940 002DC880 6C 00 80 00 */ xoris r0, r0, 0x8000 -/* 802DF944 002DC884 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF948 002DC888 90 81 00 10 */ stw r4, 0x10(r1) -/* 802DF94C 002DC88C C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802DF950 002DC890 EC 00 10 28 */ fsubs f0, f0, f2 -/* 802DF954 002DC894 EF A0 00 72 */ fmuls f29, f0, f1 -/* 802DF958 002DC898 48 00 00 54 */ b lbl_802DF9AC -lbl_802DF95C: -/* 802DF95C 002DC89C 7F C3 F3 78 */ mr r3, r30 -/* 802DF960 002DC8A0 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DF964 002DC8A4 81 8C 00 30 */ lwz r12, 0x30(r12) -/* 802DF968 002DC8A8 7D 89 03 A6 */ mtctr r12 -/* 802DF96C 002DC8AC 4E 80 04 21 */ bctrl -/* 802DF970 002DC8B0 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DF974 002DC8B4 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DF978 002DC8B8 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802DF97C 002DC8BC 3C 60 43 30 */ lis r3, 0x4330 -/* 802DF980 002DC8C0 90 61 00 18 */ stw r3, 0x18(r1) -/* 802DF984 002DC8C4 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 802DF988 002DC8C8 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DF98C 002DC8CC EC 5E 00 24 */ fdivs f2, f30, f0 -/* 802DF990 002DC8D0 88 01 00 09 */ lbz r0, 9(r1) -/* 802DF994 002DC8D4 C8 22 C6 00 */ lfd f1, lbl_80456000-_SDA2_BASE_(r2) -/* 802DF998 002DC8D8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DF99C 002DC8DC 90 61 00 10 */ stw r3, 0x10(r1) -/* 802DF9A0 002DC8E0 C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802DF9A4 002DC8E4 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DF9A8 002DC8E8 EF A0 00 B2 */ fmuls f29, f0, f2 -lbl_802DF9AC: -/* 802DF9AC 002DC8EC EF DF F0 2A */ fadds f30, f31, f30 -/* 802DF9B0 002DC8F0 7F C3 F3 78 */ mr r3, r30 -/* 802DF9B4 002DC8F4 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DF9B8 002DC8F8 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 802DF9BC 002DC8FC 7D 89 03 A6 */ mtctr r12 -/* 802DF9C0 002DC900 4E 80 04 21 */ bctrl -/* 802DF9C4 002DC904 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DF9C8 002DC908 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DF9CC 002DC90C 90 01 00 1C */ stw r0, 0x1c(r1) -/* 802DF9D0 002DC910 3C 00 43 30 */ lis r0, 0x4330 -/* 802DF9D4 002DC914 90 01 00 18 */ stw r0, 0x18(r1) -/* 802DF9D8 002DC918 C8 01 00 18 */ lfd f0, 0x18(r1) -/* 802DF9DC 002DC91C EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DF9E0 002DC920 EF 5C 00 24 */ fdivs f26, f28, f0 -/* 802DF9E4 002DC924 7F C3 F3 78 */ mr r3, r30 -/* 802DF9E8 002DC928 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DF9EC 002DC92C 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802DF9F0 002DC930 7D 89 03 A6 */ mtctr r12 -/* 802DF9F4 002DC934 4E 80 04 21 */ bctrl -/* 802DF9F8 002DC938 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DF9FC 002DC93C 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DFA00 002DC940 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DFA04 002DC944 3C 00 43 30 */ lis r0, 0x4330 -/* 802DFA08 002DC948 90 01 00 10 */ stw r0, 0x10(r1) -/* 802DFA0C 002DC94C C8 01 00 10 */ lfd f0, 0x10(r1) -/* 802DFA10 002DC950 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DFA14 002DC954 EC 00 06 B2 */ fmuls f0, f0, f26 -/* 802DFA18 002DC958 EF 5B 00 28 */ fsubs f26, f27, f0 -/* 802DFA1C 002DC95C 7F C3 F3 78 */ mr r3, r30 -/* 802DFA20 002DC960 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DFA24 002DC964 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 802DFA28 002DC968 7D 89 03 A6 */ mtctr r12 -/* 802DFA2C 002DC96C 4E 80 04 21 */ bctrl -/* 802DFA30 002DC970 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DFA34 002DC974 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DFA38 002DC978 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DFA3C 002DC97C 3C 00 43 30 */ lis r0, 0x4330 -/* 802DFA40 002DC980 90 01 00 20 */ stw r0, 0x20(r1) -/* 802DFA44 002DC984 C8 01 00 20 */ lfd f0, 0x20(r1) -/* 802DFA48 002DC988 EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DFA4C 002DC98C EF 9C 00 24 */ fdivs f28, f28, f0 -/* 802DFA50 002DC990 7F C3 F3 78 */ mr r3, r30 -/* 802DFA54 002DC994 81 9E 00 00 */ lwz r12, 0(r30) -/* 802DFA58 002DC998 81 8C 00 20 */ lwz r12, 0x20(r12) -/* 802DFA5C 002DC99C 7D 89 03 A6 */ mtctr r12 -/* 802DFA60 002DC9A0 4E 80 04 21 */ bctrl -/* 802DFA64 002DC9A4 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) -/* 802DFA68 002DC9A8 6C 60 80 00 */ xoris r0, r3, 0x8000 -/* 802DFA6C 002DC9AC 90 01 00 2C */ stw r0, 0x2c(r1) -/* 802DFA70 002DC9B0 3C 00 43 30 */ lis r0, 0x4330 -/* 802DFA74 002DC9B4 90 01 00 28 */ stw r0, 0x28(r1) -/* 802DFA78 002DC9B8 C8 01 00 28 */ lfd f0, 0x28(r1) -/* 802DFA7C 002DC9BC EC 00 08 28 */ fsubs f0, f0, f1 -/* 802DFA80 002DC9C0 EC 00 07 32 */ fmuls f0, f0, f28 -/* 802DFA84 002DC9C4 EF 7B 00 2A */ fadds f27, f27, f0 -/* 802DFA88 002DC9C8 80 BE 00 1C */ lwz r5, 0x1c(r30) -/* 802DFA8C 002DC9CC 54 A4 78 20 */ slwi r4, r5, 0xf -/* 802DFA90 002DC9D0 80 7E 00 58 */ lwz r3, 0x58(r30) -/* 802DFA94 002DC9D4 A0 1E 00 66 */ lhz r0, 0x66(r30) -/* 802DFA98 002DC9D8 54 00 10 3A */ slwi r0, r0, 2 -/* 802DFA9C 002DC9DC 7C 63 00 2E */ lwzx r3, r3, r0 -/* 802DFAA0 002DC9E0 A0 C3 00 1A */ lhz r6, 0x1a(r3) -/* 802DFAA4 002DC9E4 7F E4 33 D6 */ divw r31, r4, r6 -/* 802DFAA8 002DC9E8 80 9E 00 20 */ lwz r4, 0x20(r30) -/* 802DFAAC 002DC9EC 54 80 78 20 */ slwi r0, r4, 0xf -/* 802DFAB0 002DC9F0 A0 E3 00 1C */ lhz r7, 0x1c(r3) -/* 802DFAB4 002DC9F4 7F A0 3B D6 */ divw r29, r0, r7 -/* 802DFAB8 002DC9F8 A0 03 00 0C */ lhz r0, 0xc(r3) -/* 802DFABC 002DC9FC 7C 05 02 14 */ add r0, r5, r0 -/* 802DFAC0 002DCA00 54 00 78 20 */ slwi r0, r0, 0xf -/* 802DFAC4 002DCA04 7F 80 33 D6 */ divw r28, r0, r6 -/* 802DFAC8 002DCA08 A0 03 00 0E */ lhz r0, 0xe(r3) -/* 802DFACC 002DCA0C 7C 04 02 14 */ add r0, r4, r0 -/* 802DFAD0 002DCA10 54 00 78 20 */ slwi r0, r0, 0xf -/* 802DFAD4 002DCA14 7F 60 3B D6 */ divw r27, r0, r7 -/* 802DFAD8 002DCA18 38 60 00 00 */ li r3, 0 -/* 802DFADC 002DCA1C 38 80 00 09 */ li r4, 9 -/* 802DFAE0 002DCA20 38 A0 00 01 */ li r5, 1 -/* 802DFAE4 002DCA24 38 C0 00 04 */ li r6, 4 -/* 802DFAE8 002DCA28 38 E0 00 00 */ li r7, 0 -/* 802DFAEC 002DCA2C 48 07 BA D9 */ bl GXSetVtxAttrFmt -/* 802DFAF0 002DCA30 38 60 00 80 */ li r3, 0x80 -/* 802DFAF4 002DCA34 38 80 00 00 */ li r4, 0 -/* 802DFAF8 002DCA38 38 A0 00 04 */ li r5, 4 -/* 802DFAFC 002DCA3C 48 07 CC 69 */ bl GXBegin -/* 802DFB00 002DCA40 3C 60 CC 01 */ lis r3, 0xCC008000@ha -/* 802DFB04 002DCA44 D3 E3 80 00 */ stfs f31, 0xCC008000@l(r3) -/* 802DFB08 002DCA48 D3 43 80 00 */ stfs f26, -0x8000(r3) -/* 802DFB0C 002DCA4C C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) -/* 802DFB10 002DCA50 D0 03 80 00 */ stfs f0, -0x8000(r3) -/* 802DFB14 002DCA54 80 1E 00 0C */ lwz r0, 0xc(r30) -/* 802DFB18 002DCA58 90 03 80 00 */ stw r0, -0x8000(r3) -/* 802DFB1C 002DCA5C B3 E3 80 00 */ sth r31, -0x8000(r3) -/* 802DFB20 002DCA60 B3 A3 80 00 */ sth r29, -0x8000(r3) -/* 802DFB24 002DCA64 D3 C3 80 00 */ stfs f30, -0x8000(r3) -/* 802DFB28 002DCA68 D3 43 80 00 */ stfs f26, -0x8000(r3) -/* 802DFB2C 002DCA6C C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) -/* 802DFB30 002DCA70 D0 03 80 00 */ stfs f0, -0x8000(r3) -/* 802DFB34 002DCA74 80 1E 00 10 */ lwz r0, 0x10(r30) -/* 802DFB38 002DCA78 90 03 80 00 */ stw r0, -0x8000(r3) -/* 802DFB3C 002DCA7C B3 83 80 00 */ sth r28, -0x8000(r3) -/* 802DFB40 002DCA80 B3 A3 80 00 */ sth r29, -0x8000(r3) -/* 802DFB44 002DCA84 D3 C3 80 00 */ stfs f30, -0x8000(r3) -/* 802DFB48 002DCA88 D3 63 80 00 */ stfs f27, -0x8000(r3) -/* 802DFB4C 002DCA8C C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) -/* 802DFB50 002DCA90 D0 03 80 00 */ stfs f0, -0x8000(r3) -/* 802DFB54 002DCA94 80 1E 00 18 */ lwz r0, 0x18(r30) -/* 802DFB58 002DCA98 90 03 80 00 */ stw r0, -0x8000(r3) -/* 802DFB5C 002DCA9C B3 83 80 00 */ sth r28, -0x8000(r3) -/* 802DFB60 002DCAA0 B3 63 80 00 */ sth r27, -0x8000(r3) -/* 802DFB64 002DCAA4 D3 E3 80 00 */ stfs f31, -0x8000(r3) -/* 802DFB68 002DCAA8 D3 63 80 00 */ stfs f27, -0x8000(r3) -/* 802DFB6C 002DCAAC C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) -/* 802DFB70 002DCAB0 D0 03 80 00 */ stfs f0, -0x8000(r3) -/* 802DFB74 002DCAB4 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 802DFB78 002DCAB8 90 03 80 00 */ stw r0, -0x8000(r3) -/* 802DFB7C 002DCABC B3 E3 80 00 */ sth r31, -0x8000(r3) -/* 802DFB80 002DCAC0 B3 63 80 00 */ sth r27, -0x8000(r3) -/* 802DFB84 002DCAC4 38 60 00 00 */ li r3, 0 -/* 802DFB88 002DCAC8 38 80 00 09 */ li r4, 9 -/* 802DFB8C 002DCACC 38 A0 00 01 */ li r5, 1 -/* 802DFB90 002DCAD0 38 C0 00 03 */ li r6, 3 -/* 802DFB94 002DCAD4 38 E0 00 00 */ li r7, 0 -/* 802DFB98 002DCAD8 48 07 BA 2D */ bl GXSetVtxAttrFmt -/* 802DFB9C 002DCADC FC 20 E8 90 */ fmr f1, f29 -/* 802DFBA0 002DCAE0 E3 E1 00 A8 */ psq_l f31, 168(r1), 0, qr0 -/* 802DFBA4 002DCAE4 CB E1 00 A0 */ lfd f31, 0xa0(r1) -/* 802DFBA8 002DCAE8 E3 C1 00 98 */ psq_l f30, 152(r1), 0, qr0 -/* 802DFBAC 002DCAEC CB C1 00 90 */ lfd f30, 0x90(r1) -/* 802DFBB0 002DCAF0 E3 A1 00 88 */ psq_l f29, 136(r1), 0, qr0 -/* 802DFBB4 002DCAF4 CB A1 00 80 */ lfd f29, 0x80(r1) -/* 802DFBB8 002DCAF8 E3 81 00 78 */ psq_l f28, 120(r1), 0, qr0 -/* 802DFBBC 002DCAFC CB 81 00 70 */ lfd f28, 0x70(r1) -/* 802DFBC0 002DCB00 E3 61 00 68 */ psq_l f27, 104(r1), 0, qr0 -/* 802DFBC4 002DCB04 CB 61 00 60 */ lfd f27, 0x60(r1) -/* 802DFBC8 002DCB08 E3 41 00 58 */ psq_l f26, 88(r1), 0, qr0 -/* 802DFBCC 002DCB0C CB 41 00 50 */ lfd f26, 0x50(r1) -/* 802DFBD0 002DCB10 39 61 00 50 */ addi r11, r1, 0x50 -/* 802DFBD4 002DCB14 48 08 26 4D */ bl _restgpr_27 -/* 802DFBD8 002DCB18 80 01 00 B4 */ lwz r0, 0xb4(r1) -/* 802DFBDC 002DCB1C 7C 08 03 A6 */ mtlr r0 -/* 802DFBE0 002DCB20 38 21 00 B0 */ addi r1, r1, 0xb0 -/* 802DFBE4 002DCB24 4E 80 00 20 */ blr - -.global JUTResFont_NS_loadFont -JUTResFont_NS_loadFont: -/* 802DFBE8 002DCB28 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DFBEC 002DCB2C 7C 08 02 A6 */ mflr r0 -/* 802DFBF0 002DCB30 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DFBF4 002DCB34 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DFBF8 002DCB38 48 08 25 E5 */ bl _savegpr_29 -/* 802DFBFC 002DCB3C 7C 7D 1B 78 */ mr r29, r3 -/* 802DFC00 002DCB40 7C 9E 23 78 */ mr r30, r4 -/* 802DFC04 002DCB44 7C BF 2B 78 */ mr r31, r5 -/* 802DFC08 002DCB48 28 06 00 00 */ cmplwi r6, 0 -/* 802DFC0C 002DCB4C 41 82 00 18 */ beq lbl_802DFC24 -/* 802DFC10 002DCB50 7C C5 33 78 */ mr r5, r6 -/* 802DFC14 002DCB54 81 83 00 00 */ lwz r12, 0(r3) -/* 802DFC18 002DCB58 81 8C 00 2C */ lwz r12, 0x2c(r12) -/* 802DFC1C 002DCB5C 7D 89 03 A6 */ mtctr r12 -/* 802DFC20 002DCB60 4E 80 04 21 */ bctrl -lbl_802DFC24: -/* 802DFC24 002DCB64 7F A3 EB 78 */ mr r3, r29 -/* 802DFC28 002DCB68 7F C4 F3 78 */ mr r4, r30 -/* 802DFC2C 002DCB6C 48 00 01 AD */ bl JUTResFont_NS_getFontCode -/* 802DFC30 002DCB70 7C 64 1B 78 */ mr r4, r3 -/* 802DFC34 002DCB74 7F A3 EB 78 */ mr r3, r29 -/* 802DFC38 002DCB78 7F E5 FB 78 */ mr r5, r31 -/* 802DFC3C 002DCB7C 81 9D 00 00 */ lwz r12, 0(r29) -/* 802DFC40 002DCB80 81 8C 00 44 */ lwz r12, 0x44(r12) -/* 802DFC44 002DCB84 7D 89 03 A6 */ mtctr r12 -/* 802DFC48 002DCB88 4E 80 04 21 */ bctrl -/* 802DFC4C 002DCB8C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DFC50 002DCB90 48 08 25 D9 */ bl _restgpr_29 -/* 802DFC54 002DCB94 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DFC58 002DCB98 7C 08 03 A6 */ mtlr r0 -/* 802DFC5C 002DCB9C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DFC60 002DCBA0 4E 80 00 20 */ blr -/* 802DFC64 002DCBA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DFC68 002DCBA8 7C 08 02 A6 */ mflr r0 -/* 802DFC6C 002DCBAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DFC70 002DCBB0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DFC74 002DCBB4 93 C1 00 08 */ stw r30, 8(r1) -/* 802DFC78 002DCBB8 7C 7E 1B 78 */ mr r30, r3 -/* 802DFC7C 002DCBBC 7C BF 2B 78 */ mr r31, r5 -/* 802DFC80 002DCBC0 48 00 01 59 */ bl JUTResFont_NS_getFontCode -/* 802DFC84 002DCBC4 38 A0 00 00 */ li r5, 0 -/* 802DFC88 002DCBC8 98 BF 00 00 */ stb r5, 0(r31) -/* 802DFC8C 002DCBCC 80 9E 00 4C */ lwz r4, 0x4c(r30) -/* 802DFC90 002DCBD0 A0 04 00 0E */ lhz r0, 0xe(r4) -/* 802DFC94 002DCBD4 98 1F 00 01 */ stb r0, 1(r31) -/* 802DFC98 002DCBD8 A0 1E 00 60 */ lhz r0, 0x60(r30) -/* 802DFC9C 002DCBDC 80 9E 00 54 */ lwz r4, 0x54(r30) -/* 802DFCA0 002DCBE0 7C 09 03 A6 */ mtctr r0 -/* 802DFCA4 002DCBE4 2C 00 00 00 */ cmpwi r0, 0 -/* 802DFCA8 002DCBE8 40 81 00 4C */ ble lbl_802DFCF4 -lbl_802DFCAC: -/* 802DFCAC 002DCBEC 7C C4 28 2E */ lwzx r6, r4, r5 -/* 802DFCB0 002DCBF0 A0 E6 00 08 */ lhz r7, 8(r6) -/* 802DFCB4 002DCBF4 7C 07 18 00 */ cmpw r7, r3 -/* 802DFCB8 002DCBF8 41 81 00 34 */ bgt lbl_802DFCEC -/* 802DFCBC 002DCBFC A0 06 00 0A */ lhz r0, 0xa(r6) -/* 802DFCC0 002DCC00 7C 03 00 00 */ cmpw r3, r0 -/* 802DFCC4 002DCC04 41 81 00 28 */ bgt lbl_802DFCEC -/* 802DFCC8 002DCC08 7C 07 18 50 */ subf r0, r7, r3 -/* 802DFCCC 002DCC0C 54 03 08 3C */ slwi r3, r0, 1 -/* 802DFCD0 002DCC10 38 63 00 0C */ addi r3, r3, 0xc -/* 802DFCD4 002DCC14 7C 66 1A 14 */ add r3, r6, r3 -/* 802DFCD8 002DCC18 88 03 00 00 */ lbz r0, 0(r3) -/* 802DFCDC 002DCC1C 98 1F 00 00 */ stb r0, 0(r31) -/* 802DFCE0 002DCC20 88 03 00 01 */ lbz r0, 1(r3) -/* 802DFCE4 002DCC24 98 1F 00 01 */ stb r0, 1(r31) -/* 802DFCE8 002DCC28 48 00 00 0C */ b lbl_802DFCF4 -lbl_802DFCEC: -/* 802DFCEC 002DCC2C 38 A5 00 04 */ addi r5, r5, 4 -/* 802DFCF0 002DCC30 42 00 FF BC */ bdnz lbl_802DFCAC -lbl_802DFCF4: -/* 802DFCF4 002DCC34 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DFCF8 002DCC38 83 C1 00 08 */ lwz r30, 8(r1) -/* 802DFCFC 002DCC3C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DFD00 002DCC40 7C 08 03 A6 */ mtlr r0 -/* 802DFD04 002DCC44 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DFD08 002DCC48 4E 80 00 20 */ blr -/* 802DFD0C 002DCC4C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DFD10 002DCC50 7C 08 02 A6 */ mflr r0 -/* 802DFD14 002DCC54 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DFD18 002DCC58 80 83 00 58 */ lwz r4, 0x58(r3) -/* 802DFD1C 002DCC5C 28 04 00 00 */ cmplwi r4, 0 -/* 802DFD20 002DCC60 41 82 00 18 */ beq lbl_802DFD38 -/* 802DFD24 002DCC64 80 84 00 00 */ lwz r4, 0(r4) -/* 802DFD28 002DCC68 28 04 00 00 */ cmplwi r4, 0 -/* 802DFD2C 002DCC6C 41 82 00 0C */ beq lbl_802DFD38 -/* 802DFD30 002DCC70 A0 64 00 0C */ lhz r3, 0xc(r4) -/* 802DFD34 002DCC74 48 00 00 14 */ b lbl_802DFD48 -lbl_802DFD38: -/* 802DFD38 002DCC78 81 83 00 00 */ lwz r12, 0(r3) -/* 802DFD3C 002DCC7C 81 8C 00 28 */ lwz r12, 0x28(r12) -/* 802DFD40 002DCC80 7D 89 03 A6 */ mtctr r12 -/* 802DFD44 002DCC84 4E 80 04 21 */ bctrl -lbl_802DFD48: -/* 802DFD48 002DCC88 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DFD4C 002DCC8C 7C 08 03 A6 */ mtlr r0 -/* 802DFD50 002DCC90 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DFD54 002DCC94 4E 80 00 20 */ blr -/* 802DFD58 002DCC98 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DFD5C 002DCC9C 7C 08 02 A6 */ mflr r0 -/* 802DFD60 002DCCA0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DFD64 002DCCA4 80 83 00 58 */ lwz r4, 0x58(r3) -/* 802DFD68 002DCCA8 28 04 00 00 */ cmplwi r4, 0 -/* 802DFD6C 002DCCAC 41 82 00 18 */ beq lbl_802DFD84 -/* 802DFD70 002DCCB0 80 84 00 00 */ lwz r4, 0(r4) -/* 802DFD74 002DCCB4 28 04 00 00 */ cmplwi r4, 0 -/* 802DFD78 002DCCB8 41 82 00 0C */ beq lbl_802DFD84 -/* 802DFD7C 002DCCBC A0 64 00 0E */ lhz r3, 0xe(r4) -/* 802DFD80 002DCCC0 48 00 00 14 */ b lbl_802DFD94 -lbl_802DFD84: -/* 802DFD84 002DCCC4 81 83 00 00 */ lwz r12, 0(r3) -/* 802DFD88 002DCCC8 81 8C 00 24 */ lwz r12, 0x24(r12) -/* 802DFD8C 002DCCCC 7D 89 03 A6 */ mtctr r12 -/* 802DFD90 002DCCD0 4E 80 04 21 */ bctrl -lbl_802DFD94: -/* 802DFD94 002DCCD4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DFD98 002DCCD8 7C 08 03 A6 */ mtlr r0 -/* 802DFD9C 002DCCDC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DFDA0 002DCCE0 4E 80 00 20 */ blr -/* 802DFDA4 002DCCE4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DFDA8 002DCCE8 7C 08 02 A6 */ mflr r0 -/* 802DFDAC 002DCCEC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DFDB0 002DCCF0 7C 65 1B 78 */ mr r5, r3 -/* 802DFDB4 002DCCF4 7C 83 23 78 */ mr r3, r4 -/* 802DFDB8 002DCCF8 80 85 00 6C */ lwz r4, 0x6c(r5) -/* 802DFDBC 002DCCFC 81 84 00 00 */ lwz r12, 0(r4) -/* 802DFDC0 002DCD00 7D 89 03 A6 */ mtctr r12 -/* 802DFDC4 002DCD04 4E 80 04 21 */ bctrl -/* 802DFDC8 002DCD08 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DFDCC 002DCD0C 7C 08 03 A6 */ mtlr r0 -/* 802DFDD0 002DCD10 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DFDD4 002DCD14 4E 80 00 20 */ blr - -.global JUTResFont_NS_getFontCode -JUTResFont_NS_getFontCode: -/* 802DFDD8 002DCD18 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DFDDC 002DCD1C 7C 08 02 A6 */ mflr r0 -/* 802DFDE0 002DCD20 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DFDE4 002DCD24 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DFDE8 002DCD28 48 08 23 F5 */ bl _savegpr_29 -/* 802DFDEC 002DCD2C 7C 7D 1B 78 */ mr r29, r3 -/* 802DFDF0 002DCD30 7C 9E 23 78 */ mr r30, r4 -/* 802DFDF4 002DCD34 80 83 00 4C */ lwz r4, 0x4c(r3) -/* 802DFDF8 002DCD38 A3 E4 00 12 */ lhz r31, 0x12(r4) -/* 802DFDFC 002DCD3C 81 83 00 00 */ lwz r12, 0(r3) -/* 802DFE00 002DCD40 81 8C 00 38 */ lwz r12, 0x38(r12) -/* 802DFE04 002DCD44 7D 89 03 A6 */ mtctr r12 -/* 802DFE08 002DCD48 4E 80 04 21 */ bctrl -/* 802DFE0C 002DCD4C 2C 03 00 02 */ cmpwi r3, 2 -/* 802DFE10 002DCD50 40 82 00 34 */ bne lbl_802DFE44 -/* 802DFE14 002DCD54 A0 1D 00 68 */ lhz r0, 0x68(r29) -/* 802DFE18 002DCD58 28 00 80 00 */ cmplwi r0, 0x8000 -/* 802DFE1C 002DCD5C 41 80 00 28 */ blt lbl_802DFE44 -/* 802DFE20 002DCD60 2C 1E 00 20 */ cmpwi r30, 0x20 -/* 802DFE24 002DCD64 41 80 00 20 */ blt lbl_802DFE44 -/* 802DFE28 002DCD68 28 1E 00 7F */ cmplwi r30, 0x7f -/* 802DFE2C 002DCD6C 40 80 00 18 */ bge lbl_802DFE44 -/* 802DFE30 002DCD70 3C 60 80 3A */ lis r3, lbl_8039D39C@ha -/* 802DFE34 002DCD74 38 63 D3 9C */ addi r3, r3, lbl_8039D39C@l -/* 802DFE38 002DCD78 57 C0 08 3C */ slwi r0, r30, 1 -/* 802DFE3C 002DCD7C 7C 63 02 14 */ add r3, r3, r0 -/* 802DFE40 002DCD80 A3 C3 FF C0 */ lhz r30, -0x40(r3) -lbl_802DFE44: -/* 802DFE44 002DCD84 38 60 00 00 */ li r3, 0 -/* 802DFE48 002DCD88 A0 1D 00 64 */ lhz r0, 0x64(r29) -/* 802DFE4C 002DCD8C 80 9D 00 5C */ lwz r4, 0x5c(r29) -/* 802DFE50 002DCD90 7C 09 03 A6 */ mtctr r0 -/* 802DFE54 002DCD94 2C 00 00 00 */ cmpwi r0, 0 -/* 802DFE58 002DCD98 40 81 00 EC */ ble lbl_802DFF44 -lbl_802DFE5C: -/* 802DFE5C 002DCD9C 7C C4 18 2E */ lwzx r6, r4, r3 -/* 802DFE60 002DCDA0 A0 A6 00 0A */ lhz r5, 0xa(r6) -/* 802DFE64 002DCDA4 7C 05 F0 00 */ cmpw r5, r30 -/* 802DFE68 002DCDA8 41 81 00 D4 */ bgt lbl_802DFF3C -/* 802DFE6C 002DCDAC A0 06 00 0C */ lhz r0, 0xc(r6) -/* 802DFE70 002DCDB0 7C 1E 00 00 */ cmpw r30, r0 -/* 802DFE74 002DCDB4 41 81 00 C8 */ bgt lbl_802DFF3C -/* 802DFE78 002DCDB8 A0 06 00 08 */ lhz r0, 8(r6) -/* 802DFE7C 002DCDBC 28 00 00 00 */ cmplwi r0, 0 -/* 802DFE80 002DCDC0 40 82 00 0C */ bne lbl_802DFE8C -/* 802DFE84 002DCDC4 7F E5 F0 50 */ subf r31, r5, r30 -/* 802DFE88 002DCDC8 48 00 00 BC */ b lbl_802DFF44 -lbl_802DFE8C: -/* 802DFE8C 002DCDCC 28 00 00 02 */ cmplwi r0, 2 -/* 802DFE90 002DCDD0 40 82 00 18 */ bne lbl_802DFEA8 -/* 802DFE94 002DCDD4 7C 05 F0 50 */ subf r0, r5, r30 -/* 802DFE98 002DCDD8 54 00 08 3C */ slwi r0, r0, 1 -/* 802DFE9C 002DCDDC 7C 66 02 14 */ add r3, r6, r0 -/* 802DFEA0 002DCDE0 A3 E3 00 10 */ lhz r31, 0x10(r3) -/* 802DFEA4 002DCDE4 48 00 00 A0 */ b lbl_802DFF44 -lbl_802DFEA8: -/* 802DFEA8 002DCDE8 28 00 00 03 */ cmplwi r0, 3 -/* 802DFEAC 002DCDEC 40 82 00 60 */ bne lbl_802DFF0C -/* 802DFEB0 002DCDF0 38 86 00 10 */ addi r4, r6, 0x10 -/* 802DFEB4 002DCDF4 38 A0 00 00 */ li r5, 0 -/* 802DFEB8 002DCDF8 A0 66 00 0E */ lhz r3, 0xe(r6) -/* 802DFEBC 002DCDFC 38 C3 FF FF */ addi r6, r3, -1 -/* 802DFEC0 002DCE00 48 00 00 40 */ b lbl_802DFF00 -lbl_802DFEC4: -/* 802DFEC4 002DCE04 7C 06 2A 14 */ add r0, r6, r5 -/* 802DFEC8 002DCE08 7C 00 0E 70 */ srawi r0, r0, 1 -/* 802DFECC 002DCE0C 7C E0 01 94 */ addze r7, r0 -/* 802DFED0 002DCE10 54 E3 10 3A */ slwi r3, r7, 2 -/* 802DFED4 002DCE14 7C 04 1A 2E */ lhzx r0, r4, r3 -/* 802DFED8 002DCE18 7C 1E 00 00 */ cmpw r30, r0 -/* 802DFEDC 002DCE1C 40 80 00 0C */ bge lbl_802DFEE8 -/* 802DFEE0 002DCE20 38 C7 FF FF */ addi r6, r7, -1 -/* 802DFEE4 002DCE24 48 00 00 1C */ b lbl_802DFF00 -lbl_802DFEE8: -/* 802DFEE8 002DCE28 40 81 00 0C */ ble lbl_802DFEF4 -/* 802DFEEC 002DCE2C 38 A7 00 01 */ addi r5, r7, 1 -/* 802DFEF0 002DCE30 48 00 00 10 */ b lbl_802DFF00 -lbl_802DFEF4: -/* 802DFEF4 002DCE34 7C 64 1A 14 */ add r3, r4, r3 -/* 802DFEF8 002DCE38 A3 E3 00 02 */ lhz r31, 2(r3) -/* 802DFEFC 002DCE3C 48 00 00 48 */ b lbl_802DFF44 -lbl_802DFF00: -/* 802DFF00 002DCE40 7C 06 28 00 */ cmpw r6, r5 -/* 802DFF04 002DCE44 40 80 FF C0 */ bge lbl_802DFEC4 -/* 802DFF08 002DCE48 48 00 00 3C */ b lbl_802DFF44 -lbl_802DFF0C: -/* 802DFF0C 002DCE4C 28 00 00 01 */ cmplwi r0, 1 -/* 802DFF10 002DCE50 40 82 00 34 */ bne lbl_802DFF44 -/* 802DFF14 002DCE54 38 A0 00 00 */ li r5, 0 -/* 802DFF18 002DCE58 A0 06 00 0E */ lhz r0, 0xe(r6) -/* 802DFF1C 002DCE5C 28 00 00 01 */ cmplwi r0, 1 -/* 802DFF20 002DCE60 40 82 00 08 */ bne lbl_802DFF28 -/* 802DFF24 002DCE64 38 A6 00 10 */ addi r5, r6, 0x10 -lbl_802DFF28: -/* 802DFF28 002DCE68 7F A3 EB 78 */ mr r3, r29 -/* 802DFF2C 002DCE6C 7F C4 F3 78 */ mr r4, r30 -/* 802DFF30 002DCE70 48 00 01 95 */ bl JUTResFont_NS_convertSjis -/* 802DFF34 002DCE74 7C 7F 1B 78 */ mr r31, r3 -/* 802DFF38 002DCE78 48 00 00 0C */ b lbl_802DFF44 -lbl_802DFF3C: -/* 802DFF3C 002DCE7C 38 63 00 04 */ addi r3, r3, 4 -/* 802DFF40 002DCE80 42 00 FF 1C */ bdnz lbl_802DFE5C -lbl_802DFF44: -/* 802DFF44 002DCE84 7F E3 FB 78 */ mr r3, r31 -/* 802DFF48 002DCE88 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DFF4C 002DCE8C 48 08 22 DD */ bl _restgpr_29 -/* 802DFF50 002DCE90 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802DFF54 002DCE94 7C 08 03 A6 */ mtlr r0 -/* 802DFF58 002DCE98 38 21 00 20 */ addi r1, r1, 0x20 -/* 802DFF5C 002DCE9C 4E 80 00 20 */ blr -/* 802DFF60 002DCEA0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802DFF64 002DCEA4 7C 08 02 A6 */ mflr r0 -/* 802DFF68 002DCEA8 90 01 00 24 */ stw r0, 0x24(r1) -/* 802DFF6C 002DCEAC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802DFF70 002DCEB0 48 08 22 69 */ bl _savegpr_28 -/* 802DFF74 002DCEB4 7C 7C 1B 78 */ mr r28, r3 -/* 802DFF78 002DCEB8 7C BD 2B 78 */ mr r29, r5 -/* 802DFF7C 002DCEBC 3B E0 00 00 */ li r31, 0 -/* 802DFF80 002DCEC0 38 60 00 00 */ li r3, 0 -/* 802DFF84 002DCEC4 A0 FC 00 62 */ lhz r7, 0x62(r28) -/* 802DFF88 002DCEC8 7C E9 03 A6 */ mtctr r7 -/* 802DFF8C 002DCECC 2C 07 00 00 */ cmpwi r7, 0 -/* 802DFF90 002DCED0 40 81 00 38 */ ble lbl_802DFFC8 -lbl_802DFF94: -/* 802DFF94 002DCED4 80 BC 00 58 */ lwz r5, 0x58(r28) -/* 802DFF98 002DCED8 7C A5 18 2E */ lwzx r5, r5, r3 -/* 802DFF9C 002DCEDC A0 C5 00 08 */ lhz r6, 8(r5) -/* 802DFFA0 002DCEE0 7C 06 20 00 */ cmpw r6, r4 -/* 802DFFA4 002DCEE4 41 81 00 18 */ bgt lbl_802DFFBC -/* 802DFFA8 002DCEE8 A0 05 00 0A */ lhz r0, 0xa(r5) -/* 802DFFAC 002DCEEC 7C 04 00 00 */ cmpw r4, r0 -/* 802DFFB0 002DCEF0 41 81 00 0C */ bgt lbl_802DFFBC -/* 802DFFB4 002DCEF4 7C 86 20 50 */ subf r4, r6, r4 -/* 802DFFB8 002DCEF8 48 00 00 10 */ b lbl_802DFFC8 -lbl_802DFFBC: -/* 802DFFBC 002DCEFC 3B FF 00 01 */ addi r31, r31, 1 -/* 802DFFC0 002DCF00 38 63 00 04 */ addi r3, r3, 4 -/* 802DFFC4 002DCF04 42 00 FF D0 */ bdnz lbl_802DFF94 -lbl_802DFFC8: -/* 802DFFC8 002DCF08 7C 1F 38 00 */ cmpw r31, r7 -/* 802DFFCC 002DCF0C 41 82 00 E0 */ beq lbl_802E00AC -/* 802DFFD0 002DCF10 80 7C 00 58 */ lwz r3, 0x58(r28) -/* 802DFFD4 002DCF14 57 E6 10 3A */ slwi r6, r31, 2 -/* 802DFFD8 002DCF18 7C A3 30 2E */ lwzx r5, r3, r6 -/* 802DFFDC 002DCF1C A0 65 00 16 */ lhz r3, 0x16(r5) -/* 802DFFE0 002DCF20 A0 05 00 18 */ lhz r0, 0x18(r5) -/* 802DFFE4 002DCF24 7C 03 01 D6 */ mullw r0, r3, r0 -/* 802DFFE8 002DCF28 7F C4 03 D6 */ divw r30, r4, r0 -/* 802DFFEC 002DCF2C 7C 1E 01 D6 */ mullw r0, r30, r0 -/* 802DFFF0 002DCF30 7C 80 20 50 */ subf r4, r0, r4 -/* 802DFFF4 002DCF34 7C E4 1B D6 */ divw r7, r4, r3 -/* 802DFFF8 002DCF38 7C 07 19 D6 */ mullw r0, r7, r3 -/* 802DFFFC 002DCF3C 7C 60 20 50 */ subf r3, r0, r4 -/* 802E0000 002DCF40 A0 05 00 0C */ lhz r0, 0xc(r5) -/* 802E0004 002DCF44 7C 03 01 D6 */ mullw r0, r3, r0 -/* 802E0008 002DCF48 90 1C 00 1C */ stw r0, 0x1c(r28) -/* 802E000C 002DCF4C 80 7C 00 58 */ lwz r3, 0x58(r28) -/* 802E0010 002DCF50 7C 63 30 2E */ lwzx r3, r3, r6 -/* 802E0014 002DCF54 A0 03 00 0E */ lhz r0, 0xe(r3) -/* 802E0018 002DCF58 7C 07 01 D6 */ mullw r0, r7, r0 -/* 802E001C 002DCF5C 90 1C 00 20 */ stw r0, 0x20(r28) -/* 802E0020 002DCF60 80 1C 00 44 */ lwz r0, 0x44(r28) -/* 802E0024 002DCF64 7C 1E 00 00 */ cmpw r30, r0 -/* 802E0028 002DCF68 40 82 00 10 */ bne lbl_802E0038 -/* 802E002C 002DCF6C A0 1C 00 66 */ lhz r0, 0x66(r28) -/* 802E0030 002DCF70 7C 1F 00 00 */ cmpw r31, r0 -/* 802E0034 002DCF74 41 82 00 6C */ beq lbl_802E00A0 -lbl_802E0038: -/* 802E0038 002DCF78 80 7C 00 58 */ lwz r3, 0x58(r28) -/* 802E003C 002DCF7C 7C E3 30 2E */ lwzx r7, r3, r6 -/* 802E0040 002DCF80 38 7C 00 24 */ addi r3, r28, 0x24 -/* 802E0044 002DCF84 80 07 00 10 */ lwz r0, 0x10(r7) -/* 802E0048 002DCF88 7C 9E 01 D6 */ mullw r4, r30, r0 -/* 802E004C 002DCF8C 38 84 00 20 */ addi r4, r4, 0x20 -/* 802E0050 002DCF90 7C 87 22 14 */ add r4, r7, r4 -/* 802E0054 002DCF94 A0 A7 00 1A */ lhz r5, 0x1a(r7) -/* 802E0058 002DCF98 A0 C7 00 1C */ lhz r6, 0x1c(r7) -/* 802E005C 002DCF9C A0 E7 00 14 */ lhz r7, 0x14(r7) -/* 802E0060 002DCFA0 39 00 00 00 */ li r8, 0 -/* 802E0064 002DCFA4 39 20 00 00 */ li r9, 0 -/* 802E0068 002DCFA8 39 40 00 00 */ li r10, 0 -/* 802E006C 002DCFAC 48 07 DD D5 */ bl GXInitTexObj -/* 802E0070 002DCFB0 38 7C 00 24 */ addi r3, r28, 0x24 -/* 802E0074 002DCFB4 38 80 00 01 */ li r4, 1 -/* 802E0078 002DCFB8 38 A0 00 01 */ li r5, 1 -/* 802E007C 002DCFBC C0 22 C5 F0 */ lfs f1, lbl_80455FF0-_SDA2_BASE_(r2) -/* 802E0080 002DCFC0 FC 40 08 90 */ fmr f2, f1 -/* 802E0084 002DCFC4 FC 60 08 90 */ fmr f3, f1 -/* 802E0088 002DCFC8 38 C0 00 00 */ li r6, 0 -/* 802E008C 002DCFCC 38 E0 00 00 */ li r7, 0 -/* 802E0090 002DCFD0 39 00 00 00 */ li r8, 0 -/* 802E0094 002DCFD4 48 07 E0 41 */ bl GXInitTexObjLOD -/* 802E0098 002DCFD8 93 DC 00 44 */ stw r30, 0x44(r28) -/* 802E009C 002DCFDC B3 FC 00 66 */ sth r31, 0x66(r28) -lbl_802E00A0: -/* 802E00A0 002DCFE0 38 7C 00 24 */ addi r3, r28, 0x24 -/* 802E00A4 002DCFE4 7F A4 EB 78 */ mr r4, r29 -/* 802E00A8 002DCFE8 48 07 E3 6D */ bl GXLoadTexObj -lbl_802E00AC: -/* 802E00AC 002DCFEC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802E00B0 002DCFF0 48 08 21 75 */ bl _restgpr_28 -/* 802E00B4 002DCFF4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802E00B8 002DCFF8 7C 08 03 A6 */ mtlr r0 -/* 802E00BC 002DCFFC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802E00C0 002DD000 4E 80 00 20 */ blr - -.global JUTResFont_NS_convertSjis -JUTResFont_NS_convertSjis: -/* 802E00C4 002DD004 54 86 C6 3E */ rlwinm r6, r4, 0x18, 0x18, 0x1f -/* 802E00C8 002DD008 54 83 06 3E */ clrlwi r3, r4, 0x18 -/* 802E00CC 002DD00C 38 E3 FF C0 */ addi r7, r3, -64 -/* 802E00D0 002DD010 2C 07 00 40 */ cmpwi r7, 0x40 -/* 802E00D4 002DD014 41 80 00 08 */ blt lbl_802E00DC -/* 802E00D8 002DD018 38 E7 FF FF */ addi r7, r7, -1 -lbl_802E00DC: -/* 802E00DC 002DD01C 38 00 03 1C */ li r0, 0x31c -/* 802E00E0 002DD020 28 05 00 00 */ cmplwi r5, 0 -/* 802E00E4 002DD024 41 82 00 08 */ beq lbl_802E00EC -/* 802E00E8 002DD028 A0 05 00 00 */ lhz r0, 0(r5) -lbl_802E00EC: -/* 802E00EC 002DD02C 54 04 04 3E */ clrlwi r4, r0, 0x10 -/* 802E00F0 002DD030 38 06 FF 78 */ addi r0, r6, -136 -/* 802E00F4 002DD034 1C 60 00 BC */ mulli r3, r0, 0xbc -/* 802E00F8 002DD038 38 03 FF A2 */ addi r0, r3, -94 -/* 802E00FC 002DD03C 7C 60 22 14 */ add r3, r0, r4 -/* 802E0100 002DD040 7C 67 1A 14 */ add r3, r7, r3 -/* 802E0104 002DD044 4E 80 00 20 */ blr -/* 802E0108 002DD048 38 60 00 00 */ li r3, 0 -/* 802E010C 002DD04C 4E 80 00 20 */ blr -/* 802E0110 002DD050 38 60 00 01 */ li r3, 1 -/* 802E0114 002DD054 4E 80 00 20 */ blr -/* 802E0118 002DD058 38 00 00 00 */ li r0, 0 -/* 802E011C 002DD05C 2C 03 00 81 */ cmpwi r3, 0x81 -/* 802E0120 002DD060 41 80 00 0C */ blt lbl_802E012C -/* 802E0124 002DD064 2C 03 00 9F */ cmpwi r3, 0x9f -/* 802E0128 002DD068 40 81 00 14 */ ble lbl_802E013C -lbl_802E012C: -/* 802E012C 002DD06C 2C 03 00 E0 */ cmpwi r3, 0xe0 -/* 802E0130 002DD070 41 80 00 10 */ blt lbl_802E0140 -/* 802E0134 002DD074 2C 03 00 FC */ cmpwi r3, 0xfc -/* 802E0138 002DD078 41 81 00 08 */ bgt lbl_802E0140 -lbl_802E013C: -/* 802E013C 002DD07C 38 00 00 01 */ li r0, 1 -lbl_802E0140: -/* 802E0140 002DD080 7C 03 03 78 */ mr r3, r0 -/* 802E0144 002DD084 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/bg/c_bg_w.s b/asm/SComponent/c/bg/c_bg_w.s deleted file mode 100644 index d3672bc5d0..0000000000 --- a/asm/SComponent/c/bg/c_bg_w.s +++ /dev/null @@ -1,65 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802681c0 - - -.global cBgW_BgId_NS_Regist -cBgW_BgId_NS_Regist: -/* 802681C0 00265100 B0 83 00 00 */ sth r4, 0(r3) -/* 802681C4 00265104 4E 80 00 20 */ blr - -.global cBgW_BgId_NS_Release -cBgW_BgId_NS_Release: -/* 802681C8 00265108 38 00 01 00 */ li r0, 0x100 -/* 802681CC 0026510C B0 03 00 00 */ sth r0, 0(r3) -/* 802681D0 00265110 4E 80 00 20 */ blr - -.global cBgW_BgId_NS_ChkUsed -cBgW_BgId_NS_ChkUsed: -/* 802681D4 00265114 A0 63 00 00 */ lhz r3, 0(r3) -/* 802681D8 00265118 38 03 FF 00 */ addi r0, r3, -256 -/* 802681DC 0026511C 54 03 0F FE */ srwi r3, r0, 0x1f -/* 802681E0 00265120 4E 80 00 20 */ blr - -.global cBgW_CheckBGround -cBgW_CheckBGround: -/* 802681E4 00265124 C0 02 B6 E8 */ lfs f0, lbl_804550E8-_SDA2_BASE_(r2) -/* 802681E8 00265128 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 802681EC 0026512C 4C 41 13 82 */ cror 2, 1, 2 -/* 802681F0 00265130 7C 00 00 26 */ mfcr r0 -/* 802681F4 00265134 54 03 1F FE */ rlwinm r3, r0, 3, 0x1f, 0x1f -/* 802681F8 00265138 4E 80 00 20 */ blr - -.global cBgW_CheckBRoof -cBgW_CheckBRoof: -/* 802681FC 0026513C C0 02 B6 EC */ lfs f0, lbl_804550EC-_SDA2_BASE_(r2) -/* 80268200 00265140 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80268204 00265144 7C 00 00 26 */ mfcr r0 -/* 80268208 00265148 54 03 0F FE */ srwi r3, r0, 0x1f -/* 8026820C 0026514C 4E 80 00 20 */ blr - -.global cBgW_CheckBWall -cBgW_CheckBWall: -/* 80268210 00265150 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80268214 00265154 7C 08 02 A6 */ mflr r0 -/* 80268218 00265158 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026821C 0026515C DB E1 00 08 */ stfd f31, 8(r1) -/* 80268220 00265160 FF E0 08 90 */ fmr f31, f1 -/* 80268224 00265164 4B FF FF C1 */ bl cBgW_CheckBGround -/* 80268228 00265168 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8026822C 0026516C 40 82 00 1C */ bne lbl_80268248 -/* 80268230 00265170 FC 20 F8 90 */ fmr f1, f31 -/* 80268234 00265174 4B FF FF C9 */ bl cBgW_CheckBRoof -/* 80268238 00265178 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 8026823C 0026517C 40 82 00 0C */ bne lbl_80268248 -/* 80268240 00265180 38 60 00 01 */ li r3, 1 -/* 80268244 00265184 48 00 00 08 */ b lbl_8026824C -lbl_80268248: -/* 80268248 00265188 38 60 00 00 */ li r3, 0 -lbl_8026824C: -/* 8026824C 0026518C CB E1 00 08 */ lfd f31, 8(r1) -/* 80268250 00265190 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80268254 00265194 7C 08 03 A6 */ mtlr r0 -/* 80268258 00265198 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026825C 0026519C 4E 80 00 20 */ blr - diff --git a/asm/d/a/d_a_npc.s b/asm/d/a/d_a_npc.s index 8170834da4..af75e1d701 100644 --- a/asm/d/a/d_a_npc.s +++ b/asm/d/a/d_a_npc.s @@ -11098,7 +11098,7 @@ lbl_8014F6E4: /* 8014F728 0014C668 80 7E 0A 14 */ lwz r3, 0xa14(r30) /* 8014F72C 0014C66C 28 03 00 00 */ cmplwi r3, 0 /* 8014F730 0014C670 41 82 00 24 */ beq lbl_8014F754 -/* 8014F734 0014C674 48 11 8A A1 */ bl cBgW_BgId_NS_ChkUsed +/* 8014F734 0014C674 48 11 8A A1 */ bl ChkUsed__9cBgW_BgIdCFv /* 8014F738 0014C678 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8014F73C 0014C67C 41 82 00 18 */ beq lbl_8014F754 /* 8014F740 0014C680 3C 60 80 40 */ lis r3, lbl_804061C0@ha diff --git a/asm/d/bg/d_bg_s.s b/asm/d/bg/d_bg_s.s index 19b2b79a32..ff0f908ec9 100644 --- a/asm/d/bg/d_bg_s.s +++ b/asm/d/bg/d_bg_s.s @@ -45,7 +45,7 @@ cBgS_NS_Regist: /* 80074170 000710B0 48 00 00 C8 */ b lbl_80074238 lbl_80074174: /* 80074174 000710B4 7F 83 E3 78 */ mr r3, r28 -/* 80074178 000710B8 48 1F 40 5D */ bl cBgW_BgId_NS_ChkUsed +/* 80074178 000710B8 48 1F 40 5D */ bl ChkUsed__9cBgW_BgIdCFv /* 8007417C 000710BC 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80074180 000710C0 41 82 00 0C */ beq lbl_8007418C /* 80074184 000710C4 38 60 00 01 */ li r3, 1 @@ -78,7 +78,7 @@ lbl_800741B8: /* 800741E4 00071124 4E 80 04 21 */ bctrl /* 800741E8 00071128 7F 83 E3 78 */ mr r3, r28 /* 800741EC 0007112C 7F E4 FB 78 */ mr r4, r31 -/* 800741F0 00071130 48 1F 3F D1 */ bl cBgW_BgId_NS_Regist +/* 800741F0 00071130 48 1F 3F D1 */ bl Regist__9cBgW_BgIdFi /* 800741F4 00071134 38 1F 00 01 */ addi r0, r31, 1 /* 800741F8 00071138 90 0D 89 E0 */ stw r0, lbl_80450F60-_SDA_BASE_(r13) /* 800741FC 0007113C 2C 00 01 00 */ cmpwi r0, 0x100 @@ -97,7 +97,7 @@ lbl_80074224: /* 80074224 00071164 7C 04 F8 00 */ cmpw r4, r31 /* 80074228 00071168 40 82 FF 90 */ bne lbl_800741B8 /* 8007422C 0007116C 7F 83 E3 78 */ mr r3, r28 -/* 80074230 00071170 48 1F 3F 99 */ bl cBgW_BgId_NS_Release +/* 80074230 00071170 48 1F 3F 99 */ bl Release__9cBgW_BgIdFv /* 80074234 00071174 38 60 00 01 */ li r3, 1 lbl_80074238: /* 80074238 00071178 39 61 00 20 */ addi r11, r1, 0x20 @@ -122,7 +122,7 @@ cBgS_NS_Release: lbl_80074278: /* 80074278 000711B8 A3 FE 00 00 */ lhz r31, 0(r30) /* 8007427C 000711BC 7F C3 F3 78 */ mr r3, r30 -/* 80074280 000711C0 48 1F 3F 55 */ bl cBgW_BgId_NS_ChkUsed +/* 80074280 000711C0 48 1F 3F 55 */ bl ChkUsed__9cBgW_BgIdCFv /* 80074284 000711C4 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80074288 000711C8 41 82 00 38 */ beq lbl_800742C0 /* 8007428C 000711CC 2C 1F 00 00 */ cmpwi r31, 0 @@ -136,7 +136,7 @@ lbl_80074278: /* 800742AC 000711EC 41 82 00 14 */ beq lbl_800742C0 /* 800742B0 000711F0 4B FF FE 79 */ bl cBgS_ChkElm_NS_Release /* 800742B4 000711F4 7F C3 F3 78 */ mr r3, r30 -/* 800742B8 000711F8 48 1F 3F 11 */ bl cBgW_BgId_NS_Release +/* 800742B8 000711F8 48 1F 3F 11 */ bl Release__9cBgW_BgIdFv /* 800742BC 000711FC 48 00 00 0C */ b lbl_800742C8 lbl_800742C0: /* 800742C0 00071200 38 60 00 01 */ li r3, 1 @@ -1992,7 +1992,7 @@ dBgS_NS_RideCallBack: /* 80075BA4 00072AE4 1F E0 00 14 */ mulli r31, r0, 0x14 /* 80075BA8 00072AE8 7F DC F8 2E */ lwzx r30, r28, r31 /* 80075BAC 00072AEC 7F C3 F3 78 */ mr r3, r30 -/* 80075BB0 00072AF0 48 1F 26 25 */ bl cBgW_BgId_NS_ChkUsed +/* 80075BB0 00072AF0 48 1F 26 25 */ bl ChkUsed__9cBgW_BgIdCFv /* 80075BB4 00072AF4 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80075BB8 00072AF8 41 82 00 24 */ beq lbl_80075BDC /* 80075BBC 00072AFC 7F C3 F3 78 */ mr r3, r30 @@ -2022,7 +2022,7 @@ lbl_80075BDC: /* 80075C18 00072B58 1F E0 00 14 */ mulli r31, r0, 0x14 /* 80075C1C 00072B5C 7F DB F8 2E */ lwzx r30, r27, r31 /* 80075C20 00072B60 7F C3 F3 78 */ mr r3, r30 -/* 80075C24 00072B64 48 1F 25 B1 */ bl cBgW_BgId_NS_ChkUsed +/* 80075C24 00072B64 48 1F 25 B1 */ bl ChkUsed__9cBgW_BgIdCFv /* 80075C28 00072B68 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80075C2C 00072B6C 41 82 00 28 */ beq lbl_80075C54 /* 80075C30 00072B70 7F C3 F3 78 */ mr r3, r30 @@ -2057,7 +2057,7 @@ dBgS_NS_PushPullCallBack: /* 80075C94 00072BD4 1F E0 00 14 */ mulli r31, r0, 0x14 /* 80075C98 00072BD8 7F DA F8 2E */ lwzx r30, r26, r31 /* 80075C9C 00072BDC 7F C3 F3 78 */ mr r3, r30 -/* 80075CA0 00072BE0 48 1F 25 35 */ bl cBgW_BgId_NS_ChkUsed +/* 80075CA0 00072BE0 48 1F 25 35 */ bl ChkUsed__9cBgW_BgIdCFv /* 80075CA4 00072BE4 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80075CA8 00072BE8 40 82 00 0C */ bne lbl_80075CB4 /* 80075CAC 00072BEC 38 60 00 00 */ li r3, 0 diff --git a/asm/d/bg/s/movebg/d_bg_s_movebg_actor.s b/asm/d/bg/s/movebg/d_bg_s_movebg_actor.s index e91b02e81d..fc9fb0fbed 100644 --- a/asm/d/bg/s/movebg/d_bg_s_movebg_actor.s +++ b/asm/d/bg/s/movebg/d_bg_s_movebg_actor.s @@ -209,7 +209,7 @@ lbl_800788C4: /* 80078908 00075848 80 7E 05 68 */ lwz r3, 0x568(r30) /* 8007890C 0007584C 28 03 00 00 */ cmplwi r3, 0 /* 80078910 00075850 41 82 00 24 */ beq lbl_80078934 -/* 80078914 00075854 48 1E F8 C1 */ bl cBgW_BgId_NS_ChkUsed +/* 80078914 00075854 48 1E F8 C1 */ bl ChkUsed__9cBgW_BgIdCFv /* 80078918 00075858 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8007891C 0007585C 41 82 00 18 */ beq lbl_80078934 /* 80078920 00075860 3C 60 80 40 */ lis r3, lbl_804061C0@ha diff --git a/asm/d/error/d_error_msg.s b/asm/d/error/d_error_msg.s index a2209b3a68..edbc97507d 100644 --- a/asm/d/error/d_error_msg.s +++ b/asm/d/error/d_error_msg.s @@ -85,7 +85,7 @@ messageSet: /* 8009CCBC 00099BFC 3C 80 80 38 */ lis r4, lbl_8037B3E0@ha /* 8009CCC0 00099C00 38 84 B3 E0 */ addi r4, r4, lbl_8037B3E0@l /* 8009CCC4 00099C04 38 A0 00 00 */ li r5, 0 -/* 8009CCC8 00099C08 48 24 22 CD */ bl JUTResFont_X1_ +/* 8009CCC8 00099C08 48 24 22 CD */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 8009CCCC 00099C0C 3B C1 00 D4 */ addi r30, r1, 0xd4 /* 8009CCD0 00099C10 38 80 00 C8 */ li r4, 0xc8 /* 8009CCD4 00099C14 98 81 00 60 */ stb r4, 0x60(r1) @@ -392,7 +392,7 @@ lbl_8009D100: /* 8009D138 0009A078 48 26 33 59 */ bl J2DTextBox_NS_draw_X1_ /* 8009D13C 0009A07C 38 61 00 D4 */ addi r3, r1, 0xd4 /* 8009D140 0009A080 38 80 FF FF */ li r4, -1 -/* 8009D144 0009A084 48 24 1E BD */ bl JUTResFont_NS_dtor +/* 8009D144 0009A084 48 24 1E BD */ bl __dt__10JUTResFontFv /* 8009D148 0009A088 38 61 01 48 */ addi r3, r1, 0x148 /* 8009D14C 0009A08C 38 80 FF FF */ li r4, -1 /* 8009D150 0009A090 48 25 FE A1 */ bl J2DPicture_NS_dtor diff --git a/asm/m/Do/m_Do_ext.s b/asm/m/Do/m_Do_ext.s index 56c49f3e9b..aef6aec17b 100644 --- a/asm/m/Do/m_Do_ext.s +++ b/asm/m/Do/m_Do_ext.s @@ -8377,7 +8377,7 @@ lbl_800148BC: /* 800148C8 00011808 41 82 00 14 */ beq lbl_800148DC /* 800148CC 0001180C 80 9F 00 00 */ lwz r4, 0(r31) /* 800148D0 00011810 7F 45 D3 78 */ mr r5, r26 -/* 800148D4 00011814 48 2C A6 C1 */ bl JUTResFont_X1_ +/* 800148D4 00011814 48 2C A6 C1 */ bl __ct__10JUTResFontFPCcP7JKRHeap /* 800148D8 00011818 7C 60 1B 78 */ mr r0, r3 lbl_800148DC: /* 800148DC 0001181C 90 1E 00 00 */ stw r0, 0(r30) @@ -8411,6 +8411,8 @@ lbl_80014934: /* 80014940 00011880 7C 08 03 A6 */ mtlr r0 /* 80014944 00011884 38 21 00 20 */ addi r1, r1, 0x20 /* 80014948 00011888 4E 80 00 20 */ blr +.global __dt__7JUTFontFv +__dt__7JUTFontFv: /* 8001494C 0001188C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80014950 00011890 7C 08 02 A6 */ mflr r0 /* 80014954 00011894 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/include/JSystem/JUtility/JUTFont/JUTFont.h b/include/JSystem/JUtility/JUTFont/JUTFont.h index 7a663aa588..0c51043c7f 100644 --- a/include/JSystem/JUtility/JUTFont/JUTFont.h +++ b/include/JSystem/JUtility/JUTFont/JUTFont.h @@ -1,3 +1,66 @@ -class JUTFont { +#ifndef JSYSTEM_JUTILITY_JUTFONT_H +#define JSYSTEM_JUTILITY_JUTFONT_H -}; \ No newline at end of file +#include "global.h" + +static const unsigned int CLR_WHITE = 0xFFFFFFFF; +static const unsigned int CLR_BLACK = 0; + +typedef const char* ResFONT; + +struct TColor { + TColor() { + *(u32*)&r = 0xFFFFFFFF; + } + + TColor(u32 raw) { + *(u32*)&r = raw; + } + + u32 Raw() { return *(u32*)&r; } + + u8 r; + u8 g; + u8 b; + u8 a; +}; + +class JUTFont { +public: + JUTFont(); + virtual ~JUTFont(); + + struct TWidth {}; + + virtual void setGX() = 0; + virtual void setGX(TColor col1, TColor col2); + + virtual void drawChar_scale(float a1, float a2, float a3, float a4, int a5, bool a6); + virtual u16 getLeading() = 0; + virtual u16 getAscent() = 0; + virtual u16 getDescent() = 0; + virtual u32 getHeight() = 0; + virtual u32 getWidth() = 0; + virtual void getWidthEntry(s32 i_no, TWidth* width); + virtual u32 getCellWidth(); + virtual u32 getCellHeight(); + virtual u32 getFontType() = 0; + virtual TColor getResFont() = 0; + virtual bool isLeadByte(s32 a1) = 0; + + void initialize_state(); + void setCharColor(TColor col1); + void setGradColor(TColor col1, TColor col2); + float drawString_size_scale(float a1, float a2, float a3, float a4, char* a5, unsigned long usz, bool a7); + + bool unk4; + bool unk5; + int unk8; + TColor mColor1; + TColor mColor2; + TColor mColor3; + TColor mColor4; + int unk1C; +}; + +#endif // JSYSTEM_JUTILITY_JUTFONT_H diff --git a/include/JSystem/JUtility/JUTFont/asm/drawString_size_scale.s b/include/JSystem/JUtility/JUTFont/asm/drawString_size_scale.s new file mode 100644 index 0000000000..9d63bc1624 --- /dev/null +++ b/include/JSystem/JUtility/JUTFont/asm/drawString_size_scale.s @@ -0,0 +1,75 @@ +/* 802DEE28 002DBD68 94 21 FF 90 */ stwu r1, -0x70(r1) +/* 802DEE2C 002DBD6C 7C 08 02 A6 */ mflr r0 +/* 802DEE30 002DBD70 90 01 00 74 */ stw r0, 0x74(r1) +/* 802DEE34 002DBD74 DB E1 00 60 */ stfd f31, 0x60(r1) +/* 802DEE38 002DBD78 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 +/* 802DEE3C 002DBD7C DB C1 00 50 */ stfd f30, 0x50(r1) +/* 802DEE40 002DBD80 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 +/* 802DEE44 002DBD84 DB A1 00 40 */ stfd f29, 0x40(r1) +/* 802DEE48 002DBD88 F3 A1 00 48 */ psq_st f29, 72(r1), 0, 0 +/* 802DEE4C 002DBD8C DB 81 00 30 */ stfd f28, 0x30(r1) +/* 802DEE50 002DBD90 F3 81 00 38 */ psq_st f28, 56(r1), 0, 0 +/* 802DEE54 002DBD94 DB 61 00 20 */ stfd f27, 0x20(r1) +/* 802DEE58 002DBD98 F3 61 00 28 */ psq_st f27, 40(r1), 0, 0 +/* 802DEE5C 002DBD9C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DEE60 002DBDA0 48 08 33 75 */ bl _savegpr_27 +/* 802DEE64 002DBDA4 7C 7B 1B 78 */ mr r27, r3 +/* 802DEE68 002DBDA8 FF 60 08 90 */ fmr f27, f1 +/* 802DEE6C 002DBDAC FF 80 10 90 */ fmr f28, f2 +/* 802DEE70 002DBDB0 FF A0 18 90 */ fmr f29, f3 +/* 802DEE74 002DBDB4 FF C0 20 90 */ fmr f30, f4 +/* 802DEE78 002DBDB8 7C 9C 23 78 */ mr r28, r4 +/* 802DEE7C 002DBDBC 7C BD 2B 78 */ mr r29, r5 +/* 802DEE80 002DBDC0 7C DE 33 78 */ mr r30, r6 +/* 802DEE84 002DBDC4 FF E0 D8 90 */ fmr f31, f27 +/* 802DEE88 002DBDC8 48 00 00 74 */ b lbl_802DEEFC +lbl_802DEE8C: +/* 802DEE8C 002DBDCC 88 9C 00 00 */ lbz r4, 0(r28) +/* 802DEE90 002DBDD0 7C 9F 23 78 */ mr r31, r4 +/* 802DEE94 002DBDD4 7F 63 DB 78 */ mr r3, r27 +/* 802DEE98 002DBDD8 81 9B 00 00 */ lwz r12, 0(r27) +/* 802DEE9C 002DBDDC 81 8C 00 40 */ lwz r12, 0x40(r12) +/* 802DEEA0 002DBDE0 7D 89 03 A6 */ mtctr r12 +/* 802DEEA4 002DBDE4 4E 80 04 21 */ bctrl +/* 802DEEA8 002DBDE8 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 802DEEAC 002DBDEC 41 82 00 14 */ beq lbl_802DEEC0 +/* 802DEEB0 002DBDF0 57 FF 40 2E */ slwi r31, r31, 8 +/* 802DEEB4 002DBDF4 8C 1C 00 01 */ lbzu r0, 1(r28) +/* 802DEEB8 002DBDF8 7F FF 03 78 */ or r31, r31, r0 +/* 802DEEBC 002DBDFC 3B BD FF FF */ addi r29, r29, -1 +lbl_802DEEC0: +/* 802DEEC0 002DBE00 7F 63 DB 78 */ mr r3, r27 +/* 802DEEC4 002DBE04 FC 20 D8 90 */ fmr f1, f27 +/* 802DEEC8 002DBE08 FC 40 E0 90 */ fmr f2, f28 +/* 802DEECC 002DBE0C FC 60 E8 90 */ fmr f3, f29 +/* 802DEED0 002DBE10 FC 80 F0 90 */ fmr f4, f30 +/* 802DEED4 002DBE14 7F E4 FB 78 */ mr r4, r31 +/* 802DEED8 002DBE18 7F C5 F3 78 */ mr r5, r30 +/* 802DEEDC 002DBE1C 81 9B 00 00 */ lwz r12, 0(r27) +/* 802DEEE0 002DBE20 81 8C 00 14 */ lwz r12, 0x14(r12) +/* 802DEEE4 002DBE24 7D 89 03 A6 */ mtctr r12 +/* 802DEEE8 002DBE28 4E 80 04 21 */ bctrl +/* 802DEEEC 002DBE2C EF 7B 08 2A */ fadds f27, f27, f1 +/* 802DEEF0 002DBE30 3B C0 00 01 */ li r30, 1 +/* 802DEEF4 002DBE34 3B BD FF FF */ addi r29, r29, -1 +/* 802DEEF8 002DBE38 3B 9C 00 01 */ addi r28, r28, 1 +lbl_802DEEFC: +/* 802DEEFC 002DBE3C 28 1D 00 00 */ cmplwi r29, 0 +/* 802DEF00 002DBE40 40 82 FF 8C */ bne lbl_802DEE8C +/* 802DEF04 002DBE44 EC 3B F8 28 */ fsubs f1, f27, f31 +/* 802DEF08 002DBE48 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 +/* 802DEF0C 002DBE4C CB E1 00 60 */ lfd f31, 0x60(r1) +/* 802DEF10 002DBE50 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 +/* 802DEF14 002DBE54 CB C1 00 50 */ lfd f30, 0x50(r1) +/* 802DEF18 002DBE58 E3 A1 00 48 */ psq_l f29, 72(r1), 0, 0 +/* 802DEF1C 002DBE5C CB A1 00 40 */ lfd f29, 0x40(r1) +/* 802DEF20 002DBE60 E3 81 00 38 */ psq_l f28, 56(r1), 0, 0 +/* 802DEF24 002DBE64 CB 81 00 30 */ lfd f28, 0x30(r1) +/* 802DEF28 002DBE68 E3 61 00 28 */ psq_l f27, 40(r1), 0, 0 +/* 802DEF2C 002DBE6C CB 61 00 20 */ lfd f27, 0x20(r1) +/* 802DEF30 002DBE70 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DEF34 002DBE74 48 08 32 ED */ bl _restgpr_27 +/* 802DEF38 002DBE78 80 01 00 74 */ lwz r0, 0x74(r1) +/* 802DEF3C 002DBE7C 7C 08 03 A6 */ mtlr r0 +/* 802DEF40 002DBE80 38 21 00 70 */ addi r1, r1, 0x70 +/* 802DEF44 002DBE84 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/JUTResFont.h b/include/JSystem/JUtility/JUTResFont.h new file mode 100644 index 0000000000..6721221db8 --- /dev/null +++ b/include/JSystem/JUtility/JUTResFont.h @@ -0,0 +1,58 @@ +#ifndef JSYSTEM_JUTILITY_JUT_RES_FONT +#define JSYSTEM_JUTILITY_JUT_RES_FONT + +#include "JSystem/JUtility/JUTFont/JUTFont.h" +#include "JSystem/JKernel/JKRHeap/JKRHeap.h" + +class JUTResFont : JUTFont { +public: + JUTResFont(); + JUTResFont(ResFONT font, JKRHeap* heap); + ~JUTResFont(); + + struct Unknown { + struct Unknown2 { + u32 filler0; + u32 filler4; + u32 filler8; + u16 unkC; + u16 unkE; + }; + Unknown2* unk0; + }; + + virtual void setGX(); + virtual void setGX(TColor col1, TColor col2); + virtual void drawChar_scale(float a1, float a2, float a3, float a4, int a5, bool a6); + virtual void getWidthEntry(s32 i_no, TWidth* width); + virtual u32 getCellWidth(); + virtual u32 getCellHeight(); + virtual bool isLeadByte(s32 a1); + + virtual void loadImage(s32 a1, u32 a2); + virtual void setBlock(); + + void deleteMemBlocks_ResFont(); + void initialize_state(); + bool initiate(ResFONT font, JKRHeap* heap); + bool protected_initiate(ResFONT font, JKRHeap* heap); + u32 countBlock(); + void loadFont(s32 a1, u32 a2, TWidth* a3); + u32 getFontCode(s32 a1); + s32 convertSjis(s32 a1, u16* a2); + + u32 unk20; + u8 filler24[0x20]; + u32 unk44; + u32 unk48; + u32 filler4C; + JKRHeap* unk50; + u32 unk54; + Unknown* unk58; + u32 unk5C; + u8 filler60[0xC]; + bool (**unk6C)(s32 a1); +}; + + +#endif // JSYSTEM_JUTILITY_JUT_RES_FONT diff --git a/include/JSystem/JUtility/asm/JUTResFont__convertSjis.s b/include/JSystem/JUtility/asm/JUTResFont__convertSjis.s new file mode 100644 index 0000000000..82c67638a9 --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__convertSjis.s @@ -0,0 +1,38 @@ +/* 802E00C4 002DD004 54 86 C6 3E */ rlwinm r6, r4, 0x18, 0x18, 0x1f +/* 802E00C8 002DD008 54 83 06 3E */ clrlwi r3, r4, 0x18 +/* 802E00CC 002DD00C 38 E3 FF C0 */ addi r7, r3, -64 +/* 802E00D0 002DD010 2C 07 00 40 */ cmpwi r7, 0x40 +/* 802E00D4 002DD014 41 80 00 08 */ blt lbl_802E00DC +/* 802E00D8 002DD018 38 E7 FF FF */ addi r7, r7, -1 +lbl_802E00DC: +/* 802E00DC 002DD01C 38 00 03 1C */ li r0, 0x31c +/* 802E00E0 002DD020 28 05 00 00 */ cmplwi r5, 0 +/* 802E00E4 002DD024 41 82 00 08 */ beq lbl_802E00EC +/* 802E00E8 002DD028 A0 05 00 00 */ lhz r0, 0(r5) +lbl_802E00EC: +/* 802E00EC 002DD02C 54 04 04 3E */ clrlwi r4, r0, 0x10 +/* 802E00F0 002DD030 38 06 FF 78 */ addi r0, r6, -136 +/* 802E00F4 002DD034 1C 60 00 BC */ mulli r3, r0, 0xbc +/* 802E00F8 002DD038 38 03 FF A2 */ addi r0, r3, -94 +/* 802E00FC 002DD03C 7C 60 22 14 */ add r3, r0, r4 +/* 802E0100 002DD040 7C 67 1A 14 */ add r3, r7, r3 +/* 802E0104 002DD044 4E 80 00 20 */ blr +/* 802E0108 002DD048 38 60 00 00 */ li r3, 0 +/* 802E010C 002DD04C 4E 80 00 20 */ blr +/* 802E0110 002DD050 38 60 00 01 */ li r3, 1 +/* 802E0114 002DD054 4E 80 00 20 */ blr +/* 802E0118 002DD058 38 00 00 00 */ li r0, 0 +/* 802E011C 002DD05C 2C 03 00 81 */ cmpwi r3, 0x81 +/* 802E0120 002DD060 41 80 00 0C */ blt lbl_802E012C +/* 802E0124 002DD064 2C 03 00 9F */ cmpwi r3, 0x9f +/* 802E0128 002DD068 40 81 00 14 */ ble lbl_802E013C +lbl_802E012C: +/* 802E012C 002DD06C 2C 03 00 E0 */ cmpwi r3, 0xe0 +/* 802E0130 002DD070 41 80 00 10 */ blt lbl_802E0140 +/* 802E0134 002DD074 2C 03 00 FC */ cmpwi r3, 0xfc +/* 802E0138 002DD078 41 81 00 08 */ bgt lbl_802E0140 +lbl_802E013C: +/* 802E013C 002DD07C 38 00 00 01 */ li r0, 1 +lbl_802E0140: +/* 802E0140 002DD080 7C 03 03 78 */ mr r3, r0 +/* 802E0144 002DD084 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JUtility/asm/JUTResFont__countBlock.s b/include/JSystem/JUtility/asm/JUTResFont__countBlock.s new file mode 100644 index 0000000000..f34c718bee --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__countBlock.s @@ -0,0 +1,71 @@ +/* 802DF248 002DC188 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DF24C 002DC18C 7C 08 02 A6 */ mflr r0 +/* 802DF250 002DC190 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DF254 002DC194 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DF258 002DC198 48 08 2F 81 */ bl _savegpr_28 +/* 802DF25C 002DC19C 7C 7C 1B 78 */ mr r28, r3 +/* 802DF260 002DC1A0 38 00 00 00 */ li r0, 0 +/* 802DF264 002DC1A4 B0 03 00 60 */ sth r0, 0x60(r3) +/* 802DF268 002DC1A8 B0 03 00 62 */ sth r0, 0x62(r3) +/* 802DF26C 002DC1AC B0 03 00 64 */ sth r0, 0x64(r3) +/* 802DF270 002DC1B0 80 63 00 48 */ lwz r3, 0x48(r3) +/* 802DF274 002DC1B4 3B C3 00 20 */ addi r30, r3, 0x20 +/* 802DF278 002DC1B8 3B A0 00 00 */ li r29, 0 +/* 802DF27C 002DC1BC 3C 60 4D 41 */ lis r3, 0x4D415031@ha +/* 802DF280 002DC1C0 3B E3 50 31 */ addi r31, r3, 0x4D415031@l +/* 802DF284 002DC1C4 48 00 00 98 */ b lbl_802DF31C +lbl_802DF288: +/* 802DF288 002DC1C8 80 9E 00 00 */ lwz r4, 0(r30) +/* 802DF28C 002DC1CC 7C 04 F8 00 */ cmpw r4, r31 +/* 802DF290 002DC1D0 41 82 00 64 */ beq lbl_802DF2F4 +/* 802DF294 002DC1D4 40 80 00 2C */ bge lbl_802DF2C0 +/* 802DF298 002DC1D8 3C 60 49 4E */ lis r3, 0x494E4631@ha +/* 802DF29C 002DC1DC 38 03 46 31 */ addi r0, r3, 0x494E4631@l +/* 802DF2A0 002DC1E0 7C 04 00 00 */ cmpw r4, r0 +/* 802DF2A4 002DC1E4 41 82 00 6C */ beq lbl_802DF310 +/* 802DF2A8 002DC1E8 40 80 00 5C */ bge lbl_802DF304 +/* 802DF2AC 002DC1EC 3C 60 47 4C */ lis r3, 0x474C5931@ha +/* 802DF2B0 002DC1F0 38 03 59 31 */ addi r0, r3, 0x474C5931@l +/* 802DF2B4 002DC1F4 7C 04 00 00 */ cmpw r4, r0 +/* 802DF2B8 002DC1F8 41 82 00 2C */ beq lbl_802DF2E4 +/* 802DF2BC 002DC1FC 48 00 00 48 */ b lbl_802DF304 +lbl_802DF2C0: +/* 802DF2C0 002DC200 3C 60 57 49 */ lis r3, 0x57494431@ha +/* 802DF2C4 002DC204 38 03 44 31 */ addi r0, r3, 0x57494431@l +/* 802DF2C8 002DC208 7C 04 00 00 */ cmpw r4, r0 +/* 802DF2CC 002DC20C 41 82 00 08 */ beq lbl_802DF2D4 +/* 802DF2D0 002DC210 48 00 00 34 */ b lbl_802DF304 +lbl_802DF2D4: +/* 802DF2D4 002DC214 A0 7C 00 60 */ lhz r3, 0x60(r28) +/* 802DF2D8 002DC218 38 03 00 01 */ addi r0, r3, 1 +/* 802DF2DC 002DC21C B0 1C 00 60 */ sth r0, 0x60(r28) +/* 802DF2E0 002DC220 48 00 00 30 */ b lbl_802DF310 +lbl_802DF2E4: +/* 802DF2E4 002DC224 A0 7C 00 62 */ lhz r3, 0x62(r28) +/* 802DF2E8 002DC228 38 03 00 01 */ addi r0, r3, 1 +/* 802DF2EC 002DC22C B0 1C 00 62 */ sth r0, 0x62(r28) +/* 802DF2F0 002DC230 48 00 00 20 */ b lbl_802DF310 +lbl_802DF2F4: +/* 802DF2F4 002DC234 A0 7C 00 64 */ lhz r3, 0x64(r28) +/* 802DF2F8 002DC238 38 03 00 01 */ addi r0, r3, 1 +/* 802DF2FC 002DC23C B0 1C 00 64 */ sth r0, 0x64(r28) +/* 802DF300 002DC240 48 00 00 10 */ b lbl_802DF310 +lbl_802DF304: +/* 802DF304 002DC244 3C 60 80 3A */ lis r3, lbl_8039D45C@ha +/* 802DF308 002DC248 38 63 D4 5C */ addi r3, r3, lbl_8039D45C@l +/* 802DF30C 002DC24C 48 00 93 3D */ bl JUTReportConsole +lbl_802DF310: +/* 802DF310 002DC250 80 1E 00 04 */ lwz r0, 4(r30) +/* 802DF314 002DC254 7F DE 02 14 */ add r30, r30, r0 +/* 802DF318 002DC258 3B BD 00 01 */ addi r29, r29, 1 +lbl_802DF31C: +/* 802DF31C 002DC25C 80 7C 00 48 */ lwz r3, 0x48(r28) +/* 802DF320 002DC260 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802DF324 002DC264 7C 1D 00 40 */ cmplw r29, r0 +/* 802DF328 002DC268 41 80 FF 60 */ blt lbl_802DF288 +/* 802DF32C 002DC26C 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DF330 002DC270 48 08 2E F5 */ bl _restgpr_28 +/* 802DF334 002DC274 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DF338 002DC278 7C 08 03 A6 */ mtlr r0 +/* 802DF33C 002DC27C 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DF340 002DC280 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/asm/JUTResFont__drawChar_scale.s b/include/JSystem/JUtility/asm/JUTResFont__drawChar_scale.s new file mode 100644 index 0000000000..12e2cc5c56 --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__drawChar_scale.s @@ -0,0 +1,270 @@ +/* 802DF7C4 002DC704 94 21 FF 50 */ stwu r1, -0xb0(r1) +/* 802DF7C8 002DC708 7C 08 02 A6 */ mflr r0 +/* 802DF7CC 002DC70C 90 01 00 B4 */ stw r0, 0xb4(r1) +/* 802DF7D0 002DC710 DB E1 00 A0 */ stfd f31, 0xa0(r1) +/* 802DF7D4 002DC714 F3 E1 00 A8 */ psq_st f31, 168(r1), 0, 0 +/* 802DF7D8 002DC718 DB C1 00 90 */ stfd f30, 0x90(r1) +/* 802DF7DC 002DC71C F3 C1 00 98 */ psq_st f30, 152(r1), 0, 0 +/* 802DF7E0 002DC720 DB A1 00 80 */ stfd f29, 0x80(r1) +/* 802DF7E4 002DC724 F3 A1 00 88 */ psq_st f29, 136(r1), 0, 0 +/* 802DF7E8 002DC728 DB 81 00 70 */ stfd f28, 0x70(r1) +/* 802DF7EC 002DC72C F3 81 00 78 */ psq_st f28, 120(r1), 0, 0 +/* 802DF7F0 002DC730 DB 61 00 60 */ stfd f27, 0x60(r1) +/* 802DF7F4 002DC734 F3 61 00 68 */ psq_st f27, 104(r1), 0, 0 +/* 802DF7F8 002DC738 DB 41 00 50 */ stfd f26, 0x50(r1) +/* 802DF7FC 002DC73C F3 41 00 58 */ psq_st f26, 88(r1), 0, 0 +/* 802DF800 002DC740 39 61 00 50 */ addi r11, r1, 0x50 +/* 802DF804 002DC744 48 08 29 D1 */ bl _savegpr_27 +/* 802DF808 002DC748 7C 7E 1B 78 */ mr r30, r3 +/* 802DF80C 002DC74C FF 40 08 90 */ fmr f26, f1 +/* 802DF810 002DC750 FF 60 10 90 */ fmr f27, f2 +/* 802DF814 002DC754 FF C0 18 90 */ fmr f30, f3 +/* 802DF818 002DC758 FF 80 20 90 */ fmr f28, f4 +/* 802DF81C 002DC75C 7C BB 2B 78 */ mr r27, r5 +/* 802DF820 002DC760 38 A0 00 00 */ li r5, 0 +/* 802DF824 002DC764 38 C1 00 08 */ addi r6, r1, 8 +/* 802DF828 002DC768 48 00 03 C1 */ bl loadFont__10JUTResFontFlUlPQ27JUTFont6TWidth +/* 802DF82C 002DC76C 88 1E 00 05 */ lbz r0, 5(r30) +/* 802DF830 002DC770 28 00 00 00 */ cmplwi r0, 0 +/* 802DF834 002DC774 40 82 00 0C */ bne lbl_802DF840 +/* 802DF838 002DC778 57 60 06 3F */ clrlwi. r0, r27, 0x18 +/* 802DF83C 002DC77C 40 82 00 0C */ bne lbl_802DF848 +lbl_802DF840: +/* 802DF840 002DC780 FF E0 D0 90 */ fmr f31, f26 +/* 802DF844 002DC784 48 00 00 58 */ b lbl_802DF89C +lbl_802DF848: +/* 802DF848 002DC788 7F C3 F3 78 */ mr r3, r30 +/* 802DF84C 002DC78C 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DF850 002DC790 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802DF854 002DC794 7D 89 03 A6 */ mtctr r12 +/* 802DF858 002DC798 4E 80 04 21 */ bctrl +/* 802DF85C 002DC79C C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DF860 002DC7A0 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DF864 002DC7A4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DF868 002DC7A8 3C 60 43 30 */ lis r3, 0x4330 +/* 802DF86C 002DC7AC 90 61 00 10 */ stw r3, 0x10(r1) +/* 802DF870 002DC7B0 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 802DF874 002DC7B4 EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DF878 002DC7B8 EC 5E 00 24 */ fdivs f2, f30, f0 +/* 802DF87C 002DC7BC 88 01 00 08 */ lbz r0, 8(r1) +/* 802DF880 002DC7C0 C8 22 C6 00 */ lfd f1, lbl_80456000-_SDA2_BASE_(r2) +/* 802DF884 002DC7C4 90 01 00 1C */ stw r0, 0x1c(r1) +/* 802DF888 002DC7C8 90 61 00 18 */ stw r3, 0x18(r1) +/* 802DF88C 002DC7CC C8 01 00 18 */ lfd f0, 0x18(r1) +/* 802DF890 002DC7D0 EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DF894 002DC7D4 EC 00 00 B2 */ fmuls f0, f0, f2 +/* 802DF898 002DC7D8 EF FA 00 28 */ fsubs f31, f26, f0 +lbl_802DF89C: +/* 802DF89C 002DC7DC 7F C3 F3 78 */ mr r3, r30 +/* 802DF8A0 002DC7E0 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DF8A4 002DC7E4 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802DF8A8 002DC7E8 7D 89 03 A6 */ mtctr r12 +/* 802DF8AC 002DC7EC 4E 80 04 21 */ bctrl +/* 802DF8B0 002DC7F0 C8 42 C5 F8 */ lfd f2, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DF8B4 002DC7F4 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DF8B8 002DC7F8 90 01 00 1C */ stw r0, 0x1c(r1) +/* 802DF8BC 002DC7FC 3C 60 43 30 */ lis r3, 0x4330 +/* 802DF8C0 002DC800 90 61 00 18 */ stw r3, 0x18(r1) +/* 802DF8C4 002DC804 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 802DF8C8 002DC808 EC 00 10 28 */ fsubs f0, f0, f2 +/* 802DF8CC 002DC80C EC 3E 00 24 */ fdivs f1, f30, f0 +/* 802DF8D0 002DC810 80 1E 00 08 */ lwz r0, 8(r30) +/* 802DF8D4 002DC814 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 802DF8D8 002DC818 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DF8DC 002DC81C 90 61 00 10 */ stw r3, 0x10(r1) +/* 802DF8E0 002DC820 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 802DF8E4 002DC824 EC 00 10 28 */ fsubs f0, f0, f2 +/* 802DF8E8 002DC828 EF A0 00 72 */ fmuls f29, f0, f1 +/* 802DF8EC 002DC82C 88 1E 00 05 */ lbz r0, 5(r30) +/* 802DF8F0 002DC830 28 00 00 00 */ cmplwi r0, 0 +/* 802DF8F4 002DC834 40 82 00 B8 */ bne lbl_802DF9AC +/* 802DF8F8 002DC838 57 60 06 3F */ clrlwi. r0, r27, 0x18 +/* 802DF8FC 002DC83C 40 82 00 60 */ bne lbl_802DF95C +/* 802DF900 002DC840 7F C3 F3 78 */ mr r3, r30 +/* 802DF904 002DC844 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DF908 002DC848 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802DF90C 002DC84C 7D 89 03 A6 */ mtctr r12 +/* 802DF910 002DC850 4E 80 04 21 */ bctrl +/* 802DF914 002DC854 C8 42 C5 F8 */ lfd f2, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DF918 002DC858 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DF91C 002DC85C 90 01 00 1C */ stw r0, 0x1c(r1) +/* 802DF920 002DC860 3C 80 43 30 */ lis r4, 0x4330 +/* 802DF924 002DC864 90 81 00 18 */ stw r4, 0x18(r1) +/* 802DF928 002DC868 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 802DF92C 002DC86C EC 00 10 28 */ fsubs f0, f0, f2 +/* 802DF930 002DC870 EC 3E 00 24 */ fdivs f1, f30, f0 +/* 802DF934 002DC874 88 61 00 09 */ lbz r3, 9(r1) +/* 802DF938 002DC878 88 01 00 08 */ lbz r0, 8(r1) +/* 802DF93C 002DC87C 7C 03 02 14 */ add r0, r3, r0 +/* 802DF940 002DC880 6C 00 80 00 */ xoris r0, r0, 0x8000 +/* 802DF944 002DC884 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DF948 002DC888 90 81 00 10 */ stw r4, 0x10(r1) +/* 802DF94C 002DC88C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 802DF950 002DC890 EC 00 10 28 */ fsubs f0, f0, f2 +/* 802DF954 002DC894 EF A0 00 72 */ fmuls f29, f0, f1 +/* 802DF958 002DC898 48 00 00 54 */ b lbl_802DF9AC +lbl_802DF95C: +/* 802DF95C 002DC89C 7F C3 F3 78 */ mr r3, r30 +/* 802DF960 002DC8A0 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DF964 002DC8A4 81 8C 00 30 */ lwz r12, 0x30(r12) +/* 802DF968 002DC8A8 7D 89 03 A6 */ mtctr r12 +/* 802DF96C 002DC8AC 4E 80 04 21 */ bctrl +/* 802DF970 002DC8B0 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DF974 002DC8B4 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DF978 002DC8B8 90 01 00 1C */ stw r0, 0x1c(r1) +/* 802DF97C 002DC8BC 3C 60 43 30 */ lis r3, 0x4330 +/* 802DF980 002DC8C0 90 61 00 18 */ stw r3, 0x18(r1) +/* 802DF984 002DC8C4 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 802DF988 002DC8C8 EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DF98C 002DC8CC EC 5E 00 24 */ fdivs f2, f30, f0 +/* 802DF990 002DC8D0 88 01 00 09 */ lbz r0, 9(r1) +/* 802DF994 002DC8D4 C8 22 C6 00 */ lfd f1, lbl_80456000-_SDA2_BASE_(r2) +/* 802DF998 002DC8D8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DF99C 002DC8DC 90 61 00 10 */ stw r3, 0x10(r1) +/* 802DF9A0 002DC8E0 C8 01 00 10 */ lfd f0, 0x10(r1) +/* 802DF9A4 002DC8E4 EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DF9A8 002DC8E8 EF A0 00 B2 */ fmuls f29, f0, f2 +lbl_802DF9AC: +/* 802DF9AC 002DC8EC EF DF F0 2A */ fadds f30, f31, f30 +/* 802DF9B0 002DC8F0 7F C3 F3 78 */ mr r3, r30 +/* 802DF9B4 002DC8F4 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DF9B8 002DC8F8 81 8C 00 24 */ lwz r12, 0x24(r12) +/* 802DF9BC 002DC8FC 7D 89 03 A6 */ mtctr r12 +/* 802DF9C0 002DC900 4E 80 04 21 */ bctrl +/* 802DF9C4 002DC904 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DF9C8 002DC908 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DF9CC 002DC90C 90 01 00 1C */ stw r0, 0x1c(r1) +/* 802DF9D0 002DC910 3C 00 43 30 */ lis r0, 0x4330 +/* 802DF9D4 002DC914 90 01 00 18 */ stw r0, 0x18(r1) +/* 802DF9D8 002DC918 C8 01 00 18 */ lfd f0, 0x18(r1) +/* 802DF9DC 002DC91C EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DF9E0 002DC920 EF 5C 00 24 */ fdivs f26, f28, f0 +/* 802DF9E4 002DC924 7F C3 F3 78 */ mr r3, r30 +/* 802DF9E8 002DC928 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DF9EC 002DC92C 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 802DF9F0 002DC930 7D 89 03 A6 */ mtctr r12 +/* 802DF9F4 002DC934 4E 80 04 21 */ bctrl +/* 802DF9F8 002DC938 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DF9FC 002DC93C 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DFA00 002DC940 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DFA04 002DC944 3C 00 43 30 */ lis r0, 0x4330 +/* 802DFA08 002DC948 90 01 00 10 */ stw r0, 0x10(r1) +/* 802DFA0C 002DC94C C8 01 00 10 */ lfd f0, 0x10(r1) +/* 802DFA10 002DC950 EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DFA14 002DC954 EC 00 06 B2 */ fmuls f0, f0, f26 +/* 802DFA18 002DC958 EF 5B 00 28 */ fsubs f26, f27, f0 +/* 802DFA1C 002DC95C 7F C3 F3 78 */ mr r3, r30 +/* 802DFA20 002DC960 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DFA24 002DC964 81 8C 00 24 */ lwz r12, 0x24(r12) +/* 802DFA28 002DC968 7D 89 03 A6 */ mtctr r12 +/* 802DFA2C 002DC96C 4E 80 04 21 */ bctrl +/* 802DFA30 002DC970 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DFA34 002DC974 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DFA38 002DC978 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DFA3C 002DC97C 3C 00 43 30 */ lis r0, 0x4330 +/* 802DFA40 002DC980 90 01 00 20 */ stw r0, 0x20(r1) +/* 802DFA44 002DC984 C8 01 00 20 */ lfd f0, 0x20(r1) +/* 802DFA48 002DC988 EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DFA4C 002DC98C EF 9C 00 24 */ fdivs f28, f28, f0 +/* 802DFA50 002DC990 7F C3 F3 78 */ mr r3, r30 +/* 802DFA54 002DC994 81 9E 00 00 */ lwz r12, 0(r30) +/* 802DFA58 002DC998 81 8C 00 20 */ lwz r12, 0x20(r12) +/* 802DFA5C 002DC99C 7D 89 03 A6 */ mtctr r12 +/* 802DFA60 002DC9A0 4E 80 04 21 */ bctrl +/* 802DFA64 002DC9A4 C8 22 C5 F8 */ lfd f1, lbl_80455FF8-_SDA2_BASE_(r2) +/* 802DFA68 002DC9A8 6C 60 80 00 */ xoris r0, r3, 0x8000 +/* 802DFA6C 002DC9AC 90 01 00 2C */ stw r0, 0x2c(r1) +/* 802DFA70 002DC9B0 3C 00 43 30 */ lis r0, 0x4330 +/* 802DFA74 002DC9B4 90 01 00 28 */ stw r0, 0x28(r1) +/* 802DFA78 002DC9B8 C8 01 00 28 */ lfd f0, 0x28(r1) +/* 802DFA7C 002DC9BC EC 00 08 28 */ fsubs f0, f0, f1 +/* 802DFA80 002DC9C0 EC 00 07 32 */ fmuls f0, f0, f28 +/* 802DFA84 002DC9C4 EF 7B 00 2A */ fadds f27, f27, f0 +/* 802DFA88 002DC9C8 80 BE 00 1C */ lwz r5, 0x1c(r30) +/* 802DFA8C 002DC9CC 54 A4 78 20 */ slwi r4, r5, 0xf +/* 802DFA90 002DC9D0 80 7E 00 58 */ lwz r3, 0x58(r30) +/* 802DFA94 002DC9D4 A0 1E 00 66 */ lhz r0, 0x66(r30) +/* 802DFA98 002DC9D8 54 00 10 3A */ slwi r0, r0, 2 +/* 802DFA9C 002DC9DC 7C 63 00 2E */ lwzx r3, r3, r0 +/* 802DFAA0 002DC9E0 A0 C3 00 1A */ lhz r6, 0x1a(r3) +/* 802DFAA4 002DC9E4 7F E4 33 D6 */ divw r31, r4, r6 +/* 802DFAA8 002DC9E8 80 9E 00 20 */ lwz r4, 0x20(r30) +/* 802DFAAC 002DC9EC 54 80 78 20 */ slwi r0, r4, 0xf +/* 802DFAB0 002DC9F0 A0 E3 00 1C */ lhz r7, 0x1c(r3) +/* 802DFAB4 002DC9F4 7F A0 3B D6 */ divw r29, r0, r7 +/* 802DFAB8 002DC9F8 A0 03 00 0C */ lhz r0, 0xc(r3) +/* 802DFABC 002DC9FC 7C 05 02 14 */ add r0, r5, r0 +/* 802DFAC0 002DCA00 54 00 78 20 */ slwi r0, r0, 0xf +/* 802DFAC4 002DCA04 7F 80 33 D6 */ divw r28, r0, r6 +/* 802DFAC8 002DCA08 A0 03 00 0E */ lhz r0, 0xe(r3) +/* 802DFACC 002DCA0C 7C 04 02 14 */ add r0, r4, r0 +/* 802DFAD0 002DCA10 54 00 78 20 */ slwi r0, r0, 0xf +/* 802DFAD4 002DCA14 7F 60 3B D6 */ divw r27, r0, r7 +/* 802DFAD8 002DCA18 38 60 00 00 */ li r3, 0 +/* 802DFADC 002DCA1C 38 80 00 09 */ li r4, 9 +/* 802DFAE0 002DCA20 38 A0 00 01 */ li r5, 1 +/* 802DFAE4 002DCA24 38 C0 00 04 */ li r6, 4 +/* 802DFAE8 002DCA28 38 E0 00 00 */ li r7, 0 +/* 802DFAEC 002DCA2C 48 07 BA D9 */ bl GXSetVtxAttrFmt +/* 802DFAF0 002DCA30 38 60 00 80 */ li r3, 0x80 +/* 802DFAF4 002DCA34 38 80 00 00 */ li r4, 0 +/* 802DFAF8 002DCA38 38 A0 00 04 */ li r5, 4 +/* 802DFAFC 002DCA3C 48 07 CC 69 */ bl GXBegin +/* 802DFB00 002DCA40 3C 60 CC 01 */ lis r3, 0xCC008000@ha +/* 802DFB04 002DCA44 D3 E3 80 00 */ stfs f31, 0xCC008000@l(r3) +/* 802DFB08 002DCA48 D3 43 80 00 */ stfs f26, -0x8000(r3) +/* 802DFB0C 002DCA4C C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) +/* 802DFB10 002DCA50 D0 03 80 00 */ stfs f0, -0x8000(r3) +/* 802DFB14 002DCA54 80 1E 00 0C */ lwz r0, 0xc(r30) +/* 802DFB18 002DCA58 90 03 80 00 */ stw r0, -0x8000(r3) +/* 802DFB1C 002DCA5C B3 E3 80 00 */ sth r31, -0x8000(r3) +/* 802DFB20 002DCA60 B3 A3 80 00 */ sth r29, -0x8000(r3) +/* 802DFB24 002DCA64 D3 C3 80 00 */ stfs f30, -0x8000(r3) +/* 802DFB28 002DCA68 D3 43 80 00 */ stfs f26, -0x8000(r3) +/* 802DFB2C 002DCA6C C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) +/* 802DFB30 002DCA70 D0 03 80 00 */ stfs f0, -0x8000(r3) +/* 802DFB34 002DCA74 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 802DFB38 002DCA78 90 03 80 00 */ stw r0, -0x8000(r3) +/* 802DFB3C 002DCA7C B3 83 80 00 */ sth r28, -0x8000(r3) +/* 802DFB40 002DCA80 B3 A3 80 00 */ sth r29, -0x8000(r3) +/* 802DFB44 002DCA84 D3 C3 80 00 */ stfs f30, -0x8000(r3) +/* 802DFB48 002DCA88 D3 63 80 00 */ stfs f27, -0x8000(r3) +/* 802DFB4C 002DCA8C C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) +/* 802DFB50 002DCA90 D0 03 80 00 */ stfs f0, -0x8000(r3) +/* 802DFB54 002DCA94 80 1E 00 18 */ lwz r0, 0x18(r30) +/* 802DFB58 002DCA98 90 03 80 00 */ stw r0, -0x8000(r3) +/* 802DFB5C 002DCA9C B3 83 80 00 */ sth r28, -0x8000(r3) +/* 802DFB60 002DCAA0 B3 63 80 00 */ sth r27, -0x8000(r3) +/* 802DFB64 002DCAA4 D3 E3 80 00 */ stfs f31, -0x8000(r3) +/* 802DFB68 002DCAA8 D3 63 80 00 */ stfs f27, -0x8000(r3) +/* 802DFB6C 002DCAAC C0 02 C5 F0 */ lfs f0, lbl_80455FF0-_SDA2_BASE_(r2) +/* 802DFB70 002DCAB0 D0 03 80 00 */ stfs f0, -0x8000(r3) +/* 802DFB74 002DCAB4 80 1E 00 14 */ lwz r0, 0x14(r30) +/* 802DFB78 002DCAB8 90 03 80 00 */ stw r0, -0x8000(r3) +/* 802DFB7C 002DCABC B3 E3 80 00 */ sth r31, -0x8000(r3) +/* 802DFB80 002DCAC0 B3 63 80 00 */ sth r27, -0x8000(r3) +/* 802DFB84 002DCAC4 38 60 00 00 */ li r3, 0 +/* 802DFB88 002DCAC8 38 80 00 09 */ li r4, 9 +/* 802DFB8C 002DCACC 38 A0 00 01 */ li r5, 1 +/* 802DFB90 002DCAD0 38 C0 00 03 */ li r6, 3 +/* 802DFB94 002DCAD4 38 E0 00 00 */ li r7, 0 +/* 802DFB98 002DCAD8 48 07 BA 2D */ bl GXSetVtxAttrFmt +/* 802DFB9C 002DCADC FC 20 E8 90 */ fmr f1, f29 +/* 802DFBA0 002DCAE0 E3 E1 00 A8 */ psq_l f31, 168(r1), 0, 0 +/* 802DFBA4 002DCAE4 CB E1 00 A0 */ lfd f31, 0xa0(r1) +/* 802DFBA8 002DCAE8 E3 C1 00 98 */ psq_l f30, 152(r1), 0, 0 +/* 802DFBAC 002DCAEC CB C1 00 90 */ lfd f30, 0x90(r1) +/* 802DFBB0 002DCAF0 E3 A1 00 88 */ psq_l f29, 136(r1), 0, 0 +/* 802DFBB4 002DCAF4 CB A1 00 80 */ lfd f29, 0x80(r1) +/* 802DFBB8 002DCAF8 E3 81 00 78 */ psq_l f28, 120(r1), 0, 0 +/* 802DFBBC 002DCAFC CB 81 00 70 */ lfd f28, 0x70(r1) +/* 802DFBC0 002DCB00 E3 61 00 68 */ psq_l f27, 104(r1), 0, 0 +/* 802DFBC4 002DCB04 CB 61 00 60 */ lfd f27, 0x60(r1) +/* 802DFBC8 002DCB08 E3 41 00 58 */ psq_l f26, 88(r1), 0, 0 +/* 802DFBCC 002DCB0C CB 41 00 50 */ lfd f26, 0x50(r1) +/* 802DFBD0 002DCB10 39 61 00 50 */ addi r11, r1, 0x50 +/* 802DFBD4 002DCB14 48 08 26 4D */ bl _restgpr_27 +/* 802DFBD8 002DCB18 80 01 00 B4 */ lwz r0, 0xb4(r1) +/* 802DFBDC 002DCB1C 7C 08 03 A6 */ mtlr r0 +/* 802DFBE0 002DCB20 38 21 00 B0 */ addi r1, r1, 0xb0 +/* 802DFBE4 002DCB24 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/asm/JUTResFont__getFontCode.s b/include/JSystem/JUtility/asm/JUTResFont__getFontCode.s new file mode 100644 index 0000000000..4a4eea0d6b --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__getFontCode.s @@ -0,0 +1,110 @@ +/* 802DFDD8 002DCD18 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DFDDC 002DCD1C 7C 08 02 A6 */ mflr r0 +/* 802DFDE0 002DCD20 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DFDE4 002DCD24 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DFDE8 002DCD28 48 08 23 F5 */ bl _savegpr_29 +/* 802DFDEC 002DCD2C 7C 7D 1B 78 */ mr r29, r3 +/* 802DFDF0 002DCD30 7C 9E 23 78 */ mr r30, r4 +/* 802DFDF4 002DCD34 80 83 00 4C */ lwz r4, 0x4c(r3) +/* 802DFDF8 002DCD38 A3 E4 00 12 */ lhz r31, 0x12(r4) +/* 802DFDFC 002DCD3C 81 83 00 00 */ lwz r12, 0(r3) +/* 802DFE00 002DCD40 81 8C 00 38 */ lwz r12, 0x38(r12) +/* 802DFE04 002DCD44 7D 89 03 A6 */ mtctr r12 +/* 802DFE08 002DCD48 4E 80 04 21 */ bctrl +/* 802DFE0C 002DCD4C 2C 03 00 02 */ cmpwi r3, 2 +/* 802DFE10 002DCD50 40 82 00 34 */ bne lbl_802DFE44 +/* 802DFE14 002DCD54 A0 1D 00 68 */ lhz r0, 0x68(r29) +/* 802DFE18 002DCD58 28 00 80 00 */ cmplwi r0, 0x8000 +/* 802DFE1C 002DCD5C 41 80 00 28 */ blt lbl_802DFE44 +/* 802DFE20 002DCD60 2C 1E 00 20 */ cmpwi r30, 0x20 +/* 802DFE24 002DCD64 41 80 00 20 */ blt lbl_802DFE44 +/* 802DFE28 002DCD68 28 1E 00 7F */ cmplwi r30, 0x7f +/* 802DFE2C 002DCD6C 40 80 00 18 */ bge lbl_802DFE44 +/* 802DFE30 002DCD70 3C 60 80 3A */ lis r3, lbl_8039D39C@ha +/* 802DFE34 002DCD74 38 63 D3 9C */ addi r3, r3, lbl_8039D39C@l +/* 802DFE38 002DCD78 57 C0 08 3C */ slwi r0, r30, 1 +/* 802DFE3C 002DCD7C 7C 63 02 14 */ add r3, r3, r0 +/* 802DFE40 002DCD80 A3 C3 FF C0 */ lhz r30, -0x40(r3) +lbl_802DFE44: +/* 802DFE44 002DCD84 38 60 00 00 */ li r3, 0 +/* 802DFE48 002DCD88 A0 1D 00 64 */ lhz r0, 0x64(r29) +/* 802DFE4C 002DCD8C 80 9D 00 5C */ lwz r4, 0x5c(r29) +/* 802DFE50 002DCD90 7C 09 03 A6 */ mtctr r0 +/* 802DFE54 002DCD94 2C 00 00 00 */ cmpwi r0, 0 +/* 802DFE58 002DCD98 40 81 00 EC */ ble lbl_802DFF44 +lbl_802DFE5C: +/* 802DFE5C 002DCD9C 7C C4 18 2E */ lwzx r6, r4, r3 +/* 802DFE60 002DCDA0 A0 A6 00 0A */ lhz r5, 0xa(r6) +/* 802DFE64 002DCDA4 7C 05 F0 00 */ cmpw r5, r30 +/* 802DFE68 002DCDA8 41 81 00 D4 */ bgt lbl_802DFF3C +/* 802DFE6C 002DCDAC A0 06 00 0C */ lhz r0, 0xc(r6) +/* 802DFE70 002DCDB0 7C 1E 00 00 */ cmpw r30, r0 +/* 802DFE74 002DCDB4 41 81 00 C8 */ bgt lbl_802DFF3C +/* 802DFE78 002DCDB8 A0 06 00 08 */ lhz r0, 8(r6) +/* 802DFE7C 002DCDBC 28 00 00 00 */ cmplwi r0, 0 +/* 802DFE80 002DCDC0 40 82 00 0C */ bne lbl_802DFE8C +/* 802DFE84 002DCDC4 7F E5 F0 50 */ subf r31, r5, r30 +/* 802DFE88 002DCDC8 48 00 00 BC */ b lbl_802DFF44 +lbl_802DFE8C: +/* 802DFE8C 002DCDCC 28 00 00 02 */ cmplwi r0, 2 +/* 802DFE90 002DCDD0 40 82 00 18 */ bne lbl_802DFEA8 +/* 802DFE94 002DCDD4 7C 05 F0 50 */ subf r0, r5, r30 +/* 802DFE98 002DCDD8 54 00 08 3C */ slwi r0, r0, 1 +/* 802DFE9C 002DCDDC 7C 66 02 14 */ add r3, r6, r0 +/* 802DFEA0 002DCDE0 A3 E3 00 10 */ lhz r31, 0x10(r3) +/* 802DFEA4 002DCDE4 48 00 00 A0 */ b lbl_802DFF44 +lbl_802DFEA8: +/* 802DFEA8 002DCDE8 28 00 00 03 */ cmplwi r0, 3 +/* 802DFEAC 002DCDEC 40 82 00 60 */ bne lbl_802DFF0C +/* 802DFEB0 002DCDF0 38 86 00 10 */ addi r4, r6, 0x10 +/* 802DFEB4 002DCDF4 38 A0 00 00 */ li r5, 0 +/* 802DFEB8 002DCDF8 A0 66 00 0E */ lhz r3, 0xe(r6) +/* 802DFEBC 002DCDFC 38 C3 FF FF */ addi r6, r3, -1 +/* 802DFEC0 002DCE00 48 00 00 40 */ b lbl_802DFF00 +lbl_802DFEC4: +/* 802DFEC4 002DCE04 7C 06 2A 14 */ add r0, r6, r5 +/* 802DFEC8 002DCE08 7C 00 0E 70 */ srawi r0, r0, 1 +/* 802DFECC 002DCE0C 7C E0 01 94 */ addze r7, r0 +/* 802DFED0 002DCE10 54 E3 10 3A */ slwi r3, r7, 2 +/* 802DFED4 002DCE14 7C 04 1A 2E */ lhzx r0, r4, r3 +/* 802DFED8 002DCE18 7C 1E 00 00 */ cmpw r30, r0 +/* 802DFEDC 002DCE1C 40 80 00 0C */ bge lbl_802DFEE8 +/* 802DFEE0 002DCE20 38 C7 FF FF */ addi r6, r7, -1 +/* 802DFEE4 002DCE24 48 00 00 1C */ b lbl_802DFF00 +lbl_802DFEE8: +/* 802DFEE8 002DCE28 40 81 00 0C */ ble lbl_802DFEF4 +/* 802DFEEC 002DCE2C 38 A7 00 01 */ addi r5, r7, 1 +/* 802DFEF0 002DCE30 48 00 00 10 */ b lbl_802DFF00 +lbl_802DFEF4: +/* 802DFEF4 002DCE34 7C 64 1A 14 */ add r3, r4, r3 +/* 802DFEF8 002DCE38 A3 E3 00 02 */ lhz r31, 2(r3) +/* 802DFEFC 002DCE3C 48 00 00 48 */ b lbl_802DFF44 +lbl_802DFF00: +/* 802DFF00 002DCE40 7C 06 28 00 */ cmpw r6, r5 +/* 802DFF04 002DCE44 40 80 FF C0 */ bge lbl_802DFEC4 +/* 802DFF08 002DCE48 48 00 00 3C */ b lbl_802DFF44 +lbl_802DFF0C: +/* 802DFF0C 002DCE4C 28 00 00 01 */ cmplwi r0, 1 +/* 802DFF10 002DCE50 40 82 00 34 */ bne lbl_802DFF44 +/* 802DFF14 002DCE54 38 A0 00 00 */ li r5, 0 +/* 802DFF18 002DCE58 A0 06 00 0E */ lhz r0, 0xe(r6) +/* 802DFF1C 002DCE5C 28 00 00 01 */ cmplwi r0, 1 +/* 802DFF20 002DCE60 40 82 00 08 */ bne lbl_802DFF28 +/* 802DFF24 002DCE64 38 A6 00 10 */ addi r5, r6, 0x10 +lbl_802DFF28: +/* 802DFF28 002DCE68 7F A3 EB 78 */ mr r3, r29 +/* 802DFF2C 002DCE6C 7F C4 F3 78 */ mr r4, r30 +/* 802DFF30 002DCE70 48 00 01 95 */ bl convertSjis__10JUTResFontFlPUs +/* 802DFF34 002DCE74 7C 7F 1B 78 */ mr r31, r3 +/* 802DFF38 002DCE78 48 00 00 0C */ b lbl_802DFF44 +lbl_802DFF3C: +/* 802DFF3C 002DCE7C 38 63 00 04 */ addi r3, r3, 4 +/* 802DFF40 002DCE80 42 00 FF 1C */ bdnz lbl_802DFE5C +lbl_802DFF44: +/* 802DFF44 002DCE84 7F E3 FB 78 */ mr r3, r31 +/* 802DFF48 002DCE88 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DFF4C 002DCE8C 48 08 22 DD */ bl _restgpr_29 +/* 802DFF50 002DCE90 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DFF54 002DCE94 7C 08 03 A6 */ mtlr r0 +/* 802DFF58 002DCE98 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DFF5C 002DCE9C 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/asm/JUTResFont__getWidthEntry.s b/include/JSystem/JUtility/asm/JUTResFont__getWidthEntry.s new file mode 100644 index 0000000000..66d3fb9843 --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__getWidthEntry.s @@ -0,0 +1,45 @@ +/* 802DFC64 002DCBA4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DFC68 002DCBA8 7C 08 02 A6 */ mflr r0 +/* 802DFC6C 002DCBAC 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DFC70 002DCBB0 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DFC74 002DCBB4 93 C1 00 08 */ stw r30, 8(r1) +/* 802DFC78 002DCBB8 7C 7E 1B 78 */ mr r30, r3 +/* 802DFC7C 002DCBBC 7C BF 2B 78 */ mr r31, r5 +/* 802DFC80 002DCBC0 48 00 01 59 */ bl getFontCode__10JUTResFontFl +/* 802DFC84 002DCBC4 38 A0 00 00 */ li r5, 0 +/* 802DFC88 002DCBC8 98 BF 00 00 */ stb r5, 0(r31) +/* 802DFC8C 002DCBCC 80 9E 00 4C */ lwz r4, 0x4c(r30) +/* 802DFC90 002DCBD0 A0 04 00 0E */ lhz r0, 0xe(r4) +/* 802DFC94 002DCBD4 98 1F 00 01 */ stb r0, 1(r31) +/* 802DFC98 002DCBD8 A0 1E 00 60 */ lhz r0, 0x60(r30) +/* 802DFC9C 002DCBDC 80 9E 00 54 */ lwz r4, 0x54(r30) +/* 802DFCA0 002DCBE0 7C 09 03 A6 */ mtctr r0 +/* 802DFCA4 002DCBE4 2C 00 00 00 */ cmpwi r0, 0 +/* 802DFCA8 002DCBE8 40 81 00 4C */ ble lbl_802DFCF4 +lbl_802DFCAC: +/* 802DFCAC 002DCBEC 7C C4 28 2E */ lwzx r6, r4, r5 +/* 802DFCB0 002DCBF0 A0 E6 00 08 */ lhz r7, 8(r6) +/* 802DFCB4 002DCBF4 7C 07 18 00 */ cmpw r7, r3 +/* 802DFCB8 002DCBF8 41 81 00 34 */ bgt lbl_802DFCEC +/* 802DFCBC 002DCBFC A0 06 00 0A */ lhz r0, 0xa(r6) +/* 802DFCC0 002DCC00 7C 03 00 00 */ cmpw r3, r0 +/* 802DFCC4 002DCC04 41 81 00 28 */ bgt lbl_802DFCEC +/* 802DFCC8 002DCC08 7C 07 18 50 */ subf r0, r7, r3 +/* 802DFCCC 002DCC0C 54 03 08 3C */ slwi r3, r0, 1 +/* 802DFCD0 002DCC10 38 63 00 0C */ addi r3, r3, 0xc +/* 802DFCD4 002DCC14 7C 66 1A 14 */ add r3, r6, r3 +/* 802DFCD8 002DCC18 88 03 00 00 */ lbz r0, 0(r3) +/* 802DFCDC 002DCC1C 98 1F 00 00 */ stb r0, 0(r31) +/* 802DFCE0 002DCC20 88 03 00 01 */ lbz r0, 1(r3) +/* 802DFCE4 002DCC24 98 1F 00 01 */ stb r0, 1(r31) +/* 802DFCE8 002DCC28 48 00 00 0C */ b lbl_802DFCF4 +lbl_802DFCEC: +/* 802DFCEC 002DCC2C 38 A5 00 04 */ addi r5, r5, 4 +/* 802DFCF0 002DCC30 42 00 FF BC */ bdnz lbl_802DFCAC +lbl_802DFCF4: +/* 802DFCF4 002DCC34 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DFCF8 002DCC38 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DFCFC 002DCC3C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DFD00 002DCC40 7C 08 03 A6 */ mtlr r0 +/* 802DFD04 002DCC44 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DFD08 002DCC48 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/asm/JUTResFont__loadImage.s b/include/JSystem/JUtility/asm/JUTResFont__loadImage.s new file mode 100644 index 0000000000..f506f08945 --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__loadImage.s @@ -0,0 +1,95 @@ +/* 802DFF60 002DCEA0 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DFF64 002DCEA4 7C 08 02 A6 */ mflr r0 +/* 802DFF68 002DCEA8 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DFF6C 002DCEAC 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DFF70 002DCEB0 48 08 22 69 */ bl _savegpr_28 +/* 802DFF74 002DCEB4 7C 7C 1B 78 */ mr r28, r3 +/* 802DFF78 002DCEB8 7C BD 2B 78 */ mr r29, r5 +/* 802DFF7C 002DCEBC 3B E0 00 00 */ li r31, 0 +/* 802DFF80 002DCEC0 38 60 00 00 */ li r3, 0 +/* 802DFF84 002DCEC4 A0 FC 00 62 */ lhz r7, 0x62(r28) +/* 802DFF88 002DCEC8 7C E9 03 A6 */ mtctr r7 +/* 802DFF8C 002DCECC 2C 07 00 00 */ cmpwi r7, 0 +/* 802DFF90 002DCED0 40 81 00 38 */ ble lbl_802DFFC8 +lbl_802DFF94: +/* 802DFF94 002DCED4 80 BC 00 58 */ lwz r5, 0x58(r28) +/* 802DFF98 002DCED8 7C A5 18 2E */ lwzx r5, r5, r3 +/* 802DFF9C 002DCEDC A0 C5 00 08 */ lhz r6, 8(r5) +/* 802DFFA0 002DCEE0 7C 06 20 00 */ cmpw r6, r4 +/* 802DFFA4 002DCEE4 41 81 00 18 */ bgt lbl_802DFFBC +/* 802DFFA8 002DCEE8 A0 05 00 0A */ lhz r0, 0xa(r5) +/* 802DFFAC 002DCEEC 7C 04 00 00 */ cmpw r4, r0 +/* 802DFFB0 002DCEF0 41 81 00 0C */ bgt lbl_802DFFBC +/* 802DFFB4 002DCEF4 7C 86 20 50 */ subf r4, r6, r4 +/* 802DFFB8 002DCEF8 48 00 00 10 */ b lbl_802DFFC8 +lbl_802DFFBC: +/* 802DFFBC 002DCEFC 3B FF 00 01 */ addi r31, r31, 1 +/* 802DFFC0 002DCF00 38 63 00 04 */ addi r3, r3, 4 +/* 802DFFC4 002DCF04 42 00 FF D0 */ bdnz lbl_802DFF94 +lbl_802DFFC8: +/* 802DFFC8 002DCF08 7C 1F 38 00 */ cmpw r31, r7 +/* 802DFFCC 002DCF0C 41 82 00 E0 */ beq lbl_802E00AC +/* 802DFFD0 002DCF10 80 7C 00 58 */ lwz r3, 0x58(r28) +/* 802DFFD4 002DCF14 57 E6 10 3A */ slwi r6, r31, 2 +/* 802DFFD8 002DCF18 7C A3 30 2E */ lwzx r5, r3, r6 +/* 802DFFDC 002DCF1C A0 65 00 16 */ lhz r3, 0x16(r5) +/* 802DFFE0 002DCF20 A0 05 00 18 */ lhz r0, 0x18(r5) +/* 802DFFE4 002DCF24 7C 03 01 D6 */ mullw r0, r3, r0 +/* 802DFFE8 002DCF28 7F C4 03 D6 */ divw r30, r4, r0 +/* 802DFFEC 002DCF2C 7C 1E 01 D6 */ mullw r0, r30, r0 +/* 802DFFF0 002DCF30 7C 80 20 50 */ subf r4, r0, r4 +/* 802DFFF4 002DCF34 7C E4 1B D6 */ divw r7, r4, r3 +/* 802DFFF8 002DCF38 7C 07 19 D6 */ mullw r0, r7, r3 +/* 802DFFFC 002DCF3C 7C 60 20 50 */ subf r3, r0, r4 +/* 802E0000 002DCF40 A0 05 00 0C */ lhz r0, 0xc(r5) +/* 802E0004 002DCF44 7C 03 01 D6 */ mullw r0, r3, r0 +/* 802E0008 002DCF48 90 1C 00 1C */ stw r0, 0x1c(r28) +/* 802E000C 002DCF4C 80 7C 00 58 */ lwz r3, 0x58(r28) +/* 802E0010 002DCF50 7C 63 30 2E */ lwzx r3, r3, r6 +/* 802E0014 002DCF54 A0 03 00 0E */ lhz r0, 0xe(r3) +/* 802E0018 002DCF58 7C 07 01 D6 */ mullw r0, r7, r0 +/* 802E001C 002DCF5C 90 1C 00 20 */ stw r0, 0x20(r28) +/* 802E0020 002DCF60 80 1C 00 44 */ lwz r0, 0x44(r28) +/* 802E0024 002DCF64 7C 1E 00 00 */ cmpw r30, r0 +/* 802E0028 002DCF68 40 82 00 10 */ bne lbl_802E0038 +/* 802E002C 002DCF6C A0 1C 00 66 */ lhz r0, 0x66(r28) +/* 802E0030 002DCF70 7C 1F 00 00 */ cmpw r31, r0 +/* 802E0034 002DCF74 41 82 00 6C */ beq lbl_802E00A0 +lbl_802E0038: +/* 802E0038 002DCF78 80 7C 00 58 */ lwz r3, 0x58(r28) +/* 802E003C 002DCF7C 7C E3 30 2E */ lwzx r7, r3, r6 +/* 802E0040 002DCF80 38 7C 00 24 */ addi r3, r28, 0x24 +/* 802E0044 002DCF84 80 07 00 10 */ lwz r0, 0x10(r7) +/* 802E0048 002DCF88 7C 9E 01 D6 */ mullw r4, r30, r0 +/* 802E004C 002DCF8C 38 84 00 20 */ addi r4, r4, 0x20 +/* 802E0050 002DCF90 7C 87 22 14 */ add r4, r7, r4 +/* 802E0054 002DCF94 A0 A7 00 1A */ lhz r5, 0x1a(r7) +/* 802E0058 002DCF98 A0 C7 00 1C */ lhz r6, 0x1c(r7) +/* 802E005C 002DCF9C A0 E7 00 14 */ lhz r7, 0x14(r7) +/* 802E0060 002DCFA0 39 00 00 00 */ li r8, 0 +/* 802E0064 002DCFA4 39 20 00 00 */ li r9, 0 +/* 802E0068 002DCFA8 39 40 00 00 */ li r10, 0 +/* 802E006C 002DCFAC 48 07 DD D5 */ bl GXInitTexObj +/* 802E0070 002DCFB0 38 7C 00 24 */ addi r3, r28, 0x24 +/* 802E0074 002DCFB4 38 80 00 01 */ li r4, 1 +/* 802E0078 002DCFB8 38 A0 00 01 */ li r5, 1 +/* 802E007C 002DCFBC C0 22 C5 F0 */ lfs f1, lbl_80455FF0-_SDA2_BASE_(r2) +/* 802E0080 002DCFC0 FC 40 08 90 */ fmr f2, f1 +/* 802E0084 002DCFC4 FC 60 08 90 */ fmr f3, f1 +/* 802E0088 002DCFC8 38 C0 00 00 */ li r6, 0 +/* 802E008C 002DCFCC 38 E0 00 00 */ li r7, 0 +/* 802E0090 002DCFD0 39 00 00 00 */ li r8, 0 +/* 802E0094 002DCFD4 48 07 E0 41 */ bl GXInitTexObjLOD +/* 802E0098 002DCFD8 93 DC 00 44 */ stw r30, 0x44(r28) +/* 802E009C 002DCFDC B3 FC 00 66 */ sth r31, 0x66(r28) +lbl_802E00A0: +/* 802E00A0 002DCFE0 38 7C 00 24 */ addi r3, r28, 0x24 +/* 802E00A4 002DCFE4 7F A4 EB 78 */ mr r4, r29 +/* 802E00A8 002DCFE8 48 07 E3 6D */ bl GXLoadTexObj +lbl_802E00AC: +/* 802E00AC 002DCFEC 39 61 00 20 */ addi r11, r1, 0x20 +/* 802E00B0 002DCFF0 48 08 21 75 */ bl _restgpr_28 +/* 802E00B4 002DCFF4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802E00B8 002DCFF8 7C 08 03 A6 */ mtlr r0 +/* 802E00BC 002DCFFC 38 21 00 20 */ addi r1, r1, 0x20 +/* 802E00C0 002DD000 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/asm/JUTResFont__protected_initiate.s b/include/JSystem/JUtility/asm/JUTResFont__protected_initiate.s new file mode 100644 index 0000000000..0b1081eb4c --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__protected_initiate.s @@ -0,0 +1,73 @@ +/* 802DF13C 002DC07C 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802DF140 002DC080 7C 08 02 A6 */ mflr r0 +/* 802DF144 002DC084 90 01 00 24 */ stw r0, 0x24(r1) +/* 802DF148 002DC088 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DF14C 002DC08C 48 08 30 91 */ bl _savegpr_29 +/* 802DF150 002DC090 7C 7D 1B 78 */ mr r29, r3 +/* 802DF154 002DC094 7C 9E 23 78 */ mr r30, r4 +/* 802DF158 002DC098 7C BF 2B 78 */ mr r31, r5 +/* 802DF15C 002DC09C 4B FF FF 31 */ bl deleteMemBlocks_ResFont__10JUTResFontFv +/* 802DF160 002DC0A0 7F A3 EB 78 */ mr r3, r29 +/* 802DF164 002DC0A4 4B FF FF 4D */ bl initialize_state__10JUTResFontFv +/* 802DF168 002DC0A8 7F A3 EB 78 */ mr r3, r29 +/* 802DF16C 002DC0AC 4B FF FB B9 */ bl initialize_state__7JUTFontFv +/* 802DF170 002DC0B0 28 1E 00 00 */ cmplwi r30, 0 +/* 802DF174 002DC0B4 40 82 00 0C */ bne lbl_802DF180 +/* 802DF178 002DC0B8 38 60 00 00 */ li r3, 0 +/* 802DF17C 002DC0BC 48 00 00 B4 */ b lbl_802DF230 +lbl_802DF180: +/* 802DF180 002DC0C0 93 DD 00 48 */ stw r30, 0x48(r29) +/* 802DF184 002DC0C4 38 00 00 01 */ li r0, 1 +/* 802DF188 002DC0C8 98 1D 00 04 */ stb r0, 4(r29) +/* 802DF18C 002DC0CC 7F A3 EB 78 */ mr r3, r29 +/* 802DF190 002DC0D0 48 00 00 B9 */ bl countBlock__10JUTResFontFv +/* 802DF194 002DC0D4 A0 9D 00 64 */ lhz r4, 0x64(r29) +/* 802DF198 002DC0D8 A0 7D 00 60 */ lhz r3, 0x60(r29) +/* 802DF19C 002DC0DC A0 1D 00 62 */ lhz r0, 0x62(r29) +/* 802DF1A0 002DC0E0 7C 00 22 14 */ add r0, r0, r4 +/* 802DF1A4 002DC0E4 7C 03 02 14 */ add r0, r3, r0 +/* 802DF1A8 002DC0E8 54 03 10 3A */ slwi r3, r0, 2 +/* 802DF1AC 002DC0EC 7F E4 FB 78 */ mr r4, r31 +/* 802DF1B0 002DC0F0 38 A0 00 00 */ li r5, 0 +/* 802DF1B4 002DC0F4 4B FE FB 5D */ bl __nwa__FUlP7JKRHeapi +/* 802DF1B8 002DC0F8 90 7D 00 50 */ stw r3, 0x50(r29) +/* 802DF1BC 002DC0FC 80 7D 00 50 */ lwz r3, 0x50(r29) +/* 802DF1C0 002DC100 28 03 00 00 */ cmplwi r3, 0 +/* 802DF1C4 002DC104 40 82 00 0C */ bne lbl_802DF1D0 +/* 802DF1C8 002DC108 38 60 00 00 */ li r3, 0 +/* 802DF1CC 002DC10C 48 00 00 64 */ b lbl_802DF230 +lbl_802DF1D0: +/* 802DF1D0 002DC110 A0 1D 00 60 */ lhz r0, 0x60(r29) +/* 802DF1D4 002DC114 28 00 00 00 */ cmplwi r0, 0 +/* 802DF1D8 002DC118 41 82 00 14 */ beq lbl_802DF1EC +/* 802DF1DC 002DC11C 90 7D 00 54 */ stw r3, 0x54(r29) +/* 802DF1E0 002DC120 A0 1D 00 60 */ lhz r0, 0x60(r29) +/* 802DF1E4 002DC124 54 00 10 3A */ slwi r0, r0, 2 +/* 802DF1E8 002DC128 7C 63 02 14 */ add r3, r3, r0 +lbl_802DF1EC: +/* 802DF1EC 002DC12C A0 1D 00 62 */ lhz r0, 0x62(r29) +/* 802DF1F0 002DC130 28 00 00 00 */ cmplwi r0, 0 +/* 802DF1F4 002DC134 41 82 00 14 */ beq lbl_802DF208 +/* 802DF1F8 002DC138 90 7D 00 58 */ stw r3, 0x58(r29) +/* 802DF1FC 002DC13C A0 1D 00 62 */ lhz r0, 0x62(r29) +/* 802DF200 002DC140 54 00 10 3A */ slwi r0, r0, 2 +/* 802DF204 002DC144 7C 63 02 14 */ add r3, r3, r0 +lbl_802DF208: +/* 802DF208 002DC148 A0 1D 00 64 */ lhz r0, 0x64(r29) +/* 802DF20C 002DC14C 28 00 00 00 */ cmplwi r0, 0 +/* 802DF210 002DC150 41 82 00 08 */ beq lbl_802DF218 +/* 802DF214 002DC154 90 7D 00 5C */ stw r3, 0x5c(r29) +lbl_802DF218: +/* 802DF218 002DC158 7F A3 EB 78 */ mr r3, r29 +/* 802DF21C 002DC15C 81 9D 00 00 */ lwz r12, 0(r29) +/* 802DF220 002DC160 81 8C 00 48 */ lwz r12, 0x48(r12) +/* 802DF224 002DC164 7D 89 03 A6 */ mtctr r12 +/* 802DF228 002DC168 4E 80 04 21 */ bctrl +/* 802DF22C 002DC16C 38 60 00 01 */ li r3, 1 +lbl_802DF230: +/* 802DF230 002DC170 39 61 00 20 */ addi r11, r1, 0x20 +/* 802DF234 002DC174 48 08 2F F5 */ bl _restgpr_29 +/* 802DF238 002DC178 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802DF23C 002DC17C 7C 08 03 A6 */ mtlr r0 +/* 802DF240 002DC180 38 21 00 20 */ addi r1, r1, 0x20 +/* 802DF244 002DC184 4E 80 00 20 */ blr diff --git a/include/JSystem/JUtility/asm/JUTResFont__setBlock.s b/include/JSystem/JUtility/asm/JUTResFont__setBlock.s new file mode 100644 index 0000000000..445bbb3003 --- /dev/null +++ b/include/JSystem/JUtility/asm/JUTResFont__setBlock.s @@ -0,0 +1,92 @@ +/* 802DF344 002DC284 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 802DF348 002DC288 7C 08 02 A6 */ mflr r0 +/* 802DF34C 002DC28C 90 01 00 34 */ stw r0, 0x34(r1) +/* 802DF350 002DC290 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DF354 002DC294 48 08 2E 79 */ bl func_803621CC +/* 802DF358 002DC298 7C 7C 1B 78 */ mr r28, r3 +/* 802DF35C 002DC29C 3B 60 00 00 */ li r27, 0 +/* 802DF360 002DC2A0 3B 40 00 00 */ li r26, 0 +/* 802DF364 002DC2A4 3B 20 00 00 */ li r25, 0 +/* 802DF368 002DC2A8 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 802DF36C 002DC2AC 38 03 FF FF */ addi r0, r3, 0x0000FFFF@l +/* 802DF370 002DC2B0 B0 1C 00 68 */ sth r0, 0x68(r28) +/* 802DF374 002DC2B4 80 7C 00 48 */ lwz r3, 0x48(r28) +/* 802DF378 002DC2B8 3B C3 00 20 */ addi r30, r3, 0x20 +/* 802DF37C 002DC2BC 3B A0 00 00 */ li r29, 0 +/* 802DF380 002DC2C0 3C 60 4D 41 */ lis r3, 0x4D415031@ha +/* 802DF384 002DC2C4 3B E3 50 31 */ addi r31, r3, 0x4D415031@l +/* 802DF388 002DC2C8 48 00 00 DC */ b lbl_802DF464 +lbl_802DF38C: +/* 802DF38C 002DC2CC 80 9E 00 00 */ lwz r4, 0(r30) +/* 802DF390 002DC2D0 7C 04 F8 00 */ cmpw r4, r31 +/* 802DF394 002DC2D4 41 82 00 88 */ beq lbl_802DF41C +/* 802DF398 002DC2D8 40 80 00 2C */ bge lbl_802DF3C4 +/* 802DF39C 002DC2DC 3C 60 49 4E */ lis r3, 0x494E4631@ha +/* 802DF3A0 002DC2E0 38 03 46 31 */ addi r0, r3, 0x494E4631@l +/* 802DF3A4 002DC2E4 7C 04 00 00 */ cmpw r4, r0 +/* 802DF3A8 002DC2E8 41 82 00 30 */ beq lbl_802DF3D8 +/* 802DF3AC 002DC2EC 40 80 00 9C */ bge lbl_802DF448 +/* 802DF3B0 002DC2F0 3C 60 47 4C */ lis r3, 0x474C5931@ha +/* 802DF3B4 002DC2F4 38 03 59 31 */ addi r0, r3, 0x474C5931@l +/* 802DF3B8 002DC2F8 7C 04 00 00 */ cmpw r4, r0 +/* 802DF3BC 002DC2FC 41 82 00 50 */ beq lbl_802DF40C +/* 802DF3C0 002DC300 48 00 00 88 */ b lbl_802DF448 +lbl_802DF3C4: +/* 802DF3C4 002DC304 3C 60 57 49 */ lis r3, 0x57494431@ha +/* 802DF3C8 002DC308 38 03 44 31 */ addi r0, r3, 0x57494431@l +/* 802DF3CC 002DC30C 7C 04 00 00 */ cmpw r4, r0 +/* 802DF3D0 002DC310 41 82 00 2C */ beq lbl_802DF3FC +/* 802DF3D4 002DC314 48 00 00 74 */ b lbl_802DF448 +lbl_802DF3D8: +/* 802DF3D8 002DC318 93 DC 00 4C */ stw r30, 0x4c(r28) +/* 802DF3DC 002DC31C 80 7C 00 4C */ lwz r3, 0x4c(r28) +/* 802DF3E0 002DC320 A0 03 00 08 */ lhz r0, 8(r3) +/* 802DF3E4 002DC324 54 04 10 3A */ slwi r4, r0, 2 +/* 802DF3E8 002DC328 3C 60 80 3A */ lis r3, lbl_8039D390@ha +/* 802DF3EC 002DC32C 38 03 D3 90 */ addi r0, r3, lbl_8039D390@l +/* 802DF3F0 002DC330 7C 00 22 14 */ add r0, r0, r4 +/* 802DF3F4 002DC334 90 1C 00 6C */ stw r0, 0x6c(r28) +/* 802DF3F8 002DC338 48 00 00 60 */ b lbl_802DF458 +lbl_802DF3FC: +/* 802DF3FC 002DC33C 80 7C 00 54 */ lwz r3, 0x54(r28) +/* 802DF400 002DC340 7F C3 D9 2E */ stwx r30, r3, r27 +/* 802DF404 002DC344 3B 7B 00 04 */ addi r27, r27, 4 +/* 802DF408 002DC348 48 00 00 50 */ b lbl_802DF458 +lbl_802DF40C: +/* 802DF40C 002DC34C 80 7C 00 58 */ lwz r3, 0x58(r28) +/* 802DF410 002DC350 7F C3 D1 2E */ stwx r30, r3, r26 +/* 802DF414 002DC354 3B 5A 00 04 */ addi r26, r26, 4 +/* 802DF418 002DC358 48 00 00 40 */ b lbl_802DF458 +lbl_802DF41C: +/* 802DF41C 002DC35C 80 7C 00 5C */ lwz r3, 0x5c(r28) +/* 802DF420 002DC360 7F C3 C9 2E */ stwx r30, r3, r25 +/* 802DF424 002DC364 A0 1C 00 68 */ lhz r0, 0x68(r28) +/* 802DF428 002DC368 80 7C 00 5C */ lwz r3, 0x5c(r28) +/* 802DF42C 002DC36C 7C 63 C8 2E */ lwzx r3, r3, r25 +/* 802DF430 002DC370 A0 63 00 0A */ lhz r3, 0xa(r3) +/* 802DF434 002DC374 7C 00 18 40 */ cmplw r0, r3 +/* 802DF438 002DC378 40 81 00 08 */ ble lbl_802DF440 +/* 802DF43C 002DC37C B0 7C 00 68 */ sth r3, 0x68(r28) +lbl_802DF440: +/* 802DF440 002DC380 3B 39 00 04 */ addi r25, r25, 4 +/* 802DF444 002DC384 48 00 00 14 */ b lbl_802DF458 +lbl_802DF448: +/* 802DF448 002DC388 3C 60 80 3A */ lis r3, lbl_8039D45C@ha +/* 802DF44C 002DC38C 38 63 D4 5C */ addi r3, r3, lbl_8039D45C@l +/* 802DF450 002DC390 38 63 00 20 */ addi r3, r3, 0x20 +/* 802DF454 002DC394 48 00 91 F5 */ bl JUTReportConsole +lbl_802DF458: +/* 802DF458 002DC398 80 1E 00 04 */ lwz r0, 4(r30) +/* 802DF45C 002DC39C 7F DE 02 14 */ add r30, r30, r0 +/* 802DF460 002DC3A0 3B BD 00 01 */ addi r29, r29, 1 +lbl_802DF464: +/* 802DF464 002DC3A4 80 7C 00 48 */ lwz r3, 0x48(r28) +/* 802DF468 002DC3A8 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802DF46C 002DC3AC 7C 1D 00 40 */ cmplw r29, r0 +/* 802DF470 002DC3B0 41 80 FF 1C */ blt lbl_802DF38C +/* 802DF474 002DC3B4 39 61 00 30 */ addi r11, r1, 0x30 +/* 802DF478 002DC3B8 48 08 2D A1 */ bl func_80362218 +/* 802DF47C 002DC3BC 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802DF480 002DC3C0 7C 08 03 A6 */ mtlr r0 +/* 802DF484 002DC3C4 38 21 00 30 */ addi r1, r1, 0x30 +/* 802DF488 002DC3C8 4E 80 00 20 */ blr diff --git a/include/SComponent/c_bg_w.h b/include/SComponent/c_bg_w.h new file mode 100644 index 0000000000..7ac9034b95 --- /dev/null +++ b/include/SComponent/c_bg_w.h @@ -0,0 +1,25 @@ +#ifndef SCOMPONENT_C_BG_W_H +#define SCOMPONENT_C_BG_W_H + +#include "global.h" + +class cBgW_BgId { +public: + void Regist(int a1); + void Release(); + + unsigned int ChkUsed() const; + +private: + unsigned short mId; +}; + +extern "C" { + +bool cBgW_CheckBGround(float a1); +bool cBgW_CheckBRoof(float a1); +bool cBgW_CheckBWall(float a1); + +} // extern "C" + +#endif diff --git a/include/functions.h b/include/functions.h index d062a3b5df..390d47fac9 100644 --- a/include/functions.h +++ b/include/functions.h @@ -24,6 +24,8 @@ extern "C" { void setBombNum__21dSv_player_item_max_cFUcUc(void); void func_80362224(void); void func_803621D8(void); + void func_803621CC(void); + void func_80362218(void); void _restgpr_26(void); void _savegpr_26(void); void _restgpr_29(void); @@ -252,8 +254,34 @@ extern "C" { void __dla__FPv(void); } +extern "C" { +struct TColor; + +extern void GXBegin(u8, u8, u16); +extern void GXLoadTexObj(u32*, s32); +extern void GXInitTexObjLOD(f32, f32, f32, u32*, s32, s32, u32, u8, u32); +extern void GXInitTexObj(u32*, u32, u32, u32, u32, u32, u8); + +extern void GXSetNumChans(u32); +extern void GXSetNumTevStages(u32); +extern void GXSetNumTexGens(u32); +extern void GXSetTevOrder(u32, u32, u32, u32); +extern void GXSetChanCtrl(u32, u32, u32, u32, u32, u32, s32); +extern void GXSetTevOp(s32, s32); +extern void GXSetTevColor(s32, TColor); +extern void GXSetTevColorIn(s32, u32, u32, u32, u32); +extern void GXSetTevAlphaIn(s32, u32, u32, u32, u32); +extern void GXSetTevColorOp(s32, u32, u32, u32, u32, u32); +extern void GXSetTevAlphaOp(s32, u32, u32, u32, u32, u32); +extern void GXSetBlendMode(u32, u32, u32, u32); +extern void GXSetVtxAttrFmt(u32, u32, u32, u32, u32); +extern void GXClearVtxDesc(); +extern void GXSetVtxDesc(u32, u32); +} + extern "C" { void JUTReport__FiiPCce(int, int, const char*, ...); + extern void JUTReportConsole(const char*); } // m_Do_main.h diff --git a/include/variables.h b/include/variables.h index 90e6a2544c..55b82561dc 100644 --- a/include/variables.h +++ b/include/variables.h @@ -75,7 +75,8 @@ extern u8 lbl_803BB4A8; extern u8 lbl_804539F8; extern u8 lbl_804539FC; extern u8 lbl_803BB498; - +extern float lbl_804550E8; +extern float lbl_804550EC; #define _SDA_BASE_(dummy) 0 #define _SDA2_BASE_(dummy) 0 diff --git a/ldscript.lcf b/ldscript.lcf index dfc81f45fd..44e425b7e0 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -777,6 +777,15 @@ FORCEACTIVE { startCtrl__8daItem_cFv startControl__8daItem_cFv endControl__8daItem_cFv + loadImage__10JUTResFontFlUl + isLeadByte__10JUTResFontFl + getCellHeight__10JUTResFontFv + getCellWidth__10JUTResFontFv + getWidthEntry__10JUTResFontFlPQ27JUTFont6TWidth + drawChar_scale__10JUTResFontFffffib + setGX__10JUTResFontF6TColor6TColor + setGX__10JUTResFontFv + setBlock__10JUTResFontFv } /* .init 80003100 - 80005600 diff --git a/libs/JSystem/JUtility/JUTFont.cpp b/libs/JSystem/JUtility/JUTFont.cpp index 4bf93c8658..1e755532a4 100644 --- a/libs/JSystem/JUtility/JUTFont.cpp +++ b/libs/JSystem/JUtility/JUTFont.cpp @@ -1 +1,40 @@ -// ok +#include "JSystem/JUtility/JUTFont/JUTFont.h" + +#ifdef NONMATCHING +JUTFont::JUTFont() +{ + mColor1 = TColor(); + mColor2 = TColor(); + mColor3 = TColor(); + mColor4 = TColor(); + unk4 = false; +} +#endif + +void JUTFont::initialize_state() +{ + setCharColor(TColor()); + unk5 = false; + unk8 = 0; + unk4 = false; +} + +void JUTFont::setCharColor(TColor col1) { + mColor1 = col1; + mColor2 = col1; + mColor3 = col1; + mColor4 = col1; +} + +void JUTFont::setGradColor(TColor col1, TColor col2) { + mColor1 = col1; + mColor2 = col1; + mColor3 = col2; + mColor4 = col2; +} + +asm float JUTFont::drawString_size_scale(float a1, float a2, float a3, float a4, char* a5, unsigned long usz, bool a7) { + nofralloc + +#include "JSystem/JUtility/JUTFont/asm/drawString_size_scale.s" +} \ No newline at end of file diff --git a/libs/JSystem/JUtility/JUTResFont.cpp b/libs/JSystem/JUtility/JUTResFont.cpp index 4bf93c8658..5d32654f37 100644 --- a/libs/JSystem/JUtility/JUTResFont.cpp +++ b/libs/JSystem/JUtility/JUTResFont.cpp @@ -1 +1,228 @@ -// ok +#include "JSystem/JUtility/JUTResFont.h" + +extern "C" { +extern void convertSjis__10JUTResFontFlPUs(); // remove when JUTResFont::getFontCode decompiled +extern void getFontCode__10JUTResFontFl(); // remove when JUTResFont::getWidthEntry decompiled +extern void loadFont__10JUTResFontFlUlPQ27JUTFont6TWidth(); // remove when JUTResFont::drawChar_scale decompiled +extern void countBlock__10JUTResFontFv(); // remove when JUTResFont::protected_initiate decompiled +extern void initialize_state__7JUTFontFv(); // remove when JUTResFont::protected_initiate decompiled +extern void initialize_state__10JUTResFontFv(); // remove when JUTResFont::protected_initiate decompiled +extern void deleteMemBlocks_ResFont__10JUTResFontFv(); // remove when JUTResFont::protected_initiate decompiled +} + +extern float lbl_80455FF0; +extern const char* lbl_8039D39C; +extern double lbl_80455FF8; +extern double lbl_80456000; + +extern const bool (*const lbl_8039D390[])(u32); + +extern const char* lbl_8039D45C; + +extern void* lbl_803CC5A0; +extern void* lbl_803A31F0; + +JUTResFont::JUTResFont() { + initialize_state(); + ((JUTFont*)this)->initialize_state(); +} + +JUTResFont::JUTResFont(ResFONT font, JKRHeap* heap) { + initialize_state(); + ((JUTFont*)this)->initialize_state(); + initiate(font, heap); +} + +#ifdef NONMATCHING +JUTResFont::~JUTResFont() { + if (unk4) { + deleteMemBlocks_ResFont(); + initialize_state(); + ((JUTFont*)this)->initialize_state(); + } +} +#else +asm JUTResFont::~JUTResFont() { + nofralloc +/* 802DF000 002DBF40 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802DF004 002DBF44 7C 08 02 A6 */ mflr r0 +/* 802DF008 002DBF48 90 01 00 14 */ stw r0, 0x14(r1) +/* 802DF00C 002DBF4C 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802DF010 002DBF50 93 C1 00 08 */ stw r30, 8(r1) +/* 802DF014 002DBF54 7C 7E 1B 79 */ or. r30, r3, r3 +/* 802DF018 002DBF58 7C 9F 23 78 */ mr r31, r4 +/* 802DF01C 002DBF5C 41 82 00 54 */ beq lbl_802DF070 +/* 802DF020 002DBF60 3C 80 80 3D */ lis r4, lbl_803CC5A0@ha +/* 802DF024 002DBF64 38 04 C5 A0 */ addi r0, r4, lbl_803CC5A0@l +/* 802DF028 002DBF68 90 1E 00 00 */ stw r0, 0(r30) +/* 802DF02C 002DBF6C 88 1E 00 04 */ lbz r0, 4(r30) +/* 802DF030 002DBF70 28 00 00 00 */ cmplwi r0, 0 +/* 802DF034 002DBF74 41 82 00 18 */ beq lbl_802DF04C +/* 802DF038 002DBF78 48 00 00 55 */ bl deleteMemBlocks_ResFont__10JUTResFontFv +/* 802DF03C 002DBF7C 7F C3 F3 78 */ mr r3, r30 +/* 802DF040 002DBF80 48 00 00 71 */ bl initialize_state__10JUTResFontFv +/* 802DF044 002DBF84 7F C3 F3 78 */ mr r3, r30 +/* 802DF048 002DBF88 4B FF FC DD */ bl initialize_state__7JUTFontFv +lbl_802DF04C: +/* 802DF04C 002DBF8C 28 1E 00 00 */ cmplwi r30, 0 +/* 802DF050 002DBF90 41 82 00 10 */ beq lbl_802DF060 +/* 802DF054 002DBF94 3C 60 80 3A */ lis r3, lbl_803A31F0@ha +/* 802DF058 002DBF98 38 03 31 F0 */ addi r0, r3, lbl_803A31F0@l +/* 802DF05C 002DBF9C 90 1E 00 00 */ stw r0, 0(r30) +lbl_802DF060: +/* 802DF060 002DBFA0 7F E0 07 35 */ extsh. r0, r31 +/* 802DF064 002DBFA4 40 81 00 0C */ ble lbl_802DF070 +/* 802DF068 002DBFA8 7F C3 F3 78 */ mr r3, r30 +/* 802DF06C 002DBFAC 4B FE FC D1 */ bl __dl__FPv +lbl_802DF070: +/* 802DF070 002DBFB0 7F C3 F3 78 */ mr r3, r30 +/* 802DF074 002DBFB4 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802DF078 002DBFB8 83 C1 00 08 */ lwz r30, 8(r1) +/* 802DF07C 002DBFBC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802DF080 002DBFC0 7C 08 03 A6 */ mtlr r0 +/* 802DF084 002DBFC4 38 21 00 10 */ addi r1, r1, 0x10 +/* 802DF088 002DBFC8 4E 80 00 20 */ blr +} +#endif + +void JUTResFont::deleteMemBlocks_ResFont() { + delete[] (void*)unk50; +} + +void JUTResFont::initialize_state() { + unk48 = 0; + unk50 = NULL; + unk54 = 0; + unk58 = NULL; + unk5C = 0; + unk1C = 0; + unk20 = 0; + unk44 = 0xFFFFFFFF; +} + +bool JUTResFont::initiate(ResFONT font, JKRHeap* heap) { + if (!protected_initiate(font, heap)) { + deleteMemBlocks_ResFont(); + initialize_state(); + ((JUTFont*)this)->initialize_state(); + unk4 = false; + return false; + } + + return true; +} + +asm bool JUTResFont::protected_initiate(ResFONT font, JKRHeap* heap) { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__protected_initiate.s" +} + +asm u32 JUTResFont::countBlock() { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__countBlock.s" +} + +asm void JUTResFont::setBlock() { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__setBlock.s" +} + +void JUTResFont::setGX() { + GXSetNumChans(0x1); + GXSetNumTevStages(0x1); + GXSetNumTexGens(0x1); + GXSetTevOrder(0x0, 0x0, 0x0, 0x4); + GXSetChanCtrl(0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2); + GXSetTevOp(0x0, 0x0); + GXSetBlendMode(0x1, 0x4, 0x5, 0xf); + GXSetVtxAttrFmt(0x0, 0x9, 0x1, 0x3, 0x0); + GXSetVtxAttrFmt(0x0, 0xb, 0x1, 0x5, 0x0); + GXSetVtxAttrFmt(0x0, 0xd, 0x1, 0x2, 0xf); + GXClearVtxDesc(); + GXSetVtxDesc(0x9, 0x1); + GXSetVtxDesc(0xb, 0x1); + GXSetVtxDesc(0xd, 0x1); +} + +void JUTResFont::setGX(TColor col1, TColor col2) { + if ((col1.Raw() == CLR_BLACK) && (col2.Raw() == CLR_WHITE)) { + setGX(); + return; + } + + GXSetNumChans(0x1); + GXSetNumTevStages(0x2); + GXSetNumTexGens(0x1); + GXSetTevOrder(0x0, 0x0, 0x0, 0xff); + GXSetChanCtrl(0x4, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2); + GXSetTevColor(0x1, col1); + GXSetTevColor(0x2, col2); + GXSetTevColorIn(0x0, 0x2, 0x4, 0x8, 0xf); + GXSetTevAlphaIn(0x0, 0x1, 0x2, 0x4, 0x7); + GXSetTevColorOp(0x0, 0x0, 0x0, 0x0, 0x1, 0x0); + GXSetTevAlphaOp(0x0, 0x0, 0x0, 0x0, 0x1, 0x0); + GXSetTevOrder(0x1, 0xff, 0xff, 0x4); + GXSetTevColorIn(0x1, 0xf, 0x0, 0xa, 0xf); + GXSetTevAlphaIn(0x1, 0x7, 0x0, 0x5, 0x7); + GXSetTevColorOp(0x1, 0x0, 0x0, 0x0, 0x1, 0x0); + GXSetTevAlphaOp(0x1, 0x0, 0x0, 0x0, 0x1, 0x0); + GXSetBlendMode(0x1, 0x4, 0x5, 0xf); + GXSetVtxAttrFmt(0x0, 0x9, 0x1, 0x3, 0x0); + GXSetVtxAttrFmt(0x0, 0xb, 0x1, 0x5, 0x0); + GXSetVtxAttrFmt(0x0, 0xd, 0x1, 0x2, 0xf); + GXClearVtxDesc(); + GXSetVtxDesc(0x9, 0x1); + GXSetVtxDesc(0xb, 0x1); + GXSetVtxDesc(0xd, 0x1); +} + +asm void JUTResFont::drawChar_scale(float a1, float a2, float a3, float a4, int a5, bool a6) { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__drawChar_scale.s" +} + +void JUTResFont::loadFont(s32 a1, u32 a2, TWidth* a3) { + if (a3 != NULL) + getWidthEntry(a1, a3); + + u32 code = getFontCode(a1); + loadImage(code, a2); +} + +asm void JUTResFont::getWidthEntry(s32 i_no, TWidth* width) { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__getWidthEntry.s" +} + +u32 JUTResFont::getCellWidth() { + if (unk58 != NULL && unk58->unk0 != NULL) + return unk58->unk0->unkC; + + return getWidth(); +} + +u32 JUTResFont::getCellHeight() { + if (unk58 != NULL && unk58->unk0 != NULL) + return unk58->unk0->unkE; + + return getHeight(); +} + +bool JUTResFont::isLeadByte(s32 a1) { + return (*unk6C)(a1); +} + +asm u32 JUTResFont::getFontCode(s32 a1) { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__getFontCode.s" +} + +asm void JUTResFont::loadImage(s32 a1, u32 a2) { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__loadImage.s" +} + +asm s32 JUTResFont::convertSjis(s32 a1, u16* a2) { + nofralloc +#include "JSystem/JUtility/asm/JUTResFont__convertSjis.s" +} diff --git a/libs/SSystem/SComponent/c_bg_w.cpp b/libs/SSystem/SComponent/c_bg_w.cpp index 4bf93c8658..ef273bb50f 100644 --- a/libs/SSystem/SComponent/c_bg_w.cpp +++ b/libs/SSystem/SComponent/c_bg_w.cpp @@ -1 +1,34 @@ -// ok +#include "SComponent/c_bg_w.h" + +void cBgW_BgId::Regist(int a1) { + mId = a1; +} + +void cBgW_BgId::Release() { + mId = 0x100; +} + +unsigned int cBgW_BgId::ChkUsed() const { + unsigned int temp = mId - 0x100; + return temp >> 0x1f; +} + +extern "C" { + +bool cBgW_CheckBGround(float a1) { + return a1 >= lbl_804550E8; +} + +bool cBgW_CheckBRoof(float a1) { + return a1 < lbl_804550EC; +} + +bool cBgW_CheckBWall(float a1) +{ + if (!cBgW_CheckBGround(a1) && !cBgW_CheckBRoof(a1)) + return true; + + return false; +} + +} // extern "C" diff --git a/obj_files.mk b/obj_files.mk index d68d114425..d00259b680 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -264,7 +264,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/SComponent/c/bg/s/lin/c_bg_s_lin_chk.o \ $(BUILD_DIR)/asm/SComponent/c/bg/s/shdw/c_bg_s_shdw_draw.o \ $(BUILD_DIR)/asm/SComponent/c/bg/s/poly/c_bg_s_poly_info.o \ - $(BUILD_DIR)/asm/SComponent/c/bg/c_bg_w.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_bg_w.o \ $(BUILD_DIR)/asm/SComponent/c/c_m2d.o \ $(BUILD_DIR)/asm/SComponent/c/c_m3d.o \ $(BUILD_DIR)/asm/SComponent/c/m3d/g/c_m3d_g_aab.o \ @@ -464,7 +464,9 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/JUtility/JUTNameTab.o \ $(BUILD_DIR)/asm/JUtility/JUTGraphFifo.o \ $(BUILD_DIR)/asm/JUtility/JUTFont.o \ + $(BUILD_DIR)/libs/JSystem/JUtility/JUTFont.o \ $(BUILD_DIR)/asm/JUtility/JUTResFont.o \ + $(BUILD_DIR)/libs/JSystem/JUtility/JUTResFont.o \ $(BUILD_DIR)/asm/JUtility/JUTDbPrint.o \ $(BUILD_DIR)/asm/JUtility/JUTGamePad.o \ $(BUILD_DIR)/asm/JUtility/JUTException.o \