donut-decomp/asm/os/OSFont.s

2263 lines
82 KiB
ArmAsm
Raw Permalink Normal View History

2022-10-16 16:05:58 +00:00
.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
2022-10-16 16:31:36 +00:00
.global GetFontCode
GetFontCode:
2022-10-16 16:05:58 +00:00
/* 80020490 0001C2D0 28 03 00 01 */ cmplwi r3, 0x1
/* 80020494 0001C2D4 40 82 01 10 */ bne lbl_800205A4
/* 80020498 0001C2D8 28 04 00 20 */ cmplwi r4, 0x20
/* 8002049C 0001C2DC 41 80 00 24 */ blt lbl_800204C0
/* 800204A0 0001C2E0 28 04 00 DF */ cmplwi r4, 0xdf
/* 800204A4 0001C2E4 41 81 00 1C */ bgt lbl_800204C0
/* 800204A8 0001C2E8 38 04 FF E0 */ addi r0, r4, -0x20
2022-10-16 16:31:36 +00:00
/* 800204AC 0001C2EC 3C 60 80 42 */ lis r3, HankakuToCode@ha
2022-10-16 16:05:58 +00:00
/* 800204B0 0001C2F0 54 00 08 3C */ slwi r0, r0, 1
2022-10-16 16:31:36 +00:00
/* 800204B4 0001C2F4 38 63 2B E8 */ addi r3, r3, HankakuToCode@l
2022-10-16 16:05:58 +00:00
/* 800204B8 0001C2F8 7C 63 02 2E */ lhzx r3, r3, r0
/* 800204BC 0001C2FC 4E 80 00 20 */ blr
.global lbl_800204C0
lbl_800204C0:
/* 800204C0 0001C300 28 04 88 9E */ cmplwi r4, 0x889e
/* 800204C4 0001C304 40 81 00 68 */ ble lbl_8002052C
/* 800204C8 0001C308 28 04 98 72 */ cmplwi r4, 0x9872
/* 800204CC 0001C30C 41 81 00 60 */ bgt lbl_8002052C
/* 800204D0 0001C310 54 83 C6 3E */ extrwi r3, r4, 8, 16
/* 800204D4 0001C314 54 84 06 3E */ clrlwi r4, r4, 24
/* 800204D8 0001C318 38 63 FF 78 */ addi r3, r3, -0x88
/* 800204DC 0001C31C 38 00 00 00 */ li r0, 0x0
/* 800204E0 0001C320 28 04 00 40 */ cmplwi r4, 0x40
/* 800204E4 0001C324 1C 63 00 BC */ mulli r3, r3, 0xbc
/* 800204E8 0001C328 41 80 00 18 */ blt lbl_80020500
/* 800204EC 0001C32C 28 04 00 FC */ cmplwi r4, 0xfc
/* 800204F0 0001C330 41 81 00 10 */ bgt lbl_80020500
/* 800204F4 0001C334 28 04 00 7F */ cmplwi r4, 0x7f
/* 800204F8 0001C338 41 82 00 08 */ beq lbl_80020500
/* 800204FC 0001C33C 38 00 00 01 */ li r0, 0x1
.global lbl_80020500
lbl_80020500:
/* 80020500 0001C340 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020504 0001C344 40 82 00 0C */ bne lbl_80020510
/* 80020508 0001C348 38 60 00 00 */ li r3, 0x0
/* 8002050C 0001C34C 4E 80 00 20 */ blr
.global lbl_80020510
lbl_80020510:
/* 80020510 0001C350 38 84 FF C0 */ addi r4, r4, -0x40
/* 80020514 0001C354 2C 04 00 40 */ cmpwi r4, 0x40
/* 80020518 0001C358 41 80 00 08 */ blt lbl_80020520
/* 8002051C 0001C35C 38 84 FF FF */ addi r4, r4, -0x1
.global lbl_80020520
lbl_80020520:
/* 80020520 0001C360 7C 63 22 14 */ add r3, r3, r4
/* 80020524 0001C364 38 63 02 BE */ addi r3, r3, 0x2be
/* 80020528 0001C368 4E 80 00 20 */ blr
.global lbl_8002052C
lbl_8002052C:
/* 8002052C 0001C36C 28 04 81 40 */ cmplwi r4, 0x8140
/* 80020530 0001C370 41 80 00 90 */ blt lbl_800205C0
/* 80020534 0001C374 28 04 87 9E */ cmplwi r4, 0x879e
/* 80020538 0001C378 40 80 00 88 */ bge lbl_800205C0
/* 8002053C 0001C37C 54 83 C6 3E */ extrwi r3, r4, 8, 16
/* 80020540 0001C380 54 84 06 3E */ clrlwi r4, r4, 24
/* 80020544 0001C384 38 63 FF 7F */ addi r3, r3, -0x81
/* 80020548 0001C388 38 00 00 00 */ li r0, 0x0
/* 8002054C 0001C38C 28 04 00 40 */ cmplwi r4, 0x40
/* 80020550 0001C390 1C 63 00 BC */ mulli r3, r3, 0xbc
/* 80020554 0001C394 41 80 00 18 */ blt lbl_8002056C
/* 80020558 0001C398 28 04 00 FC */ cmplwi r4, 0xfc
/* 8002055C 0001C39C 41 81 00 10 */ bgt lbl_8002056C
/* 80020560 0001C3A0 28 04 00 7F */ cmplwi r4, 0x7f
/* 80020564 0001C3A4 41 82 00 08 */ beq lbl_8002056C
/* 80020568 0001C3A8 38 00 00 01 */ li r0, 0x1
.global lbl_8002056C
lbl_8002056C:
/* 8002056C 0001C3AC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020570 0001C3B0 40 82 00 0C */ bne lbl_8002057C
/* 80020574 0001C3B4 38 60 00 00 */ li r3, 0x0
/* 80020578 0001C3B8 4E 80 00 20 */ blr
.global lbl_8002057C
lbl_8002057C:
/* 8002057C 0001C3BC 38 84 FF C0 */ addi r4, r4, -0x40
/* 80020580 0001C3C0 2C 04 00 40 */ cmpwi r4, 0x40
/* 80020584 0001C3C4 41 80 00 08 */ blt lbl_8002058C
/* 80020588 0001C3C8 38 84 FF FF */ addi r4, r4, -0x1
.global lbl_8002058C
lbl_8002058C:
/* 8002058C 0001C3CC 7C 03 22 14 */ add r0, r3, r4
2022-10-16 16:31:36 +00:00
/* 80020590 0001C3D0 3C 60 80 42 */ lis r3, Zenkaku2Code@ha
2022-10-16 16:05:58 +00:00
/* 80020594 0001C3D4 54 00 08 3C */ slwi r0, r0, 1
2022-10-16 16:31:36 +00:00
/* 80020598 0001C3D8 38 63 2D 68 */ addi r3, r3, Zenkaku2Code@l
2022-10-16 16:05:58 +00:00
/* 8002059C 0001C3DC 7C 63 02 2E */ lhzx r3, r3, r0
/* 800205A0 0001C3E0 4E 80 00 20 */ blr
.global lbl_800205A4
lbl_800205A4:
/* 800205A4 0001C3E4 3C 64 00 01 */ addis r3, r4, 0x1
/* 800205A8 0001C3E8 38 03 FF DF */ addi r0, r3, -0x21
/* 800205AC 0001C3EC 54 00 04 3E */ clrlwi r0, r0, 16
/* 800205B0 0001C3F0 28 00 00 DE */ cmplwi r0, 0xde
/* 800205B4 0001C3F4 41 81 00 0C */ bgt lbl_800205C0
/* 800205B8 0001C3F8 38 64 FF E0 */ addi r3, r4, -0x20
/* 800205BC 0001C3FC 4E 80 00 20 */ blr
.global lbl_800205C0
lbl_800205C0:
/* 800205C0 0001C400 38 60 00 00 */ li r3, 0x0
/* 800205C4 0001C404 4E 80 00 20 */ blr
/* 800205C8 0001C408 00 00 00 00 */ .4byte 0x00000000
/* 800205CC 0001C40C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global Decode
Decode:
2022-10-16 16:05:58 +00:00
/* 800205D0 0001C410 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 800205D4 0001C414 7C 08 02 A6 */ mflr r0
/* 800205D8 0001C418 90 01 00 24 */ stw r0, 0x24(r1)
/* 800205DC 0001C41C 39 61 00 20 */ addi r11, r1, 0x20
/* 800205E0 0001C420 4B FE 6D 59 */ bl lbl_80007338
/* 800205E4 0001C424 80 A3 00 0C */ lwz r5, 0xc(r3)
/* 800205E8 0001C428 3B C3 00 10 */ addi r30, r3, 0x10
/* 800205EC 0001C42C 80 03 00 04 */ lwz r0, 0x4(r3)
/* 800205F0 0001C430 39 00 00 00 */ li r8, 0x0
/* 800205F4 0001C434 7F A3 2A 14 */ add r29, r3, r5
/* 800205F8 0001C438 81 23 00 08 */ lwz r9, 0x8(r3)
/* 800205FC 0001C43C 39 60 00 00 */ li r11, 0x0
/* 80020600 0001C440 3C A0 80 00 */ lis r5, 0x8000
/* 80020604 0001C444 60 00 00 00 */ nop
.global lbl_80020608
lbl_80020608:
/* 80020608 0001C448 2C 0B 00 00 */ cmpwi r11, 0x0
/* 8002060C 0001C44C 40 82 00 10 */ bne lbl_8002061C
/* 80020610 0001C450 81 9E 00 00 */ lwz r12, 0x0(r30)
/* 80020614 0001C454 39 60 00 20 */ li r11, 0x20
/* 80020618 0001C458 3B DE 00 04 */ addi r30, r30, 0x4
.global lbl_8002061C
lbl_8002061C:
/* 8002061C 0001C45C 55 86 00 01 */ clrrwi. r6, r12, 31
/* 80020620 0001C460 41 82 00 18 */ beq lbl_80020638
/* 80020624 0001C464 88 DD 00 00 */ lbz r6, 0x0(r29)
/* 80020628 0001C468 3B BD 00 01 */ addi r29, r29, 0x1
/* 8002062C 0001C46C 7C C4 41 AE */ stbx r6, r4, r8
/* 80020630 0001C470 39 08 00 01 */ addi r8, r8, 0x1
/* 80020634 0001C474 48 00 01 1C */ b lbl_80020750
.global lbl_80020638
lbl_80020638:
/* 80020638 0001C478 7C E3 4A 14 */ add r7, r3, r9
/* 8002063C 0001C47C 7C C3 48 AE */ lbzx r6, r3, r9
/* 80020640 0001C480 88 E7 00 01 */ lbz r7, 0x1(r7)
/* 80020644 0001C484 39 29 00 02 */ addi r9, r9, 0x2
/* 80020648 0001C488 50 C7 44 2E */ rlwimi r7, r6, 8, 16, 23
/* 8002064C 0001C48C 7C EA 66 71 */ srawi. r10, r7, 12
/* 80020650 0001C490 54 E6 05 3E */ clrlwi r6, r7, 20
/* 80020654 0001C494 7C E6 40 50 */ subf r7, r6, r8
/* 80020658 0001C498 40 82 00 14 */ bne lbl_8002066C
/* 8002065C 0001C49C 88 DD 00 00 */ lbz r6, 0x0(r29)
/* 80020660 0001C4A0 3B BD 00 01 */ addi r29, r29, 0x1
/* 80020664 0001C4A4 39 46 00 12 */ addi r10, r6, 0x12
/* 80020668 0001C4A8 48 00 00 08 */ b lbl_80020670
.global lbl_8002066C
lbl_8002066C:
/* 8002066C 0001C4AC 39 4A 00 02 */ addi r10, r10, 0x2
.global lbl_80020670
lbl_80020670:
/* 80020670 0001C4B0 2C 8A 00 00 */ cmpwi cr1, r10, 0x0
/* 80020674 0001C4B4 38 C0 00 00 */ li r6, 0x0
/* 80020678 0001C4B8 40 85 00 D8 */ ble cr1, lbl_80020750
/* 8002067C 0001C4BC 2C 0A 00 08 */ cmpwi r10, 0x8
/* 80020680 0001C4C0 3B 6A FF F8 */ addi r27, r10, -0x8
/* 80020684 0001C4C4 40 81 00 98 */ ble lbl_8002071C
/* 80020688 0001C4C8 3B 80 00 00 */ li r28, 0x0
/* 8002068C 0001C4CC 41 84 00 14 */ blt cr1, lbl_800206A0
/* 80020690 0001C4D0 3B 45 FF FE */ addi r26, r5, -0x2
/* 80020694 0001C4D4 7C 0A D0 00 */ cmpw r10, r26
/* 80020698 0001C4D8 41 81 00 08 */ bgt lbl_800206A0
/* 8002069C 0001C4DC 3B 80 00 01 */ li r28, 0x1
.global lbl_800206A0
lbl_800206A0:
/* 800206A0 0001C4E0 2C 1C 00 00 */ cmpwi r28, 0x0
/* 800206A4 0001C4E4 41 82 00 78 */ beq lbl_8002071C
/* 800206A8 0001C4E8 3B FB 00 07 */ addi r31, r27, 0x7
/* 800206AC 0001C4EC 7F 84 42 14 */ add r28, r4, r8
/* 800206B0 0001C4F0 57 FF E8 FE */ srwi r31, r31, 3
/* 800206B4 0001C4F4 7F E9 03 A6 */ mtctr r31
/* 800206B8 0001C4F8 2C 1B 00 00 */ cmpwi r27, 0x0
/* 800206BC 0001C4FC 40 81 00 60 */ ble lbl_8002071C
.global lbl_800206C0
lbl_800206C0:
/* 800206C0 0001C500 7F 44 3A 14 */ add r26, r4, r7
/* 800206C4 0001C504 7F 68 22 14 */ add r27, r8, r4
/* 800206C8 0001C508 8B FA FF FF */ lbz r31, -0x1(r26)
/* 800206CC 0001C50C 39 08 00 08 */ addi r8, r8, 0x8
/* 800206D0 0001C510 9B FC 00 00 */ stb r31, 0x0(r28)
/* 800206D4 0001C514 3B 9C 00 08 */ addi r28, r28, 0x8
/* 800206D8 0001C518 38 C6 00 08 */ addi r6, r6, 0x8
/* 800206DC 0001C51C 7F E4 38 AE */ lbzx r31, r4, r7
/* 800206E0 0001C520 38 E7 00 08 */ addi r7, r7, 0x8
/* 800206E4 0001C524 9B FB 00 01 */ stb r31, 0x1(r27)
/* 800206E8 0001C528 8B FA 00 01 */ lbz r31, 0x1(r26)
/* 800206EC 0001C52C 9B FB 00 02 */ stb r31, 0x2(r27)
/* 800206F0 0001C530 8B FA 00 02 */ lbz r31, 0x2(r26)
/* 800206F4 0001C534 9B FB 00 03 */ stb r31, 0x3(r27)
/* 800206F8 0001C538 8B FA 00 03 */ lbz r31, 0x3(r26)
/* 800206FC 0001C53C 9B FB 00 04 */ stb r31, 0x4(r27)
/* 80020700 0001C540 8B FA 00 04 */ lbz r31, 0x4(r26)
/* 80020704 0001C544 9B FB 00 05 */ stb r31, 0x5(r27)
/* 80020708 0001C548 8B FA 00 05 */ lbz r31, 0x5(r26)
/* 8002070C 0001C54C 9B FB 00 06 */ stb r31, 0x6(r27)
/* 80020710 0001C550 8B FA 00 06 */ lbz r31, 0x6(r26)
/* 80020714 0001C554 9B FB 00 07 */ stb r31, 0x7(r27)
/* 80020718 0001C558 42 00 FF A8 */ bdnz lbl_800206C0
.global lbl_8002071C
lbl_8002071C:
/* 8002071C 0001C55C 7F E6 50 50 */ subf r31, r6, r10
/* 80020720 0001C560 7F 84 42 14 */ add r28, r4, r8
/* 80020724 0001C564 7F E9 03 A6 */ mtctr r31
/* 80020728 0001C568 7C 06 50 00 */ cmpw r6, r10
/* 8002072C 0001C56C 40 80 00 24 */ bge lbl_80020750
.global lbl_80020730
lbl_80020730:
/* 80020730 0001C570 7D 44 3A 14 */ add r10, r4, r7
/* 80020734 0001C574 38 E7 00 01 */ addi r7, r7, 0x1
/* 80020738 0001C578 89 4A FF FF */ lbz r10, -0x1(r10)
/* 8002073C 0001C57C 38 C6 00 01 */ addi r6, r6, 0x1
/* 80020740 0001C580 99 5C 00 00 */ stb r10, 0x0(r28)
/* 80020744 0001C584 3B 9C 00 01 */ addi r28, r28, 0x1
/* 80020748 0001C588 39 08 00 01 */ addi r8, r8, 0x1
/* 8002074C 0001C58C 42 00 FF E4 */ bdnz lbl_80020730
.global lbl_80020750
lbl_80020750:
/* 80020750 0001C590 7C 08 00 00 */ cmpw r8, r0
/* 80020754 0001C594 55 8C 08 3C */ slwi r12, r12, 1
/* 80020758 0001C598 39 6B FF FF */ addi r11, r11, -0x1
/* 8002075C 0001C59C 41 80 FE AC */ blt lbl_80020608
/* 80020760 0001C5A0 39 61 00 20 */ addi r11, r1, 0x20
/* 80020764 0001C5A4 4B FE 6C 21 */ bl lbl_80007384
/* 80020768 0001C5A8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002076C 0001C5AC 7C 08 03 A6 */ mtlr r0
/* 80020770 0001C5B0 38 21 00 20 */ addi r1, r1, 0x20
/* 80020774 0001C5B4 4E 80 00 20 */ blr
/* 80020778 0001C5B8 00 00 00 00 */ .4byte 0x00000000
/* 8002077C 0001C5BC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSGetFontEncode
OSGetFontEncode:
/* 80020780 0001C5C0 A0 6D 80 C8 */ lhz r3, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020784 0001C5C4 28 03 FF FF */ cmplwi r3, 0xffff
/* 80020788 0001C5C8 4C 82 00 20 */ bnelr
/* 8002078C 0001C5CC 3C 60 80 00 */ lis r3, 0x800000CC@ha
/* 80020790 0001C5D0 80 03 00 CC */ lwz r0, 0x800000CC@l(r3)
/* 80020794 0001C5D4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020798 0001C5D8 40 82 00 18 */ bne lbl_800207B0
/* 8002079C 0001C5DC 3C 60 CC 00 */ lis r3, 0xCC00206E@ha
/* 800207A0 0001C5E0 A0 03 20 6E */ lhz r0, 0xCC00206E@l(r3)
/* 800207A4 0001C5E4 54 00 FF FE */ extrwi r0, r0, 1, 30
2022-10-16 16:31:36 +00:00
/* 800207A8 0001C5E8 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800207AC 0001C5EC 48 00 00 0C */ b lbl_800207B8
.global lbl_800207B0
lbl_800207B0:
/* 800207B0 0001C5F0 38 00 00 00 */ li r0, 0x0
2022-10-16 16:31:36 +00:00
/* 800207B4 0001C5F4 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_800207B8
lbl_800207B8:
2022-10-16 16:31:36 +00:00
/* 800207B8 0001C5F8 3C 80 80 02 */ lis r4, ParseStringS@ha
2022-10-16 16:05:58 +00:00
/* 800207BC 0001C5FC 54 03 04 3E */ clrlwi r3, r0, 16
2022-10-16 16:31:36 +00:00
/* 800207C0 0001C600 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 800207C4 0001C604 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800207C8 0001C608 4E 80 00 20 */ blr
/* 800207CC 0001C60C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSSetFontEncode
OSSetFontEncode:
/* 800207D0 0001C610 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800207D4 0001C614 28 00 FF FF */ cmplwi r0, 0xffff
/* 800207D8 0001C618 41 82 00 08 */ beq lbl_800207E0
/* 800207DC 0001C61C 48 00 00 40 */ b lbl_8002081C
.global lbl_800207E0
lbl_800207E0:
/* 800207E0 0001C620 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 800207E4 0001C624 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 800207E8 0001C628 2C 00 00 00 */ cmpwi r0, 0x0
/* 800207EC 0001C62C 40 82 00 18 */ bne lbl_80020804
/* 800207F0 0001C630 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 800207F4 0001C634 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 800207F8 0001C638 54 00 FF FE */ extrwi r0, r0, 1, 30
2022-10-16 16:31:36 +00:00
/* 800207FC 0001C63C B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80020800
lbl_80020800:
/* 80020800 0001C640 48 00 00 0C */ b lbl_8002080C
.global lbl_80020804
lbl_80020804:
/* 80020804 0001C644 38 00 00 00 */ li r0, 0x0
2022-10-16 16:31:36 +00:00
/* 80020808 0001C648 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_8002080C
lbl_8002080C:
2022-10-16 16:31:36 +00:00
/* 8002080C 0001C64C 3C 80 80 02 */ lis r4, ParseStringS@ha
2022-10-16 16:05:58 +00:00
/* 80020810 0001C650 54 00 04 3E */ clrlwi r0, r0, 16
2022-10-16 16:31:36 +00:00
/* 80020814 0001C654 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80020818 0001C658 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_8002081C
lbl_8002081C:
/* 8002081C 0001C65C 28 83 00 05 */ cmplwi cr1, r3, 0x5
/* 80020820 0001C660 41 85 00 20 */ bgt cr1, lbl_80020840
/* 80020824 0001C664 28 03 00 03 */ cmplwi r3, 0x3
2022-10-16 16:31:36 +00:00
/* 80020828 0001C668 B0 6D 80 C8 */ sth r3, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8002082C 0001C66C 41 80 00 14 */ blt lbl_80020840
/* 80020830 0001C670 41 85 00 10 */ bgt cr1, lbl_80020840
2022-10-16 16:31:36 +00:00
/* 80020834 0001C674 3C 60 80 02 */ lis r3, ParseStringW@ha
/* 80020838 0001C678 38 63 0D 80 */ addi r3, r3, ParseStringW@l
/* 8002083C 0001C67C 90 6D E3 D8 */ stw r3, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80020840
lbl_80020840:
/* 80020840 0001C680 7C 03 03 78 */ mr r3, r0
/* 80020844 0001C684 4E 80 00 20 */ blr
/* 80020848 0001C688 00 00 00 00 */ .4byte 0x00000000
/* 8002084C 0001C68C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global ReadFont
ReadFont:
2022-10-16 16:05:58 +00:00
/* 80020850 0001C690 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80020854 0001C694 7C 08 02 A6 */ mflr r0
/* 80020858 0001C698 90 01 00 34 */ stw r0, 0x34(r1)
/* 8002085C 0001C69C 39 61 00 30 */ addi r11, r1, 0x30
/* 80020860 0001C6A0 4B FE 6A D5 */ bl lbl_80007334
/* 80020864 0001C6A4 28 04 00 01 */ cmplwi r4, 0x1
/* 80020868 0001C6A8 7C 7C 1B 78 */ mr r28, r3
/* 8002086C 0001C6AC 7C 9D 23 78 */ mr r29, r4
/* 80020870 0001C6B0 7C BE 2B 78 */ mr r30, r5
/* 80020874 0001C6B4 40 82 00 5C */ bne lbl_800208D0
/* 80020878 0001C6B8 3C 80 00 1B */ lis r4, 0x1b
/* 8002087C 0001C6BC 3C 60 00 05 */ lis r3, 0x5
/* 80020880 0001C6C0 7F 9F E3 78 */ mr r31, r28
/* 80020884 0001C6C4 3B 44 FF 00 */ addi r26, r4, -0x100
/* 80020888 0001C6C8 3B 63 D0 00 */ addi r27, r3, -0x3000
/* 8002088C 0001C6CC 48 00 00 38 */ b lbl_800208C4
.global lbl_80020890
lbl_80020890:
/* 80020890 0001C6D0 2C 1B 01 00 */ cmpwi r27, 0x100
/* 80020894 0001C6D4 3B 20 01 00 */ li r25, 0x100
/* 80020898 0001C6D8 41 81 00 08 */ bgt lbl_800208A0
/* 8002089C 0001C6DC 7F 79 DB 78 */ mr r25, r27
.global lbl_800208A0
lbl_800208A0:
/* 800208A0 0001C6E0 7F 79 D8 50 */ subf r27, r25, r27
.global lbl_800208A4
lbl_800208A4:
/* 800208A4 0001C6E4 7F E3 FB 78 */ mr r3, r31
/* 800208A8 0001C6E8 7F 24 CB 78 */ mr r4, r25
/* 800208AC 0001C6EC 7F 45 D3 78 */ mr r5, r26
2022-10-16 16:31:36 +00:00
/* 800208B0 0001C6F0 48 00 35 C1 */ bl __OSReadROM
2022-10-16 16:05:58 +00:00
/* 800208B4 0001C6F4 2C 03 00 00 */ cmpwi r3, 0x0
/* 800208B8 0001C6F8 41 82 FF EC */ beq lbl_800208A4
/* 800208BC 0001C6FC 7F 5A CA 14 */ add r26, r26, r25
/* 800208C0 0001C700 7F FF CA 14 */ add r31, r31, r25
.global lbl_800208C4
lbl_800208C4:
/* 800208C4 0001C704 2C 1B 00 00 */ cmpwi r27, 0x0
/* 800208C8 0001C708 41 81 FF C8 */ bgt lbl_80020890
/* 800208CC 0001C70C 48 00 00 54 */ b lbl_80020920
.global lbl_800208D0
lbl_800208D0:
/* 800208D0 0001C710 3C 60 00 20 */ lis r3, 0x20
/* 800208D4 0001C714 7F 9A E3 78 */ mr r26, r28
/* 800208D8 0001C718 3B E3 CF 00 */ addi r31, r3, -0x3100
/* 800208DC 0001C71C 3B 60 30 00 */ li r27, 0x3000
/* 800208E0 0001C720 48 00 00 38 */ b lbl_80020918
.global lbl_800208E4
lbl_800208E4:
/* 800208E4 0001C724 2C 1B 01 00 */ cmpwi r27, 0x100
/* 800208E8 0001C728 3B 20 01 00 */ li r25, 0x100
/* 800208EC 0001C72C 41 81 00 08 */ bgt lbl_800208F4
/* 800208F0 0001C730 7F 79 DB 78 */ mr r25, r27
.global lbl_800208F4
lbl_800208F4:
/* 800208F4 0001C734 7F 79 D8 50 */ subf r27, r25, r27
.global lbl_800208F8
lbl_800208F8:
/* 800208F8 0001C738 7F 43 D3 78 */ mr r3, r26
/* 800208FC 0001C73C 7F 24 CB 78 */ mr r4, r25
/* 80020900 0001C740 7F E5 FB 78 */ mr r5, r31
2022-10-16 16:31:36 +00:00
/* 80020904 0001C744 48 00 35 6D */ bl __OSReadROM
2022-10-16 16:05:58 +00:00
/* 80020908 0001C748 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002090C 0001C74C 41 82 FF EC */ beq lbl_800208F8
/* 80020910 0001C750 7F FF CA 14 */ add r31, r31, r25
/* 80020914 0001C754 7F 5A CA 14 */ add r26, r26, r25
.global lbl_80020918
lbl_80020918:
/* 80020918 0001C758 2C 1B 00 00 */ cmpwi r27, 0x0
/* 8002091C 0001C75C 41 81 FF C8 */ bgt lbl_800208E4
.global lbl_80020920
lbl_80020920:
/* 80020920 0001C760 88 1C 00 00 */ lbz r0, 0x0(r28)
/* 80020924 0001C764 28 00 00 59 */ cmplwi r0, 0x59
/* 80020928 0001C768 40 82 00 24 */ bne lbl_8002094C
/* 8002092C 0001C76C 88 1C 00 01 */ lbz r0, 0x1(r28)
/* 80020930 0001C770 28 00 00 61 */ cmplwi r0, 0x61
/* 80020934 0001C774 40 82 00 18 */ bne lbl_8002094C
/* 80020938 0001C778 88 1C 00 02 */ lbz r0, 0x2(r28)
/* 8002093C 0001C77C 28 00 00 79 */ cmplwi r0, 0x79
/* 80020940 0001C780 40 82 00 0C */ bne lbl_8002094C
/* 80020944 0001C784 83 FC 00 04 */ lwz r31, 0x4(r28)
/* 80020948 0001C788 48 00 00 08 */ b lbl_80020950
.global lbl_8002094C
lbl_8002094C:
/* 8002094C 0001C78C 3B E0 00 00 */ li r31, 0x0
.global lbl_80020950
lbl_80020950:
/* 80020950 0001C790 2C 1F 00 00 */ cmpwi r31, 0x0
/* 80020954 0001C794 40 82 00 0C */ bne lbl_80020960
/* 80020958 0001C798 38 60 00 00 */ li r3, 0x0
/* 8002095C 0001C79C 48 00 01 EC */ b lbl_80020B48
.global lbl_80020960
lbl_80020960:
/* 80020960 0001C7A0 7F 83 E3 78 */ mr r3, r28
/* 80020964 0001C7A4 7F C4 F3 78 */ mr r4, r30
2022-10-16 16:31:36 +00:00
/* 80020968 0001C7A8 4B FF FC 69 */ bl Decode
2022-10-16 16:05:58 +00:00
/* 8002096C 0001C7AC 28 1D 00 01 */ cmplwi r29, 0x1
/* 80020970 0001C7B0 40 82 01 D4 */ bne lbl_80020B44
2022-10-16 16:31:36 +00:00
/* 80020974 0001C7B4 80 A2 85 90 */ lwz r5, "@1601_8055E510"@sda21(r2)
2022-10-16 16:05:58 +00:00
/* 80020978 0001C7B8 7F A3 EB 78 */ mr r3, r29
/* 8002097C 0001C7BC 80 02 85 94 */ lwz r0, lbl_8055E514@sda21(r2)
/* 80020980 0001C7C0 38 80 00 54 */ li r4, 0x54
/* 80020984 0001C7C4 90 A1 00 08 */ stw r5, 0x8(r1)
/* 80020988 0001C7C8 90 01 00 0C */ stw r0, 0xc(r1)
2022-10-16 16:31:36 +00:00
/* 8002098C 0001C7CC 4B FF FB 05 */ bl GetFontCode
2022-10-16 16:05:58 +00:00
/* 80020990 0001C7D0 A1 7E 00 1A */ lhz r11, 0x1a(r30)
/* 80020994 0001C7D4 A0 9E 00 1C */ lhz r4, 0x1c(r30)
/* 80020998 0001C7D8 A0 1E 00 1E */ lhz r0, 0x1e(r30)
/* 8002099C 0001C7DC 7D 2B 21 D6 */ mullw r9, r11, r4
/* 800209A0 0001C7E0 80 BE 00 24 */ lwz r5, 0x24(r30)
/* 800209A4 0001C7E4 54 04 10 34 */ extlwi r4, r0, 27, 2
/* 800209A8 0001C7E8 A0 DE 00 12 */ lhz r6, 0x12(r30)
/* 800209AC 0001C7EC 54 00 1F FE */ extrwi r0, r0, 1, 2
/* 800209B0 0001C7F0 A0 FE 00 10 */ lhz r7, 0x10(r30)
/* 800209B4 0001C7F4 7F 23 4B D6 */ divw r25, r3, r9
/* 800209B8 0001C7F8 7C 00 22 14 */ add r0, r0, r4
/* 800209BC 0001C7FC 81 5E 00 14 */ lwz r10, 0x14(r30)
/* 800209C0 0001C800 7C 9E 2A 14 */ add r4, r30, r5
/* 800209C4 0001C804 7C 1C 0E 70 */ srawi r28, r0, 1
/* 800209C8 0001C808 A1 01 00 08 */ lhz r8, 0x8(r1)
/* 800209CC 0001C80C 7C 19 49 D6 */ mullw r0, r25, r9
/* 800209D0 0001C810 A1 21 00 0A */ lhz r9, 0xa(r1)
/* 800209D4 0001C814 7C 60 18 50 */ subf r3, r0, r3
/* 800209D8 0001C818 7C A3 5B D6 */ divw r5, r3, r11
/* 800209DC 0001C81C 7C 05 59 D6 */ mullw r0, r5, r11
/* 800209E0 0001C820 7C A5 31 D6 */ mullw r5, r5, r6
/* 800209E4 0001C824 7F 40 18 50 */ subf r26, r0, r3
/* 800209E8 0001C828 38 C5 00 04 */ addi r6, r5, 0x4
/* 800209EC 0001C82C 7F 5A 39 D6 */ mullw r26, r26, r7
/* 800209F0 0001C830 39 65 00 05 */ addi r11, r5, 0x5
/* 800209F4 0001C834 7C C3 1E 70 */ srawi r3, r6, 3
/* 800209F8 0001C838 54 C0 E8 04 */ slwi r0, r6, 29
/* 800209FC 0001C83C 7D 83 01 94 */ addze r12, r3
/* 80020A00 0001C840 54 C7 0F FE */ srwi r7, r6, 31
/* 80020A04 0001C844 7F B9 51 D6 */ mullw r29, r25, r10
/* 80020A08 0001C848 7F 43 1E 70 */ srawi r3, r26, 3
/* 80020A0C 0001C84C 7C 07 00 50 */ subf r0, r7, r0
/* 80020A10 0001C850 7D 43 01 94 */ addze r10, r3
/* 80020A14 0001C854 54 03 18 3E */ rotlwi r3, r0, 3
/* 80020A18 0001C858 57 40 E8 04 */ slwi r0, r26, 29
/* 80020A1C 0001C85C 57 46 0F FE */ srwi r6, r26, 31
/* 80020A20 0001C860 57 BD F8 7E */ srwi r29, r29, 1
/* 80020A24 0001C864 7D 9C 61 D6 */ mullw r12, r28, r12
/* 80020A28 0001C868 7C E3 3A 14 */ add r7, r3, r7
/* 80020A2C 0001C86C 7C 06 00 50 */ subf r0, r6, r0
/* 80020A30 0001C870 7C 84 EA 14 */ add r4, r4, r29
/* 80020A34 0001C874 54 03 18 3E */ rotlwi r3, r0, 3
/* 80020A38 0001C878 55 40 20 36 */ slwi r0, r10, 4
/* 80020A3C 0001C87C 7C 63 32 14 */ add r3, r3, r6
/* 80020A40 0001C880 7D 84 62 14 */ add r12, r4, r12
/* 80020A44 0001C884 54 EA 08 3C */ slwi r10, r7, 1
/* 80020A48 0001C888 55 66 E8 04 */ slwi r6, r11, 29
/* 80020A4C 0001C88C 7C 63 16 70 */ srawi r3, r3, 2
/* 80020A50 0001C890 7D 8C 02 14 */ add r12, r12, r0
/* 80020A54 0001C894 55 67 0F FE */ srwi r7, r11, 31
/* 80020A58 0001C898 7C C7 30 50 */ subf r6, r7, r6
/* 80020A5C 0001C89C 7C 63 01 94 */ addze r3, r3
/* 80020A60 0001C8A0 7D 8C 52 14 */ add r12, r12, r10
/* 80020A64 0001C8A4 7D 0C 1B 2E */ sthx r8, r12, r3
/* 80020A68 0001C8A8 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80020A6C 0001C8AC 7C C6 3A 14 */ add r6, r6, r7
/* 80020A70 0001C8B0 39 05 00 06 */ addi r8, r5, 0x6
/* 80020A74 0001C8B4 A1 9E 00 1E */ lhz r12, 0x1e(r30)
/* 80020A78 0001C8B8 54 CA 08 3C */ slwi r10, r6, 1
/* 80020A7C 0001C8BC 55 06 E8 04 */ slwi r6, r8, 29
/* 80020A80 0001C8C0 55 07 0F FE */ srwi r7, r8, 31
/* 80020A84 0001C8C4 55 9C 10 34 */ extlwi r28, r12, 27, 2
/* 80020A88 0001C8C8 55 8C 1F FE */ extrwi r12, r12, 1, 2
/* 80020A8C 0001C8CC 7D 8C E2 14 */ add r12, r12, r28
/* 80020A90 0001C8D0 7C C7 30 50 */ subf r6, r7, r6
/* 80020A94 0001C8D4 7D 8C 0E 70 */ srawi r12, r12, 1
/* 80020A98 0001C8D8 7D 6B 1E 70 */ srawi r11, r11, 3
/* 80020A9C 0001C8DC 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80020AA0 0001C8E0 7D 6B 01 94 */ addze r11, r11
/* 80020AA4 0001C8E4 7C C6 3A 14 */ add r6, r6, r7
/* 80020AA8 0001C8E8 7D 6C 59 D6 */ mullw r11, r12, r11
/* 80020AAC 0001C8EC 54 C6 08 3C */ slwi r6, r6, 1
/* 80020AB0 0001C8F0 7C E4 5A 14 */ add r7, r4, r11
/* 80020AB4 0001C8F4 7C E7 02 14 */ add r7, r7, r0
/* 80020AB8 0001C8F8 7C E7 52 14 */ add r7, r7, r10
/* 80020ABC 0001C8FC 7D 27 1B 2E */ sthx r9, r7, r3
/* 80020AC0 0001C900 A0 FE 00 1E */ lhz r7, 0x1e(r30)
/* 80020AC4 0001C904 54 E9 10 34 */ extlwi r9, r7, 27, 2
/* 80020AC8 0001C908 54 E7 1F FE */ extrwi r7, r7, 1, 2
/* 80020ACC 0001C90C 7C E7 4A 14 */ add r7, r7, r9
/* 80020AD0 0001C910 7C E9 0E 70 */ srawi r9, r7, 1
/* 80020AD4 0001C914 7D 07 1E 70 */ srawi r7, r8, 3
/* 80020AD8 0001C918 7C E7 01 94 */ addze r7, r7
/* 80020ADC 0001C91C 7C E9 39 D6 */ mullw r7, r9, r7
/* 80020AE0 0001C920 7C E4 3A 14 */ add r7, r4, r7
/* 80020AE4 0001C924 7C E7 02 14 */ add r7, r7, r0
/* 80020AE8 0001C928 7C E7 32 14 */ add r7, r7, r6
/* 80020AEC 0001C92C A0 C1 00 0C */ lhz r6, 0xc(r1)
/* 80020AF0 0001C930 39 05 00 07 */ addi r8, r5, 0x7
/* 80020AF4 0001C934 7C C7 1B 2E */ sthx r6, r7, r3
/* 80020AF8 0001C938 55 06 E8 04 */ slwi r6, r8, 29
/* 80020AFC 0001C93C 55 07 0F FE */ srwi r7, r8, 31
/* 80020B00 0001C940 A0 A1 00 0E */ lhz r5, 0xe(r1)
/* 80020B04 0001C944 A1 3E 00 1E */ lhz r9, 0x1e(r30)
/* 80020B08 0001C948 7C C7 30 50 */ subf r6, r7, r6
/* 80020B0C 0001C94C 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80020B10 0001C950 55 2A 10 34 */ extlwi r10, r9, 27, 2
/* 80020B14 0001C954 55 29 1F FE */ extrwi r9, r9, 1, 2
/* 80020B18 0001C958 7D 29 52 14 */ add r9, r9, r10
/* 80020B1C 0001C95C 7C C6 3A 14 */ add r6, r6, r7
/* 80020B20 0001C960 7D 29 0E 70 */ srawi r9, r9, 1
/* 80020B24 0001C964 7D 07 1E 70 */ srawi r7, r8, 3
/* 80020B28 0001C968 54 C6 08 3C */ slwi r6, r6, 1
/* 80020B2C 0001C96C 7C E7 01 94 */ addze r7, r7
/* 80020B30 0001C970 7C E9 39 D6 */ mullw r7, r9, r7
/* 80020B34 0001C974 7C 84 3A 14 */ add r4, r4, r7
/* 80020B38 0001C978 7C 84 02 14 */ add r4, r4, r0
/* 80020B3C 0001C97C 7C 84 32 14 */ add r4, r4, r6
/* 80020B40 0001C980 7C A4 1B 2E */ sthx r5, r4, r3
.global lbl_80020B44
lbl_80020B44:
/* 80020B44 0001C984 7F E3 FB 78 */ mr r3, r31
.global lbl_80020B48
lbl_80020B48:
/* 80020B48 0001C988 39 61 00 30 */ addi r11, r1, 0x30
/* 80020B4C 0001C98C 4B FE 68 35 */ bl lbl_80007380
/* 80020B50 0001C990 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020B54 0001C994 7C 08 03 A6 */ mtlr r0
/* 80020B58 0001C998 38 21 00 30 */ addi r1, r1, 0x30
/* 80020B5C 0001C99C 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global OSLoadFont
OSLoadFont:
2022-10-16 16:05:58 +00:00
/* 80020B60 0001C9A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80020B64 0001C9A4 7C 08 02 A6 */ mflr r0
/* 80020B68 0001C9A8 7C 65 1B 78 */ mr r5, r3
/* 80020B6C 0001C9AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80020B70 0001C9B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80020B74 0001C9B4 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80020B78 0001C9B8 7C 9E 23 78 */ mr r30, r4
2022-10-16 16:31:36 +00:00
/* 80020B7C 0001C9BC A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020B80 0001C9C0 28 00 FF FF */ cmplwi r0, 0xffff
/* 80020B84 0001C9C4 41 82 00 08 */ beq lbl_80020B8C
/* 80020B88 0001C9C8 48 00 00 40 */ b lbl_80020BC8
.global lbl_80020B8C
lbl_80020B8C:
/* 80020B8C 0001C9CC 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80020B90 0001C9D0 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 80020B94 0001C9D4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020B98 0001C9D8 40 82 00 18 */ bne lbl_80020BB0
/* 80020B9C 0001C9DC 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80020BA0 0001C9E0 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 80020BA4 0001C9E4 54 00 FF FE */ extrwi r0, r0, 1, 30
2022-10-16 16:31:36 +00:00
/* 80020BA8 0001C9E8 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020BAC 0001C9EC 48 00 00 0C */ b lbl_80020BB8
.global lbl_80020BB0
lbl_80020BB0:
/* 80020BB0 0001C9F0 38 00 00 00 */ li r0, 0x0
2022-10-16 16:31:36 +00:00
/* 80020BB4 0001C9F4 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80020BB8
lbl_80020BB8:
2022-10-16 16:31:36 +00:00
/* 80020BB8 0001C9F8 3C 80 80 02 */ lis r4, ParseStringS@ha
2022-10-16 16:05:58 +00:00
/* 80020BBC 0001C9FC 54 00 04 3E */ clrlwi r0, r0, 16
2022-10-16 16:31:36 +00:00
/* 80020BC0 0001CA00 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80020BC4 0001CA04 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80020BC8
lbl_80020BC8:
/* 80020BC8 0001CA08 54 04 04 3E */ clrlwi r4, r0, 16
/* 80020BCC 0001CA0C 38 04 FF FD */ addi r0, r4, -0x3
/* 80020BD0 0001CA10 28 00 00 02 */ cmplwi r0, 0x2
/* 80020BD4 0001CA14 40 81 00 48 */ ble lbl_80020C1C
/* 80020BD8 0001CA18 2C 04 00 00 */ cmpwi r4, 0x0
/* 80020BDC 0001CA1C 41 82 00 10 */ beq lbl_80020BEC
/* 80020BE0 0001CA20 2C 04 00 01 */ cmpwi r4, 0x1
/* 80020BE4 0001CA24 41 82 00 20 */ beq lbl_80020C04
/* 80020BE8 0001CA28 48 00 00 70 */ b lbl_80020C58
.global lbl_80020BEC
lbl_80020BEC:
2022-10-16 16:31:36 +00:00
/* 80020BEC 0001CA2C 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020BF0 0001CA30 7F C3 F3 78 */ mr r3, r30
/* 80020BF4 0001CA34 38 80 00 00 */ li r4, 0x0
2022-10-16 16:31:36 +00:00
/* 80020BF8 0001CA38 4B FF FC 59 */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 80020BFC 0001CA3C 7C 7F 1B 78 */ mr r31, r3
/* 80020C00 0001CA40 48 00 00 5C */ b lbl_80020C5C
.global lbl_80020C04
lbl_80020C04:
2022-10-16 16:31:36 +00:00
/* 80020C04 0001CA44 90 6D E3 E0 */ stw r3, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020C08 0001CA48 7F C3 F3 78 */ mr r3, r30
/* 80020C0C 0001CA4C 38 80 00 01 */ li r4, 0x1
2022-10-16 16:31:36 +00:00
/* 80020C10 0001CA50 4B FF FC 41 */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 80020C14 0001CA54 7C 7F 1B 78 */ mr r31, r3
/* 80020C18 0001CA58 48 00 00 44 */ b lbl_80020C5C
.global lbl_80020C1C
lbl_80020C1C:
2022-10-16 16:31:36 +00:00
/* 80020C1C 0001CA5C 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020C20 0001CA60 7F C3 F3 78 */ mr r3, r30
/* 80020C24 0001CA64 38 80 00 00 */ li r4, 0x0
2022-10-16 16:31:36 +00:00
/* 80020C28 0001CA68 4B FF FC 29 */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 80020C2C 0001CA6C 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020C30 0001CA70 7C 7F 1B 78 */ mr r31, r3
/* 80020C34 0001CA74 41 82 00 28 */ beq lbl_80020C5C
2022-10-16 16:31:36 +00:00
/* 80020C38 0001CA78 80 0D E3 E4 */ lwz r0, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020C3C 0001CA7C 38 80 00 01 */ li r4, 0x1
/* 80020C40 0001CA80 7C A0 1A 14 */ add r5, r0, r3
2022-10-16 16:31:36 +00:00
/* 80020C44 0001CA84 90 AD E3 E0 */ stw r5, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020C48 0001CA88 7F C3 F3 78 */ mr r3, r30
2022-10-16 16:31:36 +00:00
/* 80020C4C 0001CA8C 4B FF FC 05 */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 80020C50 0001CA90 7F FF 1A 14 */ add r31, r31, r3
/* 80020C54 0001CA94 48 00 00 08 */ b lbl_80020C5C
.global lbl_80020C58
lbl_80020C58:
/* 80020C58 0001CA98 3B E0 00 00 */ li r31, 0x0
.global lbl_80020C5C
lbl_80020C5C:
/* 80020C5C 0001CA9C 7F E3 FB 78 */ mr r3, r31
/* 80020C60 0001CAA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80020C64 0001CAA4 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80020C68 0001CAA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80020C6C 0001CAAC 7C 08 03 A6 */ mtlr r0
/* 80020C70 0001CAB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80020C74 0001CAB4 4E 80 00 20 */ blr
/* 80020C78 0001CAB8 00 00 00 00 */ .4byte 0x00000000
/* 80020C7C 0001CABC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global ParseStringS
ParseStringS:
2022-10-16 16:05:58 +00:00
/* 80020C80 0001CAC0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80020C84 0001CAC4 7C 08 02 A6 */ mflr r0
/* 80020C88 0001CAC8 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020C8C 0001CACC 38 E0 00 00 */ li r7, 0x0
/* 80020C90 0001CAD0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80020C94 0001CAD4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80020C98 0001CAD8 7C DF 33 78 */ mr r31, r6
/* 80020C9C 0001CADC 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80020CA0 0001CAE0 7C 9E 23 78 */ mr r30, r4
/* 80020CA4 0001CAE4 41 82 00 10 */ beq lbl_80020CB4
/* 80020CA8 0001CAE8 2C 03 00 01 */ cmpwi r3, 0x1
/* 80020CAC 0001CAEC 41 82 00 20 */ beq lbl_80020CCC
/* 80020CB0 0001CAF0 48 00 00 9C */ b lbl_80020D4C
.global lbl_80020CB4
lbl_80020CB4:
/* 80020CB4 0001CAF4 88 E4 00 00 */ lbz r7, 0x0(r4)
2022-10-16 16:31:36 +00:00
/* 80020CB8 0001CAF8 80 CD E3 E4 */ lwz r6, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020CBC 0001CAFC 2C 07 00 00 */ cmpwi r7, 0x0
/* 80020CC0 0001CB00 41 82 00 8C */ beq lbl_80020D4C
/* 80020CC4 0001CB04 3B C4 00 01 */ addi r30, r4, 0x1
/* 80020CC8 0001CB08 48 00 00 84 */ b lbl_80020D4C
.global lbl_80020CCC
lbl_80020CCC:
/* 80020CCC 0001CB0C 88 E4 00 00 */ lbz r7, 0x0(r4)
2022-10-16 16:31:36 +00:00
/* 80020CD0 0001CB10 80 CD E3 E0 */ lwz r6, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020CD4 0001CB14 2C 07 00 00 */ cmpwi r7, 0x0
/* 80020CD8 0001CB18 41 82 00 74 */ beq lbl_80020D4C
/* 80020CDC 0001CB1C 28 07 00 81 */ cmplwi r7, 0x81
/* 80020CE0 0001CB20 3B C4 00 01 */ addi r30, r4, 0x1
/* 80020CE4 0001CB24 38 00 00 00 */ li r0, 0x0
/* 80020CE8 0001CB28 41 80 00 0C */ blt lbl_80020CF4
/* 80020CEC 0001CB2C 28 07 00 9F */ cmplwi r7, 0x9f
/* 80020CF0 0001CB30 40 81 00 14 */ ble lbl_80020D04
.global lbl_80020CF4
lbl_80020CF4:
/* 80020CF4 0001CB34 28 07 00 E0 */ cmplwi r7, 0xe0
/* 80020CF8 0001CB38 41 80 00 10 */ blt lbl_80020D08
/* 80020CFC 0001CB3C 28 07 00 FC */ cmplwi r7, 0xfc
/* 80020D00 0001CB40 41 81 00 08 */ bgt lbl_80020D08
.global lbl_80020D04
lbl_80020D04:
/* 80020D04 0001CB44 38 00 00 01 */ li r0, 0x1
.global lbl_80020D08
lbl_80020D08:
/* 80020D08 0001CB48 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020D0C 0001CB4C 41 82 00 40 */ beq lbl_80020D4C
/* 80020D10 0001CB50 88 9E 00 00 */ lbz r4, 0x0(r30)
/* 80020D14 0001CB54 38 00 00 00 */ li r0, 0x0
/* 80020D18 0001CB58 28 04 00 40 */ cmplwi r4, 0x40
/* 80020D1C 0001CB5C 41 80 00 18 */ blt lbl_80020D34
/* 80020D20 0001CB60 28 04 00 FC */ cmplwi r4, 0xfc
/* 80020D24 0001CB64 41 81 00 10 */ bgt lbl_80020D34
/* 80020D28 0001CB68 28 04 00 7F */ cmplwi r4, 0x7f
/* 80020D2C 0001CB6C 41 82 00 08 */ beq lbl_80020D34
/* 80020D30 0001CB70 38 00 00 01 */ li r0, 0x1
.global lbl_80020D34
lbl_80020D34:
/* 80020D34 0001CB74 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020D38 0001CB78 41 82 00 14 */ beq lbl_80020D4C
/* 80020D3C 0001CB7C 88 1E 00 00 */ lbz r0, 0x0(r30)
/* 80020D40 0001CB80 50 E0 42 2E */ rlwimi r0, r7, 8, 8, 23
/* 80020D44 0001CB84 3B DE 00 01 */ addi r30, r30, 0x1
/* 80020D48 0001CB88 54 07 04 3E */ clrlwi r7, r0, 16
.global lbl_80020D4C
lbl_80020D4C:
/* 80020D4C 0001CB8C 90 C5 00 00 */ stw r6, 0x0(r5)
/* 80020D50 0001CB90 7C E4 3B 78 */ mr r4, r7
2022-10-16 16:31:36 +00:00
/* 80020D54 0001CB94 4B FF F7 3D */ bl GetFontCode
2022-10-16 16:05:58 +00:00
/* 80020D58 0001CB98 90 7F 00 00 */ stw r3, 0x0(r31)
/* 80020D5C 0001CB9C 7F C3 F3 78 */ mr r3, r30
/* 80020D60 0001CBA0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80020D64 0001CBA4 83 C1 00 08 */ lwz r30, 0x8(r1)
/* 80020D68 0001CBA8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80020D6C 0001CBAC 7C 08 03 A6 */ mtlr r0
/* 80020D70 0001CBB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80020D74 0001CBB4 4E 80 00 20 */ blr
/* 80020D78 0001CBB8 00 00 00 00 */ .4byte 0x00000000
/* 80020D7C 0001CBBC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global ParseStringW
ParseStringW:
2022-10-16 16:05:58 +00:00
/* 80020D80 0001CBC0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80020D84 0001CBC4 7C 08 02 A6 */ mflr r0
/* 80020D88 0001CBC8 90 01 00 34 */ stw r0, 0x34(r1)
/* 80020D8C 0001CBCC 39 61 00 30 */ addi r11, r1, 0x30
/* 80020D90 0001CBD0 4B FE 65 A9 */ bl lbl_80007338
/* 80020D94 0001CBD4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020D98 0001CBD8 3B C0 00 00 */ li r30, 0x0
/* 80020D9C 0001CBDC 93 C1 00 08 */ stw r30, 0x8(r1)
/* 80020DA0 0001CBE0 7C 7A 1B 78 */ mr r26, r3
/* 80020DA4 0001CBE4 7C 9B 23 78 */ mr r27, r4
/* 80020DA8 0001CBE8 7C BC 2B 78 */ mr r28, r5
/* 80020DAC 0001CBEC 7C DD 33 78 */ mr r29, r6
/* 80020DB0 0001CBF0 41 82 00 28 */ beq lbl_80020DD8
/* 80020DB4 0001CBF4 2C 03 00 01 */ cmpwi r3, 0x1
/* 80020DB8 0001CBF8 41 82 00 38 */ beq lbl_80020DF0
/* 80020DBC 0001CBFC 2C 03 00 03 */ cmpwi r3, 0x3
/* 80020DC0 0001CC00 41 82 00 B4 */ beq lbl_80020E74
/* 80020DC4 0001CC04 2C 03 00 04 */ cmpwi r3, 0x4
/* 80020DC8 0001CC08 41 82 00 C0 */ beq lbl_80020E88
/* 80020DCC 0001CC0C 2C 03 00 05 */ cmpwi r3, 0x5
/* 80020DD0 0001CC10 41 82 00 CC */ beq lbl_80020E9C
/* 80020DD4 0001CC14 48 00 00 DC */ b lbl_80020EB0
.global lbl_80020DD8
lbl_80020DD8:
/* 80020DD8 0001CC18 8B C4 00 00 */ lbz r30, 0x0(r4)
2022-10-16 16:31:36 +00:00
/* 80020DDC 0001CC1C 83 ED E3 E4 */ lwz r31, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020DE0 0001CC20 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80020DE4 0001CC24 41 82 00 CC */ beq lbl_80020EB0
/* 80020DE8 0001CC28 3B 64 00 01 */ addi r27, r4, 0x1
/* 80020DEC 0001CC2C 48 00 00 C4 */ b lbl_80020EB0
.global lbl_80020DF0
lbl_80020DF0:
/* 80020DF0 0001CC30 8B C4 00 00 */ lbz r30, 0x0(r4)
2022-10-16 16:31:36 +00:00
/* 80020DF4 0001CC34 83 ED E3 E0 */ lwz r31, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020DF8 0001CC38 2C 1E 00 00 */ cmpwi r30, 0x0
/* 80020DFC 0001CC3C 41 82 00 B4 */ beq lbl_80020EB0
/* 80020E00 0001CC40 28 1E 00 81 */ cmplwi r30, 0x81
/* 80020E04 0001CC44 3B 64 00 01 */ addi r27, r4, 0x1
/* 80020E08 0001CC48 38 00 00 00 */ li r0, 0x0
/* 80020E0C 0001CC4C 41 80 00 0C */ blt lbl_80020E18
/* 80020E10 0001CC50 28 1E 00 9F */ cmplwi r30, 0x9f
/* 80020E14 0001CC54 40 81 00 14 */ ble lbl_80020E28
.global lbl_80020E18
lbl_80020E18:
/* 80020E18 0001CC58 28 1E 00 E0 */ cmplwi r30, 0xe0
/* 80020E1C 0001CC5C 41 80 00 10 */ blt lbl_80020E2C
/* 80020E20 0001CC60 28 1E 00 FC */ cmplwi r30, 0xfc
/* 80020E24 0001CC64 41 81 00 08 */ bgt lbl_80020E2C
.global lbl_80020E28
lbl_80020E28:
/* 80020E28 0001CC68 38 00 00 01 */ li r0, 0x1
.global lbl_80020E2C
lbl_80020E2C:
/* 80020E2C 0001CC6C 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020E30 0001CC70 41 82 00 80 */ beq lbl_80020EB0
/* 80020E34 0001CC74 88 7B 00 00 */ lbz r3, 0x0(r27)
/* 80020E38 0001CC78 38 00 00 00 */ li r0, 0x0
/* 80020E3C 0001CC7C 28 03 00 40 */ cmplwi r3, 0x40
/* 80020E40 0001CC80 41 80 00 18 */ blt lbl_80020E58
/* 80020E44 0001CC84 28 03 00 FC */ cmplwi r3, 0xfc
/* 80020E48 0001CC88 41 81 00 10 */ bgt lbl_80020E58
/* 80020E4C 0001CC8C 28 03 00 7F */ cmplwi r3, 0x7f
/* 80020E50 0001CC90 41 82 00 08 */ beq lbl_80020E58
/* 80020E54 0001CC94 38 00 00 01 */ li r0, 0x1
.global lbl_80020E58
lbl_80020E58:
/* 80020E58 0001CC98 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020E5C 0001CC9C 41 82 00 54 */ beq lbl_80020EB0
/* 80020E60 0001CCA0 88 1B 00 00 */ lbz r0, 0x0(r27)
/* 80020E64 0001CCA4 53 C0 42 2E */ rlwimi r0, r30, 8, 8, 23
/* 80020E68 0001CCA8 3B 7B 00 01 */ addi r27, r27, 0x1
/* 80020E6C 0001CCAC 54 1E 04 3E */ clrlwi r30, r0, 16
/* 80020E70 0001CCB0 48 00 00 40 */ b lbl_80020EB0
.global lbl_80020E74
lbl_80020E74:
/* 80020E74 0001CCB4 7F 63 DB 78 */ mr r3, r27
/* 80020E78 0001CCB8 38 81 00 08 */ addi r4, r1, 0x8
2022-10-16 16:31:36 +00:00
/* 80020E7C 0001CCBC 48 00 50 F5 */ bl OSUTF8to32
2022-10-16 16:05:58 +00:00
/* 80020E80 0001CCC0 7C 7B 1B 78 */ mr r27, r3
/* 80020E84 0001CCC4 48 00 00 2C */ b lbl_80020EB0
.global lbl_80020E88
lbl_80020E88:
/* 80020E88 0001CCC8 7F 63 DB 78 */ mr r3, r27
/* 80020E8C 0001CCCC 38 81 00 08 */ addi r4, r1, 0x8
2022-10-16 16:31:36 +00:00
/* 80020E90 0001CCD0 48 00 52 01 */ bl OSUTF16to32
2022-10-16 16:05:58 +00:00
/* 80020E94 0001CCD4 7C 7B 1B 78 */ mr r27, r3
/* 80020E98 0001CCD8 48 00 00 18 */ b lbl_80020EB0
.global lbl_80020E9C
lbl_80020E9C:
/* 80020E9C 0001CCDC 80 04 00 00 */ lwz r0, 0x0(r4)
/* 80020EA0 0001CCE0 90 01 00 08 */ stw r0, 0x8(r1)
/* 80020EA4 0001CCE4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020EA8 0001CCE8 41 82 00 08 */ beq lbl_80020EB0
/* 80020EAC 0001CCEC 3B 64 00 04 */ addi r27, r4, 0x4
.global lbl_80020EB0
lbl_80020EB0:
/* 80020EB0 0001CCF0 80 61 00 08 */ lwz r3, 0x8(r1)
/* 80020EB4 0001CCF4 2C 03 00 00 */ cmpwi r3, 0x0
/* 80020EB8 0001CCF8 41 82 00 4C */ beq lbl_80020F04
2022-10-16 16:31:36 +00:00
/* 80020EBC 0001CCFC 83 ED E3 E4 */ lwz r31, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020EC0 0001CD00 3B 40 00 00 */ li r26, 0x0
2022-10-16 16:31:36 +00:00
/* 80020EC4 0001CD04 48 00 52 3D */ bl OSUTF32toANSI
2022-10-16 16:05:58 +00:00
/* 80020EC8 0001CD08 54 7E 06 3F */ clrlwi. r30, r3, 24
/* 80020ECC 0001CD0C 41 82 00 1C */ beq lbl_80020EE8
2022-10-16 16:31:36 +00:00
/* 80020ED0 0001CD10 80 0D E3 DC */ lwz r0, FixedPitch@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020ED4 0001CD14 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020ED8 0001CD18 41 82 00 2C */ beq lbl_80020F04
/* 80020EDC 0001CD1C 80 01 00 08 */ lwz r0, 0x8(r1)
/* 80020EE0 0001CD20 28 00 00 7F */ cmplwi r0, 0x7f
/* 80020EE4 0001CD24 41 81 00 20 */ bgt lbl_80020F04
.global lbl_80020EE8
lbl_80020EE8:
/* 80020EE8 0001CD28 80 61 00 08 */ lwz r3, 0x8(r1)
2022-10-16 16:31:36 +00:00
/* 80020EEC 0001CD2C 48 00 52 95 */ bl OSUTF32toSJIS
2022-10-16 16:05:58 +00:00
/* 80020EF0 0001CD30 54 60 04 3F */ clrlwi. r0, r3, 16
/* 80020EF4 0001CD34 7C 7E 1B 78 */ mr r30, r3
/* 80020EF8 0001CD38 41 82 00 0C */ beq lbl_80020F04
/* 80020EFC 0001CD3C 3B 40 00 01 */ li r26, 0x1
2022-10-16 16:31:36 +00:00
/* 80020F00 0001CD40 83 ED E3 E0 */ lwz r31, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80020F04
lbl_80020F04:
/* 80020F04 0001CD44 93 FC 00 00 */ stw r31, 0x0(r28)
/* 80020F08 0001CD48 7F 43 D3 78 */ mr r3, r26
/* 80020F0C 0001CD4C 57 C4 04 3E */ clrlwi r4, r30, 16
2022-10-16 16:31:36 +00:00
/* 80020F10 0001CD50 4B FF F5 81 */ bl GetFontCode
2022-10-16 16:05:58 +00:00
/* 80020F14 0001CD54 90 7D 00 00 */ stw r3, 0x0(r29)
/* 80020F18 0001CD58 39 61 00 30 */ addi r11, r1, 0x30
/* 80020F1C 0001CD5C 7F 63 DB 78 */ mr r3, r27
/* 80020F20 0001CD60 4B FE 64 65 */ bl lbl_80007384
/* 80020F24 0001CD64 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80020F28 0001CD68 7C 08 03 A6 */ mtlr r0
/* 80020F2C 0001CD6C 38 21 00 30 */ addi r1, r1, 0x30
/* 80020F30 0001CD70 4E 80 00 20 */ blr
/* 80020F34 0001CD74 00 00 00 00 */ .4byte 0x00000000
/* 80020F38 0001CD78 00 00 00 00 */ .4byte 0x00000000
/* 80020F3C 0001CD7C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSGetFontTexel
OSGetFontTexel:
2022-10-16 16:05:58 +00:00
/* 80020F40 0001CD80 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 80020F44 0001CD84 7C 08 02 A6 */ mflr r0
/* 80020F48 0001CD88 90 01 00 54 */ stw r0, 0x54(r1)
/* 80020F4C 0001CD8C 39 61 00 50 */ addi r11, r1, 0x50
/* 80020F50 0001CD90 4B FE 63 C5 */ bl lbl_80007314
2022-10-16 16:31:36 +00:00
/* 80020F54 0001CD94 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020F58 0001CD98 7C 9D 23 78 */ mr r29, r4
/* 80020F5C 0001CD9C 7C BE 2B 78 */ mr r30, r5
/* 80020F60 0001CDA0 7C D1 33 78 */ mr r17, r6
/* 80020F64 0001CDA4 28 00 FF FF */ cmplwi r0, 0xffff
/* 80020F68 0001CDA8 7C FF 3B 78 */ mr r31, r7
/* 80020F6C 0001CDAC 41 82 00 08 */ beq lbl_80020F74
/* 80020F70 0001CDB0 48 00 00 40 */ b lbl_80020FB0
.global lbl_80020F74
lbl_80020F74:
/* 80020F74 0001CDB4 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80020F78 0001CDB8 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 80020F7C 0001CDBC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80020F80 0001CDC0 40 82 00 18 */ bne lbl_80020F98
/* 80020F84 0001CDC4 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80020F88 0001CDC8 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 80020F8C 0001CDCC 54 00 FF FE */ extrwi r0, r0, 1, 30
2022-10-16 16:31:36 +00:00
/* 80020F90 0001CDD0 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020F94 0001CDD4 48 00 00 0C */ b lbl_80020FA0
.global lbl_80020F98
lbl_80020F98:
/* 80020F98 0001CDD8 38 00 00 00 */ li r0, 0x0
2022-10-16 16:31:36 +00:00
/* 80020F9C 0001CDDC B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80020FA0
lbl_80020FA0:
2022-10-16 16:31:36 +00:00
/* 80020FA0 0001CDE0 3C 80 80 02 */ lis r4, ParseStringS@ha
2022-10-16 16:05:58 +00:00
/* 80020FA4 0001CDE4 54 00 04 3E */ clrlwi r0, r0, 16
2022-10-16 16:31:36 +00:00
/* 80020FA8 0001CDE8 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80020FAC 0001CDEC 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80020FB0
lbl_80020FB0:
2022-10-16 16:31:36 +00:00
/* 80020FB0 0001CDF0 81 8D E3 D8 */ lwz r12, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80020FB4 0001CDF4 7C 64 1B 78 */ mr r4, r3
/* 80020FB8 0001CDF8 54 03 04 3E */ clrlwi r3, r0, 16
/* 80020FBC 0001CDFC 38 A1 00 0C */ addi r5, r1, 0xc
/* 80020FC0 0001CE00 38 C1 00 08 */ addi r6, r1, 0x8
/* 80020FC4 0001CE04 7D 89 03 A6 */ mtctr r12
/* 80020FC8 0001CE08 4E 80 04 21 */ bctrl
/* 80020FCC 0001CE0C 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80020FD0 0001CE10 56 20 10 3A */ slwi r0, r17, 2
/* 80020FD4 0001CE14 7C 00 1E 70 */ srawi r0, r0, 3
/* 80020FD8 0001CE18 81 61 00 08 */ lwz r11, 0x8(r1)
/* 80020FDC 0001CE1C A1 24 00 1A */ lhz r9, 0x1a(r4)
/* 80020FE0 0001CE20 7C 00 01 94 */ addze r0, r0
/* 80020FE4 0001CE24 A0 A4 00 1C */ lhz r5, 0x1c(r4)
/* 80020FE8 0001CE28 54 08 28 34 */ slwi r8, r0, 5
/* 80020FEC 0001CE2C 80 C4 00 24 */ lwz r6, 0x24(r4)
/* 80020FF0 0001CE30 3A E4 00 2C */ addi r23, r4, 0x2c
/* 80020FF4 0001CE34 7D 49 29 D6 */ mullw r10, r9, r5
/* 80020FF8 0001CE38 80 A4 00 14 */ lwz r5, 0x14(r4)
/* 80020FFC 0001CE3C 7E C4 32 14 */ add r22, r4, r6
/* 80021000 0001CE40 A0 E4 00 12 */ lhz r7, 0x12(r4)
/* 80021004 0001CE44 A0 C4 00 10 */ lhz r6, 0x10(r4)
/* 80021008 0001CE48 3B 00 00 00 */ li r24, 0x0
/* 8002100C 0001CE4C 7D 8B 53 D6 */ divw r12, r11, r10
/* 80021010 0001CE50 7C 0C 51 D6 */ mullw r0, r12, r10
/* 80021014 0001CE54 7D 60 58 50 */ subf r11, r0, r11
/* 80021018 0001CE58 7D 4B 4B D6 */ divw r10, r11, r9
/* 8002101C 0001CE5C 7D 2A 49 D6 */ mullw r9, r10, r9
/* 80021020 0001CE60 7C 0C 29 D6 */ mullw r0, r12, r5
/* 80021024 0001CE64 7F 49 58 50 */ subf r26, r9, r11
/* 80021028 0001CE68 54 00 F8 7E */ srwi r0, r0, 1
/* 8002102C 0001CE6C 7F 6A 39 D6 */ mullw r27, r10, r7
/* 80021030 0001CE70 7E D6 02 14 */ add r22, r22, r0
/* 80021034 0001CE74 7F 5A 31 D6 */ mullw r26, r26, r6
/* 80021038 0001CE78 48 00 01 4C */ b lbl_80021184
.global lbl_8002103C
lbl_8002103C:
/* 8002103C 0001CE7C 7C FB C2 14 */ add r7, r27, r24
/* 80021040 0001CE80 57 00 E8 04 */ slwi r0, r24, 29
/* 80021044 0001CE84 7C E5 1E 70 */ srawi r5, r7, 3
/* 80021048 0001CE88 57 04 0F FE */ srwi r4, r24, 31
/* 8002104C 0001CE8C 7D 25 01 94 */ addze r9, r5
/* 80021050 0001CE90 54 E6 E8 04 */ slwi r6, r7, 29
/* 80021054 0001CE94 7F 05 1E 70 */ srawi r5, r24, 3
/* 80021058 0001CE98 54 E7 0F FE */ srwi r7, r7, 31
/* 8002105C 0001CE9C 7C A5 01 94 */ addze r5, r5
/* 80021060 0001CEA0 7C 04 00 50 */ subf r0, r4, r0
/* 80021064 0001CEA4 7C A5 41 D6 */ mullw r5, r5, r8
/* 80021068 0001CEA8 7C C7 30 50 */ subf r6, r7, r6
/* 8002106C 0001CEAC 54 00 18 3E */ rotlwi r0, r0, 3
/* 80021070 0001CEB0 54 C6 18 3E */ rotlwi r6, r6, 3
/* 80021074 0001CEB4 7C 00 22 14 */ add r0, r0, r4
/* 80021078 0001CEB8 7C 86 3A 14 */ add r4, r6, r7
/* 8002107C 0001CEBC 54 8A 08 3C */ slwi r10, r4, 1
/* 80021080 0001CEC0 7D 7D 2A 14 */ add r11, r29, r5
/* 80021084 0001CEC4 54 0C 10 3A */ slwi r12, r0, 2
/* 80021088 0001CEC8 3B 20 00 00 */ li r25, 0x0
/* 8002108C 0001CECC 48 00 00 E4 */ b lbl_80021170
.global lbl_80021090
lbl_80021090:
/* 80021090 0001CED0 A0 84 00 1E */ lhz r4, 0x1e(r4)
/* 80021094 0001CED4 7F 9E CA 14 */ add r28, r30, r25
/* 80021098 0001CED8 7C BA CA 14 */ add r5, r26, r25
/* 8002109C 0001CEDC 38 00 00 F0 */ li r0, 0xf0
/* 800210A0 0001CEE0 54 86 10 34 */ extlwi r6, r4, 27, 2
/* 800210A4 0001CEE4 54 84 1F FE */ extrwi r4, r4, 1, 2
/* 800210A8 0001CEE8 7C 84 32 14 */ add r4, r4, r6
/* 800210AC 0001CEEC 57 94 E8 04 */ slwi r20, r28, 29
/* 800210B0 0001CEF0 7C 87 0E 70 */ srawi r7, r4, 1
/* 800210B4 0001CEF4 57 93 0F FE */ srwi r19, r28, 31
/* 800210B8 0001CEF8 7C E7 49 D6 */ mullw r7, r7, r9
/* 800210BC 0001CEFC 54 A6 E8 04 */ slwi r6, r5, 29
/* 800210C0 0001CF00 54 A4 0F FE */ srwi r4, r5, 31
/* 800210C4 0001CF04 7C B2 1E 70 */ srawi r18, r5, 3
/* 800210C8 0001CF08 7C C4 30 50 */ subf r6, r4, r6
/* 800210CC 0001CF0C 57 95 07 FE */ clrlwi r21, r28, 31
/* 800210D0 0001CF10 54 D1 18 3E */ rotlwi r17, r6, 3
/* 800210D4 0001CF14 7C D2 01 94 */ addze r6, r18
/* 800210D8 0001CF18 7E 31 22 14 */ add r17, r17, r4
/* 800210DC 0001CF1C 7E 93 A0 50 */ subf r20, r19, r20
/* 800210E0 0001CF20 7E B5 9A 78 */ xor r21, r21, r19
/* 800210E4 0001CF24 54 A5 F0 02 */ slwi r5, r5, 30
/* 800210E8 0001CF28 7E 32 16 70 */ srawi r18, r17, 2
/* 800210EC 0001CF2C 56 94 18 3E */ rotlwi r20, r20, 3
/* 800210F0 0001CF30 7E 24 28 50 */ subf r17, r4, r5
/* 800210F4 0001CF34 7E B3 A8 51 */ subf. r21, r19, r21
/* 800210F8 0001CF38 7C B2 01 94 */ addze r5, r18
/* 800210FC 0001CF3C 7E 94 9A 14 */ add r20, r20, r19
/* 80021100 0001CF40 7F 92 1E 70 */ srawi r18, r28, 3
/* 80021104 0001CF44 56 31 10 3E */ rotlwi r17, r17, 2
/* 80021108 0001CF48 7C F6 3A 14 */ add r7, r22, r7
/* 8002110C 0001CF4C 54 C6 20 36 */ slwi r6, r6, 4
/* 80021110 0001CF50 7C E7 32 14 */ add r7, r7, r6
/* 80021114 0001CF54 7E 72 01 94 */ addze r19, r18
/* 80021118 0001CF58 7C E7 52 14 */ add r7, r7, r10
/* 8002111C 0001CF5C 56 95 0F FE */ srwi r21, r20, 31
/* 80021120 0001CF60 7F 91 22 14 */ add r28, r17, r4
/* 80021124 0001CF64 56 66 28 34 */ slwi r6, r19, 5
/* 80021128 0001CF68 7C 95 A2 14 */ add r4, r21, r20
/* 8002112C 0001CF6C 7C E7 28 AE */ lbzx r7, r7, r5
/* 80021130 0001CF70 7C CB 32 14 */ add r6, r11, r6
/* 80021134 0001CF74 57 95 08 3C */ slwi r21, r28, 1
/* 80021138 0001CF78 7C 84 0E 70 */ srawi r4, r4, 1
/* 8002113C 0001CF7C 20 B5 00 06 */ subfic r5, r21, 0x6
/* 80021140 0001CF80 7C C6 62 14 */ add r6, r6, r12
/* 80021144 0001CF84 7C E5 2E 30 */ sraw r5, r7, r5
/* 80021148 0001CF88 7C E6 20 AE */ lbzx r7, r6, r4
/* 8002114C 0001CF8C 54 A5 07 BE */ clrlwi r5, r5, 30
/* 80021150 0001CF90 7C B7 28 AE */ lbzx r5, r23, r5
/* 80021154 0001CF94 41 82 00 08 */ beq lbl_8002115C
/* 80021158 0001CF98 38 00 00 0F */ li r0, 0xf
.global lbl_8002115C
lbl_8002115C:
/* 8002115C 0001CF9C 7C A0 00 38 */ and r0, r5, r0
/* 80021160 0001CFA0 3B 39 00 01 */ addi r25, r25, 0x1
/* 80021164 0001CFA4 54 00 06 3E */ clrlwi r0, r0, 24
/* 80021168 0001CFA8 7C E0 03 78 */ or r0, r7, r0
/* 8002116C 0001CFAC 7C 06 21 AE */ stbx r0, r6, r4
.global lbl_80021170
lbl_80021170:
/* 80021170 0001CFB0 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80021174 0001CFB4 A0 04 00 10 */ lhz r0, 0x10(r4)
/* 80021178 0001CFB8 7C 19 00 00 */ cmpw r25, r0
/* 8002117C 0001CFBC 41 80 FF 14 */ blt lbl_80021090
/* 80021180 0001CFC0 3B 18 00 01 */ addi r24, r24, 0x1
.global lbl_80021184
lbl_80021184:
/* 80021184 0001CFC4 A0 04 00 12 */ lhz r0, 0x12(r4)
/* 80021188 0001CFC8 7C 18 00 00 */ cmpw r24, r0
/* 8002118C 0001CFCC 41 80 FE B0 */ blt lbl_8002103C
/* 80021190 0001CFD0 2C 1F 00 00 */ cmpwi r31, 0x0
/* 80021194 0001CFD4 41 82 00 1C */ beq lbl_800211B0
/* 80021198 0001CFD8 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 8002119C 0001CFDC 80 81 00 08 */ lwz r4, 0x8(r1)
/* 800211A0 0001CFE0 A0 05 00 22 */ lhz r0, 0x22(r5)
/* 800211A4 0001CFE4 7C 05 02 14 */ add r0, r5, r0
/* 800211A8 0001CFE8 7C 04 00 AE */ lbzx r0, r4, r0
/* 800211AC 0001CFEC 90 1F 00 00 */ stw r0, 0x0(r31)
.global lbl_800211B0
lbl_800211B0:
/* 800211B0 0001CFF0 39 61 00 50 */ addi r11, r1, 0x50
/* 800211B4 0001CFF4 4B FE 61 AD */ bl lbl_80007360
/* 800211B8 0001CFF8 80 01 00 54 */ lwz r0, 0x54(r1)
/* 800211BC 0001CFFC 7C 08 03 A6 */ mtlr r0
/* 800211C0 0001D000 38 21 00 50 */ addi r1, r1, 0x50
/* 800211C4 0001D004 4E 80 00 20 */ blr
/* 800211C8 0001D008 00 00 00 00 */ .4byte 0x00000000
/* 800211CC 0001D00C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global ExpandFontSheet
ExpandFontSheet:
2022-10-16 16:05:58 +00:00
/* 800211D0 0001D010 A0 03 00 18 */ lhz r0, 0x18(r3)
/* 800211D4 0001D014 38 C3 00 2C */ addi r6, r3, 0x2c
/* 800211D8 0001D018 2C 00 00 00 */ cmpwi r0, 0x0
/* 800211DC 0001D01C 40 82 01 2C */ bne lbl_80021308
/* 800211E0 0001D020 80 E3 00 28 */ lwz r7, 0x28(r3)
/* 800211E4 0001D024 54 E0 0F FE */ srwi r0, r7, 31
/* 800211E8 0001D028 7C 00 3A 14 */ add r0, r0, r7
/* 800211EC 0001D02C 7C 07 0E 70 */ srawi r7, r0, 1
/* 800211F0 0001D030 35 07 FF FF */ addic. r8, r7, -0x1
/* 800211F4 0001D034 7C E4 42 14 */ add r7, r4, r8
/* 800211F8 0001D038 55 09 08 3C */ slwi r9, r8, 1
/* 800211FC 0001D03C 38 88 00 01 */ addi r4, r8, 0x1
/* 80021200 0001D040 41 80 02 30 */ blt lbl_80021430
/* 80021204 0001D044 54 80 F8 7F */ srwi. r0, r4, 1
/* 80021208 0001D048 7C 09 03 A6 */ mtctr r0
/* 8002120C 0001D04C 41 82 00 A4 */ beq lbl_800212B0
.global lbl_80021210
lbl_80021210:
/* 80021210 0001D050 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021214 0001D054 7D 45 4A 14 */ add r10, r5, r9
/* 80021218 0001D058 54 08 D7 BE */ extrwi r8, r0, 2, 24
/* 8002121C 0001D05C 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 80021220 0001D060 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021224 0001D064 7D 06 40 AE */ lbzx r8, r6, r8
/* 80021228 0001D068 54 00 07 3E */ clrlwi r0, r0, 28
/* 8002122C 0001D06C 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 80021230 0001D070 7C 05 49 AE */ stbx r0, r5, r9
/* 80021234 0001D074 39 29 FF FE */ addi r9, r9, -0x2
/* 80021238 0001D078 88 07 00 00 */ lbz r0, 0x0(r7)
/* 8002123C 0001D07C 54 08 F7 BE */ extrwi r8, r0, 2, 28
/* 80021240 0001D080 54 00 07 BE */ clrlwi r0, r0, 30
/* 80021244 0001D084 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021248 0001D088 7D 06 40 AE */ lbzx r8, r6, r8
/* 8002124C 0001D08C 54 00 07 3E */ clrlwi r0, r0, 28
/* 80021250 0001D090 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 80021254 0001D094 98 0A 00 01 */ stb r0, 0x1(r10)
/* 80021258 0001D098 7D 45 4A 14 */ add r10, r5, r9
/* 8002125C 0001D09C 88 07 FF FF */ lbz r0, -0x1(r7)
/* 80021260 0001D0A0 54 08 D7 BE */ extrwi r8, r0, 2, 24
/* 80021264 0001D0A4 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 80021268 0001D0A8 7C 06 00 AE */ lbzx r0, r6, r0
/* 8002126C 0001D0AC 7D 06 40 AE */ lbzx r8, r6, r8
/* 80021270 0001D0B0 54 00 07 3E */ clrlwi r0, r0, 28
/* 80021274 0001D0B4 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 80021278 0001D0B8 7C 05 49 AE */ stbx r0, r5, r9
/* 8002127C 0001D0BC 39 29 FF FE */ addi r9, r9, -0x2
/* 80021280 0001D0C0 88 07 FF FF */ lbz r0, -0x1(r7)
/* 80021284 0001D0C4 38 E7 FF FE */ addi r7, r7, -0x2
/* 80021288 0001D0C8 54 08 F7 BE */ extrwi r8, r0, 2, 28
/* 8002128C 0001D0CC 54 00 07 BE */ clrlwi r0, r0, 30
/* 80021290 0001D0D0 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021294 0001D0D4 7D 06 40 AE */ lbzx r8, r6, r8
/* 80021298 0001D0D8 54 00 07 3E */ clrlwi r0, r0, 28
/* 8002129C 0001D0DC 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 800212A0 0001D0E0 98 0A 00 01 */ stb r0, 0x1(r10)
/* 800212A4 0001D0E4 42 00 FF 6C */ bdnz lbl_80021210
/* 800212A8 0001D0E8 70 84 00 01 */ andi. r4, r4, 0x1
/* 800212AC 0001D0EC 41 82 01 84 */ beq lbl_80021430
.global lbl_800212B0
lbl_800212B0:
/* 800212B0 0001D0F0 7C 89 03 A6 */ mtctr r4
.global lbl_800212B4
lbl_800212B4:
/* 800212B4 0001D0F4 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800212B8 0001D0F8 7D 45 4A 14 */ add r10, r5, r9
/* 800212BC 0001D0FC 54 08 D7 BE */ extrwi r8, r0, 2, 24
/* 800212C0 0001D100 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 800212C4 0001D104 7C 06 00 AE */ lbzx r0, r6, r0
/* 800212C8 0001D108 7D 06 40 AE */ lbzx r8, r6, r8
/* 800212CC 0001D10C 54 00 07 3E */ clrlwi r0, r0, 28
/* 800212D0 0001D110 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 800212D4 0001D114 7C 05 49 AE */ stbx r0, r5, r9
/* 800212D8 0001D118 39 29 FF FE */ addi r9, r9, -0x2
/* 800212DC 0001D11C 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800212E0 0001D120 38 E7 FF FF */ addi r7, r7, -0x1
/* 800212E4 0001D124 54 08 F7 BE */ extrwi r8, r0, 2, 28
/* 800212E8 0001D128 54 00 07 BE */ clrlwi r0, r0, 30
/* 800212EC 0001D12C 7C 06 00 AE */ lbzx r0, r6, r0
/* 800212F0 0001D130 7D 06 40 AE */ lbzx r8, r6, r8
/* 800212F4 0001D134 54 00 07 3E */ clrlwi r0, r0, 28
/* 800212F8 0001D138 51 00 06 36 */ rlwimi r0, r8, 0, 24, 27
/* 800212FC 0001D13C 98 0A 00 01 */ stb r0, 0x1(r10)
/* 80021300 0001D140 42 00 FF B4 */ bdnz lbl_800212B4
/* 80021304 0001D144 48 00 01 2C */ b lbl_80021430
.global lbl_80021308
lbl_80021308:
/* 80021308 0001D148 28 00 00 02 */ cmplwi r0, 0x2
/* 8002130C 0001D14C 40 82 01 24 */ bne lbl_80021430
/* 80021310 0001D150 80 03 00 28 */ lwz r0, 0x28(r3)
/* 80021314 0001D154 7C 00 16 70 */ srawi r0, r0, 2
/* 80021318 0001D158 7C E0 01 94 */ addze r7, r0
/* 8002131C 0001D15C 35 27 FF FF */ addic. r9, r7, -0x1
/* 80021320 0001D160 7C E4 4A 14 */ add r7, r4, r9
/* 80021324 0001D164 55 28 10 3A */ slwi r8, r9, 2
/* 80021328 0001D168 38 89 00 01 */ addi r4, r9, 0x1
/* 8002132C 0001D16C 41 80 01 04 */ blt lbl_80021430
/* 80021330 0001D170 54 80 F8 7F */ srwi. r0, r4, 1
/* 80021334 0001D174 7C 09 03 A6 */ mtctr r0
/* 80021338 0001D178 41 82 00 A4 */ beq lbl_800213DC
.global lbl_8002133C
lbl_8002133C:
/* 8002133C 0001D17C 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021340 0001D180 7D 25 42 14 */ add r9, r5, r8
/* 80021344 0001D184 54 00 D7 BE */ extrwi r0, r0, 2, 24
/* 80021348 0001D188 7C 06 00 AE */ lbzx r0, r6, r0
/* 8002134C 0001D18C 7C 05 41 AE */ stbx r0, r5, r8
/* 80021350 0001D190 39 08 FF FC */ addi r8, r8, -0x4
/* 80021354 0001D194 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021358 0001D198 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 8002135C 0001D19C 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021360 0001D1A0 98 09 00 01 */ stb r0, 0x1(r9)
/* 80021364 0001D1A4 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021368 0001D1A8 54 00 F7 BE */ extrwi r0, r0, 2, 28
/* 8002136C 0001D1AC 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021370 0001D1B0 98 09 00 02 */ stb r0, 0x2(r9)
/* 80021374 0001D1B4 88 07 00 00 */ lbz r0, 0x0(r7)
/* 80021378 0001D1B8 54 00 07 BE */ clrlwi r0, r0, 30
/* 8002137C 0001D1BC 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021380 0001D1C0 98 09 00 03 */ stb r0, 0x3(r9)
/* 80021384 0001D1C4 7D 25 42 14 */ add r9, r5, r8
/* 80021388 0001D1C8 88 07 FF FF */ lbz r0, -0x1(r7)
/* 8002138C 0001D1CC 54 00 D7 BE */ extrwi r0, r0, 2, 24
/* 80021390 0001D1D0 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021394 0001D1D4 7C 05 41 AE */ stbx r0, r5, r8
/* 80021398 0001D1D8 39 08 FF FC */ addi r8, r8, -0x4
/* 8002139C 0001D1DC 88 07 FF FF */ lbz r0, -0x1(r7)
/* 800213A0 0001D1E0 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 800213A4 0001D1E4 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213A8 0001D1E8 98 09 00 01 */ stb r0, 0x1(r9)
/* 800213AC 0001D1EC 88 07 FF FF */ lbz r0, -0x1(r7)
/* 800213B0 0001D1F0 54 00 F7 BE */ extrwi r0, r0, 2, 28
/* 800213B4 0001D1F4 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213B8 0001D1F8 98 09 00 02 */ stb r0, 0x2(r9)
/* 800213BC 0001D1FC 88 07 FF FF */ lbz r0, -0x1(r7)
/* 800213C0 0001D200 38 E7 FF FE */ addi r7, r7, -0x2
/* 800213C4 0001D204 54 00 07 BE */ clrlwi r0, r0, 30
/* 800213C8 0001D208 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213CC 0001D20C 98 09 00 03 */ stb r0, 0x3(r9)
/* 800213D0 0001D210 42 00 FF 6C */ bdnz lbl_8002133C
/* 800213D4 0001D214 70 84 00 01 */ andi. r4, r4, 0x1
/* 800213D8 0001D218 41 82 00 58 */ beq lbl_80021430
.global lbl_800213DC
lbl_800213DC:
/* 800213DC 0001D21C 7C 89 03 A6 */ mtctr r4
.global lbl_800213E0
lbl_800213E0:
/* 800213E0 0001D220 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800213E4 0001D224 7D 25 42 14 */ add r9, r5, r8
/* 800213E8 0001D228 54 00 D7 BE */ extrwi r0, r0, 2, 24
/* 800213EC 0001D22C 7C 06 00 AE */ lbzx r0, r6, r0
/* 800213F0 0001D230 7C 05 41 AE */ stbx r0, r5, r8
/* 800213F4 0001D234 39 08 FF FC */ addi r8, r8, -0x4
/* 800213F8 0001D238 88 07 00 00 */ lbz r0, 0x0(r7)
/* 800213FC 0001D23C 54 00 E7 BE */ extrwi r0, r0, 2, 26
/* 80021400 0001D240 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021404 0001D244 98 09 00 01 */ stb r0, 0x1(r9)
/* 80021408 0001D248 88 07 00 00 */ lbz r0, 0x0(r7)
/* 8002140C 0001D24C 54 00 F7 BE */ extrwi r0, r0, 2, 28
/* 80021410 0001D250 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021414 0001D254 98 09 00 02 */ stb r0, 0x2(r9)
/* 80021418 0001D258 88 07 00 00 */ lbz r0, 0x0(r7)
/* 8002141C 0001D25C 38 E7 FF FF */ addi r7, r7, -0x1
/* 80021420 0001D260 54 00 07 BE */ clrlwi r0, r0, 30
/* 80021424 0001D264 7C 06 00 AE */ lbzx r0, r6, r0
/* 80021428 0001D268 98 09 00 03 */ stb r0, 0x3(r9)
/* 8002142C 0001D26C 42 00 FF B4 */ bdnz lbl_800213E0
.global lbl_80021430
lbl_80021430:
/* 80021430 0001D270 80 83 00 28 */ lwz r4, 0x28(r3)
/* 80021434 0001D274 7C A3 2B 78 */ mr r3, r5
2022-10-16 16:31:36 +00:00
/* 80021438 0001D278 4B FF B5 78 */ b DCStoreRange
2022-10-16 16:05:58 +00:00
/* 8002143C 0001D27C 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSInitFont
OSInitFont:
2022-10-16 16:05:58 +00:00
/* 80021440 0001D280 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80021444 0001D284 7C 08 02 A6 */ mflr r0
/* 80021448 0001D288 7C 65 1B 78 */ mr r5, r3
/* 8002144C 0001D28C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80021450 0001D290 93 E1 00 0C */ stw r31, 0xc(r1)
2022-10-16 16:31:36 +00:00
/* 80021454 0001D294 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021458 0001D298 28 00 FF FF */ cmplwi r0, 0xffff
/* 8002145C 0001D29C 41 82 00 08 */ beq lbl_80021464
/* 80021460 0001D2A0 48 00 00 40 */ b lbl_800214A0
.global lbl_80021464
lbl_80021464:
/* 80021464 0001D2A4 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80021468 0001D2A8 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 8002146C 0001D2AC 2C 00 00 00 */ cmpwi r0, 0x0
/* 80021470 0001D2B0 40 82 00 18 */ bne lbl_80021488
/* 80021474 0001D2B4 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80021478 0001D2B8 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 8002147C 0001D2BC 54 00 FF FE */ extrwi r0, r0, 1, 30
2022-10-16 16:31:36 +00:00
/* 80021480 0001D2C0 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021484 0001D2C4 48 00 00 0C */ b lbl_80021490
.global lbl_80021488
lbl_80021488:
/* 80021488 0001D2C8 38 00 00 00 */ li r0, 0x0
2022-10-16 16:31:36 +00:00
/* 8002148C 0001D2CC B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80021490
lbl_80021490:
2022-10-16 16:31:36 +00:00
/* 80021490 0001D2D0 3C 80 80 02 */ lis r4, ParseStringS@ha
2022-10-16 16:05:58 +00:00
/* 80021494 0001D2D4 54 00 04 3E */ clrlwi r0, r0, 16
2022-10-16 16:31:36 +00:00
/* 80021498 0001D2D8 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 8002149C 0001D2DC 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_800214A0
lbl_800214A0:
/* 800214A0 0001D2E0 54 04 04 3E */ clrlwi r4, r0, 16
/* 800214A4 0001D2E4 38 04 FF FD */ addi r0, r4, -0x3
/* 800214A8 0001D2E8 28 00 00 02 */ cmplwi r0, 0x2
/* 800214AC 0001D2EC 40 81 00 B8 */ ble lbl_80021564
/* 800214B0 0001D2F0 2C 04 00 00 */ cmpwi r4, 0x0
/* 800214B4 0001D2F4 41 82 00 10 */ beq lbl_800214C4
/* 800214B8 0001D2F8 2C 04 00 01 */ cmpwi r4, 0x1
/* 800214BC 0001D2FC 41 82 00 58 */ beq lbl_80021514
/* 800214C0 0001D300 48 00 01 48 */ b lbl_80021608
.global lbl_800214C4
lbl_800214C4:
2022-10-16 16:31:36 +00:00
/* 800214C4 0001D304 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800214C8 0001D308 3C 63 00 02 */ addis r3, r3, 0x2
/* 800214CC 0001D30C 38 80 00 00 */ li r4, 0x0
/* 800214D0 0001D310 38 63 D1 20 */ addi r3, r3, -0x2ee0
2022-10-16 16:31:36 +00:00
/* 800214D4 0001D314 4B FF F3 7D */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 800214D8 0001D318 2C 03 00 00 */ cmpwi r3, 0x0
/* 800214DC 0001D31C 40 82 00 0C */ bne lbl_800214E8
/* 800214E0 0001D320 38 60 00 00 */ li r3, 0x0
/* 800214E4 0001D324 48 00 01 28 */ b lbl_8002160C
.global lbl_800214E8
lbl_800214E8:
2022-10-16 16:31:36 +00:00
/* 800214E8 0001D328 80 AD E3 E4 */ lwz r5, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800214EC 0001D32C 80 65 00 24 */ lwz r3, 0x24(r5)
/* 800214F0 0001D330 38 03 00 1F */ addi r0, r3, 0x1f
/* 800214F4 0001D334 7C 85 1A 14 */ add r4, r5, r3
/* 800214F8 0001D338 54 00 00 34 */ clrrwi r0, r0, 5
/* 800214FC 0001D33C 90 05 00 24 */ stw r0, 0x24(r5)
2022-10-16 16:31:36 +00:00
/* 80021500 0001D340 80 6D E3 E4 */ lwz r3, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021504 0001D344 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80021508 0001D348 7C A3 02 14 */ add r5, r3, r0
2022-10-16 16:31:36 +00:00
/* 8002150C 0001D34C 4B FF FC C5 */ bl ExpandFontSheet
2022-10-16 16:05:58 +00:00
/* 80021510 0001D350 48 00 00 F8 */ b lbl_80021608
.global lbl_80021514
lbl_80021514:
2022-10-16 16:31:36 +00:00
/* 80021514 0001D354 90 6D E3 E0 */ stw r3, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021518 0001D358 3C 63 00 0D */ addis r3, r3, 0xd
/* 8002151C 0001D35C 38 80 00 01 */ li r4, 0x1
/* 80021520 0001D360 38 63 3F 00 */ addi r3, r3, 0x3f00
2022-10-16 16:31:36 +00:00
/* 80021524 0001D364 4B FF F3 2D */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 80021528 0001D368 2C 03 00 00 */ cmpwi r3, 0x0
/* 8002152C 0001D36C 40 82 00 0C */ bne lbl_80021538
/* 80021530 0001D370 38 60 00 00 */ li r3, 0x0
/* 80021534 0001D374 48 00 00 D8 */ b lbl_8002160C
.global lbl_80021538
lbl_80021538:
2022-10-16 16:31:36 +00:00
/* 80021538 0001D378 80 AD E3 E0 */ lwz r5, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8002153C 0001D37C 80 65 00 24 */ lwz r3, 0x24(r5)
/* 80021540 0001D380 38 03 00 1F */ addi r0, r3, 0x1f
/* 80021544 0001D384 7C 85 1A 14 */ add r4, r5, r3
/* 80021548 0001D388 54 00 00 34 */ clrrwi r0, r0, 5
/* 8002154C 0001D38C 90 05 00 24 */ stw r0, 0x24(r5)
2022-10-16 16:31:36 +00:00
/* 80021550 0001D390 80 6D E3 E0 */ lwz r3, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021554 0001D394 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80021558 0001D398 7C A3 02 14 */ add r5, r3, r0
2022-10-16 16:31:36 +00:00
/* 8002155C 0001D39C 4B FF FC 75 */ bl ExpandFontSheet
2022-10-16 16:05:58 +00:00
/* 80021560 0001D3A0 48 00 00 A8 */ b lbl_80021608
.global lbl_80021564
lbl_80021564:
/* 80021564 0001D3A4 3F E3 00 0F */ addis r31, r3, 0xf
2022-10-16 16:31:36 +00:00
/* 80021568 0001D3A8 90 6D E3 E4 */ stw r3, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8002156C 0001D3AC 3B FF 40 20 */ addi r31, r31, 0x4020
/* 80021570 0001D3B0 38 80 00 00 */ li r4, 0x0
/* 80021574 0001D3B4 7F E3 FB 78 */ mr r3, r31
2022-10-16 16:31:36 +00:00
/* 80021578 0001D3B8 4B FF F2 D9 */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 8002157C 0001D3BC 2C 03 00 00 */ cmpwi r3, 0x0
/* 80021580 0001D3C0 40 82 00 0C */ bne lbl_8002158C
/* 80021584 0001D3C4 38 60 00 00 */ li r3, 0x0
/* 80021588 0001D3C8 48 00 00 84 */ b lbl_8002160C
.global lbl_8002158C
lbl_8002158C:
2022-10-16 16:31:36 +00:00
/* 8002158C 0001D3CC 80 AD E3 E4 */ lwz r5, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021590 0001D3D0 80 65 00 24 */ lwz r3, 0x24(r5)
/* 80021594 0001D3D4 38 03 00 1F */ addi r0, r3, 0x1f
/* 80021598 0001D3D8 7C 85 1A 14 */ add r4, r5, r3
/* 8002159C 0001D3DC 54 00 00 34 */ clrrwi r0, r0, 5
/* 800215A0 0001D3E0 90 05 00 24 */ stw r0, 0x24(r5)
2022-10-16 16:31:36 +00:00
/* 800215A4 0001D3E4 80 6D E3 E4 */ lwz r3, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800215A8 0001D3E8 80 03 00 24 */ lwz r0, 0x24(r3)
/* 800215AC 0001D3EC 7C A3 02 14 */ add r5, r3, r0
2022-10-16 16:31:36 +00:00
/* 800215B0 0001D3F0 4B FF FC 21 */ bl ExpandFontSheet
/* 800215B4 0001D3F4 80 AD E3 E4 */ lwz r5, FontDataAnsi@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800215B8 0001D3F8 7F E3 FB 78 */ mr r3, r31
/* 800215BC 0001D3FC 38 80 00 01 */ li r4, 0x1
/* 800215C0 0001D400 3C A5 00 02 */ addis r5, r5, 0x2
/* 800215C4 0001D404 38 A5 01 20 */ addi r5, r5, 0x120
2022-10-16 16:31:36 +00:00
/* 800215C8 0001D408 90 AD E3 E0 */ stw r5, FontDataSjis@sda21(r13)
/* 800215CC 0001D40C 4B FF F2 85 */ bl ReadFont
2022-10-16 16:05:58 +00:00
/* 800215D0 0001D410 2C 03 00 00 */ cmpwi r3, 0x0
/* 800215D4 0001D414 40 82 00 0C */ bne lbl_800215E0
/* 800215D8 0001D418 38 60 00 00 */ li r3, 0x0
/* 800215DC 0001D41C 48 00 00 30 */ b lbl_8002160C
.global lbl_800215E0
lbl_800215E0:
2022-10-16 16:31:36 +00:00
/* 800215E0 0001D420 80 AD E3 E0 */ lwz r5, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800215E4 0001D424 80 65 00 24 */ lwz r3, 0x24(r5)
/* 800215E8 0001D428 38 03 00 1F */ addi r0, r3, 0x1f
/* 800215EC 0001D42C 7C 85 1A 14 */ add r4, r5, r3
/* 800215F0 0001D430 54 00 00 34 */ clrrwi r0, r0, 5
/* 800215F4 0001D434 90 05 00 24 */ stw r0, 0x24(r5)
2022-10-16 16:31:36 +00:00
/* 800215F8 0001D438 80 6D E3 E0 */ lwz r3, FontDataSjis@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800215FC 0001D43C 80 03 00 24 */ lwz r0, 0x24(r3)
/* 80021600 0001D440 7C A3 02 14 */ add r5, r3, r0
2022-10-16 16:31:36 +00:00
/* 80021604 0001D444 4B FF FB CD */ bl ExpandFontSheet
2022-10-16 16:05:58 +00:00
.global lbl_80021608
lbl_80021608:
/* 80021608 0001D448 38 60 00 01 */ li r3, 0x1
.global lbl_8002160C
lbl_8002160C:
/* 8002160C 0001D44C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80021610 0001D450 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80021614 0001D454 7C 08 03 A6 */ mtlr r0
/* 80021618 0001D458 38 21 00 10 */ addi r1, r1, 0x10
/* 8002161C 0001D45C 4E 80 00 20 */ blr
2022-10-16 16:31:36 +00:00
.global OSGetFontTexture
OSGetFontTexture:
2022-10-16 16:05:58 +00:00
/* 80021620 0001D460 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80021624 0001D464 7C 08 02 A6 */ mflr r0
/* 80021628 0001D468 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002162C 0001D46C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80021630 0001D470 7C FF 3B 78 */ mr r31, r7
/* 80021634 0001D474 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80021638 0001D478 7C DE 33 78 */ mr r30, r6
/* 8002163C 0001D47C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80021640 0001D480 7C BD 2B 78 */ mr r29, r5
/* 80021644 0001D484 93 81 00 10 */ stw r28, 0x10(r1)
/* 80021648 0001D488 7C 9C 23 78 */ mr r28, r4
2022-10-16 16:31:36 +00:00
/* 8002164C 0001D48C A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021650 0001D490 28 00 FF FF */ cmplwi r0, 0xffff
/* 80021654 0001D494 41 82 00 08 */ beq lbl_8002165C
/* 80021658 0001D498 48 00 00 40 */ b lbl_80021698
.global lbl_8002165C
lbl_8002165C:
/* 8002165C 0001D49C 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80021660 0001D4A0 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 80021664 0001D4A4 2C 00 00 00 */ cmpwi r0, 0x0
/* 80021668 0001D4A8 40 82 00 18 */ bne lbl_80021680
/* 8002166C 0001D4AC 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 80021670 0001D4B0 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 80021674 0001D4B4 54 00 FF FE */ extrwi r0, r0, 1, 30
2022-10-16 16:31:36 +00:00
/* 80021678 0001D4B8 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8002167C 0001D4BC 48 00 00 0C */ b lbl_80021688
.global lbl_80021680
lbl_80021680:
/* 80021680 0001D4C0 38 00 00 00 */ li r0, 0x0
2022-10-16 16:31:36 +00:00
/* 80021684 0001D4C4 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80021688
lbl_80021688:
2022-10-16 16:31:36 +00:00
/* 80021688 0001D4C8 3C 80 80 02 */ lis r4, ParseStringS@ha
2022-10-16 16:05:58 +00:00
/* 8002168C 0001D4CC 54 00 04 3E */ clrlwi r0, r0, 16
2022-10-16 16:31:36 +00:00
/* 80021690 0001D4D0 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 80021694 0001D4D4 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_80021698
lbl_80021698:
2022-10-16 16:31:36 +00:00
/* 80021698 0001D4D8 81 8D E3 D8 */ lwz r12, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 8002169C 0001D4DC 7C 64 1B 78 */ mr r4, r3
/* 800216A0 0001D4E0 54 03 04 3E */ clrlwi r3, r0, 16
/* 800216A4 0001D4E4 38 A1 00 0C */ addi r5, r1, 0xc
/* 800216A8 0001D4E8 38 C1 00 08 */ addi r6, r1, 0x8
/* 800216AC 0001D4EC 7D 89 03 A6 */ mtctr r12
/* 800216B0 0001D4F0 4E 80 04 21 */ bctrl
/* 800216B4 0001D4F4 80 E1 00 0C */ lwz r7, 0xc(r1)
/* 800216B8 0001D4F8 2C 1F 00 00 */ cmpwi r31, 0x0
/* 800216BC 0001D4FC 80 C1 00 08 */ lwz r6, 0x8(r1)
/* 800216C0 0001D500 A0 A7 00 1A */ lhz r5, 0x1a(r7)
/* 800216C4 0001D504 A0 87 00 1C */ lhz r4, 0x1c(r7)
/* 800216C8 0001D508 80 07 00 24 */ lwz r0, 0x24(r7)
/* 800216CC 0001D50C 7C A5 21 D6 */ mullw r5, r5, r4
/* 800216D0 0001D510 80 87 00 14 */ lwz r4, 0x14(r7)
/* 800216D4 0001D514 7C 07 02 14 */ add r0, r7, r0
/* 800216D8 0001D518 7C C6 2B D6 */ divw r6, r6, r5
/* 800216DC 0001D51C 7C 84 31 D6 */ mullw r4, r4, r6
/* 800216E0 0001D520 7C 04 02 14 */ add r0, r4, r0
/* 800216E4 0001D524 90 1C 00 00 */ stw r0, 0x0(r28)
/* 800216E8 0001D528 81 01 00 0C */ lwz r8, 0xc(r1)
/* 800216EC 0001D52C 80 81 00 08 */ lwz r4, 0x8(r1)
/* 800216F0 0001D530 A0 E8 00 1A */ lhz r7, 0x1a(r8)
/* 800216F4 0001D534 A0 A8 00 1C */ lhz r5, 0x1c(r8)
/* 800216F8 0001D538 7C C6 39 D6 */ mullw r6, r6, r7
/* 800216FC 0001D53C A0 08 00 10 */ lhz r0, 0x10(r8)
/* 80021700 0001D540 7C A6 29 D6 */ mullw r5, r6, r5
/* 80021704 0001D544 7C A5 20 50 */ subf r5, r5, r4
/* 80021708 0001D548 7C C5 3B D6 */ divw r6, r5, r7
/* 8002170C 0001D54C 7C 86 39 D6 */ mullw r4, r6, r7
/* 80021710 0001D550 7C 84 28 50 */ subf r4, r4, r5
/* 80021714 0001D554 7C 04 01 D6 */ mullw r0, r4, r0
/* 80021718 0001D558 90 1D 00 00 */ stw r0, 0x0(r29)
/* 8002171C 0001D55C 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80021720 0001D560 A0 04 00 12 */ lhz r0, 0x12(r4)
/* 80021724 0001D564 7C 06 01 D6 */ mullw r0, r6, r0
/* 80021728 0001D568 90 1E 00 00 */ stw r0, 0x0(r30)
/* 8002172C 0001D56C 41 82 00 1C */ beq lbl_80021748
/* 80021730 0001D570 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 80021734 0001D574 80 81 00 08 */ lwz r4, 0x8(r1)
/* 80021738 0001D578 A0 05 00 22 */ lhz r0, 0x22(r5)
/* 8002173C 0001D57C 7C 05 02 14 */ add r0, r5, r0
/* 80021740 0001D580 7C 04 00 AE */ lbzx r0, r4, r0
/* 80021744 0001D584 90 1F 00 00 */ stw r0, 0x0(r31)
.global lbl_80021748
lbl_80021748:
/* 80021748 0001D588 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8002174C 0001D58C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80021750 0001D590 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80021754 0001D594 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80021758 0001D598 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8002175C 0001D59C 7C 08 03 A6 */ mtlr r0
/* 80021760 0001D5A0 38 21 00 20 */ addi r1, r1, 0x20
/* 80021764 0001D5A4 4E 80 00 20 */ blr
/* 80021768 0001D5A8 00 00 00 00 */ .4byte 0x00000000
/* 8002176C 0001D5AC 00 00 00 00 */ .4byte 0x00000000
2022-10-16 16:31:36 +00:00
.global OSGetFontWidth
OSGetFontWidth:
2022-10-16 16:05:58 +00:00
/* 80021770 0001D5B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80021774 0001D5B4 7C 08 02 A6 */ mflr r0
/* 80021778 0001D5B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8002177C 0001D5BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80021780 0001D5C0 7C 9F 23 78 */ mr r31, r4
2022-10-16 16:31:36 +00:00
/* 80021784 0001D5C4 A0 0D 80 C8 */ lhz r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 80021788 0001D5C8 28 00 FF FF */ cmplwi r0, 0xffff
/* 8002178C 0001D5CC 41 82 00 08 */ beq lbl_80021794
/* 80021790 0001D5D0 48 00 00 40 */ b lbl_800217D0
.global lbl_80021794
lbl_80021794:
/* 80021794 0001D5D4 3C 80 80 00 */ lis r4, 0x800000CC@ha
/* 80021798 0001D5D8 80 04 00 CC */ lwz r0, 0x800000CC@l(r4)
/* 8002179C 0001D5DC 2C 00 00 00 */ cmpwi r0, 0x0
/* 800217A0 0001D5E0 40 82 00 18 */ bne lbl_800217B8
/* 800217A4 0001D5E4 3C 80 CC 00 */ lis r4, 0xCC00206E@ha
/* 800217A8 0001D5E8 A0 04 20 6E */ lhz r0, 0xCC00206E@l(r4)
/* 800217AC 0001D5EC 54 00 FF FE */ extrwi r0, r0, 1, 30
2022-10-16 16:31:36 +00:00
/* 800217B0 0001D5F0 B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800217B4 0001D5F4 48 00 00 0C */ b lbl_800217C0
.global lbl_800217B8
lbl_800217B8:
/* 800217B8 0001D5F8 38 00 00 00 */ li r0, 0x0
2022-10-16 16:31:36 +00:00
/* 800217BC 0001D5FC B0 0D 80 C8 */ sth r0, FontEncode@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_800217C0
lbl_800217C0:
2022-10-16 16:31:36 +00:00
/* 800217C0 0001D600 3C 80 80 02 */ lis r4, ParseStringS@ha
2022-10-16 16:05:58 +00:00
/* 800217C4 0001D604 54 00 04 3E */ clrlwi r0, r0, 16
2022-10-16 16:31:36 +00:00
/* 800217C8 0001D608 38 84 0C 80 */ addi r4, r4, ParseStringS@l
/* 800217CC 0001D60C 90 8D E3 D8 */ stw r4, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
.global lbl_800217D0
lbl_800217D0:
2022-10-16 16:31:36 +00:00
/* 800217D0 0001D610 81 8D E3 D8 */ lwz r12, ParseString@sda21(r13)
2022-10-16 16:05:58 +00:00
/* 800217D4 0001D614 7C 64 1B 78 */ mr r4, r3
/* 800217D8 0001D618 54 03 04 3E */ clrlwi r3, r0, 16
/* 800217DC 0001D61C 38 A1 00 0C */ addi r5, r1, 0xc
/* 800217E0 0001D620 38 C1 00 08 */ addi r6, r1, 0x8
/* 800217E4 0001D624 7D 89 03 A6 */ mtctr r12
/* 800217E8 0001D628 4E 80 04 21 */ bctrl
/* 800217EC 0001D62C 2C 1F 00 00 */ cmpwi r31, 0x0
/* 800217F0 0001D630 41 82 00 1C */ beq lbl_8002180C
/* 800217F4 0001D634 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 800217F8 0001D638 80 81 00 08 */ lwz r4, 0x8(r1)
/* 800217FC 0001D63C A0 05 00 22 */ lhz r0, 0x22(r5)
/* 80021800 0001D640 7C 05 02 14 */ add r0, r5, r0
/* 80021804 0001D644 7C 04 00 AE */ lbzx r0, r4, r0
/* 80021808 0001D648 90 1F 00 00 */ stw r0, 0x0(r31)
.global lbl_8002180C
lbl_8002180C:
/* 8002180C 0001D64C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80021810 0001D650 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80021814 0001D654 7C 08 03 A6 */ mtlr r0
/* 80021818 0001D658 38 21 00 20 */ addi r1, r1, 0x20
/* 8002181C 0001D65C 4E 80 00 20 */ blr
2022-10-17 08:03:07 +00:00
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global HankakuToCode
HankakuToCode:
.4byte 0x020C020D
.4byte 0x020E020F
.4byte 0x02100211
.4byte 0x02120213
.4byte 0x02140215
.4byte 0x02160217
.4byte 0x02180219
.4byte 0x021A021B
.4byte 0x021C021D
.4byte 0x021E021F
.4byte 0x02200221
.4byte 0x02220223
.4byte 0x02240225
.4byte 0x02260227
.4byte 0x02280229
.4byte 0x022A022B
.4byte 0x022C022D
.4byte 0x022E022F
.4byte 0x02300231
.4byte 0x02320233
.4byte 0x02340235
.4byte 0x02360237
.4byte 0x02380239
.4byte 0x023A023B
.4byte 0x023C023D
.4byte 0x023E023F
.4byte 0x02400241
.4byte 0x02420243
.4byte 0x02440245
.4byte 0x02460247
.4byte 0x02480249
.4byte 0x024A024B
.4byte 0x024C024D
.4byte 0x024E024F
.4byte 0x02500251
.4byte 0x02520253
.4byte 0x02540255
.4byte 0x02560257
.4byte 0x02580259
.4byte 0x025A025B
.4byte 0x025C025D
.4byte 0x025E025F
.4byte 0x02600261
.4byte 0x02620263
.4byte 0x02640265
.4byte 0x02660267
.4byte 0x02680269
.4byte 0x026A020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C020C
.4byte 0x020C026B
.4byte 0x026C026D
.4byte 0x026E026F
.4byte 0x02700271
.4byte 0x02720273
.4byte 0x02740275
.4byte 0x02760277
.4byte 0x02780279
.4byte 0x027A027B
.4byte 0x027C027D
.4byte 0x027E027F
.4byte 0x02800281
.4byte 0x02820283
.4byte 0x02840285
.4byte 0x02860287
.4byte 0x02880289
.4byte 0x028A028B
.4byte 0x028C028D
.4byte 0x028E028F
.4byte 0x02900291
.4byte 0x02920293
.4byte 0x02940295
.4byte 0x02960297
.4byte 0x02980299
.4byte 0x029A029B
.4byte 0x029C029D
.4byte 0x029E029F
.4byte 0x02A002A1
.4byte 0x02A202A3
.4byte 0x02A402A5
.4byte 0x02A602A7
.4byte 0x02A802A9
.global Zenkaku2Code
Zenkaku2Code:
.4byte 0x00000001
.4byte 0x00020003
.4byte 0x00040005
.4byte 0x00060007
.4byte 0x00080009
.4byte 0x000A000B
.4byte 0x000C000D
.4byte 0x000E000F
.4byte 0x00100011
.4byte 0x00120013
.4byte 0x00140015
.4byte 0x00160017
.4byte 0x00180019
.4byte 0x001A001B
.4byte 0x001C001D
.4byte 0x001E001F
.4byte 0x00200021
.4byte 0x00220023
.4byte 0x00240025
.4byte 0x00260027
.4byte 0x00280029
.4byte 0x002A002B
.4byte 0x002C002D
.4byte 0x002E002F
.4byte 0x00300031
.4byte 0x00320033
.4byte 0x00340035
.4byte 0x00360037
.4byte 0x00380039
.4byte 0x003A003B
.4byte 0x003C003D
.4byte 0x003E003F
.4byte 0x00400041
.4byte 0x00420043
.4byte 0x00440045
.4byte 0x00460047
.4byte 0x00480049
.4byte 0x004A004B
.4byte 0x004C004D
.4byte 0x004E004F
.4byte 0x00500051
.4byte 0x00520053
.4byte 0x00540055
.4byte 0x00560057
.4byte 0x00580059
.4byte 0x005A005B
.4byte 0x005C005D
.4byte 0x005E005F
.4byte 0x00600061
.4byte 0x00620063
.4byte 0x00640065
.4byte 0x00660067
.4byte 0x00680069
.4byte 0x006A006B
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x0000006C
.4byte 0x006D006E
.4byte 0x006F0070
.4byte 0x00710072
.4byte 0x00730000
.4byte 0
.4byte 0
.4byte 0
.4byte 0x00000074
.4byte 0x00750076
.4byte 0x00770078
.4byte 0x0079007A
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x0000007B
.4byte 0x007C007D
.4byte 0x007E007F
.4byte 0x00800081
.4byte 0x00820083
.4byte 0x00840085
.4byte 0x00860087
.4byte 0x00880089
.4byte 0
.4byte 0
.4byte 0
.4byte 0x0000008A
.4byte 0x008B008C
.4byte 0x008D008E
.4byte 0x008F0090
.4byte 0x00910000
.4byte 0
.4byte 0x00000092
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x00000093
.4byte 0x00940095
.4byte 0x00960097
.4byte 0x00980099
.4byte 0x009A009B
.4byte 0x009C0000
.4byte 0
.4byte 0
.4byte 0
.4byte 0x009D009E
.4byte 0x009F00A0
.4byte 0x00A100A2
.4byte 0x00A300A4
.4byte 0x00A500A6
.4byte 0x00A700A8
.4byte 0x00A900AA
.4byte 0x00AB00AC
.4byte 0x00AD00AE
.4byte 0x00AF00B0
.4byte 0x00B100B2
.4byte 0x00B300B4
.4byte 0x00B500B6
.4byte 0
.4byte 0
.4byte 0
.4byte 0x00B700B8
.4byte 0x00B900BA
.4byte 0x00BB00BC
.4byte 0x00BD00BE
.4byte 0x00BF00C0
.4byte 0x00C100C2
.4byte 0x00C300C4
.4byte 0x00C500C6
.4byte 0x00C700C8
.4byte 0x00C900CA
.4byte 0x00CB00CC
.4byte 0x00CD00CE
.4byte 0x00CF00D0
.4byte 0
.4byte 0
.4byte 0x00D100D2
.4byte 0x00D300D4
.4byte 0x00D500D6
.4byte 0x00D700D8
.4byte 0x00D900DA
.4byte 0x00DB00DC
.4byte 0x00DD00DE
.4byte 0x00DF00E0
.4byte 0x00E100E2
.4byte 0x00E300E4
.4byte 0x00E500E6
.4byte 0x00E700E8
.4byte 0x00E900EA
.4byte 0x00EB00EC
.4byte 0x00ED00EE
.4byte 0x00EF00F0
.4byte 0x00F100F2
.4byte 0x00F300F4
.4byte 0x00F500F6
.4byte 0x00F700F8
.4byte 0x00F900FA
.4byte 0x00FB00FC
.4byte 0x00FD00FE
.4byte 0x00FF0100
.4byte 0x01010102
.4byte 0x01030104
.4byte 0x01050106
.4byte 0x01070108
.4byte 0x0109010A
.4byte 0x010B010C
.4byte 0x010D010E
.4byte 0x010F0110
.4byte 0x01110112
.4byte 0x01130114
.4byte 0x01150116
.4byte 0x01170118
.4byte 0x0119011A
.4byte 0x011B011C
.4byte 0x011D011E
.4byte 0x011F0120
.4byte 0x01210122
.4byte 0x01230000
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x01240125
.4byte 0x01260127
.4byte 0x01280129
.4byte 0x012A012B
.4byte 0x012C012D
.4byte 0x012E012F
.4byte 0x01300131
.4byte 0x01320133
.4byte 0x01340135
.4byte 0x01360137
.4byte 0x01380139
.4byte 0x013A013B
.4byte 0x013C013D
.4byte 0x013E013F
.4byte 0x01400141
.4byte 0x01420143
.4byte 0x01440145
.4byte 0x01460147
.4byte 0x01480149
.4byte 0x014A014B
.4byte 0x014C014D
.4byte 0x014E014F
.4byte 0x01500151
.4byte 0x01520153
.4byte 0x01540155
.4byte 0x01560157
.4byte 0x01580159
.4byte 0x015A015B
.4byte 0x015C015D
.4byte 0x015E015F
.4byte 0x01600161
.4byte 0x01620163
.4byte 0x01640165
.4byte 0x01660167
.4byte 0x01680169
.4byte 0x016A016B
.4byte 0x016C016D
.4byte 0x016E016F
.4byte 0x01700171
.4byte 0x01720173
.4byte 0x01740175
.4byte 0x01760177
.4byte 0x01780179
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x017A017B
.4byte 0x017C017D
.4byte 0x017E017F
.4byte 0x01800181
.4byte 0x01820183
.4byte 0x01840185
.4byte 0x01860187
.4byte 0x01880189
.4byte 0x018A018B
.4byte 0x018C018D
.4byte 0x018E018F
.4byte 0x01900191
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x01920193
.4byte 0x01940195
.4byte 0x01960197
.4byte 0x01980199
.4byte 0x019A019B
.4byte 0x019C019D
.4byte 0x019E019F
.4byte 0x01A001A1
.4byte 0x01A201A3
.4byte 0x01A401A5
.4byte 0x01A601A7
.4byte 0x01A801A9
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x01AA01AB
.4byte 0x01AC01AD
.4byte 0x01AE01AF
.4byte 0x01B001B1
.4byte 0x01B201B3
.4byte 0x01B401B5
.4byte 0x01B601B7
.4byte 0x01B801B9
.4byte 0x01BA01BB
.4byte 0x01BC01BD
.4byte 0x01BE01BF
.4byte 0x01C001C1
.4byte 0x01C201C3
.4byte 0x01C401C5
.4byte 0x01C601C7
.4byte 0x01C801C9
.4byte 0x01CA0000
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x01CB01CC
.4byte 0x01CD01CE
.4byte 0x01CF01D0
.4byte 0x01D101D2
.4byte 0x01D301D4
.4byte 0x01D501D6
.4byte 0x01D701D8
.4byte 0x01D901DA
.4byte 0x01DB01DC
.4byte 0x01DD01DE
.4byte 0x01DF01E0
.4byte 0x01E101E2
.4byte 0x01E301E4
.4byte 0x01E501E6
.4byte 0x01E701E8
.4byte 0x01E901EA
.4byte 0x01EB0000
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x01EC01ED
.4byte 0x01EE01EF
.4byte 0x01F001F1
.4byte 0x01F201F3
.4byte 0x01F401F5
.4byte 0x01F601F7
.4byte 0x01F801F9
.4byte 0x01FA01FB
.4byte 0x01FC01FD
.4byte 0x01FE01FF
.4byte 0x02000201
.4byte 0x02020203
.4byte 0x02040205
.4byte 0x02060207
.4byte 0x02080209
.4byte 0x020A020B
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x0000020C
.4byte 0x020D020E
.4byte 0x020F0210
.4byte 0x02110212
.4byte 0x02130214
.4byte 0x02150216
.4byte 0x02170218
.4byte 0x0219021A
.4byte 0x021B021C
.4byte 0x021D021E
.4byte 0x021F0220
.4byte 0x02210222
.4byte 0x02230224
.4byte 0x02250226
.4byte 0x02270228
.4byte 0x0229022A
.4byte 0x022B022C
.4byte 0x022D022E
.4byte 0x022F0230
.4byte 0x02310232
.4byte 0x02330234
.4byte 0x02350236
.4byte 0x02370238
.4byte 0x0239023A
.4byte 0x023B023C
.4byte 0x023D023E
.4byte 0x023F0240
.4byte 0x02410242
.4byte 0x02430244
.4byte 0x02450246
.4byte 0x02470248
.4byte 0x0249024A
.4byte 0x024B024C
.4byte 0x024D024E
.4byte 0x024F0250
.4byte 0x02510252
.4byte 0x02530254
.4byte 0x02550256
.4byte 0x02570258
.4byte 0x0259025A
.4byte 0x025B025C
.4byte 0x025D025E
.4byte 0x025F0260
.4byte 0x02610262
.4byte 0x02630264
.4byte 0x02650266
.4byte 0x02670268
.4byte 0x0269026A
.4byte 0x026B026C
.4byte 0x026D026E
.4byte 0x026F0270
.4byte 0x02710272
.4byte 0x02730274
.4byte 0x02750276
.4byte 0x02770278
.4byte 0x0279027A
.4byte 0x027B027C
.4byte 0x027D027E
.4byte 0x027F0280
.4byte 0x02810282
.4byte 0x02830284
.4byte 0x02850286
.4byte 0x02870288
.4byte 0x0289028A
.4byte 0x028B028C
.4byte 0x028D028E
.4byte 0x028F0290
.4byte 0x02910292
.4byte 0x02930294
.4byte 0x02950296
.4byte 0x02970298
.4byte 0x0299029A
.4byte 0x029B029C
.4byte 0x029D029E
.4byte 0x029F02A0
.4byte 0x02A102A2
.4byte 0x02A302A4
.4byte 0x02A502A6
.4byte 0x02A702A8
.4byte 0x02A902AA
.4byte 0x02AB02AC
.4byte 0x02AD02AE
.4byte 0x02AF02B0
.4byte 0x02B102B2
.4byte 0x02B302B4
.4byte 0x02B502B6
.4byte 0x02B702B8
.4byte 0x02B902BA
.4byte 0x02BB02BC
.4byte 0x02BD02BE
.4byte 0x02BF02C0
.4byte 0x02C102C2
.4byte 0x02C302C4
.4byte 0x02C502C6
.4byte 0x02C702C8
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x02C902CA
.4byte 0x02CB02CC
.4byte 0x02CD02CE
.4byte 0x02CF02D0
.4byte 0x02D102D2
.4byte 0x02D302D4
.4byte 0x02D502D6
.4byte 0x02D702D8
.4byte 0x02D902DA
.4byte 0x02DB02DC
.4byte 0x02DD02DE
.4byte 0x02DF02E0
.4byte 0x02E102E2
.4byte 0x02E302E4
.4byte 0x02E502E6
.4byte 0x000002E7
.4byte 0x02E802E9
.4byte 0x02EA02EB
.4byte 0x02EC02ED
.4byte 0x02EE02EF
.4byte 0x02F002F1
.4byte 0x02F202F3
.4byte 0x02F402F5
.4byte 0x02F602F7
.4byte 0x02F802F9
.4byte 0x02FA02FB
.4byte 0x02FC02FD
.4byte 0
.4byte 0
.4byte 0
.4byte 0
.4byte 0x02FE02FF
.4byte 0x03000301
.4byte 0x03020303
.4byte 0x03040305
.4byte 0x03060307
.4byte 0x03080309
.4byte 0x030A030B
.4byte 0x030C030D
.4byte 0x030E030F
.4byte 0x03100311
.4byte 0x03120313
.4byte 0x03140315
.4byte 0x03160317
.4byte 0x03180319
.4byte 0x031A031B
.4byte 0
.4byte 0
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global FontEncode
FontEncode:
.4byte 0xFFFF0000
.4byte 0
.include "macros.inc"
.section .sbss, "", @nobits # 0x8055C6E0 - 0x8055DF80 ; 0x000018A0
.global ParseString
ParseString:
.skip 0x4
.global FixedPitch
FixedPitch:
.skip 0x4
.global FontDataSjis
FontDataSjis:
.skip 0x4
.global FontDataAnsi
FontDataAnsi:
.skip 0x4
.include "macros.inc"
.section .sdata2, "wa" # 0x8055DF80 - 0x805643C0 ; 0x00006440
.global "@1601_8055E510"
"@1601_8055E510":
.4byte 0x2ABE003D
.global lbl_8055E514
lbl_8055E514:
.4byte 0x003D003D