From 97a9a219b3d6683de3e70f6a8533a028d56bcf75 Mon Sep 17 00:00:00 2001 From: Max Date: Sat, 10 Oct 2020 01:02:53 -0400 Subject: pf_api_util and pf_cp392 --- asm/SDK/VF/pf_api_util.s | 115 +++++++++++ asm/SDK/VF/pf_cp932.s | 381 +++++++++++++++++++++++++++++++++++ asm/SDK/VF/pf_volume.s | 24 +-- asm/text_9_2.s | 504 +---------------------------------------------- obj_files.mk | 2 + 5 files changed, 517 insertions(+), 509 deletions(-) create mode 100644 asm/SDK/VF/pf_api_util.s create mode 100644 asm/SDK/VF/pf_cp932.s diff --git a/asm/SDK/VF/pf_api_util.s b/asm/SDK/VF/pf_api_util.s new file mode 100644 index 0000000..cad2d7d --- /dev/null +++ b/asm/SDK/VF/pf_api_util.s @@ -0,0 +1,115 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global VFiPFAPI_ParseOpenModeString +VFiPFAPI_ParseOpenModeString: +/* 8031A110 00315D70 2C 03 00 00 */ cmpwi r3, 0 +/* 8031A114 00315D74 40 82 00 0C */ bne lbl_8031A120 +/* 8031A118 00315D78 38 60 00 0A */ li r3, 0xa +/* 8031A11C 00315D7C 4E 80 00 20 */ blr +lbl_8031A120: +/* 8031A120 00315D80 88 03 00 00 */ lbz r0, 0(r3) +/* 8031A124 00315D84 38 A0 00 01 */ li r5, 1 +/* 8031A128 00315D88 7C 00 07 74 */ extsb r0, r0 +/* 8031A12C 00315D8C 2C 00 00 72 */ cmpwi r0, 0x72 +/* 8031A130 00315D90 41 82 00 20 */ beq lbl_8031A150 +/* 8031A134 00315D94 40 80 00 10 */ bge lbl_8031A144 +/* 8031A138 00315D98 2C 00 00 61 */ cmpwi r0, 0x61 +/* 8031A13C 00315D9C 41 82 00 24 */ beq lbl_8031A160 +/* 8031A140 00315DA0 48 00 00 28 */ b lbl_8031A168 +lbl_8031A144: +/* 8031A144 00315DA4 2C 00 00 77 */ cmpwi r0, 0x77 +/* 8031A148 00315DA8 41 82 00 10 */ beq lbl_8031A158 +/* 8031A14C 00315DAC 48 00 00 1C */ b lbl_8031A168 +lbl_8031A150: +/* 8031A150 00315DB0 38 80 00 02 */ li r4, 2 +/* 8031A154 00315DB4 48 00 00 1C */ b lbl_8031A170 +lbl_8031A158: +/* 8031A158 00315DB8 38 80 00 01 */ li r4, 1 +/* 8031A15C 00315DBC 48 00 00 14 */ b lbl_8031A170 +lbl_8031A160: +/* 8031A160 00315DC0 38 80 00 04 */ li r4, 4 +/* 8031A164 00315DC4 48 00 00 0C */ b lbl_8031A170 +lbl_8031A168: +/* 8031A168 00315DC8 38 60 00 00 */ li r3, 0 +/* 8031A16C 00315DCC 4E 80 00 20 */ blr +lbl_8031A170: +/* 8031A170 00315DD0 88 03 00 01 */ lbz r0, 1(r3) +/* 8031A174 00315DD4 2C 00 00 62 */ cmpwi r0, 0x62 +/* 8031A178 00315DD8 40 82 00 08 */ bne lbl_8031A180 +/* 8031A17C 00315DDC 38 A0 00 02 */ li r5, 2 +lbl_8031A180: +/* 8031A180 00315DE0 7C 03 28 AE */ lbzx r0, r3, r5 +/* 8031A184 00315DE4 38 A5 00 01 */ addi r5, r5, 1 +/* 8031A188 00315DE8 7C 00 07 74 */ extsb r0, r0 +/* 8031A18C 00315DEC 2C 00 00 2B */ cmpwi r0, 0x2b +/* 8031A190 00315DF0 41 82 00 30 */ beq lbl_8031A1C0 +/* 8031A194 00315DF4 40 80 00 10 */ bge lbl_8031A1A4 +/* 8031A198 00315DF8 2C 00 00 00 */ cmpwi r0, 0 +/* 8031A19C 00315DFC 41 82 00 14 */ beq lbl_8031A1B0 +/* 8031A1A0 00315E00 48 00 00 18 */ b lbl_8031A1B8 +lbl_8031A1A4: +/* 8031A1A4 00315E04 2C 00 00 74 */ cmpwi r0, 0x74 +/* 8031A1A8 00315E08 41 82 00 10 */ beq lbl_8031A1B8 +/* 8031A1AC 00315E0C 48 00 00 0C */ b lbl_8031A1B8 +lbl_8031A1B0: +/* 8031A1B0 00315E10 7C 83 23 78 */ mr r3, r4 +/* 8031A1B4 00315E14 4E 80 00 20 */ blr +lbl_8031A1B8: +/* 8031A1B8 00315E18 38 60 00 00 */ li r3, 0 +/* 8031A1BC 00315E1C 4E 80 00 20 */ blr +lbl_8031A1C0: +/* 8031A1C0 00315E20 7C 03 28 AE */ lbzx r0, r3, r5 +/* 8031A1C4 00315E24 7C 00 07 75 */ extsb. r0, r0 +/* 8031A1C8 00315E28 41 82 00 08 */ beq lbl_8031A1D0 +/* 8031A1CC 00315E2C 48 00 00 0C */ b lbl_8031A1D8 +lbl_8031A1D0: +/* 8031A1D0 00315E30 60 83 00 08 */ ori r3, r4, 8 +/* 8031A1D4 00315E34 4E 80 00 20 */ blr +lbl_8031A1D8: +/* 8031A1D8 00315E38 38 60 00 00 */ li r3, 0 +/* 8031A1DC 00315E3C 4E 80 00 20 */ blr + +.global VFiPFAPI_convertError +VFiPFAPI_convertError: +/* 8031A1E0 00315E40 2C 83 00 00 */ cmpwi cr1, r3, 0 +/* 8031A1E4 00315E44 40 86 00 0C */ bne cr1, lbl_8031A1F0 +/* 8031A1E8 00315E48 38 60 00 00 */ li r3, 0 +/* 8031A1EC 00315E4C 4E 80 00 20 */ blr +lbl_8031A1F0: +/* 8031A1F0 00315E50 2C 03 FF FF */ cmpwi r3, -1 +/* 8031A1F4 00315E54 40 82 00 0C */ bne lbl_8031A200 +/* 8031A1F8 00315E58 38 60 FF FF */ li r3, -1 +/* 8031A1FC 00315E5C 4E 80 00 20 */ blr +lbl_8031A200: +/* 8031A200 00315E60 40 85 00 20 */ ble cr1, lbl_8031A220 +/* 8031A204 00315E64 2C 03 00 A0 */ cmpwi r3, 0xa0 +/* 8031A208 00315E68 40 80 00 18 */ bge lbl_8031A220 +/* 8031A20C 00315E6C 3C 80 80 44 */ lis r4, lbl_804465E8@ha +/* 8031A210 00315E70 54 60 10 3A */ slwi r0, r3, 2 +/* 8031A214 00315E74 38 84 65 E8 */ addi r4, r4, lbl_804465E8@l +/* 8031A218 00315E78 7C 64 00 2E */ lwzx r3, r4, r0 +/* 8031A21C 00315E7C 4E 80 00 20 */ blr +lbl_8031A220: +/* 8031A220 00315E80 2C 03 10 00 */ cmpwi r3, 0x1000 +/* 8031A224 00315E84 4C 82 00 20 */ bnelr +/* 8031A228 00315E88 38 60 00 05 */ li r3, 5 +/* 8031A22C 00315E8C 4E 80 00 20 */ blr + +.global VFiPFAPI_convertReturnValue +VFiPFAPI_convertReturnValue: +/* 8031A230 00315E90 7C 03 00 D0 */ neg r0, r3 +/* 8031A234 00315E94 7C 00 1B 78 */ or r0, r0, r3 +/* 8031A238 00315E98 7C 03 FE 70 */ srawi r3, r0, 0x1f +/* 8031A23C 00315E9C 4E 80 00 20 */ blr + +.global VFiPFAPI_convertReturnValue2NULL +VFiPFAPI_convertReturnValue2NULL: +/* 8031A240 00315EA0 2C 03 00 00 */ cmpwi r3, 0 +/* 8031A244 00315EA4 41 82 00 0C */ beq lbl_8031A250 +/* 8031A248 00315EA8 38 60 00 00 */ li r3, 0 +/* 8031A24C 00315EAC 4E 80 00 20 */ blr +lbl_8031A250: +/* 8031A250 00315EB0 7C 83 23 78 */ mr r3, r4 +/* 8031A254 00315EB4 4E 80 00 20 */ blr diff --git a/asm/SDK/VF/pf_cp932.s b/asm/SDK/VF/pf_cp932.s new file mode 100644 index 0000000..2dcc524 --- /dev/null +++ b/asm/SDK/VF/pf_cp932.s @@ -0,0 +1,381 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global VFiPFCODE_CP932_OEM2Unicode +VFiPFCODE_CP932_OEM2Unicode: +/* 80319C00 00315860 88 A3 00 00 */ lbz r5, 0(r3) +/* 80319C04 00315864 88 63 00 01 */ lbz r3, 1(r3) +/* 80319C08 00315868 28 05 00 80 */ cmplwi r5, 0x80 +/* 80319C0C 0031586C 40 80 00 14 */ bge lbl_80319C20 +/* 80319C10 00315870 B0 A4 00 00 */ sth r5, 0(r4) +/* 80319C14 00315874 38 60 00 01 */ li r3, 1 +/* 80319C18 00315878 38 80 00 02 */ li r4, 2 +/* 80319C1C 0031587C 4B FE B5 78 */ b VFiPFCODE_Combine_Width +lbl_80319C20: +/* 80319C20 00315880 28 05 00 A1 */ cmplwi r5, 0xa1 +/* 80319C24 00315884 41 80 00 24 */ blt lbl_80319C48 +/* 80319C28 00315888 28 05 00 DF */ cmplwi r5, 0xdf +/* 80319C2C 0031588C 41 81 00 1C */ bgt lbl_80319C48 +/* 80319C30 00315890 3C 65 00 01 */ addis r3, r5, 1 +/* 80319C34 00315894 38 03 FE C0 */ addi r0, r3, -320 +/* 80319C38 00315898 B0 04 00 00 */ sth r0, 0(r4) +/* 80319C3C 0031589C 38 60 00 01 */ li r3, 1 +/* 80319C40 003158A0 38 80 00 02 */ li r4, 2 +/* 80319C44 003158A4 4B FE B5 50 */ b VFiPFCODE_Combine_Width +lbl_80319C48: +/* 80319C48 003158A8 28 05 00 80 */ cmplwi r5, 0x80 +/* 80319C4C 003158AC 41 82 00 4C */ beq lbl_80319C98 +/* 80319C50 003158B0 28 05 00 85 */ cmplwi r5, 0x85 +/* 80319C54 003158B4 41 82 00 44 */ beq lbl_80319C98 +/* 80319C58 003158B8 28 05 00 86 */ cmplwi r5, 0x86 +/* 80319C5C 003158BC 41 82 00 3C */ beq lbl_80319C98 +/* 80319C60 003158C0 28 05 00 A0 */ cmplwi r5, 0xa0 +/* 80319C64 003158C4 41 82 00 34 */ beq lbl_80319C98 +/* 80319C68 003158C8 28 05 00 EB */ cmplwi r5, 0xeb +/* 80319C6C 003158CC 41 82 00 2C */ beq lbl_80319C98 +/* 80319C70 003158D0 28 05 00 EC */ cmplwi r5, 0xec +/* 80319C74 003158D4 41 82 00 24 */ beq lbl_80319C98 +/* 80319C78 003158D8 28 05 00 EF */ cmplwi r5, 0xef +/* 80319C7C 003158DC 41 80 00 0C */ blt lbl_80319C88 +/* 80319C80 003158E0 28 05 00 F9 */ cmplwi r5, 0xf9 +/* 80319C84 003158E4 40 81 00 14 */ ble lbl_80319C98 +lbl_80319C88: +/* 80319C88 003158E8 28 05 00 FD */ cmplwi r5, 0xfd +/* 80319C8C 003158EC 41 80 00 20 */ blt lbl_80319CAC +/* 80319C90 003158F0 28 05 00 FF */ cmplwi r5, 0xff +/* 80319C94 003158F4 40 82 00 18 */ bne lbl_80319CAC +lbl_80319C98: +/* 80319C98 003158F8 38 00 00 5F */ li r0, 0x5f +/* 80319C9C 003158FC 38 60 00 01 */ li r3, 1 +/* 80319CA0 00315900 B0 04 00 00 */ sth r0, 0(r4) +/* 80319CA4 00315904 38 80 00 02 */ li r4, 2 +/* 80319CA8 00315908 4B FE B4 EC */ b VFiPFCODE_Combine_Width +lbl_80319CAC: +/* 80319CAC 0031590C 28 03 00 FD */ cmplwi r3, 0xfd +/* 80319CB0 00315910 41 80 00 18 */ blt lbl_80319CC8 +/* 80319CB4 00315914 38 00 00 5F */ li r0, 0x5f +/* 80319CB8 00315918 38 60 00 01 */ li r3, 1 +/* 80319CBC 0031591C B0 04 00 00 */ sth r0, 0(r4) +/* 80319CC0 00315920 38 80 00 02 */ li r4, 2 +/* 80319CC4 00315924 4B FE B4 D0 */ b VFiPFCODE_Combine_Width +lbl_80319CC8: +/* 80319CC8 00315928 28 05 00 81 */ cmplwi r5, 0x81 +/* 80319CCC 0031592C 41 80 00 14 */ blt lbl_80319CE0 +/* 80319CD0 00315930 28 05 00 84 */ cmplwi r5, 0x84 +/* 80319CD4 00315934 41 81 00 0C */ bgt lbl_80319CE0 +/* 80319CD8 00315938 38 05 FF 7F */ addi r0, r5, -129 +/* 80319CDC 0031593C 48 00 00 78 */ b lbl_80319D54 +lbl_80319CE0: +/* 80319CE0 00315940 28 05 00 87 */ cmplwi r5, 0x87 +/* 80319CE4 00315944 41 80 00 14 */ blt lbl_80319CF8 +/* 80319CE8 00315948 28 05 00 9F */ cmplwi r5, 0x9f +/* 80319CEC 0031594C 41 81 00 0C */ bgt lbl_80319CF8 +/* 80319CF0 00315950 38 05 FF 7D */ addi r0, r5, -131 +/* 80319CF4 00315954 48 00 00 60 */ b lbl_80319D54 +lbl_80319CF8: +/* 80319CF8 00315958 28 05 00 E0 */ cmplwi r5, 0xe0 +/* 80319CFC 0031595C 41 80 00 14 */ blt lbl_80319D10 +/* 80319D00 00315960 28 05 00 EA */ cmplwi r5, 0xea +/* 80319D04 00315964 41 81 00 0C */ bgt lbl_80319D10 +/* 80319D08 00315968 38 05 FF 3D */ addi r0, r5, -195 +/* 80319D0C 0031596C 48 00 00 48 */ b lbl_80319D54 +lbl_80319D10: +/* 80319D10 00315970 28 05 00 ED */ cmplwi r5, 0xed +/* 80319D14 00315974 41 80 00 14 */ blt lbl_80319D28 +/* 80319D18 00315978 28 05 00 EE */ cmplwi r5, 0xee +/* 80319D1C 0031597C 41 81 00 0C */ bgt lbl_80319D28 +/* 80319D20 00315980 38 05 FF 3B */ addi r0, r5, -197 +/* 80319D24 00315984 48 00 00 30 */ b lbl_80319D54 +lbl_80319D28: +/* 80319D28 00315988 28 05 00 FA */ cmplwi r5, 0xfa +/* 80319D2C 0031598C 41 80 00 14 */ blt lbl_80319D40 +/* 80319D30 00315990 28 05 00 FC */ cmplwi r5, 0xfc +/* 80319D34 00315994 41 81 00 0C */ bgt lbl_80319D40 +/* 80319D38 00315998 38 05 FF 30 */ addi r0, r5, -208 +/* 80319D3C 0031599C 48 00 00 18 */ b lbl_80319D54 +lbl_80319D40: +/* 80319D40 003159A0 38 00 00 5F */ li r0, 0x5f +/* 80319D44 003159A4 38 60 00 01 */ li r3, 1 +/* 80319D48 003159A8 B0 04 00 00 */ sth r0, 0(r4) +/* 80319D4C 003159AC 38 80 00 02 */ li r4, 2 +/* 80319D50 003159B0 4B FE B4 44 */ b VFiPFCODE_Combine_Width +lbl_80319D54: +/* 80319D54 003159B4 34 63 FF C0 */ addic. r3, r3, -64 +/* 80319D58 003159B8 41 80 00 0C */ blt lbl_80319D64 +/* 80319D5C 003159BC 2C 03 00 BD */ cmpwi r3, 0xbd +/* 80319D60 003159C0 41 80 00 18 */ blt lbl_80319D78 +lbl_80319D64: +/* 80319D64 003159C4 38 00 00 5F */ li r0, 0x5f +/* 80319D68 003159C8 38 60 00 01 */ li r3, 1 +/* 80319D6C 003159CC B0 04 00 00 */ sth r0, 0(r4) +/* 80319D70 003159D0 38 80 00 02 */ li r4, 2 +/* 80319D74 003159D4 4B FE B4 20 */ b VFiPFCODE_Combine_Width +lbl_80319D78: +/* 80319D78 003159D8 1C 00 01 7A */ mulli r0, r0, 0x17a +/* 80319D7C 003159DC 3C A0 80 40 */ lis r5, lbl_803FE2C0@ha +/* 80319D80 003159E0 54 63 08 3C */ slwi r3, r3, 1 +/* 80319D84 003159E4 38 A5 E2 C0 */ addi r5, r5, lbl_803FE2C0@l +/* 80319D88 003159E8 7C 05 02 14 */ add r0, r5, r0 +/* 80319D8C 003159EC 7C 03 02 2E */ lhzx r0, r3, r0 +/* 80319D90 003159F0 2C 00 00 00 */ cmpwi r0, 0 +/* 80319D94 003159F4 B0 04 00 00 */ sth r0, 0(r4) +/* 80319D98 003159F8 40 82 00 18 */ bne lbl_80319DB0 +/* 80319D9C 003159FC 38 00 00 5F */ li r0, 0x5f +/* 80319DA0 00315A00 38 60 00 01 */ li r3, 1 +/* 80319DA4 00315A04 B0 04 00 00 */ sth r0, 0(r4) +/* 80319DA8 00315A08 38 80 00 02 */ li r4, 2 +/* 80319DAC 00315A0C 4B FE B3 E8 */ b VFiPFCODE_Combine_Width +lbl_80319DB0: +/* 80319DB0 00315A10 38 60 00 02 */ li r3, 2 +/* 80319DB4 00315A14 38 80 00 02 */ li r4, 2 +/* 80319DB8 00315A18 4B FE B3 DC */ b VFiPFCODE_Combine_Width + +.global VFiPFCODE_CP932_Unicode2OEM +VFiPFCODE_CP932_Unicode2OEM: +/* 80319DBC 00315A1C A0 03 00 00 */ lhz r0, 0(r3) +/* 80319DC0 00315A20 54 05 06 3E */ clrlwi r5, r0, 0x18 +/* 80319DC4 00315A24 7C 03 46 70 */ srawi r3, r0, 8 +/* 80319DC8 00315A28 28 05 00 80 */ cmplwi r5, 0x80 +/* 80319DCC 00315A2C 40 80 00 24 */ bge lbl_80319DF0 +/* 80319DD0 00315A30 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 80319DD4 00315A34 40 82 00 1C */ bne lbl_80319DF0 +/* 80319DD8 00315A38 38 00 00 00 */ li r0, 0 +/* 80319DDC 00315A3C 98 A4 00 00 */ stb r5, 0(r4) +/* 80319DE0 00315A40 38 60 00 01 */ li r3, 1 +/* 80319DE4 00315A44 98 04 00 01 */ stb r0, 1(r4) +/* 80319DE8 00315A48 38 80 00 02 */ li r4, 2 +/* 80319DEC 00315A4C 4B FE B3 A8 */ b VFiPFCODE_Combine_Width +lbl_80319DF0: +/* 80319DF0 00315A50 54 60 44 2E */ rlwinm r0, r3, 8, 0x10, 0x17 +/* 80319DF4 00315A54 7C 00 2A 14 */ add r0, r0, r5 +/* 80319DF8 00315A58 54 09 04 3E */ clrlwi r9, r0, 0x10 +/* 80319DFC 00315A5C 28 09 FF 61 */ cmplwi r9, 0xff61 +/* 80319E00 00315A60 41 80 00 2C */ blt lbl_80319E2C +/* 80319E04 00315A64 28 09 FF 9F */ cmplwi r9, 0xff9f +/* 80319E08 00315A68 41 81 00 24 */ bgt lbl_80319E2C +/* 80319E0C 00315A6C 3C 69 FF FF */ addis r3, r9, 0xffff +/* 80319E10 00315A70 38 00 00 00 */ li r0, 0 +/* 80319E14 00315A74 38 63 01 40 */ addi r3, r3, 0x140 +/* 80319E18 00315A78 98 04 00 01 */ stb r0, 1(r4) +/* 80319E1C 00315A7C 98 64 00 00 */ stb r3, 0(r4) +/* 80319E20 00315A80 38 60 00 01 */ li r3, 1 +/* 80319E24 00315A84 38 80 00 02 */ li r4, 2 +/* 80319E28 00315A88 4B FE B3 6C */ b VFiPFCODE_Combine_Width +lbl_80319E2C: +/* 80319E2C 00315A8C 28 09 00 5F */ cmplwi r9, 0x5f +/* 80319E30 00315A90 40 82 00 18 */ bne lbl_80319E48 +/* 80319E34 00315A94 38 00 00 5F */ li r0, 0x5f +/* 80319E38 00315A98 38 60 00 01 */ li r3, 1 +/* 80319E3C 00315A9C 98 04 00 00 */ stb r0, 0(r4) +/* 80319E40 00315AA0 38 80 00 02 */ li r4, 2 +/* 80319E44 00315AA4 4B FE B3 50 */ b VFiPFCODE_Combine_Width +lbl_80319E48: +/* 80319E48 00315AA8 3C A0 80 40 */ lis r5, lbl_803FE2C0@ha +/* 80319E4C 00315AAC 38 C0 00 00 */ li r6, 0 +/* 80319E50 00315AB0 38 A5 E2 C0 */ addi r5, r5, lbl_803FE2C0@l +/* 80319E54 00315AB4 38 00 00 15 */ li r0, 0x15 +lbl_80319E58: +/* 80319E58 00315AB8 7C A8 2B 78 */ mr r8, r5 +/* 80319E5C 00315ABC 38 E0 00 00 */ li r7, 0 +/* 80319E60 00315AC0 7C 09 03 A6 */ mtctr r0 +lbl_80319E64: +/* 80319E64 00315AC4 A0 68 00 00 */ lhz r3, 0(r8) +/* 80319E68 00315AC8 7C 03 48 40 */ cmplw r3, r9 +/* 80319E6C 00315ACC 41 82 00 90 */ beq lbl_80319EFC +/* 80319E70 00315AD0 A0 68 00 02 */ lhz r3, 2(r8) +/* 80319E74 00315AD4 38 E7 00 01 */ addi r7, r7, 1 +/* 80319E78 00315AD8 7C 03 48 40 */ cmplw r3, r9 +/* 80319E7C 00315ADC 41 82 00 80 */ beq lbl_80319EFC +/* 80319E80 00315AE0 A0 68 00 04 */ lhz r3, 4(r8) +/* 80319E84 00315AE4 38 E7 00 01 */ addi r7, r7, 1 +/* 80319E88 00315AE8 7C 03 48 40 */ cmplw r3, r9 +/* 80319E8C 00315AEC 41 82 00 70 */ beq lbl_80319EFC +/* 80319E90 00315AF0 A0 68 00 06 */ lhz r3, 6(r8) +/* 80319E94 00315AF4 38 E7 00 01 */ addi r7, r7, 1 +/* 80319E98 00315AF8 7C 03 48 40 */ cmplw r3, r9 +/* 80319E9C 00315AFC 41 82 00 60 */ beq lbl_80319EFC +/* 80319EA0 00315B00 A0 68 00 08 */ lhz r3, 8(r8) +/* 80319EA4 00315B04 38 E7 00 01 */ addi r7, r7, 1 +/* 80319EA8 00315B08 7C 03 48 40 */ cmplw r3, r9 +/* 80319EAC 00315B0C 41 82 00 50 */ beq lbl_80319EFC +/* 80319EB0 00315B10 A0 68 00 0A */ lhz r3, 0xa(r8) +/* 80319EB4 00315B14 38 E7 00 01 */ addi r7, r7, 1 +/* 80319EB8 00315B18 7C 03 48 40 */ cmplw r3, r9 +/* 80319EBC 00315B1C 41 82 00 40 */ beq lbl_80319EFC +/* 80319EC0 00315B20 A0 68 00 0C */ lhz r3, 0xc(r8) +/* 80319EC4 00315B24 38 E7 00 01 */ addi r7, r7, 1 +/* 80319EC8 00315B28 7C 03 48 40 */ cmplw r3, r9 +/* 80319ECC 00315B2C 41 82 00 30 */ beq lbl_80319EFC +/* 80319ED0 00315B30 A0 68 00 0E */ lhz r3, 0xe(r8) +/* 80319ED4 00315B34 38 E7 00 01 */ addi r7, r7, 1 +/* 80319ED8 00315B38 7C 03 48 40 */ cmplw r3, r9 +/* 80319EDC 00315B3C 41 82 00 20 */ beq lbl_80319EFC +/* 80319EE0 00315B40 A0 68 00 10 */ lhz r3, 0x10(r8) +/* 80319EE4 00315B44 38 E7 00 01 */ addi r7, r7, 1 +/* 80319EE8 00315B48 7C 03 48 40 */ cmplw r3, r9 +/* 80319EEC 00315B4C 41 82 00 10 */ beq lbl_80319EFC +/* 80319EF0 00315B50 38 E7 00 01 */ addi r7, r7, 1 +/* 80319EF4 00315B54 39 08 00 12 */ addi r8, r8, 0x12 +/* 80319EF8 00315B58 42 00 FF 6C */ bdnz lbl_80319E64 +lbl_80319EFC: +/* 80319EFC 00315B5C 2C 07 00 BD */ cmpwi r7, 0xbd +/* 80319F00 00315B60 41 80 00 14 */ blt lbl_80319F14 +/* 80319F04 00315B64 38 C6 00 01 */ addi r6, r6, 1 +/* 80319F08 00315B68 38 A5 01 7A */ addi r5, r5, 0x17a +/* 80319F0C 00315B6C 2C 06 00 2D */ cmpwi r6, 0x2d +/* 80319F10 00315B70 41 80 FF 48 */ blt lbl_80319E58 +lbl_80319F14: +/* 80319F14 00315B74 2C 07 00 BD */ cmpwi r7, 0xbd +/* 80319F18 00315B78 40 82 00 18 */ bne lbl_80319F30 +/* 80319F1C 00315B7C 38 00 00 5F */ li r0, 0x5f +/* 80319F20 00315B80 38 60 00 01 */ li r3, 1 +/* 80319F24 00315B84 98 04 00 00 */ stb r0, 0(r4) +/* 80319F28 00315B88 38 80 00 02 */ li r4, 2 +/* 80319F2C 00315B8C 4B FE B2 68 */ b VFiPFCODE_Combine_Width +lbl_80319F30: +/* 80319F30 00315B90 2C 06 00 00 */ cmpwi r6, 0 +/* 80319F34 00315B94 41 80 00 24 */ blt lbl_80319F58 +/* 80319F38 00315B98 2C 06 00 03 */ cmpwi r6, 3 +/* 80319F3C 00315B9C 41 81 00 1C */ bgt lbl_80319F58 +/* 80319F40 00315BA0 38 66 00 81 */ addi r3, r6, 0x81 +/* 80319F44 00315BA4 38 07 00 40 */ addi r0, r7, 0x40 +/* 80319F48 00315BA8 54 63 40 2E */ slwi r3, r3, 8 +/* 80319F4C 00315BAC 7C 60 03 78 */ or r0, r3, r0 +/* 80319F50 00315BB0 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 80319F54 00315BB4 48 00 00 B8 */ b lbl_8031A00C +lbl_80319F58: +/* 80319F58 00315BB8 2C 06 00 04 */ cmpwi r6, 4 +/* 80319F5C 00315BBC 41 80 00 24 */ blt lbl_80319F80 +/* 80319F60 00315BC0 2C 06 00 1C */ cmpwi r6, 0x1c +/* 80319F64 00315BC4 41 81 00 1C */ bgt lbl_80319F80 +/* 80319F68 00315BC8 38 66 00 83 */ addi r3, r6, 0x83 +/* 80319F6C 00315BCC 38 07 00 40 */ addi r0, r7, 0x40 +/* 80319F70 00315BD0 54 63 40 2E */ slwi r3, r3, 8 +/* 80319F74 00315BD4 7C 60 03 78 */ or r0, r3, r0 +/* 80319F78 00315BD8 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 80319F7C 00315BDC 48 00 00 90 */ b lbl_8031A00C +lbl_80319F80: +/* 80319F80 00315BE0 2C 06 00 1D */ cmpwi r6, 0x1d +/* 80319F84 00315BE4 41 80 00 24 */ blt lbl_80319FA8 +/* 80319F88 00315BE8 2C 06 00 27 */ cmpwi r6, 0x27 +/* 80319F8C 00315BEC 41 81 00 1C */ bgt lbl_80319FA8 +/* 80319F90 00315BF0 38 66 00 C3 */ addi r3, r6, 0xc3 +/* 80319F94 00315BF4 38 07 00 40 */ addi r0, r7, 0x40 +/* 80319F98 00315BF8 54 63 40 2E */ slwi r3, r3, 8 +/* 80319F9C 00315BFC 7C 60 03 78 */ or r0, r3, r0 +/* 80319FA0 00315C00 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 80319FA4 00315C04 48 00 00 68 */ b lbl_8031A00C +lbl_80319FA8: +/* 80319FA8 00315C08 2C 06 00 28 */ cmpwi r6, 0x28 +/* 80319FAC 00315C0C 41 80 00 24 */ blt lbl_80319FD0 +/* 80319FB0 00315C10 2C 06 00 29 */ cmpwi r6, 0x29 +/* 80319FB4 00315C14 41 81 00 1C */ bgt lbl_80319FD0 +/* 80319FB8 00315C18 38 66 00 C5 */ addi r3, r6, 0xc5 +/* 80319FBC 00315C1C 38 07 00 40 */ addi r0, r7, 0x40 +/* 80319FC0 00315C20 54 63 40 2E */ slwi r3, r3, 8 +/* 80319FC4 00315C24 7C 60 03 78 */ or r0, r3, r0 +/* 80319FC8 00315C28 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 80319FCC 00315C2C 48 00 00 40 */ b lbl_8031A00C +lbl_80319FD0: +/* 80319FD0 00315C30 2C 06 00 2A */ cmpwi r6, 0x2a +/* 80319FD4 00315C34 41 80 00 24 */ blt lbl_80319FF8 +/* 80319FD8 00315C38 2C 06 00 2C */ cmpwi r6, 0x2c +/* 80319FDC 00315C3C 41 81 00 1C */ bgt lbl_80319FF8 +/* 80319FE0 00315C40 38 66 00 D0 */ addi r3, r6, 0xd0 +/* 80319FE4 00315C44 38 07 00 40 */ addi r0, r7, 0x40 +/* 80319FE8 00315C48 54 63 40 2E */ slwi r3, r3, 8 +/* 80319FEC 00315C4C 7C 60 03 78 */ or r0, r3, r0 +/* 80319FF0 00315C50 54 03 04 3E */ clrlwi r3, r0, 0x10 +/* 80319FF4 00315C54 48 00 00 18 */ b lbl_8031A00C +lbl_80319FF8: +/* 80319FF8 00315C58 38 00 00 5F */ li r0, 0x5f +/* 80319FFC 00315C5C 38 60 00 01 */ li r3, 1 +/* 8031A000 00315C60 98 04 00 00 */ stb r0, 0(r4) +/* 8031A004 00315C64 38 80 00 02 */ li r4, 2 +/* 8031A008 00315C68 4B FE B1 8C */ b VFiPFCODE_Combine_Width +lbl_8031A00C: +/* 8031A00C 00315C6C 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f +/* 8031A010 00315C70 98 64 00 01 */ stb r3, 1(r4) +/* 8031A014 00315C74 38 60 00 02 */ li r3, 2 +/* 8031A018 00315C78 98 04 00 00 */ stb r0, 0(r4) +/* 8031A01C 00315C7C 38 80 00 02 */ li r4, 2 +/* 8031A020 00315C80 4B FE B1 74 */ b VFiPFCODE_Combine_Width + +.global VFiPFCODE_CP932_OEMCharWidth +VFiPFCODE_CP932_OEMCharWidth: +/* 8031A024 00315C84 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8031A028 00315C88 7C 08 02 A6 */ mflr r0 +/* 8031A02C 00315C8C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8031A030 00315C90 38 81 00 0C */ addi r4, r1, 0xc +/* 8031A034 00315C94 4B FF FB CD */ bl VFiPFCODE_CP932_OEM2Unicode +/* 8031A038 00315C98 38 81 00 0A */ addi r4, r1, 0xa +/* 8031A03C 00315C9C 38 A1 00 08 */ addi r5, r1, 8 +/* 8031A040 00315CA0 4B FE B1 61 */ bl VFiPFCODE_Divide_Width +/* 8031A044 00315CA4 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8031A048 00315CA8 A8 61 00 0A */ lha r3, 0xa(r1) +/* 8031A04C 00315CAC 7C 08 03 A6 */ mtlr r0 +/* 8031A050 00315CB0 38 21 00 10 */ addi r1, r1, 0x10 +/* 8031A054 00315CB4 4E 80 00 20 */ blr + +.global VFiPFCODE_CP932_isOEMMBchar +VFiPFCODE_CP932_isOEMMBchar: +/* 8031A058 00315CB8 2C 04 00 02 */ cmpwi r4, 2 +/* 8031A05C 00315CBC 54 60 06 3E */ clrlwi r0, r3, 0x18 +/* 8031A060 00315CC0 41 82 00 40 */ beq lbl_8031A0A0 +/* 8031A064 00315CC4 40 80 00 68 */ bge lbl_8031A0CC +/* 8031A068 00315CC8 2C 04 00 01 */ cmpwi r4, 1 +/* 8031A06C 00315CCC 40 80 00 08 */ bge lbl_8031A074 +/* 8031A070 00315CD0 48 00 00 5C */ b lbl_8031A0CC +lbl_8031A074: +/* 8031A074 00315CD4 28 00 00 81 */ cmplwi r0, 0x81 +/* 8031A078 00315CD8 38 60 00 00 */ li r3, 0 +/* 8031A07C 00315CDC 41 80 00 0C */ blt lbl_8031A088 +/* 8031A080 00315CE0 28 00 00 9F */ cmplwi r0, 0x9f +/* 8031A084 00315CE4 40 81 00 14 */ ble lbl_8031A098 +lbl_8031A088: +/* 8031A088 00315CE8 28 00 00 E0 */ cmplwi r0, 0xe0 +/* 8031A08C 00315CEC 4D 80 00 20 */ bltlr +/* 8031A090 00315CF0 28 00 00 FC */ cmplwi r0, 0xfc +/* 8031A094 00315CF4 4D 81 00 20 */ bgtlr +lbl_8031A098: +/* 8031A098 00315CF8 38 60 00 01 */ li r3, 1 +/* 8031A09C 00315CFC 4E 80 00 20 */ blr +lbl_8031A0A0: +/* 8031A0A0 00315D00 28 00 00 40 */ cmplwi r0, 0x40 +/* 8031A0A4 00315D04 38 60 00 00 */ li r3, 0 +/* 8031A0A8 00315D08 41 80 00 0C */ blt lbl_8031A0B4 +/* 8031A0AC 00315D0C 28 00 00 7E */ cmplwi r0, 0x7e +/* 8031A0B0 00315D10 40 81 00 14 */ ble lbl_8031A0C4 +lbl_8031A0B4: +/* 8031A0B4 00315D14 28 00 00 80 */ cmplwi r0, 0x80 +/* 8031A0B8 00315D18 4D 80 00 20 */ bltlr +/* 8031A0BC 00315D1C 28 00 00 FC */ cmplwi r0, 0xfc +/* 8031A0C0 00315D20 4D 81 00 20 */ bgtlr +lbl_8031A0C4: +/* 8031A0C4 00315D24 38 60 00 01 */ li r3, 1 +/* 8031A0C8 00315D28 4E 80 00 20 */ blr +lbl_8031A0CC: +/* 8031A0CC 00315D2C 38 60 00 00 */ li r3, 0 +/* 8031A0D0 00315D30 4E 80 00 20 */ blr + +.global VFiPFCODE_CP932_UnicodeCharWidth +VFiPFCODE_CP932_UnicodeCharWidth: +/* 8031A0D4 00315D34 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8031A0D8 00315D38 7C 08 02 A6 */ mflr r0 +/* 8031A0DC 00315D3C 90 01 00 14 */ stw r0, 0x14(r1) +/* 8031A0E0 00315D40 38 81 00 0C */ addi r4, r1, 0xc +/* 8031A0E4 00315D44 4B FF FC D9 */ bl VFiPFCODE_CP932_Unicode2OEM +/* 8031A0E8 00315D48 38 81 00 0A */ addi r4, r1, 0xa +/* 8031A0EC 00315D4C 38 A1 00 08 */ addi r5, r1, 8 +/* 8031A0F0 00315D50 4B FE B0 B1 */ bl VFiPFCODE_Divide_Width +/* 8031A0F4 00315D54 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8031A0F8 00315D58 A8 61 00 08 */ lha r3, 8(r1) +/* 8031A0FC 00315D5C 7C 08 03 A6 */ mtlr r0 +/* 8031A100 00315D60 38 21 00 10 */ addi r1, r1, 0x10 +/* 8031A104 00315D64 4E 80 00 20 */ blr + +.global VFiPFCODE_CP932_isUnicodeMBchar +VFiPFCODE_CP932_isUnicodeMBchar: +/* 8031A108 00315D68 38 60 00 00 */ li r3, 0 +/* 8031A10C 00315D6C 4E 80 00 20 */ blr diff --git a/asm/SDK/VF/pf_volume.s b/asm/SDK/VF/pf_volume.s index 7079192..7ddacbf 100644 --- a/asm/SDK/VF/pf_volume.s +++ b/asm/SDK/VF/pf_volume.s @@ -179,20 +179,20 @@ lbl_803192B0: /* 803192B8 00314F18 90 06 00 14 */ stw r0, 0x14(r6) lbl_803192BC: /* 803192BC 00314F1C 3D 60 80 58 */ lis r11, lbl_8057F5C8@ha -/* 803192C0 00314F20 3D 20 80 32 */ lis r9, func_80319C00@ha +/* 803192C0 00314F20 3D 20 80 32 */ lis r9, VFiPFCODE_CP932_OEM2Unicode@ha /* 803192C4 00314F24 39 6B F5 C8 */ addi r11, r11, lbl_8057F5C8@l /* 803192C8 00314F28 39 40 00 00 */ li r10, 0 -/* 803192CC 00314F2C 3D 00 80 32 */ lis r8, func_80319DBC@ha -/* 803192D0 00314F30 3C E0 80 32 */ lis r7, lbl_8031A024@ha -/* 803192D4 00314F34 3C C0 80 32 */ lis r6, lbl_8031A058@ha -/* 803192D8 00314F38 3C A0 80 32 */ lis r5, lbl_8031A0D4@ha -/* 803192DC 00314F3C 3C 60 80 32 */ lis r3, lbl_8031A108@ha -/* 803192E0 00314F40 39 29 9C 00 */ addi r9, r9, func_80319C00@l -/* 803192E4 00314F44 39 08 9D BC */ addi r8, r8, func_80319DBC@l -/* 803192E8 00314F48 38 E7 A0 24 */ addi r7, r7, lbl_8031A024@l -/* 803192EC 00314F4C 38 C6 A0 58 */ addi r6, r6, lbl_8031A058@l -/* 803192F0 00314F50 38 A5 A0 D4 */ addi r5, r5, lbl_8031A0D4@l -/* 803192F4 00314F54 38 63 A1 08 */ addi r3, r3, lbl_8031A108@l +/* 803192CC 00314F2C 3D 00 80 32 */ lis r8, VFiPFCODE_CP932_Unicode2OEM@ha +/* 803192D0 00314F30 3C E0 80 32 */ lis r7, VFiPFCODE_CP932_OEMCharWidth@ha +/* 803192D4 00314F34 3C C0 80 32 */ lis r6, VFiPFCODE_CP932_isOEMMBchar@ha +/* 803192D8 00314F38 3C A0 80 32 */ lis r5, VFiPFCODE_CP932_UnicodeCharWidth@ha +/* 803192DC 00314F3C 3C 60 80 32 */ lis r3, VFiPFCODE_CP932_isUnicodeMBchar@ha +/* 803192E0 00314F40 39 29 9C 00 */ addi r9, r9, VFiPFCODE_CP932_OEM2Unicode@l +/* 803192E4 00314F44 39 08 9D BC */ addi r8, r8, VFiPFCODE_CP932_Unicode2OEM@l +/* 803192E8 00314F48 38 E7 A0 24 */ addi r7, r7, VFiPFCODE_CP932_OEMCharWidth@l +/* 803192EC 00314F4C 38 C6 A0 58 */ addi r6, r6, VFiPFCODE_CP932_isOEMMBchar@l +/* 803192F0 00314F50 38 A5 A0 D4 */ addi r5, r5, VFiPFCODE_CP932_UnicodeCharWidth@l +/* 803192F4 00314F54 38 63 A1 08 */ addi r3, r3, VFiPFCODE_CP932_isUnicodeMBchar@l /* 803192F8 00314F58 38 00 00 01 */ li r0, 1 /* 803192FC 00314F5C 90 8B 00 18 */ stw r4, 0x18(r11) /* 80319300 00314F60 3B EB 00 48 */ addi r31, r11, 0x48 diff --git a/asm/text_9_2.s b/asm/text_9_2.s index 2e3dfef..34adab6 100644 --- a/asm/text_9_2.s +++ b/asm/text_9_2.s @@ -2,503 +2,13 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_80319C00 -func_80319C00: -/* 80319C00 00315860 88 A3 00 00 */ lbz r5, 0(r3) -/* 80319C04 00315864 88 63 00 01 */ lbz r3, 1(r3) -/* 80319C08 00315868 28 05 00 80 */ cmplwi r5, 0x80 -/* 80319C0C 0031586C 40 80 00 14 */ bge lbl_80319C20 -/* 80319C10 00315870 B0 A4 00 00 */ sth r5, 0(r4) -/* 80319C14 00315874 38 60 00 01 */ li r3, 1 -/* 80319C18 00315878 38 80 00 02 */ li r4, 2 -/* 80319C1C 0031587C 4B FE B5 78 */ b VFiPFCODE_Combine_Width -lbl_80319C20: -/* 80319C20 00315880 28 05 00 A1 */ cmplwi r5, 0xa1 -/* 80319C24 00315884 41 80 00 24 */ blt lbl_80319C48 -/* 80319C28 00315888 28 05 00 DF */ cmplwi r5, 0xdf -/* 80319C2C 0031588C 41 81 00 1C */ bgt lbl_80319C48 -/* 80319C30 00315890 3C 65 00 01 */ addis r3, r5, 1 -/* 80319C34 00315894 38 03 FE C0 */ addi r0, r3, -320 -/* 80319C38 00315898 B0 04 00 00 */ sth r0, 0(r4) -/* 80319C3C 0031589C 38 60 00 01 */ li r3, 1 -/* 80319C40 003158A0 38 80 00 02 */ li r4, 2 -/* 80319C44 003158A4 4B FE B5 50 */ b VFiPFCODE_Combine_Width -lbl_80319C48: -/* 80319C48 003158A8 28 05 00 80 */ cmplwi r5, 0x80 -/* 80319C4C 003158AC 41 82 00 4C */ beq lbl_80319C98 -/* 80319C50 003158B0 28 05 00 85 */ cmplwi r5, 0x85 -/* 80319C54 003158B4 41 82 00 44 */ beq lbl_80319C98 -/* 80319C58 003158B8 28 05 00 86 */ cmplwi r5, 0x86 -/* 80319C5C 003158BC 41 82 00 3C */ beq lbl_80319C98 -/* 80319C60 003158C0 28 05 00 A0 */ cmplwi r5, 0xa0 -/* 80319C64 003158C4 41 82 00 34 */ beq lbl_80319C98 -/* 80319C68 003158C8 28 05 00 EB */ cmplwi r5, 0xeb -/* 80319C6C 003158CC 41 82 00 2C */ beq lbl_80319C98 -/* 80319C70 003158D0 28 05 00 EC */ cmplwi r5, 0xec -/* 80319C74 003158D4 41 82 00 24 */ beq lbl_80319C98 -/* 80319C78 003158D8 28 05 00 EF */ cmplwi r5, 0xef -/* 80319C7C 003158DC 41 80 00 0C */ blt lbl_80319C88 -/* 80319C80 003158E0 28 05 00 F9 */ cmplwi r5, 0xf9 -/* 80319C84 003158E4 40 81 00 14 */ ble lbl_80319C98 -lbl_80319C88: -/* 80319C88 003158E8 28 05 00 FD */ cmplwi r5, 0xfd -/* 80319C8C 003158EC 41 80 00 20 */ blt lbl_80319CAC -/* 80319C90 003158F0 28 05 00 FF */ cmplwi r5, 0xff -/* 80319C94 003158F4 40 82 00 18 */ bne lbl_80319CAC -lbl_80319C98: -/* 80319C98 003158F8 38 00 00 5F */ li r0, 0x5f -/* 80319C9C 003158FC 38 60 00 01 */ li r3, 1 -/* 80319CA0 00315900 B0 04 00 00 */ sth r0, 0(r4) -/* 80319CA4 00315904 38 80 00 02 */ li r4, 2 -/* 80319CA8 00315908 4B FE B4 EC */ b VFiPFCODE_Combine_Width -lbl_80319CAC: -/* 80319CAC 0031590C 28 03 00 FD */ cmplwi r3, 0xfd -/* 80319CB0 00315910 41 80 00 18 */ blt lbl_80319CC8 -/* 80319CB4 00315914 38 00 00 5F */ li r0, 0x5f -/* 80319CB8 00315918 38 60 00 01 */ li r3, 1 -/* 80319CBC 0031591C B0 04 00 00 */ sth r0, 0(r4) -/* 80319CC0 00315920 38 80 00 02 */ li r4, 2 -/* 80319CC4 00315924 4B FE B4 D0 */ b VFiPFCODE_Combine_Width -lbl_80319CC8: -/* 80319CC8 00315928 28 05 00 81 */ cmplwi r5, 0x81 -/* 80319CCC 0031592C 41 80 00 14 */ blt lbl_80319CE0 -/* 80319CD0 00315930 28 05 00 84 */ cmplwi r5, 0x84 -/* 80319CD4 00315934 41 81 00 0C */ bgt lbl_80319CE0 -/* 80319CD8 00315938 38 05 FF 7F */ addi r0, r5, -129 -/* 80319CDC 0031593C 48 00 00 78 */ b lbl_80319D54 -lbl_80319CE0: -/* 80319CE0 00315940 28 05 00 87 */ cmplwi r5, 0x87 -/* 80319CE4 00315944 41 80 00 14 */ blt lbl_80319CF8 -/* 80319CE8 00315948 28 05 00 9F */ cmplwi r5, 0x9f -/* 80319CEC 0031594C 41 81 00 0C */ bgt lbl_80319CF8 -/* 80319CF0 00315950 38 05 FF 7D */ addi r0, r5, -131 -/* 80319CF4 00315954 48 00 00 60 */ b lbl_80319D54 -lbl_80319CF8: -/* 80319CF8 00315958 28 05 00 E0 */ cmplwi r5, 0xe0 -/* 80319CFC 0031595C 41 80 00 14 */ blt lbl_80319D10 -/* 80319D00 00315960 28 05 00 EA */ cmplwi r5, 0xea -/* 80319D04 00315964 41 81 00 0C */ bgt lbl_80319D10 -/* 80319D08 00315968 38 05 FF 3D */ addi r0, r5, -195 -/* 80319D0C 0031596C 48 00 00 48 */ b lbl_80319D54 -lbl_80319D10: -/* 80319D10 00315970 28 05 00 ED */ cmplwi r5, 0xed -/* 80319D14 00315974 41 80 00 14 */ blt lbl_80319D28 -/* 80319D18 00315978 28 05 00 EE */ cmplwi r5, 0xee -/* 80319D1C 0031597C 41 81 00 0C */ bgt lbl_80319D28 -/* 80319D20 00315980 38 05 FF 3B */ addi r0, r5, -197 -/* 80319D24 00315984 48 00 00 30 */ b lbl_80319D54 -lbl_80319D28: -/* 80319D28 00315988 28 05 00 FA */ cmplwi r5, 0xfa -/* 80319D2C 0031598C 41 80 00 14 */ blt lbl_80319D40 -/* 80319D30 00315990 28 05 00 FC */ cmplwi r5, 0xfc -/* 80319D34 00315994 41 81 00 0C */ bgt lbl_80319D40 -/* 80319D38 00315998 38 05 FF 30 */ addi r0, r5, -208 -/* 80319D3C 0031599C 48 00 00 18 */ b lbl_80319D54 -lbl_80319D40: -/* 80319D40 003159A0 38 00 00 5F */ li r0, 0x5f -/* 80319D44 003159A4 38 60 00 01 */ li r3, 1 -/* 80319D48 003159A8 B0 04 00 00 */ sth r0, 0(r4) -/* 80319D4C 003159AC 38 80 00 02 */ li r4, 2 -/* 80319D50 003159B0 4B FE B4 44 */ b VFiPFCODE_Combine_Width -lbl_80319D54: -/* 80319D54 003159B4 34 63 FF C0 */ addic. r3, r3, -64 -/* 80319D58 003159B8 41 80 00 0C */ blt lbl_80319D64 -/* 80319D5C 003159BC 2C 03 00 BD */ cmpwi r3, 0xbd -/* 80319D60 003159C0 41 80 00 18 */ blt lbl_80319D78 -lbl_80319D64: -/* 80319D64 003159C4 38 00 00 5F */ li r0, 0x5f -/* 80319D68 003159C8 38 60 00 01 */ li r3, 1 -/* 80319D6C 003159CC B0 04 00 00 */ sth r0, 0(r4) -/* 80319D70 003159D0 38 80 00 02 */ li r4, 2 -/* 80319D74 003159D4 4B FE B4 20 */ b VFiPFCODE_Combine_Width -lbl_80319D78: -/* 80319D78 003159D8 1C 00 01 7A */ mulli r0, r0, 0x17a -/* 80319D7C 003159DC 3C A0 80 40 */ lis r5, lbl_803FE2C0@ha -/* 80319D80 003159E0 54 63 08 3C */ slwi r3, r3, 1 -/* 80319D84 003159E4 38 A5 E2 C0 */ addi r5, r5, lbl_803FE2C0@l -/* 80319D88 003159E8 7C 05 02 14 */ add r0, r5, r0 -/* 80319D8C 003159EC 7C 03 02 2E */ lhzx r0, r3, r0 -/* 80319D90 003159F0 2C 00 00 00 */ cmpwi r0, 0 -/* 80319D94 003159F4 B0 04 00 00 */ sth r0, 0(r4) -/* 80319D98 003159F8 40 82 00 18 */ bne lbl_80319DB0 -/* 80319D9C 003159FC 38 00 00 5F */ li r0, 0x5f -/* 80319DA0 00315A00 38 60 00 01 */ li r3, 1 -/* 80319DA4 00315A04 B0 04 00 00 */ sth r0, 0(r4) -/* 80319DA8 00315A08 38 80 00 02 */ li r4, 2 -/* 80319DAC 00315A0C 4B FE B3 E8 */ b VFiPFCODE_Combine_Width -lbl_80319DB0: -/* 80319DB0 00315A10 38 60 00 02 */ li r3, 2 -/* 80319DB4 00315A14 38 80 00 02 */ li r4, 2 -/* 80319DB8 00315A18 4B FE B3 DC */ b VFiPFCODE_Combine_Width - -.global func_80319DBC -func_80319DBC: -/* 80319DBC 00315A1C A0 03 00 00 */ lhz r0, 0(r3) -/* 80319DC0 00315A20 54 05 06 3E */ clrlwi r5, r0, 0x18 -/* 80319DC4 00315A24 7C 03 46 70 */ srawi r3, r0, 8 -/* 80319DC8 00315A28 28 05 00 80 */ cmplwi r5, 0x80 -/* 80319DCC 00315A2C 40 80 00 24 */ bge lbl_80319DF0 -/* 80319DD0 00315A30 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80319DD4 00315A34 40 82 00 1C */ bne lbl_80319DF0 -/* 80319DD8 00315A38 38 00 00 00 */ li r0, 0 -/* 80319DDC 00315A3C 98 A4 00 00 */ stb r5, 0(r4) -/* 80319DE0 00315A40 38 60 00 01 */ li r3, 1 -/* 80319DE4 00315A44 98 04 00 01 */ stb r0, 1(r4) -/* 80319DE8 00315A48 38 80 00 02 */ li r4, 2 -/* 80319DEC 00315A4C 4B FE B3 A8 */ b VFiPFCODE_Combine_Width -lbl_80319DF0: -/* 80319DF0 00315A50 54 60 44 2E */ rlwinm r0, r3, 8, 0x10, 0x17 -/* 80319DF4 00315A54 7C 00 2A 14 */ add r0, r0, r5 -/* 80319DF8 00315A58 54 09 04 3E */ clrlwi r9, r0, 0x10 -/* 80319DFC 00315A5C 28 09 FF 61 */ cmplwi r9, 0xff61 -/* 80319E00 00315A60 41 80 00 2C */ blt lbl_80319E2C -/* 80319E04 00315A64 28 09 FF 9F */ cmplwi r9, 0xff9f -/* 80319E08 00315A68 41 81 00 24 */ bgt lbl_80319E2C -/* 80319E0C 00315A6C 3C 69 FF FF */ addis r3, r9, 0xffff -/* 80319E10 00315A70 38 00 00 00 */ li r0, 0 -/* 80319E14 00315A74 38 63 01 40 */ addi r3, r3, 0x140 -/* 80319E18 00315A78 98 04 00 01 */ stb r0, 1(r4) -/* 80319E1C 00315A7C 98 64 00 00 */ stb r3, 0(r4) -/* 80319E20 00315A80 38 60 00 01 */ li r3, 1 -/* 80319E24 00315A84 38 80 00 02 */ li r4, 2 -/* 80319E28 00315A88 4B FE B3 6C */ b VFiPFCODE_Combine_Width -lbl_80319E2C: -/* 80319E2C 00315A8C 28 09 00 5F */ cmplwi r9, 0x5f -/* 80319E30 00315A90 40 82 00 18 */ bne lbl_80319E48 -/* 80319E34 00315A94 38 00 00 5F */ li r0, 0x5f -/* 80319E38 00315A98 38 60 00 01 */ li r3, 1 -/* 80319E3C 00315A9C 98 04 00 00 */ stb r0, 0(r4) -/* 80319E40 00315AA0 38 80 00 02 */ li r4, 2 -/* 80319E44 00315AA4 4B FE B3 50 */ b VFiPFCODE_Combine_Width -lbl_80319E48: -/* 80319E48 00315AA8 3C A0 80 40 */ lis r5, lbl_803FE2C0@ha -/* 80319E4C 00315AAC 38 C0 00 00 */ li r6, 0 -/* 80319E50 00315AB0 38 A5 E2 C0 */ addi r5, r5, lbl_803FE2C0@l -/* 80319E54 00315AB4 38 00 00 15 */ li r0, 0x15 -lbl_80319E58: -/* 80319E58 00315AB8 7C A8 2B 78 */ mr r8, r5 -/* 80319E5C 00315ABC 38 E0 00 00 */ li r7, 0 -/* 80319E60 00315AC0 7C 09 03 A6 */ mtctr r0 -lbl_80319E64: -/* 80319E64 00315AC4 A0 68 00 00 */ lhz r3, 0(r8) -/* 80319E68 00315AC8 7C 03 48 40 */ cmplw r3, r9 -/* 80319E6C 00315ACC 41 82 00 90 */ beq lbl_80319EFC -/* 80319E70 00315AD0 A0 68 00 02 */ lhz r3, 2(r8) -/* 80319E74 00315AD4 38 E7 00 01 */ addi r7, r7, 1 -/* 80319E78 00315AD8 7C 03 48 40 */ cmplw r3, r9 -/* 80319E7C 00315ADC 41 82 00 80 */ beq lbl_80319EFC -/* 80319E80 00315AE0 A0 68 00 04 */ lhz r3, 4(r8) -/* 80319E84 00315AE4 38 E7 00 01 */ addi r7, r7, 1 -/* 80319E88 00315AE8 7C 03 48 40 */ cmplw r3, r9 -/* 80319E8C 00315AEC 41 82 00 70 */ beq lbl_80319EFC -/* 80319E90 00315AF0 A0 68 00 06 */ lhz r3, 6(r8) -/* 80319E94 00315AF4 38 E7 00 01 */ addi r7, r7, 1 -/* 80319E98 00315AF8 7C 03 48 40 */ cmplw r3, r9 -/* 80319E9C 00315AFC 41 82 00 60 */ beq lbl_80319EFC -/* 80319EA0 00315B00 A0 68 00 08 */ lhz r3, 8(r8) -/* 80319EA4 00315B04 38 E7 00 01 */ addi r7, r7, 1 -/* 80319EA8 00315B08 7C 03 48 40 */ cmplw r3, r9 -/* 80319EAC 00315B0C 41 82 00 50 */ beq lbl_80319EFC -/* 80319EB0 00315B10 A0 68 00 0A */ lhz r3, 0xa(r8) -/* 80319EB4 00315B14 38 E7 00 01 */ addi r7, r7, 1 -/* 80319EB8 00315B18 7C 03 48 40 */ cmplw r3, r9 -/* 80319EBC 00315B1C 41 82 00 40 */ beq lbl_80319EFC -/* 80319EC0 00315B20 A0 68 00 0C */ lhz r3, 0xc(r8) -/* 80319EC4 00315B24 38 E7 00 01 */ addi r7, r7, 1 -/* 80319EC8 00315B28 7C 03 48 40 */ cmplw r3, r9 -/* 80319ECC 00315B2C 41 82 00 30 */ beq lbl_80319EFC -/* 80319ED0 00315B30 A0 68 00 0E */ lhz r3, 0xe(r8) -/* 80319ED4 00315B34 38 E7 00 01 */ addi r7, r7, 1 -/* 80319ED8 00315B38 7C 03 48 40 */ cmplw r3, r9 -/* 80319EDC 00315B3C 41 82 00 20 */ beq lbl_80319EFC -/* 80319EE0 00315B40 A0 68 00 10 */ lhz r3, 0x10(r8) -/* 80319EE4 00315B44 38 E7 00 01 */ addi r7, r7, 1 -/* 80319EE8 00315B48 7C 03 48 40 */ cmplw r3, r9 -/* 80319EEC 00315B4C 41 82 00 10 */ beq lbl_80319EFC -/* 80319EF0 00315B50 38 E7 00 01 */ addi r7, r7, 1 -/* 80319EF4 00315B54 39 08 00 12 */ addi r8, r8, 0x12 -/* 80319EF8 00315B58 42 00 FF 6C */ bdnz lbl_80319E64 -lbl_80319EFC: -/* 80319EFC 00315B5C 2C 07 00 BD */ cmpwi r7, 0xbd -/* 80319F00 00315B60 41 80 00 14 */ blt lbl_80319F14 -/* 80319F04 00315B64 38 C6 00 01 */ addi r6, r6, 1 -/* 80319F08 00315B68 38 A5 01 7A */ addi r5, r5, 0x17a -/* 80319F0C 00315B6C 2C 06 00 2D */ cmpwi r6, 0x2d -/* 80319F10 00315B70 41 80 FF 48 */ blt lbl_80319E58 -lbl_80319F14: -/* 80319F14 00315B74 2C 07 00 BD */ cmpwi r7, 0xbd -/* 80319F18 00315B78 40 82 00 18 */ bne lbl_80319F30 -/* 80319F1C 00315B7C 38 00 00 5F */ li r0, 0x5f -/* 80319F20 00315B80 38 60 00 01 */ li r3, 1 -/* 80319F24 00315B84 98 04 00 00 */ stb r0, 0(r4) -/* 80319F28 00315B88 38 80 00 02 */ li r4, 2 -/* 80319F2C 00315B8C 4B FE B2 68 */ b VFiPFCODE_Combine_Width -lbl_80319F30: -/* 80319F30 00315B90 2C 06 00 00 */ cmpwi r6, 0 -/* 80319F34 00315B94 41 80 00 24 */ blt lbl_80319F58 -/* 80319F38 00315B98 2C 06 00 03 */ cmpwi r6, 3 -/* 80319F3C 00315B9C 41 81 00 1C */ bgt lbl_80319F58 -/* 80319F40 00315BA0 38 66 00 81 */ addi r3, r6, 0x81 -/* 80319F44 00315BA4 38 07 00 40 */ addi r0, r7, 0x40 -/* 80319F48 00315BA8 54 63 40 2E */ slwi r3, r3, 8 -/* 80319F4C 00315BAC 7C 60 03 78 */ or r0, r3, r0 -/* 80319F50 00315BB0 54 03 04 3E */ clrlwi r3, r0, 0x10 -/* 80319F54 00315BB4 48 00 00 B8 */ b lbl_8031A00C -lbl_80319F58: -/* 80319F58 00315BB8 2C 06 00 04 */ cmpwi r6, 4 -/* 80319F5C 00315BBC 41 80 00 24 */ blt lbl_80319F80 -/* 80319F60 00315BC0 2C 06 00 1C */ cmpwi r6, 0x1c -/* 80319F64 00315BC4 41 81 00 1C */ bgt lbl_80319F80 -/* 80319F68 00315BC8 38 66 00 83 */ addi r3, r6, 0x83 -/* 80319F6C 00315BCC 38 07 00 40 */ addi r0, r7, 0x40 -/* 80319F70 00315BD0 54 63 40 2E */ slwi r3, r3, 8 -/* 80319F74 00315BD4 7C 60 03 78 */ or r0, r3, r0 -/* 80319F78 00315BD8 54 03 04 3E */ clrlwi r3, r0, 0x10 -/* 80319F7C 00315BDC 48 00 00 90 */ b lbl_8031A00C -lbl_80319F80: -/* 80319F80 00315BE0 2C 06 00 1D */ cmpwi r6, 0x1d -/* 80319F84 00315BE4 41 80 00 24 */ blt lbl_80319FA8 -/* 80319F88 00315BE8 2C 06 00 27 */ cmpwi r6, 0x27 -/* 80319F8C 00315BEC 41 81 00 1C */ bgt lbl_80319FA8 -/* 80319F90 00315BF0 38 66 00 C3 */ addi r3, r6, 0xc3 -/* 80319F94 00315BF4 38 07 00 40 */ addi r0, r7, 0x40 -/* 80319F98 00315BF8 54 63 40 2E */ slwi r3, r3, 8 -/* 80319F9C 00315BFC 7C 60 03 78 */ or r0, r3, r0 -/* 80319FA0 00315C00 54 03 04 3E */ clrlwi r3, r0, 0x10 -/* 80319FA4 00315C04 48 00 00 68 */ b lbl_8031A00C -lbl_80319FA8: -/* 80319FA8 00315C08 2C 06 00 28 */ cmpwi r6, 0x28 -/* 80319FAC 00315C0C 41 80 00 24 */ blt lbl_80319FD0 -/* 80319FB0 00315C10 2C 06 00 29 */ cmpwi r6, 0x29 -/* 80319FB4 00315C14 41 81 00 1C */ bgt lbl_80319FD0 -/* 80319FB8 00315C18 38 66 00 C5 */ addi r3, r6, 0xc5 -/* 80319FBC 00315C1C 38 07 00 40 */ addi r0, r7, 0x40 -/* 80319FC0 00315C20 54 63 40 2E */ slwi r3, r3, 8 -/* 80319FC4 00315C24 7C 60 03 78 */ or r0, r3, r0 -/* 80319FC8 00315C28 54 03 04 3E */ clrlwi r3, r0, 0x10 -/* 80319FCC 00315C2C 48 00 00 40 */ b lbl_8031A00C -lbl_80319FD0: -/* 80319FD0 00315C30 2C 06 00 2A */ cmpwi r6, 0x2a -/* 80319FD4 00315C34 41 80 00 24 */ blt lbl_80319FF8 -/* 80319FD8 00315C38 2C 06 00 2C */ cmpwi r6, 0x2c -/* 80319FDC 00315C3C 41 81 00 1C */ bgt lbl_80319FF8 -/* 80319FE0 00315C40 38 66 00 D0 */ addi r3, r6, 0xd0 -/* 80319FE4 00315C44 38 07 00 40 */ addi r0, r7, 0x40 -/* 80319FE8 00315C48 54 63 40 2E */ slwi r3, r3, 8 -/* 80319FEC 00315C4C 7C 60 03 78 */ or r0, r3, r0 -/* 80319FF0 00315C50 54 03 04 3E */ clrlwi r3, r0, 0x10 -/* 80319FF4 00315C54 48 00 00 18 */ b lbl_8031A00C -lbl_80319FF8: -/* 80319FF8 00315C58 38 00 00 5F */ li r0, 0x5f -/* 80319FFC 00315C5C 38 60 00 01 */ li r3, 1 -/* 8031A000 00315C60 98 04 00 00 */ stb r0, 0(r4) -/* 8031A004 00315C64 38 80 00 02 */ li r4, 2 -/* 8031A008 00315C68 4B FE B1 8C */ b VFiPFCODE_Combine_Width -lbl_8031A00C: -/* 8031A00C 00315C6C 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f -/* 8031A010 00315C70 98 64 00 01 */ stb r3, 1(r4) -/* 8031A014 00315C74 38 60 00 02 */ li r3, 2 -/* 8031A018 00315C78 98 04 00 00 */ stb r0, 0(r4) -/* 8031A01C 00315C7C 38 80 00 02 */ li r4, 2 -/* 8031A020 00315C80 4B FE B1 74 */ b VFiPFCODE_Combine_Width - -.global lbl_8031A024 -lbl_8031A024: -/* 8031A024 00315C84 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A028 00315C88 7C 08 02 A6 */ mflr r0 -/* 8031A02C 00315C8C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A030 00315C90 38 81 00 0C */ addi r4, r1, 0xc -/* 8031A034 00315C94 4B FF FB CD */ bl func_80319C00 -/* 8031A038 00315C98 38 81 00 0A */ addi r4, r1, 0xa -/* 8031A03C 00315C9C 38 A1 00 08 */ addi r5, r1, 8 -/* 8031A040 00315CA0 4B FE B1 61 */ bl VFiPFCODE_Divide_Width -/* 8031A044 00315CA4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A048 00315CA8 A8 61 00 0A */ lha r3, 0xa(r1) -/* 8031A04C 00315CAC 7C 08 03 A6 */ mtlr r0 -/* 8031A050 00315CB0 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A054 00315CB4 4E 80 00 20 */ blr - -.global lbl_8031A058 -lbl_8031A058: -/* 8031A058 00315CB8 2C 04 00 02 */ cmpwi r4, 2 -/* 8031A05C 00315CBC 54 60 06 3E */ clrlwi r0, r3, 0x18 -/* 8031A060 00315CC0 41 82 00 40 */ beq lbl_8031A0A0 -/* 8031A064 00315CC4 40 80 00 68 */ bge lbl_8031A0CC -/* 8031A068 00315CC8 2C 04 00 01 */ cmpwi r4, 1 -/* 8031A06C 00315CCC 40 80 00 08 */ bge lbl_8031A074 -/* 8031A070 00315CD0 48 00 00 5C */ b lbl_8031A0CC -lbl_8031A074: -/* 8031A074 00315CD4 28 00 00 81 */ cmplwi r0, 0x81 -/* 8031A078 00315CD8 38 60 00 00 */ li r3, 0 -/* 8031A07C 00315CDC 41 80 00 0C */ blt lbl_8031A088 -/* 8031A080 00315CE0 28 00 00 9F */ cmplwi r0, 0x9f -/* 8031A084 00315CE4 40 81 00 14 */ ble lbl_8031A098 -lbl_8031A088: -/* 8031A088 00315CE8 28 00 00 E0 */ cmplwi r0, 0xe0 -/* 8031A08C 00315CEC 4D 80 00 20 */ bltlr -/* 8031A090 00315CF0 28 00 00 FC */ cmplwi r0, 0xfc -/* 8031A094 00315CF4 4D 81 00 20 */ bgtlr -lbl_8031A098: -/* 8031A098 00315CF8 38 60 00 01 */ li r3, 1 -/* 8031A09C 00315CFC 4E 80 00 20 */ blr -lbl_8031A0A0: -/* 8031A0A0 00315D00 28 00 00 40 */ cmplwi r0, 0x40 -/* 8031A0A4 00315D04 38 60 00 00 */ li r3, 0 -/* 8031A0A8 00315D08 41 80 00 0C */ blt lbl_8031A0B4 -/* 8031A0AC 00315D0C 28 00 00 7E */ cmplwi r0, 0x7e -/* 8031A0B0 00315D10 40 81 00 14 */ ble lbl_8031A0C4 -lbl_8031A0B4: -/* 8031A0B4 00315D14 28 00 00 80 */ cmplwi r0, 0x80 -/* 8031A0B8 00315D18 4D 80 00 20 */ bltlr -/* 8031A0BC 00315D1C 28 00 00 FC */ cmplwi r0, 0xfc -/* 8031A0C0 00315D20 4D 81 00 20 */ bgtlr -lbl_8031A0C4: -/* 8031A0C4 00315D24 38 60 00 01 */ li r3, 1 -/* 8031A0C8 00315D28 4E 80 00 20 */ blr -lbl_8031A0CC: -/* 8031A0CC 00315D2C 38 60 00 00 */ li r3, 0 -/* 8031A0D0 00315D30 4E 80 00 20 */ blr - -.global lbl_8031A0D4 -lbl_8031A0D4: -/* 8031A0D4 00315D34 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8031A0D8 00315D38 7C 08 02 A6 */ mflr r0 -/* 8031A0DC 00315D3C 90 01 00 14 */ stw r0, 0x14(r1) -/* 8031A0E0 00315D40 38 81 00 0C */ addi r4, r1, 0xc -/* 8031A0E4 00315D44 4B FF FC D9 */ bl func_80319DBC -/* 8031A0E8 00315D48 38 81 00 0A */ addi r4, r1, 0xa -/* 8031A0EC 00315D4C 38 A1 00 08 */ addi r5, r1, 8 -/* 8031A0F0 00315D50 4B FE B0 B1 */ bl VFiPFCODE_Divide_Width -/* 8031A0F4 00315D54 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8031A0F8 00315D58 A8 61 00 08 */ lha r3, 8(r1) -/* 8031A0FC 00315D5C 7C 08 03 A6 */ mtlr r0 -/* 8031A100 00315D60 38 21 00 10 */ addi r1, r1, 0x10 -/* 8031A104 00315D64 4E 80 00 20 */ blr - -.global lbl_8031A108 -lbl_8031A108: -/* 8031A108 00315D68 38 60 00 00 */ li r3, 0 -/* 8031A10C 00315D6C 4E 80 00 20 */ blr - -.global func_8031A110 -func_8031A110: -/* 8031A110 00315D70 2C 03 00 00 */ cmpwi r3, 0 -/* 8031A114 00315D74 40 82 00 0C */ bne lbl_8031A120 -/* 8031A118 00315D78 38 60 00 0A */ li r3, 0xa -/* 8031A11C 00315D7C 4E 80 00 20 */ blr -lbl_8031A120: -/* 8031A120 00315D80 88 03 00 00 */ lbz r0, 0(r3) -/* 8031A124 00315D84 38 A0 00 01 */ li r5, 1 -/* 8031A128 00315D88 7C 00 07 74 */ extsb r0, r0 -/* 8031A12C 00315D8C 2C 00 00 72 */ cmpwi r0, 0x72 -/* 8031A130 00315D90 41 82 00 20 */ beq lbl_8031A150 -/* 8031A134 00315D94 40 80 00 10 */ bge lbl_8031A144 -/* 8031A138 00315D98 2C 00 00 61 */ cmpwi r0, 0x61 -/* 8031A13C 00315D9C 41 82 00 24 */ beq lbl_8031A160 -/* 8031A140 00315DA0 48 00 00 28 */ b lbl_8031A168 -lbl_8031A144: -/* 8031A144 00315DA4 2C 00 00 77 */ cmpwi r0, 0x77 -/* 8031A148 00315DA8 41 82 00 10 */ beq lbl_8031A158 -/* 8031A14C 00315DAC 48 00 00 1C */ b lbl_8031A168 -lbl_8031A150: -/* 8031A150 00315DB0 38 80 00 02 */ li r4, 2 -/* 8031A154 00315DB4 48 00 00 1C */ b lbl_8031A170 -lbl_8031A158: -/* 8031A158 00315DB8 38 80 00 01 */ li r4, 1 -/* 8031A15C 00315DBC 48 00 00 14 */ b lbl_8031A170 -lbl_8031A160: -/* 8031A160 00315DC0 38 80 00 04 */ li r4, 4 -/* 8031A164 00315DC4 48 00 00 0C */ b lbl_8031A170 -lbl_8031A168: -/* 8031A168 00315DC8 38 60 00 00 */ li r3, 0 -/* 8031A16C 00315DCC 4E 80 00 20 */ blr -lbl_8031A170: -/* 8031A170 00315DD0 88 03 00 01 */ lbz r0, 1(r3) -/* 8031A174 00315DD4 2C 00 00 62 */ cmpwi r0, 0x62 -/* 8031A178 00315DD8 40 82 00 08 */ bne lbl_8031A180 -/* 8031A17C 00315DDC 38 A0 00 02 */ li r5, 2 -lbl_8031A180: -/* 8031A180 00315DE0 7C 03 28 AE */ lbzx r0, r3, r5 -/* 8031A184 00315DE4 38 A5 00 01 */ addi r5, r5, 1 -/* 8031A188 00315DE8 7C 00 07 74 */ extsb r0, r0 -/* 8031A18C 00315DEC 2C 00 00 2B */ cmpwi r0, 0x2b -/* 8031A190 00315DF0 41 82 00 30 */ beq lbl_8031A1C0 -/* 8031A194 00315DF4 40 80 00 10 */ bge lbl_8031A1A4 -/* 8031A198 00315DF8 2C 00 00 00 */ cmpwi r0, 0 -/* 8031A19C 00315DFC 41 82 00 14 */ beq lbl_8031A1B0 -/* 8031A1A0 00315E00 48 00 00 18 */ b lbl_8031A1B8 -lbl_8031A1A4: -/* 8031A1A4 00315E04 2C 00 00 74 */ cmpwi r0, 0x74 -/* 8031A1A8 00315E08 41 82 00 10 */ beq lbl_8031A1B8 -/* 8031A1AC 00315E0C 48 00 00 0C */ b lbl_8031A1B8 -lbl_8031A1B0: -/* 8031A1B0 00315E10 7C 83 23 78 */ mr r3, r4 -/* 8031A1B4 00315E14 4E 80 00 20 */ blr -lbl_8031A1B8: -/* 8031A1B8 00315E18 38 60 00 00 */ li r3, 0 -/* 8031A1BC 00315E1C 4E 80 00 20 */ blr -lbl_8031A1C0: -/* 8031A1C0 00315E20 7C 03 28 AE */ lbzx r0, r3, r5 -/* 8031A1C4 00315E24 7C 00 07 75 */ extsb. r0, r0 -/* 8031A1C8 00315E28 41 82 00 08 */ beq lbl_8031A1D0 -/* 8031A1CC 00315E2C 48 00 00 0C */ b lbl_8031A1D8 -lbl_8031A1D0: -/* 8031A1D0 00315E30 60 83 00 08 */ ori r3, r4, 8 -/* 8031A1D4 00315E34 4E 80 00 20 */ blr -lbl_8031A1D8: -/* 8031A1D8 00315E38 38 60 00 00 */ li r3, 0 -/* 8031A1DC 00315E3C 4E 80 00 20 */ blr - -.global func_8031A1E0 -func_8031A1E0: -/* 8031A1E0 00315E40 2C 83 00 00 */ cmpwi cr1, r3, 0 -/* 8031A1E4 00315E44 40 86 00 0C */ bne cr1, lbl_8031A1F0 -/* 8031A1E8 00315E48 38 60 00 00 */ li r3, 0 -/* 8031A1EC 00315E4C 4E 80 00 20 */ blr -lbl_8031A1F0: -/* 8031A1F0 00315E50 2C 03 FF FF */ cmpwi r3, -1 -/* 8031A1F4 00315E54 40 82 00 0C */ bne lbl_8031A200 -/* 8031A1F8 00315E58 38 60 FF FF */ li r3, -1 -/* 8031A1FC 00315E5C 4E 80 00 20 */ blr -lbl_8031A200: -/* 8031A200 00315E60 40 85 00 20 */ ble cr1, lbl_8031A220 -/* 8031A204 00315E64 2C 03 00 A0 */ cmpwi r3, 0xa0 -/* 8031A208 00315E68 40 80 00 18 */ bge lbl_8031A220 -/* 8031A20C 00315E6C 3C 80 80 44 */ lis r4, lbl_804465E8@ha -/* 8031A210 00315E70 54 60 10 3A */ slwi r0, r3, 2 -/* 8031A214 00315E74 38 84 65 E8 */ addi r4, r4, lbl_804465E8@l -/* 8031A218 00315E78 7C 64 00 2E */ lwzx r3, r4, r0 -/* 8031A21C 00315E7C 4E 80 00 20 */ blr -lbl_8031A220: -/* 8031A220 00315E80 2C 03 10 00 */ cmpwi r3, 0x1000 -/* 8031A224 00315E84 4C 82 00 20 */ bnelr -/* 8031A228 00315E88 38 60 00 05 */ li r3, 5 -/* 8031A22C 00315E8C 4E 80 00 20 */ blr - -.global func_8031A230 -func_8031A230: -/* 8031A230 00315E90 7C 03 00 D0 */ neg r0, r3 -/* 8031A234 00315E94 7C 00 1B 78 */ or r0, r0, r3 -/* 8031A238 00315E98 7C 03 FE 70 */ srawi r3, r0, 0x1f -/* 8031A23C 00315E9C 4E 80 00 20 */ blr - -.global func_8031A240 -func_8031A240: -/* 8031A240 00315EA0 2C 03 00 00 */ cmpwi r3, 0 -/* 8031A244 00315EA4 41 82 00 0C */ beq lbl_8031A250 -/* 8031A248 00315EA8 38 60 00 00 */ li r3, 0 -/* 8031A24C 00315EAC 4E 80 00 20 */ blr -lbl_8031A250: -/* 8031A250 00315EB0 7C 83 23 78 */ mr r3, r4 -/* 8031A254 00315EB4 4E 80 00 20 */ blr - .global func_8031A258 func_8031A258: /* 8031A258 00315EB8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8031A25C 00315EBC 7C 08 02 A6 */ mflr r0 /* 8031A260 00315EC0 90 01 00 14 */ stw r0, 0x14(r1) /* 8031A264 00315EC4 4B FF F9 8D */ bl VFiPFVOL_errnum -/* 8031A268 00315EC8 4B FF FF 79 */ bl func_8031A1E0 +/* 8031A268 00315EC8 4B FF FF 79 */ bl VFiPFAPI_convertError /* 8031A26C 00315ECC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031A270 00315ED0 7C 08 03 A6 */ mtlr r0 /* 8031A274 00315ED4 38 21 00 10 */ addi r1, r1, 0x10 @@ -510,7 +20,7 @@ func_8031A27C: /* 8031A280 00315EE0 7C 08 02 A6 */ mflr r0 /* 8031A284 00315EE4 90 01 00 14 */ stw r0, 0x14(r1) /* 8031A288 00315EE8 4B FF AC 31 */ bl VFiPFFILE_fclose -/* 8031A28C 00315EEC 4B FF FF A5 */ bl func_8031A230 +/* 8031A28C 00315EEC 4B FF FF A5 */ bl VFiPFAPI_convertReturnValue /* 8031A290 00315EF0 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031A294 00315EF4 7C 08 03 A6 */ mtlr r0 /* 8031A298 00315EF8 38 21 00 10 */ addi r1, r1, 0x10 @@ -522,7 +32,7 @@ func_8031A2A0: /* 8031A2A4 00315F04 7C 08 02 A6 */ mflr r0 /* 8031A2A8 00315F08 90 01 00 14 */ stw r0, 0x14(r1) /* 8031A2AC 00315F0C 4B FF B7 4D */ bl VFiPFFILE_finfo -/* 8031A2B0 00315F10 4B FF FF 81 */ bl func_8031A230 +/* 8031A2B0 00315F10 4B FF FF 81 */ bl VFiPFAPI_convertReturnValue /* 8031A2B4 00315F14 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031A2B8 00315F18 7C 08 03 A6 */ mtlr r0 /* 8031A2BC 00315F1C 38 21 00 10 */ addi r1, r1, 0x10 @@ -537,7 +47,7 @@ func_8031A2C4: /* 8031A2D4 00315F34 93 C1 00 28 */ stw r30, 0x28(r1) /* 8031A2D8 00315F38 7C 7E 1B 78 */ mr r30, r3 /* 8031A2DC 00315F3C 7C 83 23 78 */ mr r3, r4 -/* 8031A2E0 00315F40 4B FF FE 31 */ bl func_8031A110 +/* 8031A2E0 00315F40 4B FF FE 31 */ bl VFiPFAPI_ParseOpenModeString /* 8031A2E4 00315F44 2C 03 00 00 */ cmpwi r3, 0 /* 8031A2E8 00315F48 7C 7F 1B 78 */ mr r31, r3 /* 8031A2EC 00315F4C 40 82 00 1C */ bne lbl_8031A308 @@ -565,7 +75,7 @@ lbl_8031A334: /* 8031A33C 00315F9C 90 64 00 1C */ stw r3, 0x1c(r4) lbl_8031A340: /* 8031A340 00315FA0 80 81 00 08 */ lwz r4, 8(r1) -/* 8031A344 00315FA4 4B FF FE FD */ bl func_8031A240 +/* 8031A344 00315FA4 4B FF FE FD */ bl VFiPFAPI_convertReturnValue2NULL lbl_8031A348: /* 8031A348 00315FA8 80 01 00 34 */ lwz r0, 0x34(r1) /* 8031A34C 00315FAC 83 E1 00 2C */ lwz r31, 0x2c(r1) @@ -593,7 +103,7 @@ func_8031A388: /* 8031A38C 00315FEC 7C 08 02 A6 */ mflr r0 /* 8031A390 00315FF0 90 01 00 14 */ stw r0, 0x14(r1) /* 8031A394 00315FF4 4B FF B2 F1 */ bl VFiPFFILE_fseek -/* 8031A398 00315FF8 4B FF FE 99 */ bl func_8031A230 +/* 8031A398 00315FF8 4B FF FE 99 */ bl VFiPFAPI_convertReturnValue /* 8031A39C 00315FFC 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031A3A0 00316000 7C 08 03 A6 */ mtlr r0 /* 8031A3A4 00316004 38 21 00 10 */ addi r1, r1, 0x10 @@ -625,7 +135,7 @@ func_8031A3D4: /* 8031A3F4 00316054 48 00 00 35 */ bl func_8031A428 lbl_8031A3F8: /* 8031A3F8 00316058 7F E3 FB 78 */ mr r3, r31 -/* 8031A3FC 0031605C 4B FF FE 35 */ bl func_8031A230 +/* 8031A3FC 0031605C 4B FF FE 35 */ bl VFiPFAPI_convertReturnValue /* 8031A400 00316060 80 01 00 14 */ lwz r0, 0x14(r1) /* 8031A404 00316064 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8031A408 00316068 7C 08 03 A6 */ mtlr r0 diff --git a/obj_files.mk b/obj_files.mk index f248efa..6b305b8 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -374,6 +374,8 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/SDK/VF/pf_path.o \ $(BUILD_DIR)/asm/SDK/VF/pf_sector.o \ $(BUILD_DIR)/asm/SDK/VF/pf_volume.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_cp932.o \ + $(BUILD_DIR)/asm/SDK/VF/pf_api_util.o \ $(BUILD_DIR)/asm/text_9_2.o \ $(BUILD_DIR)/asm/text_10.o \ $(BUILD_DIR)/src/GameSpy/darray.o \ -- cgit v1.2.3