mirror of https://github.com/zeldaret/tp.git
JKRFileCache matched 22/24 (#73)
* progress * strlen, strcat, and strcchr * more functions from JKRFileCache * JKRFileCache 22/24 matched Co-authored-by: Julgodis <>
This commit is contained in:
parent
105c006948
commit
792509e0a1
|
|
@ -412,7 +412,7 @@ J2DPrint_NS_printReturn:
|
|||
/* 802F48A8 002F17E8 C0 1A 00 30 */ lfs f0, 0x30(r26)
|
||||
/* 802F48AC 002F17EC D0 1A 00 28 */ stfs f0, 0x28(r26)
|
||||
/* 802F48B0 002F17F0 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802F48B4 002F17F4 48 07 43 31 */ bl func_80368BE4
|
||||
/* 802F48B4 002F17F4 48 07 43 31 */ bl strlen
|
||||
/* 802F48B8 002F17F8 7C 65 1B 78 */ mr r5, r3
|
||||
/* 802F48BC 002F17FC 80 6D 90 08 */ lwz r3, lbl_80451588-_SDA_BASE_(r13)
|
||||
/* 802F48C0 002F1800 7C 05 18 40 */ cmplw r5, r3
|
||||
|
|
|
|||
|
|
@ -461,7 +461,7 @@ lbl_802FFCAC:
|
|||
/* 802FFD20 002FCC60 7F A0 07 35 */ extsh. r0, r29
|
||||
/* 802FFD24 002FCC64 41 82 00 74 */ beq lbl_802FFD98
|
||||
/* 802FFD28 002FCC68 7F 83 E3 78 */ mr r3, r28
|
||||
/* 802FFD2C 002FCC6C 48 06 8E B9 */ bl func_80368BE4
|
||||
/* 802FFD2C 002FCC6C 48 06 8E B9 */ bl strlen
|
||||
/* 802FFD30 002FCC70 57 BE 04 3E */ clrlwi r30, r29, 0x10
|
||||
/* 802FFD34 002FCC74 7F A0 07 34 */ extsh r0, r29
|
||||
/* 802FFD38 002FCC78 2C 00 FF FF */ cmpwi r0, -1
|
||||
|
|
@ -1130,7 +1130,7 @@ lbl_803006A0:
|
|||
/* 803006D8 002FD618 80 7D 01 24 */ lwz r3, 0x124(r29)
|
||||
/* 803006DC 002FD61C 4B FC E6 85 */ bl __dla__FPv
|
||||
/* 803006E0 002FD620 7F C3 F3 78 */ mr r3, r30
|
||||
/* 803006E4 002FD624 48 06 85 01 */ bl func_80368BE4
|
||||
/* 803006E4 002FD624 48 06 85 01 */ bl strlen
|
||||
/* 803006E8 002FD628 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 803006EC 002FD62C 28 1F FF FF */ cmplwi r31, 0xffff
|
||||
/* 803006F0 002FD630 41 80 00 0C */ blt lbl_803006FC
|
||||
|
|
@ -1198,7 +1198,7 @@ lbl_80300790:
|
|||
/* 803007D0 002FD710 38 00 00 00 */ li r0, 0
|
||||
/* 803007D4 002FD714 90 1F 01 24 */ stw r0, 0x124(r31)
|
||||
/* 803007D8 002FD718 7F C3 F3 78 */ mr r3, r30
|
||||
/* 803007DC 002FD71C 48 06 84 09 */ bl func_80368BE4
|
||||
/* 803007DC 002FD71C 48 06 84 09 */ bl strlen
|
||||
/* 803007E0 002FD720 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 803007E4 002FD724 57 7C 04 3E */ clrlwi r28, r27, 0x10
|
||||
/* 803007E8 002FD728 7F 60 07 34 */ extsh r0, r27
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ JASWaveArcLoader_NS_setCurrentDir:
|
|||
/* 8029A0E8 00297028 48 0C EA 45 */ bl strcpy
|
||||
/* 8029A0EC 0029702C 3C 60 80 3C */ lis r3, lbl_803C77E0@ha
|
||||
/* 8029A0F0 00297030 38 63 77 E0 */ addi r3, r3, lbl_803C77E0@l
|
||||
/* 8029A0F4 00297034 48 0C EA F1 */ bl func_80368BE4
|
||||
/* 8029A0F4 00297034 48 0C EA F1 */ bl strlen
|
||||
/* 8029A0F8 00297038 3C 80 80 3C */ lis r4, lbl_803C77E0@ha
|
||||
/* 8029A0FC 0029703C 38 A4 77 E0 */ addi r5, r4, lbl_803C77E0@l
|
||||
/* 8029A100 00297040 7C 85 1A 14 */ add r4, r5, r3
|
||||
|
|
@ -493,10 +493,10 @@ JASWaveArc_NS_setFileName:
|
|||
/* 8029A724 00297664 7C 9C 23 78 */ mr r28, r4
|
||||
/* 8029A728 00297668 4B FF FA 09 */ bl JASWaveArcLoader_NS_getCurrentDir
|
||||
/* 8029A72C 0029766C 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8029A730 00297670 48 0C E4 B5 */ bl func_80368BE4
|
||||
/* 8029A730 00297670 48 0C E4 B5 */ bl strlen
|
||||
/* 8029A734 00297674 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8029A738 00297678 7F 83 E3 78 */ mr r3, r28
|
||||
/* 8029A73C 0029767C 48 0C E4 A9 */ bl func_80368BE4
|
||||
/* 8029A73C 0029767C 48 0C E4 A9 */ bl strlen
|
||||
/* 8029A740 00297680 7F FF 1A 14 */ add r31, r31, r3
|
||||
/* 8029A744 00297684 4B FF 63 7D */ bl JASKernel_NS_getSystemHeap
|
||||
/* 8029A748 00297688 7C 64 1B 78 */ mr r4, r3
|
||||
|
|
@ -508,7 +508,7 @@ JASWaveArc_NS_setFileName:
|
|||
/* 8029A760 002976A0 48 0C E3 CD */ bl strcpy
|
||||
/* 8029A764 002976A4 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8029A768 002976A8 7F 84 E3 78 */ mr r4, r28
|
||||
/* 8029A76C 002976AC 48 0C E3 51 */ bl func_80368ABC
|
||||
/* 8029A76C 002976AC 48 0C E3 51 */ bl strcat
|
||||
/* 8029A770 002976B0 38 00 00 00 */ li r0, 0
|
||||
/* 8029A774 002976B4 7C 1D F9 AE */ stbx r0, r29, r31
|
||||
/* 8029A778 002976B8 7F A3 EB 78 */ mr r3, r29
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ JUTAssertion_NS_flushMessage_dbPrint:
|
|||
/* 802E4AE8 002E1A28 4B FF A2 89 */ bl setCharColor__7JUTFontF6TColor
|
||||
/* 802E4AEC 002E1A2C 3C 60 80 43 */ lis r3, lbl_80434870@ha
|
||||
/* 802E4AF0 002E1A30 38 63 48 70 */ addi r3, r3, lbl_80434870@l
|
||||
/* 802E4AF4 002E1A34 48 08 40 F1 */ bl func_80368BE4
|
||||
/* 802E4AF4 002E1A34 48 08 40 F1 */ bl strlen
|
||||
/* 802E4AF8 002E1A38 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802E4AFC 002E1A3C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802E4B00 002E1A40 81 9F 00 00 */ lwz r12, 0(r31)
|
||||
|
|
@ -156,7 +156,7 @@ JUTAssertion_NS_flushMessage_dbPrint:
|
|||
/* 802E4B7C 002E1ABC 4B FF A2 AD */ bl drawString_size_scale__7JUTFontFffffPcUlb
|
||||
/* 802E4B80 002E1AC0 3C 60 80 43 */ lis r3, lbl_804348B0@ha
|
||||
/* 802E4B84 002E1AC4 38 63 48 B0 */ addi r3, r3, lbl_804348B0@l
|
||||
/* 802E4B88 002E1AC8 48 08 40 5D */ bl func_80368BE4
|
||||
/* 802E4B88 002E1AC8 48 08 40 5D */ bl strlen
|
||||
/* 802E4B8C 002E1ACC 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802E4B90 002E1AD0 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802E4B94 002E1AD4 81 9F 00 00 */ lwz r12, 0(r31)
|
||||
|
|
|
|||
|
|
@ -518,7 +518,7 @@ lbl_802E7A40:
|
|||
/* 802E7AB8 002E49F8 EF C0 10 28 */ fsubs f30, f0, f2
|
||||
/* 802E7ABC 002E49FC 82 99 00 4C */ lwz r20, 0x4c(r25)
|
||||
/* 802E7AC0 002E4A00 7F A3 EB 78 */ mr r3, r29
|
||||
/* 802E7AC4 002E4A04 48 08 11 21 */ bl func_80368BE4
|
||||
/* 802E7AC4 002E4A04 48 08 11 21 */ bl strlen
|
||||
/* 802E7AC8 002E4A08 7C 65 1B 78 */ mr r5, r3
|
||||
/* 802E7ACC 002E4A0C 7E 83 A3 78 */ mr r3, r20
|
||||
/* 802E7AD0 002E4A10 FC 20 F0 90 */ fmr f1, f30
|
||||
|
|
|
|||
|
|
@ -2224,7 +2224,7 @@ JUTException_NS_queryMapAddress:
|
|||
/* 802E3BEC 002E0B2C 3C 80 80 3A */ lis r4, lbl_8039D490@ha
|
||||
/* 802E3BF0 002E0B30 38 84 D4 90 */ addi r4, r4, lbl_8039D490@l
|
||||
/* 802E3BF4 002E0B34 38 84 04 E9 */ addi r4, r4, 0x4e9
|
||||
/* 802E3BF8 002E0B38 48 08 4E C5 */ bl func_80368ABC
|
||||
/* 802E3BF8 002E0B38 48 08 4E C5 */ bl strcat
|
||||
/* 802E3BFC 002E0B3C 93 E1 00 08 */ stw r31, 8(r1)
|
||||
/* 802E3C00 002E0B40 38 61 00 10 */ addi r3, r1, 0x10
|
||||
/* 802E3C04 002E0B44 7F 04 C3 78 */ mr r4, r24
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@ CARDCreateAsync:
|
|||
/* 80358254 00355194 3B 86 00 00 */ addi r28, r6, 0
|
||||
/* 80358258 00355198 3B A7 00 00 */ addi r29, r7, 0
|
||||
/* 8035825C 0035519C 38 7A 00 00 */ addi r3, r26, 0
|
||||
/* 80358260 003551A0 48 01 09 85 */ bl func_80368BE4
|
||||
/* 80358260 003551A0 48 01 09 85 */ bl strlen
|
||||
/* 80358264 003551A4 28 03 00 20 */ cmplwi r3, 0x20
|
||||
/* 80358268 003551A8 40 81 00 0C */ ble lbl_80358274
|
||||
/* 8035826C 003551AC 38 60 FF F4 */ li r3, -12
|
||||
|
|
|
|||
24
asm/clib.s
24
asm/clib.s
|
|
@ -6024,7 +6024,7 @@ lbl_80366A60:
|
|||
/* 80366A6C 003639AC 7C 79 1B 79 */ or. r25, r3, r3
|
||||
/* 80366A70 003639B0 40 82 00 3C */ bne lbl_80366AAC
|
||||
/* 80366A74 003639B4 7F 43 D3 78 */ mr r3, r26
|
||||
/* 80366A78 003639B8 48 00 21 6D */ bl func_80368BE4
|
||||
/* 80366A78 003639B8 48 00 21 6D */ bl strlen
|
||||
/* 80366A7C 003639BC 7C 65 1B 79 */ or. r5, r3, r3
|
||||
/* 80366A80 003639C0 7F 7B 2A 14 */ add r27, r27, r5
|
||||
/* 80366A84 003639C4 41 82 07 00 */ beq lbl_80367184
|
||||
|
|
@ -6373,7 +6373,7 @@ lbl_80366F20:
|
|||
/* 80366F4C 00363E8C 48 00 00 EC */ b lbl_80367038
|
||||
lbl_80366F50:
|
||||
/* 80366F50 00363E90 7E 83 A3 78 */ mr r3, r20
|
||||
/* 80366F54 00363E94 48 00 1C 91 */ bl func_80368BE4
|
||||
/* 80366F54 00363E94 48 00 1C 91 */ bl strlen
|
||||
/* 80366F58 00363E98 7C 79 1B 78 */ mr r25, r3
|
||||
/* 80366F5C 00363E9C 48 00 00 DC */ b lbl_80367038
|
||||
lbl_80366F60:
|
||||
|
|
@ -6424,7 +6424,7 @@ lbl_80366FE4:
|
|||
/* 80366FF4 00363F34 48 00 00 44 */ b lbl_80367038
|
||||
lbl_80366FF8:
|
||||
/* 80366FF8 00363F38 7F 23 CB 78 */ mr r3, r25
|
||||
/* 80366FFC 00363F3C 48 00 1B E9 */ bl func_80368BE4
|
||||
/* 80366FFC 00363F3C 48 00 1B E9 */ bl strlen
|
||||
/* 80367000 00363F40 7C 65 1B 79 */ or. r5, r3, r3
|
||||
/* 80367004 00363F44 7F 7B 2A 14 */ add r27, r27, r5
|
||||
/* 80367008 00363F48 41 82 00 28 */ beq lbl_80367030
|
||||
|
|
@ -8259,8 +8259,8 @@ lbl_803688C4:
|
|||
/* 803688D4 00365814 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803688D8 00365818 4E 80 00 20 */ blr
|
||||
|
||||
.global func_803688DC
|
||||
func_803688DC:
|
||||
.global strrchr
|
||||
strrchr:
|
||||
/* 803688DC 0036581C 38 A3 FF FF */ addi r5, r3, -1
|
||||
/* 803688E0 00365820 54 80 06 3E */ clrlwi r0, r4, 0x18
|
||||
/* 803688E4 00365824 38 60 00 00 */ li r3, 0
|
||||
|
|
@ -8413,8 +8413,8 @@ lbl_80368AAC:
|
|||
/* 80368AB4 003659F4 38 60 00 00 */ li r3, 0
|
||||
/* 80368AB8 003659F8 4E 80 00 20 */ blr
|
||||
|
||||
.global func_80368ABC
|
||||
func_80368ABC:
|
||||
.global strcat
|
||||
strcat:
|
||||
/* 80368ABC 003659FC 38 84 FF FF */ addi r4, r4, -1
|
||||
/* 80368AC0 00365A00 38 A3 FF FF */ addi r5, r3, -1
|
||||
lbl_80368AC4:
|
||||
|
|
@ -8508,8 +8508,8 @@ lbl_80368BD0:
|
|||
/* 80368BDC 00365B1C 40 82 FF F4 */ bne lbl_80368BD0
|
||||
/* 80368BE0 00365B20 4E 80 00 20 */ blr
|
||||
|
||||
.global func_80368BE4
|
||||
func_80368BE4:
|
||||
.global strlen
|
||||
strlen:
|
||||
/* 80368BE4 00365B24 38 83 FF FF */ addi r4, r3, -1
|
||||
/* 80368BE8 00365B28 38 60 FF FF */ li r3, -1
|
||||
lbl_80368BEC:
|
||||
|
|
@ -15781,12 +15781,12 @@ func_8036EF7C:
|
|||
/* 8036EFB4 0036BEF4 90 7C 00 00 */ stw r3, 0(r28)
|
||||
/* 8036EFB8 0036BEF8 7F 63 DB 78 */ mr r3, r27
|
||||
/* 8036EFBC 0036BEFC 98 01 00 18 */ stb r0, 0x18(r1)
|
||||
/* 8036EFC0 0036BF00 4B FF 9C 25 */ bl func_80368BE4
|
||||
/* 8036EFC0 0036BF00 4B FF 9C 25 */ bl strlen
|
||||
/* 8036EFC4 0036BF04 38 03 00 41 */ addi r0, r3, 0x41
|
||||
/* 8036EFC8 0036BF08 9B E1 00 1C */ stb r31, 0x1c(r1)
|
||||
/* 8036EFCC 0036BF0C 7F 63 DB 78 */ mr r3, r27
|
||||
/* 8036EFD0 0036BF10 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8036EFD4 0036BF14 4B FF 9C 11 */ bl func_80368BE4
|
||||
/* 8036EFD4 0036BF14 4B FF 9C 11 */ bl strlen
|
||||
/* 8036EFD8 0036BF18 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 8036EFDC 0036BF1C 38 61 00 0C */ addi r3, r1, 0xc
|
||||
/* 8036EFE0 0036BF20 B0 01 00 20 */ sth r0, 0x20(r1)
|
||||
|
|
@ -15799,7 +15799,7 @@ func_8036EF7C:
|
|||
/* 8036EFFC 0036BF3C 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 8036F000 0036BF40 40 82 00 24 */ bne lbl_8036F024
|
||||
/* 8036F004 0036BF44 7F 63 DB 78 */ mr r3, r27
|
||||
/* 8036F008 0036BF48 4B FF 9B DD */ bl func_80368BE4
|
||||
/* 8036F008 0036BF48 4B FF 9B DD */ bl strlen
|
||||
/* 8036F00C 0036BF4C 7C 65 1B 78 */ mr r5, r3
|
||||
/* 8036F010 0036BF50 80 61 00 08 */ lwz r3, 8(r1)
|
||||
/* 8036F014 0036BF54 7F 64 DB 78 */ mr r4, r27
|
||||
|
|
|
|||
|
|
@ -5084,7 +5084,7 @@ lbl_8014A0A0:
|
|||
/* 8014A0C8 00147008 A0 1F 0E 30 */ lhz r0, 0xe30(r31)
|
||||
/* 8014A0CC 0014700C 54 00 18 38 */ slwi r0, r0, 3
|
||||
/* 8014A0D0 00147010 7C 63 00 2E */ lwzx r3, r3, r0
|
||||
/* 8014A0D4 00147014 48 21 EB 11 */ bl func_80368BE4
|
||||
/* 8014A0D4 00147014 48 21 EB 11 */ bl strlen
|
||||
/* 8014A0D8 00147018 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8014A0DC 0014701C 41 82 00 B8 */ beq lbl_8014A194
|
||||
/* 8014A0E0 00147020 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
|
|
@ -5095,7 +5095,7 @@ lbl_8014A0A0:
|
|||
/* 8014A0F4 00147034 80 03 00 04 */ lwz r0, 4(r3)
|
||||
/* 8014A0F8 00147038 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 8014A0FC 0014703C 7C 64 00 2E */ lwzx r3, r4, r0
|
||||
/* 8014A100 00147040 48 21 EA E5 */ bl func_80368BE4
|
||||
/* 8014A100 00147040 48 21 EA E5 */ bl strlen
|
||||
/* 8014A104 00147044 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8014A108 00147048 41 82 00 3C */ beq lbl_8014A144
|
||||
/* 8014A10C 0014704C 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
|
|
@ -5187,7 +5187,7 @@ daNpcT_c_NS_evtChange:
|
|||
/* 8014A240 00147180 A0 1F 0E 30 */ lhz r0, 0xe30(r31)
|
||||
/* 8014A244 00147184 54 00 18 38 */ slwi r0, r0, 3
|
||||
/* 8014A248 00147188 7C 63 00 2E */ lwzx r3, r3, r0
|
||||
/* 8014A24C 0014718C 48 21 E9 99 */ bl func_80368BE4
|
||||
/* 8014A24C 0014718C 48 21 E9 99 */ bl strlen
|
||||
/* 8014A250 00147190 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8014A254 00147194 41 82 00 B8 */ beq lbl_8014A30C
|
||||
/* 8014A258 00147198 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
|
|
@ -5198,7 +5198,7 @@ daNpcT_c_NS_evtChange:
|
|||
/* 8014A26C 001471AC 80 03 00 04 */ lwz r0, 4(r3)
|
||||
/* 8014A270 001471B0 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 8014A274 001471B4 7C 64 00 2E */ lwzx r3, r4, r0
|
||||
/* 8014A278 001471B8 48 21 E9 6D */ bl func_80368BE4
|
||||
/* 8014A278 001471B8 48 21 E9 6D */ bl strlen
|
||||
/* 8014A27C 001471BC 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 8014A280 001471C0 41 82 00 3C */ beq lbl_8014A2BC
|
||||
/* 8014A284 001471C4 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
|
|
|
|||
|
|
@ -771,7 +771,7 @@ lbl_80038860:
|
|||
/* 80038880 000357C0 48 00 00 18 */ b lbl_80038898
|
||||
lbl_80038884:
|
||||
/* 80038884 000357C4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80038888 000357C8 48 33 03 5D */ bl func_80368BE4
|
||||
/* 80038888 000357C8 48 33 03 5D */ bl strlen
|
||||
/* 8003888C 000357CC 7F E3 FA 14 */ add r31, r3, r31
|
||||
/* 80038890 000357D0 3B FF 00 01 */ addi r31, r31, 1
|
||||
/* 80038894 000357D4 3B DE 00 01 */ addi r30, r30, 1
|
||||
|
|
|
|||
|
|
@ -1334,7 +1334,7 @@ lbl_80042698:
|
|||
/* 800426A8 0003F5E8 3C 80 80 38 */ lis r4, lbl_80379D80@ha
|
||||
/* 800426AC 0003F5EC 38 84 9D 80 */ addi r4, r4, lbl_80379D80@l
|
||||
/* 800426B0 0003F5F0 38 84 00 43 */ addi r4, r4, 0x43
|
||||
/* 800426B4 0003F5F4 48 32 64 09 */ bl func_80368ABC
|
||||
/* 800426B4 0003F5F4 48 32 64 09 */ bl strcat
|
||||
/* 800426B8 0003F5F8 38 7E 4F F8 */ addi r3, r30, 0x4ff8
|
||||
/* 800426BC 0003F5FC 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 800426C0 0003F600 38 A0 00 FF */ li r5, 0xff
|
||||
|
|
@ -1431,7 +1431,7 @@ lbl_800427F4:
|
|||
/* 80042804 0003F744 3C 80 80 38 */ lis r4, lbl_80379D80@ha
|
||||
/* 80042808 0003F748 38 84 9D 80 */ addi r4, r4, lbl_80379D80@l
|
||||
/* 8004280C 0003F74C 38 84 00 43 */ addi r4, r4, 0x43
|
||||
/* 80042810 0003F750 48 32 62 AD */ bl func_80368ABC
|
||||
/* 80042810 0003F750 48 32 62 AD */ bl strcat
|
||||
/* 80042814 0003F754 38 7E 4F F8 */ addi r3, r30, 0x4ff8
|
||||
/* 80042818 0003F758 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 8004281C 0003F75C 38 A0 00 FF */ li r5, 0xff
|
||||
|
|
|
|||
|
|
@ -2125,13 +2125,13 @@ lbl_8025021C:
|
|||
/* 80250224 0024D164 48 11 89 09 */ bl strcpy
|
||||
/* 80250228 0024D168 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8025022C 0024D16C 7C 9D F8 2E */ lwzx r4, r29, r31
|
||||
/* 80250230 0024D170 48 11 88 8D */ bl func_80368ABC
|
||||
/* 80250230 0024D170 48 11 88 8D */ bl strcat
|
||||
/* 80250234 0024D174 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80250238 0024D178 38 9E 02 BC */ addi r4, r30, 0x2bc
|
||||
/* 8025023C 0024D17C 48 11 88 81 */ bl func_80368ABC
|
||||
/* 8025023C 0024D17C 48 11 88 81 */ bl strcat
|
||||
/* 80250240 0024D180 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 80250244 0024D184 7C 9D F8 2E */ lwzx r4, r29, r31
|
||||
/* 80250248 0024D188 48 11 88 75 */ bl func_80368ABC
|
||||
/* 80250248 0024D188 48 11 88 75 */ bl strcat
|
||||
/* 8025024C 0024D18C 38 1F 01 78 */ addi r0, r31, 0x178
|
||||
/* 80250250 0024D190 7C 7B 00 2E */ lwzx r3, r27, r0
|
||||
/* 80250254 0024D194 38 81 00 08 */ addi r4, r1, 8
|
||||
|
|
|
|||
|
|
@ -1286,7 +1286,7 @@ lbl_8003B420:
|
|||
/* 8003B448 00038388 54 00 02 3E */ clrlwi r0, r0, 8
|
||||
/* 8003B44C 0003838C 7F 43 02 14 */ add r26, r3, r0
|
||||
/* 8003B450 00038390 7F 43 D3 78 */ mr r3, r26
|
||||
/* 8003B454 00038394 48 32 D7 91 */ bl func_80368BE4
|
||||
/* 8003B454 00038394 48 32 D7 91 */ bl strlen
|
||||
/* 8003B458 00038398 3B 63 FF FC */ addi r27, r3, -4
|
||||
/* 8003B45C 0003839C 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8003B460 000383A0 7F 44 D3 78 */ mr r4, r26
|
||||
|
|
@ -1718,7 +1718,7 @@ lbl_8003B9EC:
|
|||
/* 8003BA18 00038958 80 03 00 54 */ lwz r0, 0x54(r3)
|
||||
/* 8003BA1C 0003895C 7F 20 22 14 */ add r25, r0, r4
|
||||
/* 8003BA20 00038960 7F 23 CB 78 */ mr r3, r25
|
||||
/* 8003BA24 00038964 48 32 D1 C1 */ bl func_80368BE4
|
||||
/* 8003BA24 00038964 48 32 D1 C1 */ bl strlen
|
||||
/* 8003BA28 00038968 3B 03 FF FC */ addi r24, r3, -4
|
||||
/* 8003BA2C 0003896C 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8003BA30 00038970 7F 24 CB 78 */ mr r4, r25
|
||||
|
|
|
|||
|
|
@ -1084,7 +1084,7 @@ lbl_801D909C:
|
|||
/* 801D90CC 001D600C 48 18 D4 F1 */ bl func_803665BC
|
||||
/* 801D90D0 001D6010 38 61 00 38 */ addi r3, r1, 0x38
|
||||
/* 801D90D4 001D6014 38 81 00 78 */ addi r4, r1, 0x78
|
||||
/* 801D90D8 001D6018 48 18 F9 E5 */ bl func_80368ABC
|
||||
/* 801D90D8 001D6018 48 18 F9 E5 */ bl strcat
|
||||
/* 801D90DC 001D601C 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 801D90E0 001D6020 38 80 00 20 */ li r4, 0x20
|
||||
/* 801D90E4 001D6024 3C A0 80 39 */ lis r5, lbl_803968C0@ha
|
||||
|
|
@ -1100,7 +1100,7 @@ lbl_801D909C:
|
|||
/* 801D910C 001D604C 48 18 D4 B1 */ bl func_803665BC
|
||||
/* 801D9110 001D6050 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 801D9114 001D6054 38 81 00 58 */ addi r4, r1, 0x58
|
||||
/* 801D9118 001D6058 48 18 F9 A5 */ bl func_80368ABC
|
||||
/* 801D9118 001D6058 48 18 F9 A5 */ bl strcat
|
||||
/* 801D911C 001D605C 80 7F 00 1C */ lwz r3, 0x1c(r31)
|
||||
/* 801D9120 001D6060 3C 80 80 39 */ lis r4, lbl_803968C0@ha
|
||||
/* 801D9124 001D6064 38 84 68 C0 */ addi r4, r4, lbl_803968C0@l
|
||||
|
|
|
|||
|
|
@ -1599,7 +1599,7 @@ lbl_801DBE2C:
|
|||
/* 801DBE5C 001D8D9C 48 18 A7 61 */ bl func_803665BC
|
||||
/* 801DBE60 001D8DA0 38 61 00 2C */ addi r3, r1, 0x2c
|
||||
/* 801DBE64 001D8DA4 38 81 00 10 */ addi r4, r1, 0x10
|
||||
/* 801DBE68 001D8DA8 48 18 CC 55 */ bl func_80368ABC
|
||||
/* 801DBE68 001D8DA8 48 18 CC 55 */ bl strcat
|
||||
/* 801DBE6C 001D8DAC 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 801DBE70 001D8DB0 38 80 00 14 */ li r4, 0x14
|
||||
/* 801DBE74 001D8DB4 3C A0 80 39 */ lis r5, lbl_80396990@ha
|
||||
|
|
@ -1615,7 +1615,7 @@ lbl_801DBE2C:
|
|||
/* 801DBE9C 001D8DDC 48 18 A7 21 */ bl func_803665BC
|
||||
/* 801DBEA0 001D8DE0 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 801DBEA4 001D8DE4 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 801DBEA8 001D8DE8 48 18 CC 15 */ bl func_80368ABC
|
||||
/* 801DBEA8 001D8DE8 48 18 CC 15 */ bl strcat
|
||||
/* 801DBEAC 001D8DEC 80 7F 00 9C */ lwz r3, 0x9c(r31)
|
||||
/* 801DBEB0 001D8DF0 3C 80 80 39 */ lis r4, lbl_80396990@ha
|
||||
/* 801DBEB4 001D8DF4 38 84 69 90 */ addi r4, r4, lbl_80396990@l
|
||||
|
|
|
|||
|
|
@ -5285,7 +5285,7 @@ lbl_8022D008:
|
|||
/* 8022D030 00229F70 38 63 10 1C */ addi r3, r3, 0x101c
|
||||
/* 8022D034 00229F74 7C 7E 1A 14 */ add r3, r30, r3
|
||||
/* 8022D038 00229F78 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 8022D03C 00229F7C 48 13 BA 81 */ bl func_80368ABC
|
||||
/* 8022D03C 00229F7C 48 13 BA 81 */ bl strcat
|
||||
/* 8022D040 00229F80 48 00 00 1C */ b lbl_8022D05C
|
||||
lbl_8022D044:
|
||||
/* 8022D044 00229F84 28 00 00 03 */ cmplwi r0, 3
|
||||
|
|
@ -5293,7 +5293,7 @@ lbl_8022D044:
|
|||
/* 8022D04C 00229F8C 38 7F 10 1C */ addi r3, r31, 0x101c
|
||||
/* 8022D050 00229F90 7C 7E 1A 14 */ add r3, r30, r3
|
||||
/* 8022D054 00229F94 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 8022D058 00229F98 48 13 BA 65 */ bl func_80368ABC
|
||||
/* 8022D058 00229F98 48 13 BA 65 */ bl strcat
|
||||
lbl_8022D05C:
|
||||
/* 8022D05C 00229F9C 3B BD 00 01 */ addi r29, r29, 1
|
||||
/* 8022D060 00229FA0 3B FF 00 32 */ addi r31, r31, 0x32
|
||||
|
|
@ -7386,7 +7386,7 @@ jmessage_tRenderingProcessor_NS_do_strcat:
|
|||
/* 8022EF40 0022BE80 40 82 01 F0 */ bne lbl_8022F130
|
||||
lbl_8022EF44:
|
||||
/* 8022EF44 0022BE84 7F A3 EB 78 */ mr r3, r29
|
||||
/* 8022EF48 0022BE88 48 13 9C 9D */ bl func_80368BE4
|
||||
/* 8022EF48 0022BE88 48 13 9C 9D */ bl strlen
|
||||
/* 8022EF4C 0022BE8C 80 1C 01 1C */ lwz r0, 0x11c(r28)
|
||||
/* 8022EF50 0022BE90 7C 00 1A 14 */ add r0, r0, r3
|
||||
/* 8022EF54 0022BE94 90 1C 01 1C */ stw r0, 0x11c(r28)
|
||||
|
|
@ -7401,7 +7401,7 @@ lbl_8022EF44:
|
|||
/* 8022EF78 0022BEB8 38 63 10 1C */ addi r3, r3, 0x101c
|
||||
/* 8022EF7C 0022BEBC 7C 7F 1A 14 */ add r3, r31, r3
|
||||
/* 8022EF80 0022BEC0 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8022EF84 0022BEC4 48 13 9B 39 */ bl func_80368ABC
|
||||
/* 8022EF84 0022BEC4 48 13 9B 39 */ bl strcat
|
||||
/* 8022EF88 0022BEC8 48 00 01 A8 */ b lbl_8022F130
|
||||
lbl_8022EF8C:
|
||||
/* 8022EF8C 0022BECC 80 1C 01 1C */ lwz r0, 0x11c(r28)
|
||||
|
|
@ -7455,7 +7455,7 @@ lbl_8022F02C:
|
|||
/* 8022F03C 0022BF7C 38 00 00 00 */ li r0, 0
|
||||
/* 8022F040 0022BF80 7C 03 21 AE */ stbx r0, r3, r4
|
||||
/* 8022F044 0022BF84 38 9C 01 84 */ addi r4, r28, 0x184
|
||||
/* 8022F048 0022BF88 48 13 9A 75 */ bl func_80368ABC
|
||||
/* 8022F048 0022BF88 48 13 9A 75 */ bl strcat
|
||||
lbl_8022F04C:
|
||||
/* 8022F04C 0022BF8C A0 9C 01 4A */ lhz r4, 0x14a(r28)
|
||||
/* 8022F050 0022BF90 28 04 00 00 */ cmplwi r4, 0
|
||||
|
|
@ -7464,7 +7464,7 @@ lbl_8022F04C:
|
|||
/* 8022F05C 0022BF9C 38 00 00 00 */ li r0, 0
|
||||
/* 8022F060 0022BFA0 7C 03 21 AE */ stbx r0, r3, r4
|
||||
/* 8022F064 0022BFA4 38 9C 01 84 */ addi r4, r28, 0x184
|
||||
/* 8022F068 0022BFA8 48 13 9A 55 */ bl func_80368ABC
|
||||
/* 8022F068 0022BFA8 48 13 9A 55 */ bl strcat
|
||||
lbl_8022F06C:
|
||||
/* 8022F06C 0022BFAC C0 1F 04 64 */ lfs f0, 0x464(r31)
|
||||
/* 8022F070 0022BFB0 FC 00 00 1E */ fctiwz f0, f0
|
||||
|
|
@ -7481,26 +7481,26 @@ lbl_8022F06C:
|
|||
/* 8022F09C 0022BFDC 4C C6 31 82 */ crclr 6
|
||||
/* 8022F0A0 0022BFE0 48 13 74 3D */ bl func_803664DC
|
||||
/* 8022F0A4 0022BFE4 38 61 00 08 */ addi r3, r1, 8
|
||||
/* 8022F0A8 0022BFE8 48 13 9B 3D */ bl func_80368BE4
|
||||
/* 8022F0A8 0022BFE8 48 13 9B 3D */ bl strlen
|
||||
/* 8022F0AC 0022BFEC 80 1C 01 1C */ lwz r0, 0x11c(r28)
|
||||
/* 8022F0B0 0022BFF0 7C 00 1A 14 */ add r0, r0, r3
|
||||
/* 8022F0B4 0022BFF4 2C 00 02 00 */ cmpwi r0, 0x200
|
||||
/* 8022F0B8 0022BFF8 40 80 00 58 */ bge lbl_8022F110
|
||||
/* 8022F0BC 0022BFFC 38 7F 0A 1C */ addi r3, r31, 0xa1c
|
||||
/* 8022F0C0 0022C000 48 13 9B 25 */ bl func_80368BE4
|
||||
/* 8022F0C0 0022C000 48 13 9B 25 */ bl strlen
|
||||
/* 8022F0C4 0022C004 B0 7C 01 48 */ sth r3, 0x148(r28)
|
||||
/* 8022F0C8 0022C008 38 7F 0C 1C */ addi r3, r31, 0xc1c
|
||||
/* 8022F0CC 0022C00C 48 13 9B 19 */ bl func_80368BE4
|
||||
/* 8022F0CC 0022C00C 48 13 9B 19 */ bl strlen
|
||||
/* 8022F0D0 0022C010 B0 7C 01 4A */ sth r3, 0x14a(r28)
|
||||
/* 8022F0D4 0022C014 38 7C 01 84 */ addi r3, r28, 0x184
|
||||
/* 8022F0D8 0022C018 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8022F0DC 0022C01C 48 13 9A 51 */ bl strcpy
|
||||
/* 8022F0E0 0022C020 38 7F 0A 1C */ addi r3, r31, 0xa1c
|
||||
/* 8022F0E4 0022C024 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 8022F0E8 0022C028 48 13 99 D5 */ bl func_80368ABC
|
||||
/* 8022F0E8 0022C028 48 13 99 D5 */ bl strcat
|
||||
/* 8022F0EC 0022C02C 38 7F 0C 1C */ addi r3, r31, 0xc1c
|
||||
/* 8022F0F0 0022C030 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 8022F0F4 0022C034 48 13 99 C9 */ bl func_80368ABC
|
||||
/* 8022F0F4 0022C034 48 13 99 C9 */ bl strcat
|
||||
/* 8022F0F8 0022C038 48 00 00 18 */ b lbl_8022F110
|
||||
lbl_8022F0FC:
|
||||
/* 8022F0FC 0022C03C 57 60 06 3F */ clrlwi. r0, r27, 0x18
|
||||
|
|
@ -7511,12 +7511,12 @@ lbl_8022F0FC:
|
|||
lbl_8022F110:
|
||||
/* 8022F110 0022C050 38 7F 0A 1C */ addi r3, r31, 0xa1c
|
||||
/* 8022F114 0022C054 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8022F118 0022C058 48 13 99 A5 */ bl func_80368ABC
|
||||
/* 8022F118 0022C058 48 13 99 A5 */ bl strcat
|
||||
/* 8022F11C 0022C05C 57 C0 06 3F */ clrlwi. r0, r30, 0x18
|
||||
/* 8022F120 0022C060 41 82 00 10 */ beq lbl_8022F130
|
||||
/* 8022F124 0022C064 38 7F 0C 1C */ addi r3, r31, 0xc1c
|
||||
/* 8022F128 0022C068 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8022F12C 0022C06C 48 13 99 91 */ bl func_80368ABC
|
||||
/* 8022F12C 0022C06C 48 13 99 91 */ bl strcat
|
||||
lbl_8022F130:
|
||||
/* 8022F130 0022C070 39 61 00 50 */ addi r11, r1, 0x50
|
||||
/* 8022F134 0022C074 48 13 30 E9 */ bl _restgpr_26
|
||||
|
|
@ -7562,7 +7562,7 @@ lbl_8022F1A4:
|
|||
/* 8022F1C4 0022C104 38 7A 01 52 */ addi r3, r26, 0x152
|
||||
/* 8022F1C8 0022C108 38 81 00 10 */ addi r4, r1, 0x10
|
||||
/* 8022F1CC 0022C10C 3B 9C 00 02 */ addi r28, r28, 2
|
||||
/* 8022F1D0 0022C110 48 13 98 ED */ bl func_80368ABC
|
||||
/* 8022F1D0 0022C110 48 13 98 ED */ bl strcat
|
||||
/* 8022F1D4 0022C114 88 01 00 10 */ lbz r0, 0x10(r1)
|
||||
/* 8022F1D8 0022C118 7C 03 07 74 */ extsb r3, r0
|
||||
/* 8022F1DC 0022C11C 88 01 00 11 */ lbz r0, 0x11(r1)
|
||||
|
|
@ -7727,7 +7727,7 @@ jmessage_tRenderingProcessor_NS_do_rubystrcat:
|
|||
/* 8022F43C 0022C37C 48 13 71 81 */ bl func_803665BC
|
||||
/* 8022F440 0022C380 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8022F444 0022C384 38 81 00 18 */ addi r4, r1, 0x18
|
||||
/* 8022F448 0022C388 48 13 96 75 */ bl func_80368ABC
|
||||
/* 8022F448 0022C388 48 13 96 75 */ bl strcat
|
||||
/* 8022F44C 0022C38C C0 5C 01 2C */ lfs f2, 0x12c(r28)
|
||||
/* 8022F450 0022C390 C8 22 B0 70 */ lfd f1, lbl_80454A70-_SDA2_BASE_(r2)
|
||||
/* 8022F454 0022C394 6F E0 80 00 */ xoris r0, r31, 0x8000
|
||||
|
|
@ -7757,7 +7757,7 @@ lbl_8022F478:
|
|||
/* 8022F4B0 0022C3F0 48 13 71 0D */ bl func_803665BC
|
||||
/* 8022F4B4 0022C3F4 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8022F4B8 0022C3F8 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 8022F4BC 0022C3FC 48 13 96 01 */ bl func_80368ABC
|
||||
/* 8022F4BC 0022C3FC 48 13 96 01 */ bl strcat
|
||||
/* 8022F4C0 0022C400 C0 5C 01 2C */ lfs f2, 0x12c(r28)
|
||||
/* 8022F4C4 0022C404 FC 00 F0 1E */ fctiwz f0, f30
|
||||
/* 8022F4C8 0022C408 D8 01 00 28 */ stfd f0, 0x28(r1)
|
||||
|
|
@ -7780,7 +7780,7 @@ lbl_8022F4F4:
|
|||
lbl_8022F508:
|
||||
/* 8022F508 0022C448 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8022F50C 0022C44C 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8022F510 0022C450 48 13 95 AD */ bl func_80368ABC
|
||||
/* 8022F510 0022C450 48 13 95 AD */ bl strcat
|
||||
lbl_8022F514:
|
||||
/* 8022F514 0022C454 E3 E1 00 68 */ psq_l f31, 104(r1), 0, qr0
|
||||
/* 8022F518 0022C458 CB E1 00 60 */ lfd f31, 0x60(r1)
|
||||
|
|
@ -10752,7 +10752,7 @@ jmessage_string_tRenderingProcessor_NS_do_strcat:
|
|||
/* 80232064 0022EFA4 7C 60 07 35 */ extsh. r0, r3
|
||||
/* 80232068 0022EFA8 41 80 00 30 */ blt lbl_80232098
|
||||
/* 8023206C 0022EFAC 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80232070 0022EFB0 48 13 6B 75 */ bl func_80368BE4
|
||||
/* 80232070 0022EFB0 48 13 6B 75 */ bl strlen
|
||||
/* 80232074 0022EFB4 A8 1E 05 4E */ lha r0, 0x54e(r30)
|
||||
/* 80232078 0022EFB8 7C 00 1A 14 */ add r0, r0, r3
|
||||
/* 8023207C 0022EFBC B0 1E 05 4E */ sth r0, 0x54e(r30)
|
||||
|
|
@ -10761,7 +10761,7 @@ jmessage_string_tRenderingProcessor_NS_do_strcat:
|
|||
/* 80232088 0022EFC8 40 80 00 10 */ bge lbl_80232098
|
||||
/* 8023208C 0022EFCC 38 7E 00 54 */ addi r3, r30, 0x54
|
||||
/* 80232090 0022EFD0 7F E4 FB 78 */ mr r4, r31
|
||||
/* 80232094 0022EFD4 48 13 6A 29 */ bl func_80368ABC
|
||||
/* 80232094 0022EFD4 48 13 6A 29 */ bl strcat
|
||||
lbl_80232098:
|
||||
/* 80232098 0022EFD8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8023209C 0022EFDC 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
|
|
@ -10820,7 +10820,7 @@ lbl_80232140:
|
|||
/* 80232160 0022F0A0 38 7B 04 54 */ addi r3, r27, 0x454
|
||||
/* 80232164 0022F0A4 38 81 00 0C */ addi r4, r1, 0xc
|
||||
/* 80232168 0022F0A8 3B BD 00 02 */ addi r29, r29, 2
|
||||
/* 8023216C 0022F0AC 48 13 69 51 */ bl func_80368ABC
|
||||
/* 8023216C 0022F0AC 48 13 69 51 */ bl strcat
|
||||
/* 80232170 0022F0B0 88 01 00 0C */ lbz r0, 0xc(r1)
|
||||
/* 80232174 0022F0B4 7C 03 07 74 */ extsb r3, r0
|
||||
/* 80232178 0022F0B8 88 01 00 0D */ lbz r0, 0xd(r1)
|
||||
|
|
@ -10897,7 +10897,7 @@ jmessage_string_tRenderingProcessor_NS_do_rubystrcat:
|
|||
/* 80232280 0022F1C0 7C 60 07 35 */ extsh. r0, r3
|
||||
/* 80232284 0022F1C4 41 80 00 30 */ blt lbl_802322B4
|
||||
/* 80232288 0022F1C8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8023228C 0022F1CC 48 13 69 59 */ bl func_80368BE4
|
||||
/* 8023228C 0022F1CC 48 13 69 59 */ bl strlen
|
||||
/* 80232290 0022F1D0 A8 1E 05 50 */ lha r0, 0x550(r30)
|
||||
/* 80232294 0022F1D4 7C 00 1A 14 */ add r0, r0, r3
|
||||
/* 80232298 0022F1D8 B0 1E 05 50 */ sth r0, 0x550(r30)
|
||||
|
|
@ -10906,7 +10906,7 @@ jmessage_string_tRenderingProcessor_NS_do_rubystrcat:
|
|||
/* 802322A4 0022F1E4 40 80 00 10 */ bge lbl_802322B4
|
||||
/* 802322A8 0022F1E8 38 7E 02 54 */ addi r3, r30, 0x254
|
||||
/* 802322AC 0022F1EC 7F E4 FB 78 */ mr r4, r31
|
||||
/* 802322B0 0022F1F0 48 13 68 0D */ bl func_80368ABC
|
||||
/* 802322B0 0022F1F0 48 13 68 0D */ bl strcat
|
||||
lbl_802322B4:
|
||||
/* 802322B4 0022F1F4 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 802322B8 0022F1F8 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@ lbl_80238FF4:
|
|||
/* 8023901C 00235F5C 4B FF FC D1 */ bl dMsgUnit_c_NS_setTag
|
||||
/* 80239020 00235F60 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80239024 00235F64 38 81 00 1C */ addi r4, r1, 0x1c
|
||||
/* 80239028 00235F68 48 12 FA 95 */ bl func_80368ABC
|
||||
/* 80239028 00235F68 48 12 FA 95 */ bl strcat
|
||||
lbl_8023902C:
|
||||
/* 8023902C 00235F6C 2C 1C 00 04 */ cmpwi r28, 4
|
||||
/* 80239030 00235F70 40 82 00 34 */ bne lbl_80239064
|
||||
|
|
@ -272,7 +272,7 @@ lbl_8023902C:
|
|||
/* 80239054 00235F94 4B FF FC 99 */ bl dMsgUnit_c_NS_setTag
|
||||
/* 80239058 00235F98 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8023905C 00235F9C 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 80239060 00235FA0 48 12 FA 5D */ bl func_80368ABC
|
||||
/* 80239060 00235FA0 48 12 FA 5D */ bl strcat
|
||||
lbl_80239064:
|
||||
/* 80239064 00235FA4 39 61 00 70 */ addi r11, r1, 0x70
|
||||
/* 80239068 00235FA8 48 12 91 B5 */ bl _restgpr_26
|
||||
|
|
|
|||
|
|
@ -1341,7 +1341,7 @@ lbl_8023DFE4:
|
|||
/* 8023E014 0023AF54 48 12 85 A9 */ bl func_803665BC
|
||||
/* 8023E018 0023AF58 38 61 00 2C */ addi r3, r1, 0x2c
|
||||
/* 8023E01C 0023AF5C 38 81 00 10 */ addi r4, r1, 0x10
|
||||
/* 8023E020 0023AF60 48 12 AA 9D */ bl func_80368ABC
|
||||
/* 8023E020 0023AF60 48 12 AA 9D */ bl strcat
|
||||
/* 8023E024 0023AF64 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 8023E028 0023AF68 38 80 00 14 */ li r4, 0x14
|
||||
/* 8023E02C 0023AF6C 3C A0 80 3A */ lis r5, lbl_80399910@ha
|
||||
|
|
@ -1357,7 +1357,7 @@ lbl_8023DFE4:
|
|||
/* 8023E054 0023AF94 48 12 85 69 */ bl func_803665BC
|
||||
/* 8023E058 0023AF98 38 61 00 18 */ addi r3, r1, 0x18
|
||||
/* 8023E05C 0023AF9C 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 8023E060 0023AFA0 48 12 AA 5D */ bl func_80368ABC
|
||||
/* 8023E060 0023AFA0 48 12 AA 5D */ bl strcat
|
||||
/* 8023E064 0023AFA4 80 7F 00 38 */ lwz r3, 0x38(r31)
|
||||
/* 8023E068 0023AFA8 3C 80 80 3A */ lis r4, lbl_80399910@ha
|
||||
/* 8023E06C 0023AFAC 38 84 99 10 */ addi r4, r4, lbl_80399910@l
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ lbl_8033CABC:
|
|||
/* 8033CACC 00339A0C 48 00 00 28 */ b lbl_8033CAF4
|
||||
lbl_8033CAD0:
|
||||
/* 8033CAD0 00339A10 80 7C 00 00 */ lwz r3, 0(r28)
|
||||
/* 8033CAD4 00339A14 48 02 C1 11 */ bl func_80368BE4
|
||||
/* 8033CAD4 00339A14 48 02 C1 11 */ bl strlen
|
||||
/* 8033CAD8 00339A18 38 03 00 01 */ addi r0, r3, 1
|
||||
/* 8033CADC 00339A1C 80 9C 00 00 */ lwz r4, 0(r28)
|
||||
/* 8033CAE0 00339A20 7F 60 D8 50 */ subf r27, r0, r27
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ public:
|
|||
/* vt[11] */ virtual bool detachResource(void*); /* override */
|
||||
/* vt[12] */ virtual u32 getResSize(const void*) const; /* override */
|
||||
/* vt[13] */ virtual u32 countFile(const char*) const; /* override */
|
||||
/* vt[14] */ virtual JKRArcFinder* getFirstFile(const char*) const; /* override */
|
||||
/* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const; /* override */
|
||||
/* vt[15] */ virtual u32 getExpandedResSize(const void*) const;
|
||||
/* vt[16] */ virtual void* fetchResource(SDIFileEntry*, u32*) = 0;
|
||||
/* vt[17] */ virtual void* fetchResource(void*, u32, SDIFileEntry*, u32*) = 0;
|
||||
|
|
|
|||
|
|
@ -18,19 +18,17 @@ public:
|
|||
void initiate(void);
|
||||
s32 sync(void);
|
||||
|
||||
int getFileID() const { return mFileInfo.start_address << 2; }
|
||||
|
||||
u32 getFileID() const { return mFileInfo.start_address; }
|
||||
const DVDFileInfo& getFileInfo() const { return mFileInfo; }
|
||||
|
||||
int getStatus() { return DVDGetCommandBlockStatus(&mFileInfo.block); }
|
||||
|
||||
public:
|
||||
/* vt[03] */ virtual bool open(const char*); /* override */
|
||||
/* vt[04] */ virtual void close(void); /* override */
|
||||
/* vt[05] */ virtual s32 readData(void*, long, long); /* override */
|
||||
/* vt[06] */ virtual s32 writeData(const void*, long, long); /* override */
|
||||
/* vt[07] */ virtual s32 getFileSize(void) const; /* override */
|
||||
/* vt[08] */ virtual bool open(long);
|
||||
/* vt[03] */ virtual bool open(const char*); /* override */
|
||||
/* vt[04] */ virtual void close(void); /* override */
|
||||
/* vt[05] */ virtual s32 readData(void*, s32, s32); /* override */
|
||||
/* vt[06] */ virtual s32 writeData(const void*, s32, s32); /* override */
|
||||
/* vt[07] */ virtual s32 getFileSize(void) const; /* override */
|
||||
/* vt[08] */ virtual bool open(s32);
|
||||
|
||||
private:
|
||||
/* 0x00 */ // vtable
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ public:
|
|||
|
||||
s32 read(void*, long, long);
|
||||
|
||||
bool isAvailable() const { return this->mIsAvailable; }
|
||||
bool isAvailable() const { return mIsAvailable; }
|
||||
|
||||
public:
|
||||
/* vt[03] */ virtual bool open(const char*) = 0;
|
||||
|
|
|
|||
|
|
@ -9,52 +9,55 @@ class JKRFileCache : public JKRFileLoader {
|
|||
public:
|
||||
class CCacheBlock {
|
||||
public:
|
||||
CCacheBlock(u32, u32, void const*);
|
||||
CCacheBlock(u32, u32, const void*);
|
||||
~CCacheBlock() {}
|
||||
|
||||
private:
|
||||
JSULink<CCacheBlock> mLink;
|
||||
u32 field_0x10;
|
||||
u32 mFileId;
|
||||
u32 mFileSize;
|
||||
void const* mMemoryPtr;
|
||||
public:
|
||||
/* 0x00 */ JSULink<CCacheBlock> mCacheBlockLink;
|
||||
/* 0x10 */ u32 mReferenceCount;
|
||||
/* 0x14 */ u32 mFileId;
|
||||
/* 0x18 */ u32 mFileSize;
|
||||
/* 0x1C */ void* mMemoryPtr;
|
||||
};
|
||||
|
||||
protected:
|
||||
JKRFileCache(char const*, char const*);
|
||||
JKRFileCache(const char*, const char*);
|
||||
virtual ~JKRFileCache();
|
||||
|
||||
void findCacheBlock(void const*) const;
|
||||
void findCacheBlock(u32) const;
|
||||
void findFile(char*, char const*) const;
|
||||
void getDvdPathName(char const*) const;
|
||||
CCacheBlock* findCacheBlock(const void*) const;
|
||||
CCacheBlock* findCacheBlock(u32) const;
|
||||
bool findFile(char*, const char*) const;
|
||||
char* getDvdPathName(const char*) const;
|
||||
void convStrLower(char*) const;
|
||||
|
||||
public:
|
||||
/* vt[04] */ virtual void becomeCurrent(char const*); /* override */
|
||||
/* vt[05] */ virtual void* getResource(char const*); /* override */
|
||||
/* vt[06] */ virtual void* getResource(u32, char const*); /* override */
|
||||
/* vt[07] */ virtual void readResource(void*, u32, char const*); /* override */
|
||||
/* vt[08] */ virtual void readResource(void*, u32, u32, char const*); /* override */
|
||||
/* vt[09] */ virtual void removeResourceAll(void); /* override */
|
||||
/* vt[10] */ virtual bool removeResource(void*); /* override */
|
||||
/* vt[11] */ virtual bool detachResource(void*); /* override */
|
||||
/* vt[12] */ virtual void getResSize(void const*) const; /* override */
|
||||
/* vt[13] */ virtual void countFile(char const*) const; /* override */
|
||||
/* vt[14] */ virtual void getFirstFile(char const*) const; /* override */
|
||||
/* vt[15] */ virtual void getFsResource(char const*);
|
||||
/* vt[16] */ virtual void getNameResource(u32, char const*);
|
||||
/* vt[17] */ virtual void readFsResource(void*, u32, char const*);
|
||||
/* vt[18] */ virtual void readNameResource(void*, u32, u32, char const*);
|
||||
/* vt[04] */ virtual bool becomeCurrent(const char*); /* override */
|
||||
/* vt[05] */ virtual void* getResource(const char*); /* override */
|
||||
/* vt[06] */ virtual void* getResource(u32, const char*); /* override */
|
||||
/* vt[07] */ virtual u32 readResource(void*, u32, const char*); /* override */
|
||||
/* vt[08] */ virtual u32 readResource(void*, u32, u32, const char*); /* override */
|
||||
/* vt[09] */ virtual void removeResourceAll(void); /* override */
|
||||
/* vt[10] */ virtual bool removeResource(void*); /* override */
|
||||
/* vt[11] */ virtual bool detachResource(void*); /* override */
|
||||
/* vt[12] */ virtual u32 getResSize(const void*) const; /* override */
|
||||
/* vt[13] */ virtual u32 countFile(const char*) const; /* override */
|
||||
/* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const; /* override */
|
||||
/* vt[15] */ virtual void* getFsResource(const char*);
|
||||
/* vt[16] */ virtual void* getNameResource(u32, const char*);
|
||||
/* vt[17] */ virtual u32 readFsResource(void*, u32, const char*);
|
||||
/* vt[18] */ virtual u32 readNameResource(void*, u32, u32, const char*);
|
||||
|
||||
private:
|
||||
JKRHeap* mParentHeap;
|
||||
JSUList<CCacheBlock> mCacheBlockList;
|
||||
char* field_0x40;
|
||||
char* field_0x4c;
|
||||
char* field_0x50;
|
||||
/* 0x00 */ // vtable
|
||||
/* 0x04 */ // JKRFileLoader
|
||||
/* 0x38 */ JKRHeap* mParentHeap;
|
||||
/* 0x3C */ JSUList<CCacheBlock> mCacheBlockList;
|
||||
/* 0x48 */ char* mRootPath;
|
||||
/* 0x4C */ char* mCurrentPath;
|
||||
/* 0x50 */ char* mVolumePath;
|
||||
|
||||
public:
|
||||
static void mount(char const*, JKRHeap*, char const*);
|
||||
static JKRFileCache* mount(const char*, JKRHeap*, const char*);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ lbl_802D49E4:
|
|||
/* 802D49E4 002D1924 38 60 00 00 */ li r3, 0
|
||||
/* 802D49E8 002D1928 48 00 00 B4 */ b lbl_802D4A9C
|
||||
lbl_802D49EC:
|
||||
/* 802D49EC 002D192C 48 09 41 F9 */ bl func_80368BE4
|
||||
/* 802D49EC 002D192C 48 09 41 F9 */ bl strlen
|
||||
/* 802D49F0 002D1930 28 03 00 01 */ cmplwi r3, 1
|
||||
/* 802D49F4 002D1934 41 82 00 1C */ beq lbl_802D4A10
|
||||
/* 802D49F8 002D1938 7C 7E 1A 14 */ add r3, r30, r3
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
/* 802D4B04 002D1A44 38 03 53 48 */ addi r0, r3, 0x43415348@l
|
||||
/* 802D4B08 002D1A48 90 1F 00 2C */ stw r0, 0x2c(r31)
|
||||
/* 802D4B0C 002D1A4C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 802D4B10 002D1A50 48 09 40 D5 */ bl func_80368BE4
|
||||
/* 802D4B10 002D1A50 48 09 40 D5 */ bl strlen
|
||||
/* 802D4B14 002D1A54 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 802D4B18 002D1A58 38 7E 00 01 */ addi r3, r30, 1
|
||||
/* 802D4B1C 002D1A5C 38 80 00 01 */ li r4, 1
|
||||
|
|
@ -53,17 +53,17 @@
|
|||
/* 802D4B7C 002D1ABC 80 7F 00 4C */ lwz r3, 0x4c(r31)
|
||||
/* 802D4B80 002D1AC0 3C 80 80 3A */ lis r4, lbl_8039D158@ha
|
||||
/* 802D4B84 002D1AC4 38 84 D1 58 */ addi r4, r4, lbl_8039D158@l
|
||||
/* 802D4B88 002D1AC8 48 09 3F 35 */ bl func_80368ABC
|
||||
/* 802D4B88 002D1AC8 48 09 3F 35 */ bl strcat
|
||||
/* 802D4B8C 002D1ACC 7F BE EB 78 */ mr r30, r29
|
||||
/* 802D4B90 002D1AD0 28 1D 00 00 */ cmplwi r29, 0
|
||||
/* 802D4B94 002D1AD4 40 82 00 14 */ bne lbl_802D4BA8
|
||||
/* 802D4B98 002D1AD8 80 7F 00 48 */ lwz r3, 0x48(r31)
|
||||
/* 802D4B9C 002D1ADC 38 80 00 2F */ li r4, 0x2f
|
||||
/* 802D4BA0 002D1AE0 48 09 3D 3D */ bl func_803688DC
|
||||
/* 802D4BA0 002D1AE0 48 09 3D 3D */ bl strrchr
|
||||
/* 802D4BA4 002D1AE4 3B C3 00 01 */ addi r30, r3, 1
|
||||
lbl_802D4BA8:
|
||||
/* 802D4BA8 002D1AE8 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D4BAC 002D1AEC 48 09 40 39 */ bl func_80368BE4
|
||||
/* 802D4BAC 002D1AEC 48 09 40 39 */ bl strlen
|
||||
/* 802D4BB0 002D1AF0 38 83 00 01 */ addi r4, r3, 1
|
||||
/* 802D4BB4 002D1AF4 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
/* 802D4BB8 002D1AF8 38 A0 00 00 */ li r5, 0
|
||||
|
|
@ -87,7 +87,7 @@ lbl_802D4BE8:
|
|||
/* 802D4BFC 002D1B3C 3B C3 00 02 */ addi r30, r3, 2
|
||||
lbl_802D4C00:
|
||||
/* 802D4C00 002D1B40 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D4C04 002D1B44 48 09 3F E1 */ bl func_80368BE4
|
||||
/* 802D4C04 002D1B44 48 09 3F E1 */ bl strlen
|
||||
/* 802D4C08 002D1B48 38 83 00 01 */ addi r4, r3, 1
|
||||
/* 802D4C0C 002D1B4C 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
/* 802D4C10 002D1B50 38 A0 00 00 */ li r5, 0
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
/* 802D4D9C 002D1CDC 41 82 00 20 */ beq lbl_802D4DBC
|
||||
/* 802D4DA0 002D1CE0 3C 80 80 3A */ lis r4, lbl_8039D158@ha
|
||||
/* 802D4DA4 002D1CE4 38 84 D1 58 */ addi r4, r4, lbl_8039D158@l
|
||||
/* 802D4DA8 002D1CE8 48 09 3D 15 */ bl func_80368ABC
|
||||
/* 802D4DA8 002D1CE8 48 09 3D 15 */ bl strcat
|
||||
/* 802D4DAC 002D1CEC 48 00 00 10 */ b lbl_802D4DBC
|
||||
lbl_802D4DB0:
|
||||
/* 802D4DB0 002D1CF0 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
/* 802D4EF0 002D1E30 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 802D4EF4 002D1E34 7C BE 2B 78 */ mr r30, r5
|
||||
/* 802D4EF8 002D1E38 80 63 00 48 */ lwz r3, 0x48(r3)
|
||||
/* 802D4EFC 002D1E3C 48 09 3C E9 */ bl func_80368BE4
|
||||
/* 802D4EFC 002D1E3C 48 09 3C E9 */ bl strlen
|
||||
/* 802D4F00 002D1E40 3B E1 00 08 */ addi r31, r1, 8
|
||||
/* 802D4F04 002D1E44 7F FF 1A 14 */ add r31, r31, r3
|
||||
/* 802D4F08 002D1E48 38 61 00 08 */ addi r3, r1, 8
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
/* 802D5058 002D1F98 7C BD 2B 78 */ mr r29, r5
|
||||
/* 802D505C 002D1F9C 7C FE 3B 78 */ mr r30, r7
|
||||
/* 802D5060 002D1FA0 80 63 00 48 */ lwz r3, 0x48(r3)
|
||||
/* 802D5064 002D1FA4 48 09 3B 81 */ bl func_80368BE4
|
||||
/* 802D5064 002D1FA4 48 09 3B 81 */ bl strlen
|
||||
/* 802D5068 002D1FA8 3B E1 00 08 */ addi r31, r1, 8
|
||||
/* 802D506C 002D1FAC 7F FF 1A 14 */ add r31, r31, r3
|
||||
/* 802D5070 002D1FB0 38 61 00 08 */ addi r3, r1, 8
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
/* 802D542C 002D236C 7C BC 2B 78 */ mr r28, r5
|
||||
/* 802D5430 002D2370 3B A0 00 00 */ li r29, 0
|
||||
/* 802D5434 002D2374 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D5438 002D2378 48 09 37 AD */ bl func_80368BE4
|
||||
/* 802D5438 002D2378 48 09 37 AD */ bl strlen
|
||||
/* 802D543C 002D237C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D5440 002D2380 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D5444 002D2384 38 81 00 14 */ addi r4, r1, 0x14
|
||||
|
|
@ -50,10 +50,10 @@ lbl_802D54A8:
|
|||
/* 802D54C4 002D2404 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D54C8 002D2408 3C 80 80 3A */ lis r4, lbl_8039D158@ha
|
||||
/* 802D54CC 002D240C 38 84 D1 58 */ addi r4, r4, lbl_8039D158@l
|
||||
/* 802D54D0 002D2410 48 09 35 ED */ bl func_80368ABC
|
||||
/* 802D54D0 002D2410 48 09 35 ED */ bl strcat
|
||||
/* 802D54D4 002D2414 7F 63 DB 78 */ mr r3, r27
|
||||
/* 802D54D8 002D2418 7F 84 E3 78 */ mr r4, r28
|
||||
/* 802D54DC 002D241C 48 09 35 E1 */ bl func_80368ABC
|
||||
/* 802D54DC 002D241C 48 09 35 E1 */ bl strcat
|
||||
/* 802D54E0 002D2420 48 00 00 18 */ b lbl_802D54F8
|
||||
lbl_802D54E4:
|
||||
/* 802D54E4 002D2424 38 61 00 14 */ addi r3, r1, 0x14
|
||||
|
|
|
|||
|
|
@ -11,10 +11,10 @@
|
|||
/* 802D553C 002D247C 2C 00 00 2F */ cmpwi r0, 0x2f
|
||||
/* 802D5540 002D2480 40 82 00 78 */ bne lbl_802D55B8
|
||||
/* 802D5544 002D2484 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D5548 002D2488 48 09 36 9D */ bl func_80368BE4
|
||||
/* 802D5548 002D2488 48 09 36 9D */ bl strlen
|
||||
/* 802D554C 002D248C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D5550 002D2490 80 7D 00 48 */ lwz r3, 0x48(r29)
|
||||
/* 802D5554 002D2494 48 09 36 91 */ bl func_80368BE4
|
||||
/* 802D5554 002D2494 48 09 36 91 */ bl strlen
|
||||
/* 802D5558 002D2498 38 9F 00 02 */ addi r4, r31, 2
|
||||
/* 802D555C 002D249C 7C 83 22 14 */ add r4, r3, r4
|
||||
/* 802D5560 002D24A0 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
|
|
@ -33,19 +33,19 @@
|
|||
/* 802D5594 002D24D4 40 82 00 14 */ bne lbl_802D55A8
|
||||
/* 802D5598 002D24D8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D559C 002D24DC 38 9E 00 01 */ addi r4, r30, 1
|
||||
/* 802D55A0 002D24E0 48 09 35 1D */ bl func_80368ABC
|
||||
/* 802D55A0 002D24E0 48 09 35 1D */ bl strcat
|
||||
/* 802D55A4 002D24E4 48 00 00 58 */ b lbl_802D55FC
|
||||
lbl_802D55A8:
|
||||
/* 802D55A8 002D24E8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D55AC 002D24EC 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802D55B0 002D24F0 48 09 35 0D */ bl func_80368ABC
|
||||
/* 802D55B0 002D24F0 48 09 35 0D */ bl strcat
|
||||
/* 802D55B4 002D24F4 48 00 00 48 */ b lbl_802D55FC
|
||||
lbl_802D55B8:
|
||||
/* 802D55B8 002D24F8 7F C3 F3 78 */ mr r3, r30
|
||||
/* 802D55BC 002D24FC 48 09 36 29 */ bl func_80368BE4
|
||||
/* 802D55BC 002D24FC 48 09 36 29 */ bl strlen
|
||||
/* 802D55C0 002D2500 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 802D55C4 002D2504 80 7D 00 4C */ lwz r3, 0x4c(r29)
|
||||
/* 802D55C8 002D2508 48 09 36 1D */ bl func_80368BE4
|
||||
/* 802D55C8 002D2508 48 09 36 1D */ bl strlen
|
||||
/* 802D55CC 002D250C 38 9F 00 02 */ addi r4, r31, 2
|
||||
/* 802D55D0 002D2510 7C 83 22 14 */ add r4, r3, r4
|
||||
/* 802D55D4 002D2514 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
|
||||
|
|
@ -57,7 +57,7 @@ lbl_802D55B8:
|
|||
/* 802D55EC 002D252C 48 09 35 41 */ bl strcpy
|
||||
/* 802D55F0 002D2530 7F E3 FB 78 */ mr r3, r31
|
||||
/* 802D55F4 002D2534 7F C4 F3 78 */ mr r4, r30
|
||||
/* 802D55F8 002D2538 48 09 34 C5 */ bl func_80368ABC
|
||||
/* 802D55F8 002D2538 48 09 34 C5 */ bl strcat
|
||||
lbl_802D55FC:
|
||||
/* 802D55FC 002D253C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 802D5600 002D2540 7F E4 FB 78 */ mr r4, r31
|
||||
|
|
|
|||
|
|
@ -8,14 +8,13 @@ class JKRFileLoader;
|
|||
extern JKRFileLoader* lbl_80451418; // JKRFileLoader::sCurrentVolume
|
||||
extern JSUList<JKRFileLoader> lbl_80434354; // JKRFileLoader::sVolumeList
|
||||
|
||||
class JKRArcFinder;
|
||||
class JKRFileFinder;
|
||||
class JKRFileLoader : public JKRDisposer {
|
||||
public:
|
||||
JKRFileLoader(void);
|
||||
virtual ~JKRFileLoader();
|
||||
|
||||
bool isMounted() const { return this->mIsMounted; }
|
||||
|
||||
u32 getVolumeType() const { return this->mVolumeType; }
|
||||
|
||||
public:
|
||||
|
|
@ -30,7 +29,7 @@ public:
|
|||
/* vt[11] */ virtual bool detachResource(void*) = 0;
|
||||
/* vt[12] */ virtual u32 getResSize(const void*) const = 0;
|
||||
/* vt[13] */ virtual u32 countFile(const char*) const = 0;
|
||||
/* vt[14] */ virtual JKRArcFinder* getFirstFile(const char*) const = 0;
|
||||
/* vt[14] */ virtual JKRFileFinder* getFirstFile(const char*) const = 0;
|
||||
|
||||
protected:
|
||||
/* 0x00 */ // vtable
|
||||
|
|
|
|||
|
|
@ -156,10 +156,20 @@ inline void* JKRAllocFromHeap(JKRHeap* heap, u32 size, int alignment) {
|
|||
return JKRHeap::alloc(size, alignment, heap);
|
||||
}
|
||||
|
||||
inline void* JKRAllocFromSysHeap(u32 size, int alignment) {
|
||||
JKRHeap* systemHeap = JKRHeap::getSystemHeap();
|
||||
return systemHeap->alloc(size, alignment);
|
||||
}
|
||||
|
||||
inline void JKRFreeToHeap(JKRHeap* heap, void* ptr) {
|
||||
JKRHeap::free(ptr, heap);
|
||||
}
|
||||
|
||||
inline void JKRFreeToSysHeap(void* ptr) {
|
||||
JKRHeap* systemHeap = JKRHeap::getSystemHeap();
|
||||
systemHeap->free(ptr);
|
||||
}
|
||||
|
||||
inline void JKRFree(void* ptr) {
|
||||
JKRHeap::free(ptr, NULL);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ lbl_800B7EA0:
|
|||
/* 800B7EA8 000B4DE8 40 80 00 B0 */ bge lbl_800B7F58
|
||||
/* 800B7EAC 000B4DEC 80 7F 05 70 */ lwz r3, 0x570(r31)
|
||||
/* 800B7EB0 000B4DF0 80 63 00 28 */ lwz r3, 0x28(r3)
|
||||
/* 800B7EB4 000B4DF4 48 2B 0D 31 */ bl func_80368BE4
|
||||
/* 800B7EB4 000B4DF4 48 2B 0D 31 */ bl strlen
|
||||
/* 800B7EB8 000B4DF8 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 800B7EBC 000B4DFC 41 82 00 9C */ beq lbl_800B7F58
|
||||
/* 800B7EC0 000B4E00 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
|
|
@ -105,7 +105,7 @@ lbl_800B7EA0:
|
|||
/* 800B7EC8 000B4E08 80 03 00 2C */ lwz r0, 0x2c(r3)
|
||||
/* 800B7ECC 000B4E0C 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 800B7ED0 000B4E10 7C 64 00 2E */ lwzx r3, r4, r0
|
||||
/* 800B7ED4 000B4E14 48 2B 0D 11 */ bl func_80368BE4
|
||||
/* 800B7ED4 000B4E14 48 2B 0D 11 */ bl strlen
|
||||
/* 800B7ED8 000B4E18 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 800B7EDC 000B4E1C 41 82 00 30 */ beq lbl_800B7F0C
|
||||
/* 800B7EE0 000B4E20 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ lbl_800B7FDC:
|
|||
/* 800B7FDC 000B4F1C 80 7E 05 70 */ lwz r3, 0x570(r30)
|
||||
/* 800B7FE0 000B4F20 54 9F 18 38 */ slwi r31, r4, 3
|
||||
/* 800B7FE4 000B4F24 7C 63 F8 2E */ lwzx r3, r3, r31
|
||||
/* 800B7FE8 000B4F28 48 2B 0B FD */ bl func_80368BE4
|
||||
/* 800B7FE8 000B4F28 48 2B 0B FD */ bl strlen
|
||||
/* 800B7FEC 000B4F2C 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 800B7FF0 000B4F30 41 82 00 A4 */ beq lbl_800B8094
|
||||
/* 800B7FF4 000B4F34 80 9E 05 74 */ lwz r4, 0x574(r30)
|
||||
|
|
@ -33,7 +33,7 @@ lbl_800B7FDC:
|
|||
/* 800B8000 000B4F40 80 03 00 04 */ lwz r0, 4(r3)
|
||||
/* 800B8004 000B4F44 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 800B8008 000B4F48 7C 64 00 2E */ lwzx r3, r4, r0
|
||||
/* 800B800C 000B4F4C 48 2B 0B D9 */ bl func_80368BE4
|
||||
/* 800B800C 000B4F4C 48 2B 0B D9 */ bl strlen
|
||||
/* 800B8010 000B4F50 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 800B8014 000B4F54 41 82 00 34 */ beq lbl_800B8048
|
||||
/* 800B8018 000B4F58 80 9E 05 74 */ lwz r4, 0x574(r30)
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ s32 DVDConvertPathToEntrynum(const char*);
|
|||
DVDState DVDGetDriveStatus(void);
|
||||
s32 DVDCheckDisk(void);
|
||||
|
||||
void DVDChangeDir(void);
|
||||
BOOL DVDChangeDir(const char*);
|
||||
BOOL DVDCloseDir(DVDDirectory*);
|
||||
BOOL DVDOpenDir(const char*, DVDDirectory*);
|
||||
BOOL DVDReadDir(DVDDirectory*, DVDDirectoryEntry*);
|
||||
|
|
|
|||
|
|
@ -154,11 +154,11 @@ void JUTWarningConsole(void);
|
|||
void JUTWarningConsole_f(void);
|
||||
void VIWaitForRetrace(void);
|
||||
void func_80361C24(void);
|
||||
void memcpy(void*, void*, int);
|
||||
void memcpy(void*, const void*, int);
|
||||
int tolower(int);
|
||||
void func_803688DC(void);
|
||||
void func_80368ABC(void);
|
||||
void func_80368BE4(void);
|
||||
char* strrchr(char*, int);
|
||||
char* strcat(char*, const char*);
|
||||
u32 strlen(const char*);
|
||||
void JKRArchive_NS_getDirEntry(void);
|
||||
void func_80361C24(void);
|
||||
void JKRArchive_NS_findDirectory(void);
|
||||
|
|
@ -366,14 +366,8 @@ void JUTConsole_NS_clear(void);
|
|||
void JUTReportConsole_f(void);
|
||||
void JUTWarningConsole(void);
|
||||
void JUTWarningConsole_f(void);
|
||||
|
||||
void func_80361C24(void);
|
||||
|
||||
void func_803688DC(void);
|
||||
void func_80368ABC(void);
|
||||
void func_80368BE4(void);
|
||||
void JKRArchive_NS_getDirEntry(void);
|
||||
|
||||
void func_80361C24(void);
|
||||
|
||||
// void JKRAramArchive(void);
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@ extern u8 lbl_803CC328; // JKRFile::__vt
|
|||
|
||||
class JKRFileLoader;
|
||||
extern JKRFileLoader* lbl_80451418; // JKRFileLoader::sCurrentVolume
|
||||
extern u8 lbl_8039D158; // "/"
|
||||
extern char lbl_8039D158[16]; // "/"
|
||||
extern u8 lbl_803CC238; // JKRFileCache::__vt
|
||||
extern JSUList<JKRFileLoader> lbl_80434354; // JKRFileLoader::sVolumeList
|
||||
extern u8 lbl_803CC218; // JKRArcFinder::__vt
|
||||
|
|
|
|||
|
|
@ -315,7 +315,7 @@ u32 JKRArchive::countFile(const char* path) const {
|
|||
return 0;
|
||||
}
|
||||
|
||||
JKRArcFinder* JKRArchive::getFirstFile(const char* path) const {
|
||||
JKRFileFinder* JKRArchive::getFirstFile(const char* path) const {
|
||||
SDirEntry* dirEntry;
|
||||
if (*path == '/') {
|
||||
path++;
|
||||
|
|
|
|||
|
|
@ -1,123 +1,414 @@
|
|||
#include "JSystem/JKernel/JKRFileCache/JKRFileCache.h"
|
||||
#include "JSystem/JKernel/JKRDvdFile/JKRDvdFile.h"
|
||||
#include "JSystem/JKernel/JKRFileFinder/JKRFileFinder.h"
|
||||
#include "JSystem/JKernel/JKRHeap/JKRHeap.h"
|
||||
#include "dvd/dvd.h"
|
||||
#include "global.h"
|
||||
|
||||
asm void JKRFileCache::mount(char const*, JKRHeap*, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D49B4.s"
|
||||
JKRFileCache* JKRFileCache::mount(const char* path, JKRHeap* heap, const char* param_3) {
|
||||
if (!path || *path != '/') {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
u32 pathLength = strlen(path);
|
||||
if (pathLength != 1 && path[pathLength - 1] == '/') {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
JSUList<JKRFileLoader>& volumeList = getVolumeList();
|
||||
JSUListIterator<JKRFileLoader> iterator;
|
||||
for (iterator = volumeList.getFirst(); iterator != volumeList.getEnd(); ++iterator) {
|
||||
if (iterator->getVolumeType() == 'CASH') {
|
||||
JKRFileCache* fileCache = (JKRFileCache*)iterator.getObject();
|
||||
if (fileCache->mRootPath) {
|
||||
if (strcmp(fileCache->mRootPath, path) == 0) {
|
||||
fileCache->mMountCount++;
|
||||
return fileCache;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return new (heap, 0) JKRFileCache(path, param_3);
|
||||
}
|
||||
|
||||
asm JKRFileCache::JKRFileCache(char const*, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D4AB4.s"
|
||||
JKRFileCache::JKRFileCache(const char* path, const char* volume) : mCacheBlockList() {
|
||||
mParentHeap = JKRHeap::findFromRoot(this);
|
||||
mMountCount = 1;
|
||||
mVolumeType = 'CASH';
|
||||
|
||||
u32 pathLength = strlen(path);
|
||||
mRootPath = (char*)JKRAllocFromHeap(mParentHeap, pathLength + 1, 1);
|
||||
mCurrentPath = (char*)JKRAllocFromSysHeap(pathLength + 2, 1);
|
||||
strcpy(mRootPath, path);
|
||||
strcpy(mCurrentPath, path);
|
||||
|
||||
if (path[1] != '\0') {
|
||||
convStrLower(mRootPath);
|
||||
convStrLower(mCurrentPath);
|
||||
strcat(mCurrentPath, lbl_8039D158); // "/"
|
||||
|
||||
const char* volumePath = volume;
|
||||
if (!volume) {
|
||||
volumePath = strrchr(mRootPath, '/');
|
||||
volumePath++;
|
||||
}
|
||||
|
||||
u32 volumeLength = strlen(volumePath) + 1;
|
||||
mVolumePath = (char*)JKRAllocFromSysHeap(volumeLength, 0);
|
||||
strcpy(mVolumePath, volumePath);
|
||||
convStrLower(mVolumePath);
|
||||
mVolumeName = mVolumePath;
|
||||
} else {
|
||||
const char* volumePath = volume;
|
||||
if (!volume) {
|
||||
volumePath = lbl_8039D158 + 0x2; // "dvd"
|
||||
}
|
||||
|
||||
u32 volumeLength = strlen(volumePath) + 1;
|
||||
mVolumePath = (char*)JKRAllocFromSysHeap(volumeLength, 0);
|
||||
strcpy(mVolumePath, volumePath);
|
||||
convStrLower(mVolumePath);
|
||||
mVolumeName = mVolumePath;
|
||||
}
|
||||
|
||||
getVolumeList().prepend(&mFileLoaderLink);
|
||||
mIsMounted = true;
|
||||
}
|
||||
|
||||
asm JKRFileCache::~JKRFileCache() {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D4C70.s"
|
||||
JKRFileCache::~JKRFileCache() {
|
||||
removeResourceAll();
|
||||
if (mRootPath)
|
||||
JKRFreeToHeap(mParentHeap, mRootPath);
|
||||
if (mCurrentPath)
|
||||
JKRFreeToSysHeap(mCurrentPath);
|
||||
if (mVolumePath)
|
||||
JKRFreeToSysHeap(mVolumePath);
|
||||
|
||||
getVolumeList().remove(&mFileLoaderLink);
|
||||
}
|
||||
|
||||
asm void JKRFileCache::becomeCurrent(char const*) {
|
||||
// full match, except wrong use of one register
|
||||
#ifdef NONMATCHING
|
||||
bool JKRFileCache::becomeCurrent(const char* path) {
|
||||
char* name = getDvdPathName(path);
|
||||
BOOL result = DVDChangeDir(name);
|
||||
bool didChangeDir = (result != 0);
|
||||
if (didChangeDir) {
|
||||
setCurrentVolume(this);
|
||||
JKRFreeToSysHeap(mCurrentPath);
|
||||
|
||||
mCurrentPath = name;
|
||||
if (mCurrentPath[1]) {
|
||||
strcat(mCurrentPath, lbl_8039D158); // "/"
|
||||
}
|
||||
} else {
|
||||
JKRFreeToSysHeap(name);
|
||||
}
|
||||
|
||||
return didChangeDir;
|
||||
}
|
||||
#else
|
||||
asm bool JKRFileCache::becomeCurrent(const char* path) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D4D44.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
asm void* JKRFileCache::getResource(char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D4DD8.s"
|
||||
void* JKRFileCache::getResource(const char* path) {
|
||||
ASSERT(isMounted());
|
||||
|
||||
void* buffer = NULL;
|
||||
char* name = getDvdPathName(path);
|
||||
JKRDvdFile dvdFile(name);
|
||||
if (dvdFile.isAvailable()) {
|
||||
CCacheBlock* cacheBlock = findCacheBlock(dvdFile.getFileID());
|
||||
if (!cacheBlock) {
|
||||
// dvdFile.getFileSize() not inlined
|
||||
u32 fileSize = dvdFile.getFileInfo().length;
|
||||
u32 alignedSize = ALIGN_NEXT(fileSize, 0x20);
|
||||
buffer = JKRAllocFromHeap(mParentHeap, alignedSize, 0x20);
|
||||
if (buffer) {
|
||||
dvdFile.read(buffer, alignedSize, 0);
|
||||
|
||||
cacheBlock = new (JKRHeap::getSystemHeap(), 0)
|
||||
CCacheBlock(dvdFile.getFileID(), dvdFile.getFileInfo().length, buffer);
|
||||
mCacheBlockList.append(&cacheBlock->mCacheBlockLink);
|
||||
}
|
||||
} else {
|
||||
cacheBlock->mReferenceCount++;
|
||||
buffer = cacheBlock->mMemoryPtr;
|
||||
}
|
||||
}
|
||||
|
||||
JKRFreeToSysHeap(name);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
asm void* JKRFileCache::getResource(unsigned long, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D4EDC.s"
|
||||
void* JKRFileCache::getResource(u32, const char* path) {
|
||||
ASSERT(isMounted());
|
||||
|
||||
char finalPath[256];
|
||||
u32 rootLength = strlen(mRootPath);
|
||||
char* filePath = finalPath + rootLength;
|
||||
strcpy(finalPath, mRootPath);
|
||||
|
||||
bool found = findFile(finalPath, path);
|
||||
if (!found)
|
||||
return NULL;
|
||||
|
||||
return getResource(filePath);
|
||||
}
|
||||
|
||||
asm void JKRFileCache::readResource(void*, unsigned long, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D4F64.s"
|
||||
u32 JKRFileCache::readResource(void* dst, u32 dstLength, const char* path) {
|
||||
ASSERT(isMounted());
|
||||
|
||||
char* name = getDvdPathName(path);
|
||||
JKRDvdFile dvdFile(name);
|
||||
|
||||
u32 resourceSize = 0;
|
||||
|
||||
// !@bug: (maybe?) Infinite Loop: Because dvdFile.isAvailable() is never updated in the loop-body
|
||||
// will would never exit the loop.
|
||||
loop:
|
||||
if (dvdFile.isAvailable()) {
|
||||
// dvdFile.getFileSize() not inlined
|
||||
u32 fileSize = dvdFile.getFileInfo().length;
|
||||
resourceSize = ALIGN_NEXT(fileSize, 0x20);
|
||||
dstLength = ALIGN_PREV(dstLength, 0x20);
|
||||
if (resourceSize > dstLength) {
|
||||
resourceSize = dstLength;
|
||||
}
|
||||
|
||||
CCacheBlock* cacheBlock = findCacheBlock(dvdFile.getFileID());
|
||||
if (!cacheBlock) {
|
||||
dvdFile.read(dst, resourceSize, 0);
|
||||
} else {
|
||||
memcpy(dst, cacheBlock->mMemoryPtr, resourceSize);
|
||||
}
|
||||
goto loop;
|
||||
}
|
||||
|
||||
JKRFreeToSysHeap(name);
|
||||
return resourceSize;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::readResource(void*, unsigned long, unsigned long, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D503C.s"
|
||||
u32 JKRFileCache::readResource(void* dst, u32 dstLength, u32, const char* path) {
|
||||
ASSERT(isMounted());
|
||||
|
||||
char finalPath[256];
|
||||
u32 rootLength = strlen(mRootPath);
|
||||
char* filePath = finalPath + rootLength;
|
||||
strcpy(finalPath, mRootPath);
|
||||
|
||||
bool found = findFile(finalPath, path);
|
||||
if (!found)
|
||||
return NULL;
|
||||
|
||||
return readResource(dst, dstLength, filePath);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void JKRFileCache::removeResourceAll(void) {
|
||||
ASSERT(isMounted());
|
||||
|
||||
JSUListIterator<CCacheBlock> iterator;
|
||||
iterator = mCacheBlockList.getFirst();
|
||||
while (iterator != mCacheBlockList.getEnd()) {
|
||||
JKRFreeToHeap(mParentHeap, iterator->mMemoryPtr);
|
||||
mCacheBlockList.remove(&iterator->mLink);
|
||||
JSUListIterator<CCacheBlock> next = iterator++;
|
||||
CCacheBlock* cacheBlock = next.getObject();
|
||||
delete cacheBlock;
|
||||
}
|
||||
}
|
||||
#else
|
||||
asm void JKRFileCache::removeResourceAll(void) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D50D4.s"
|
||||
}
|
||||
#endif
|
||||
|
||||
asm bool JKRFileCache::removeResource(void*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D5164.s"
|
||||
bool JKRFileCache::removeResource(void* resource) {
|
||||
ASSERT(isMounted());
|
||||
|
||||
CCacheBlock* cacheBlock = findCacheBlock(resource);
|
||||
if (!cacheBlock)
|
||||
return false;
|
||||
|
||||
u32 referenceCount = cacheBlock->mReferenceCount - 1;
|
||||
cacheBlock->mReferenceCount = referenceCount;
|
||||
if (referenceCount == 0) {
|
||||
JKRFreeToHeap(mParentHeap, resource);
|
||||
mCacheBlockList.remove(&cacheBlock->mCacheBlockLink);
|
||||
delete cacheBlock;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
asm bool JKRFileCache::detachResource(void*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D51F8.s"
|
||||
bool JKRFileCache::detachResource(void* resource) {
|
||||
ASSERT(isMounted());
|
||||
|
||||
CCacheBlock* cacheBlock = findCacheBlock(resource);
|
||||
if (!cacheBlock)
|
||||
return false;
|
||||
|
||||
mCacheBlockList.remove(&cacheBlock->mCacheBlockLink);
|
||||
delete cacheBlock;
|
||||
return true;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::getResSize(void const*) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D526C.s"
|
||||
u32 JKRFileCache::getResSize(const void* resource) const {
|
||||
ASSERT(isMounted());
|
||||
|
||||
CCacheBlock* cacheBlock = findCacheBlock(resource);
|
||||
if (cacheBlock == NULL) {
|
||||
return -1;
|
||||
} else {
|
||||
return cacheBlock->mFileSize;
|
||||
}
|
||||
}
|
||||
|
||||
asm void JKRFileCache::countFile(char const*) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D52A0.s"
|
||||
u32 JKRFileCache::countFile(const char* path) const {
|
||||
ASSERT(isMounted());
|
||||
|
||||
DVDDirectory dir;
|
||||
DVDDirectoryEntry dirEntry;
|
||||
|
||||
u32 count = 0;
|
||||
char* name = getDvdPathName(path);
|
||||
BOOL result = DVDOpenDir(name, &dir);
|
||||
if (result != 0) {
|
||||
while (result = DVDReadDir(&dir, &dirEntry), result != FALSE) {
|
||||
count = count + 1;
|
||||
}
|
||||
|
||||
DVDCloseDir(&dir);
|
||||
}
|
||||
|
||||
JKRFreeToSysHeap(name);
|
||||
return count;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::getFirstFile(char const*) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D531C.s"
|
||||
JKRFileFinder* JKRFileCache::getFirstFile(const char* path) const {
|
||||
char* name = getDvdPathName(path);
|
||||
JKRHeap* systemHeap = JKRHeap::getSystemHeap();
|
||||
JKRDvdFinder* finder = new (systemHeap, 0) JKRDvdFinder(name);
|
||||
JKRFreeToSysHeap(name);
|
||||
|
||||
if (finder->isAvailable() != true) {
|
||||
delete finder;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return finder;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::findCacheBlock(void const*) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D53B8.s"
|
||||
JKRFileCache::CCacheBlock* JKRFileCache::findCacheBlock(const void* resource) const {
|
||||
JSUListIterator<CCacheBlock> iterator;
|
||||
for (iterator = mCacheBlockList.getFirst(); iterator != mCacheBlockList.getEnd(); ++iterator) {
|
||||
if (iterator->mMemoryPtr == resource) {
|
||||
return iterator.getObject();
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::findCacheBlock(unsigned long) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D53E4.s"
|
||||
JKRFileCache::CCacheBlock* JKRFileCache::findCacheBlock(u32 fileID) const {
|
||||
JSUListIterator<CCacheBlock> iterator;
|
||||
for (iterator = mCacheBlockList.getFirst(); iterator != mCacheBlockList.getEnd(); ++iterator) {
|
||||
if (iterator->mFileId == fileID) {
|
||||
return iterator.getObject();
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::findFile(char*, char const*) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D5410.s"
|
||||
bool JKRFileCache::findFile(char* path, const char* fileName) const {
|
||||
DVDDirectory dir;
|
||||
DVDDirectoryEntry dirEntry;
|
||||
|
||||
bool result = false;
|
||||
u32 pathLength = strlen(path);
|
||||
if (DVDOpenDir(path, &dir)) {
|
||||
while (DVDReadDir(&dir, &dirEntry)) {
|
||||
if (dirEntry.is_directory) {
|
||||
char* endOfPath = path + pathLength;
|
||||
*endOfPath = '/';
|
||||
strcpy(path + pathLength + 1, dirEntry.name);
|
||||
result = findFile(path, fileName);
|
||||
if (result)
|
||||
break;
|
||||
*endOfPath = '\0';
|
||||
} else {
|
||||
result = (strcmp(fileName, dirEntry.name) == 0);
|
||||
if (result) {
|
||||
strcat(path, lbl_8039D158); // "/"
|
||||
strcat(path, fileName);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DVDCloseDir(&dir);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::getDvdPathName(char const*) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D551C.s"
|
||||
char* JKRFileCache::getDvdPathName(const char* path) const {
|
||||
char* newPath;
|
||||
if (path[0] == '/') {
|
||||
u32 length = strlen(mRootPath) + strlen(path) + 2;
|
||||
newPath = (char*)JKRAllocFromSysHeap(length, 1);
|
||||
strcpy(newPath, mRootPath);
|
||||
if (path[1]) {
|
||||
if (mRootPath[1] == 0) {
|
||||
strcat(newPath, path + 1);
|
||||
} else {
|
||||
strcat(newPath, path);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
u32 length = strlen(mCurrentPath) + strlen(path) + 2;
|
||||
newPath = (char*)JKRAllocFromSysHeap(length, 1);
|
||||
strcpy(newPath, mCurrentPath);
|
||||
strcat(newPath, path);
|
||||
}
|
||||
|
||||
convStrLower(newPath);
|
||||
return newPath;
|
||||
}
|
||||
|
||||
asm void JKRFileCache::convStrLower(char*) const {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D5624.s"
|
||||
void JKRFileCache::convStrLower(char* buffer) const {
|
||||
while (*buffer) {
|
||||
*buffer++ = tolower(*buffer);
|
||||
}
|
||||
}
|
||||
|
||||
asm JKRFileCache::CCacheBlock::CCacheBlock(unsigned long, unsigned long, void const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D566C.s"
|
||||
JKRFileCache::CCacheBlock::CCacheBlock(u32 fileId, u32 fileSize, const void* resource)
|
||||
: mCacheBlockLink(this) {
|
||||
mReferenceCount = 1;
|
||||
mFileId = fileId;
|
||||
mFileSize = fileSize;
|
||||
mMemoryPtr = (void*)resource; // todo: don't cast away const
|
||||
}
|
||||
|
||||
asm void JKRFileCache::getFsResource(char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D56C8.s"
|
||||
void* JKRFileCache::getFsResource(const char* path) {
|
||||
return getResource(path);
|
||||
}
|
||||
|
||||
asm void JKRFileCache::getNameResource(unsigned long, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D56F4.s"
|
||||
void* JKRFileCache::getNameResource(u32 type, const char* path) {
|
||||
return getResource(type, path);
|
||||
}
|
||||
|
||||
asm void JKRFileCache::readFsResource(void*, unsigned long, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D5720.s"
|
||||
u32 JKRFileCache::readFsResource(void* dst, u32 dstLength, const char* path) {
|
||||
return readResource(dst, dstLength, path);
|
||||
}
|
||||
|
||||
asm void JKRFileCache::readNameResource(void*, unsigned long, unsigned long, char const*) {
|
||||
nofralloc
|
||||
#include "JSystem/JKernel/JKRFileCache/asm/func_802D574C.s"
|
||||
u32 JKRFileCache::readNameResource(void* dst, u32 dstLength, u32 type, const char* path) {
|
||||
return readResource(dst, dstLength, type, path);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue