summaryrefslogtreecommitdiff
path: root/asm/SDK
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK')
-rw-r--r--asm/SDK/VF/pf_api_util.s115
-rw-r--r--asm/SDK/VF/pf_cp932.s381
-rw-r--r--asm/SDK/VF/pf_volume.s24
3 files changed, 508 insertions, 12 deletions
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