diff options
| author | notyourav <65437533+notyourav@users.noreply.github.com> | 2020-12-03 17:58:53 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-03 20:58:53 -0500 |
| commit | 294858f751d8f33cc453116a8d8adb8844ddd8a8 (patch) | |
| tree | 02080c192a7e2379fd1d204888d5493c239c66a3 /include | |
| parent | e27ed1c55d971c154cb7265d427cb91512156a55 (diff) | |
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 <pheenoh@gmail.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/JSystem/JUtility/JUTFont/JUTFont.h | 65 | ||||
| -rw-r--r-- | include/JSystem/JUtility/JUTFont/asm/drawString_size_scale.s | 75 | ||||
| -rw-r--r-- | include/JSystem/JUtility/JUTResFont.h | 58 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__convertSjis.s | 38 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__countBlock.s | 71 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__drawChar_scale.s | 270 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__getFontCode.s | 110 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__getWidthEntry.s | 45 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__loadImage.s | 95 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__protected_initiate.s | 73 | ||||
| -rw-r--r-- | include/JSystem/JUtility/asm/JUTResFont__setBlock.s | 92 | ||||
| -rw-r--r-- | include/SComponent/c_bg_w.h | 25 | ||||
| -rw-r--r-- | include/functions.h | 28 | ||||
| -rw-r--r-- | include/variables.h | 3 |
14 files changed, 1046 insertions, 2 deletions
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 @@ +#ifndef JSYSTEM_JUTILITY_JUTFONT_H +#define JSYSTEM_JUTILITY_JUTFONT_H + +#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; +}; -};
\ No newline at end of file +#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); @@ -253,7 +255,33 @@ extern "C" { } 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 |
