From 8bdbd1d2b5b2527689139dfda3f641c99c9b78ef Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 7 Oct 2020 17:41:10 -0400 Subject: split scapi, scapi_prdinfo, wenc, and arc --- asm/SDK/ARC/arc.s | 404 +++++++++++++++++++++++++++++++++++++++++++++ asm/SDK/DVD/dvdFatal.s | 6 +- asm/SDK/HBM/HBMRemoteSpk.s | 12 +- asm/SDK/OS/OSReset.s | 2 +- asm/SDK/SC/scapi.s | 363 ++++++++++++++++++++++++++++++++++++++++ asm/SDK/SC/scapi_prdinfo.s | 200 ++++++++++++++++++++++ asm/SDK/VI/vi.s | 6 +- asm/SDK/WENC/wenc.s | 202 +++++++++++++++++++++++ asm/SDK/WPAD/WPAD.s | 22 +-- asm/SDK/WUD/WUD.s | 8 +- 10 files changed, 1197 insertions(+), 28 deletions(-) create mode 100644 asm/SDK/ARC/arc.s create mode 100644 asm/SDK/SC/scapi.s create mode 100644 asm/SDK/SC/scapi_prdinfo.s create mode 100644 asm/SDK/WENC/wenc.s (limited to 'asm/SDK') diff --git a/asm/SDK/ARC/arc.s b/asm/SDK/ARC/arc.s new file mode 100644 index 0000000..8a7a0f1 --- /dev/null +++ b/asm/SDK/ARC/arc.s @@ -0,0 +1,404 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global ARCInitHandle +ARCInitHandle: +/* 802ECCF8 002E8958 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802ECCFC 002E895C 7C 08 02 A6 */ mflr r0 +/* 802ECD00 002E8960 90 01 00 14 */ stw r0, 0x14(r1) +/* 802ECD04 002E8964 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802ECD08 002E8968 7C 9F 23 78 */ mr r31, r4 +/* 802ECD0C 002E896C 93 C1 00 08 */ stw r30, 8(r1) +/* 802ECD10 002E8970 7C 7E 1B 78 */ mr r30, r3 +/* 802ECD14 002E8974 80 A3 00 00 */ lwz r5, 0(r3) +/* 802ECD18 002E8978 3C 05 AA 56 */ addis r0, r5, 0xaa56 +/* 802ECD1C 002E897C 28 00 38 2D */ cmplwi r0, 0x382d +/* 802ECD20 002E8980 41 82 00 1C */ beq lbl_802ECD3C +/* 802ECD24 002E8984 3C A0 80 44 */ lis r5, lbl_80445A80@ha +/* 802ECD28 002E8988 38 6D 8B E0 */ addi r3, r13, lbl_8063DEA0-_SDA_BASE_ +/* 802ECD2C 002E898C 38 A5 5A 80 */ addi r5, r5, lbl_80445A80@l +/* 802ECD30 002E8990 38 80 00 4A */ li r4, 0x4a +/* 802ECD34 002E8994 4C C6 31 82 */ crclr 6 +/* 802ECD38 002E8998 4B F7 E7 65 */ bl OSPanic +lbl_802ECD3C: +/* 802ECD3C 002E899C 93 DF 00 00 */ stw r30, 0(r31) +/* 802ECD40 002E89A0 38 00 00 00 */ li r0, 0 +/* 802ECD44 002E89A4 38 60 00 01 */ li r3, 1 +/* 802ECD48 002E89A8 80 9E 00 04 */ lwz r4, 4(r30) +/* 802ECD4C 002E89AC 7C DE 22 14 */ add r6, r30, r4 +/* 802ECD50 002E89B0 90 DF 00 04 */ stw r6, 4(r31) +/* 802ECD54 002E89B4 80 9E 00 0C */ lwz r4, 0xc(r30) +/* 802ECD58 002E89B8 7C 9E 22 14 */ add r4, r30, r4 +/* 802ECD5C 002E89BC 90 9F 00 08 */ stw r4, 8(r31) +/* 802ECD60 002E89C0 80 A6 00 08 */ lwz r5, 8(r6) +/* 802ECD64 002E89C4 1C 85 00 0C */ mulli r4, r5, 0xc +/* 802ECD68 002E89C8 90 BF 00 0C */ stw r5, 0xc(r31) +/* 802ECD6C 002E89CC 7C 86 22 14 */ add r4, r6, r4 +/* 802ECD70 002E89D0 90 9F 00 10 */ stw r4, 0x10(r31) +/* 802ECD74 002E89D4 80 9E 00 08 */ lwz r4, 8(r30) +/* 802ECD78 002E89D8 90 9F 00 14 */ stw r4, 0x14(r31) +/* 802ECD7C 002E89DC 90 1F 00 18 */ stw r0, 0x18(r31) +/* 802ECD80 002E89E0 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802ECD84 002E89E4 83 C1 00 08 */ lwz r30, 8(r1) +/* 802ECD88 002E89E8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802ECD8C 002E89EC 7C 08 03 A6 */ mtlr r0 +/* 802ECD90 002E89F0 38 21 00 10 */ addi r1, r1, 0x10 +/* 802ECD94 002E89F4 4E 80 00 20 */ blr + +.global ARCFastOpen +ARCFastOpen: +/* 802ECD98 002E89F8 2C 04 00 00 */ cmpwi r4, 0 +/* 802ECD9C 002E89FC 80 C3 00 04 */ lwz r6, 4(r3) +/* 802ECDA0 002E8A00 41 80 00 20 */ blt lbl_802ECDC0 +/* 802ECDA4 002E8A04 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802ECDA8 002E8A08 7C 04 00 40 */ cmplw r4, r0 +/* 802ECDAC 002E8A0C 40 80 00 14 */ bge lbl_802ECDC0 +/* 802ECDB0 002E8A10 1C 84 00 0C */ mulli r4, r4, 0xc +/* 802ECDB4 002E8A14 7C 06 20 2E */ lwzx r0, r6, r4 +/* 802ECDB8 002E8A18 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 +/* 802ECDBC 002E8A1C 41 82 00 0C */ beq lbl_802ECDC8 +lbl_802ECDC0: +/* 802ECDC0 002E8A20 38 60 00 00 */ li r3, 0 +/* 802ECDC4 002E8A24 4E 80 00 20 */ blr +lbl_802ECDC8: +/* 802ECDC8 002E8A28 90 65 00 00 */ stw r3, 0(r5) +/* 802ECDCC 002E8A2C 7C 86 22 14 */ add r4, r6, r4 +/* 802ECDD0 002E8A30 38 60 00 01 */ li r3, 1 +/* 802ECDD4 002E8A34 80 04 00 04 */ lwz r0, 4(r4) +/* 802ECDD8 002E8A38 90 05 00 04 */ stw r0, 4(r5) +/* 802ECDDC 002E8A3C 80 04 00 08 */ lwz r0, 8(r4) +/* 802ECDE0 002E8A40 90 05 00 08 */ stw r0, 8(r5) +/* 802ECDE4 002E8A44 4E 80 00 20 */ blr + +.global ARCConvertPathToEntrynum +ARCConvertPathToEntrynum: +/* 802ECDE8 002E8A48 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802ECDEC 002E8A4C 3C A0 80 42 */ lis r5, lbl_80422D48@ha +/* 802ECDF0 002E8A50 38 A5 2D 48 */ addi r5, r5, lbl_80422D48@l +/* 802ECDF4 002E8A54 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802ECDF8 002E8A58 93 C1 00 08 */ stw r30, 8(r1) +/* 802ECDFC 002E8A5C 81 03 00 18 */ lwz r8, 0x18(r3) +/* 802ECE00 002E8A60 81 23 00 04 */ lwz r9, 4(r3) +/* 802ECE04 002E8A64 80 C5 00 38 */ lwz r6, 0x38(r5) +lbl_802ECE08: +/* 802ECE08 002E8A68 88 04 00 00 */ lbz r0, 0(r4) +/* 802ECE0C 002E8A6C 7C 00 07 75 */ extsb. r0, r0 +/* 802ECE10 002E8A70 40 82 00 0C */ bne lbl_802ECE1C +/* 802ECE14 002E8A74 7D 03 43 78 */ mr r3, r8 +/* 802ECE18 002E8A78 48 00 02 24 */ b lbl_802ED03C +lbl_802ECE1C: +/* 802ECE1C 002E8A7C 2C 00 00 2F */ cmpwi r0, 0x2f +/* 802ECE20 002E8A80 40 82 00 10 */ bne lbl_802ECE30 +/* 802ECE24 002E8A84 39 00 00 00 */ li r8, 0 +/* 802ECE28 002E8A88 38 84 00 01 */ addi r4, r4, 1 +/* 802ECE2C 002E8A8C 4B FF FF DC */ b lbl_802ECE08 +lbl_802ECE30: +/* 802ECE30 002E8A90 2C 00 00 2E */ cmpwi r0, 0x2e +/* 802ECE34 002E8A94 40 82 00 70 */ bne lbl_802ECEA4 +/* 802ECE38 002E8A98 88 04 00 01 */ lbz r0, 1(r4) +/* 802ECE3C 002E8A9C 7C 00 07 74 */ extsb r0, r0 +/* 802ECE40 002E8AA0 2C 00 00 2E */ cmpwi r0, 0x2e +/* 802ECE44 002E8AA4 40 82 00 40 */ bne lbl_802ECE84 +/* 802ECE48 002E8AA8 88 04 00 02 */ lbz r0, 2(r4) +/* 802ECE4C 002E8AAC 7C 00 07 74 */ extsb r0, r0 +/* 802ECE50 002E8AB0 2C 00 00 2F */ cmpwi r0, 0x2f +/* 802ECE54 002E8AB4 40 82 00 18 */ bne lbl_802ECE6C +/* 802ECE58 002E8AB8 1C 08 00 0C */ mulli r0, r8, 0xc +/* 802ECE5C 002E8ABC 38 84 00 03 */ addi r4, r4, 3 +/* 802ECE60 002E8AC0 7C A9 02 14 */ add r5, r9, r0 +/* 802ECE64 002E8AC4 81 05 00 04 */ lwz r8, 4(r5) +/* 802ECE68 002E8AC8 4B FF FF A0 */ b lbl_802ECE08 +lbl_802ECE6C: +/* 802ECE6C 002E8ACC 2C 00 00 00 */ cmpwi r0, 0 +/* 802ECE70 002E8AD0 40 82 00 34 */ bne lbl_802ECEA4 +/* 802ECE74 002E8AD4 1C 08 00 0C */ mulli r0, r8, 0xc +/* 802ECE78 002E8AD8 7C 69 02 14 */ add r3, r9, r0 +/* 802ECE7C 002E8ADC 80 63 00 04 */ lwz r3, 4(r3) +/* 802ECE80 002E8AE0 48 00 01 BC */ b lbl_802ED03C +lbl_802ECE84: +/* 802ECE84 002E8AE4 2C 00 00 2F */ cmpwi r0, 0x2f +/* 802ECE88 002E8AE8 40 82 00 0C */ bne lbl_802ECE94 +/* 802ECE8C 002E8AEC 38 84 00 02 */ addi r4, r4, 2 +/* 802ECE90 002E8AF0 4B FF FF 78 */ b lbl_802ECE08 +lbl_802ECE94: +/* 802ECE94 002E8AF4 2C 00 00 00 */ cmpwi r0, 0 +/* 802ECE98 002E8AF8 40 82 00 0C */ bne lbl_802ECEA4 +/* 802ECE9C 002E8AFC 7D 03 43 78 */ mr r3, r8 +/* 802ECEA0 002E8B00 48 00 01 9C */ b lbl_802ED03C +lbl_802ECEA4: +/* 802ECEA4 002E8B04 7C 87 23 78 */ mr r7, r4 +/* 802ECEA8 002E8B08 48 00 00 08 */ b lbl_802ECEB0 +lbl_802ECEAC: +/* 802ECEAC 002E8B0C 38 E7 00 01 */ addi r7, r7, 1 +lbl_802ECEB0: +/* 802ECEB0 002E8B10 88 A7 00 00 */ lbz r5, 0(r7) +/* 802ECEB4 002E8B14 7C A0 07 75 */ extsb. r0, r5 +/* 802ECEB8 002E8B18 41 82 00 0C */ beq lbl_802ECEC4 +/* 802ECEBC 002E8B1C 2C 00 00 2F */ cmpwi r0, 0x2f +/* 802ECEC0 002E8B20 40 82 FF EC */ bne lbl_802ECEAC +lbl_802ECEC4: +/* 802ECEC4 002E8B24 1C 08 00 0C */ mulli r0, r8, 0xc +/* 802ECEC8 002E8B28 7C AB 07 74 */ extsb r11, r5 +/* 802ECECC 002E8B2C 7C E4 38 50 */ subf r7, r4, r7 +/* 802ECED0 002E8B30 7D 4B 00 D0 */ neg r10, r11 +/* 802ECED4 002E8B34 7C A9 02 14 */ add r5, r9, r0 +/* 802ECED8 002E8B38 39 08 00 01 */ addi r8, r8, 1 +/* 802ECEDC 002E8B3C 7D 40 5B 78 */ or r0, r10, r11 +/* 802ECEE0 002E8B40 80 A5 00 08 */ lwz r5, 8(r5) +/* 802ECEE4 002E8B44 54 00 0F FE */ srwi r0, r0, 0x1f +/* 802ECEE8 002E8B48 48 00 01 28 */ b lbl_802ED010 +lbl_802ECEEC: +/* 802ECEEC 002E8B4C 1D 48 00 0C */ mulli r10, r8, 0xc +/* 802ECEF0 002E8B50 7D 89 52 14 */ add r12, r9, r10 +lbl_802ECEF4: +/* 802ECEF4 002E8B54 83 EC 00 00 */ lwz r31, 0(r12) +/* 802ECEF8 002E8B58 57 EA 00 0F */ rlwinm. r10, r31, 0, 0, 7 +/* 802ECEFC 002E8B5C 40 82 00 0C */ bne lbl_802ECF08 +/* 802ECF00 002E8B60 2C 00 00 01 */ cmpwi r0, 1 +/* 802ECF04 002E8B64 41 82 00 EC */ beq lbl_802ECFF0 +lbl_802ECF08: +/* 802ECF08 002E8B68 81 63 00 10 */ lwz r11, 0x10(r3) +/* 802ECF0C 002E8B6C 57 EA 02 3E */ clrlwi r10, r31, 8 +/* 802ECF10 002E8B70 7F CB 52 14 */ add r30, r11, r10 +/* 802ECF14 002E8B74 7D 4B 50 AE */ lbzx r10, r11, r10 +/* 802ECF18 002E8B78 2C 0A 00 2E */ cmpwi r10, 0x2e +/* 802ECF1C 002E8B7C 40 82 00 1C */ bne lbl_802ECF38 +/* 802ECF20 002E8B80 89 5E 00 01 */ lbz r10, 1(r30) +/* 802ECF24 002E8B84 7D 4A 07 75 */ extsb. r10, r10 +/* 802ECF28 002E8B88 40 82 00 10 */ bne lbl_802ECF38 +/* 802ECF2C 002E8B8C 39 8C 00 0C */ addi r12, r12, 0xc +/* 802ECF30 002E8B90 39 08 00 01 */ addi r8, r8, 1 +/* 802ECF34 002E8B94 4B FF FF C0 */ b lbl_802ECEF4 +lbl_802ECF38: +/* 802ECF38 002E8B98 7C 8C 23 78 */ mr r12, r4 +/* 802ECF3C 002E8B9C 48 00 00 7C */ b lbl_802ECFB8 +lbl_802ECF40: +/* 802ECF40 002E8BA0 89 7E 00 00 */ lbz r11, 0(r30) +/* 802ECF44 002E8BA4 39 40 00 00 */ li r10, 0 +/* 802ECF48 002E8BA8 3B DE 00 01 */ addi r30, r30, 1 +/* 802ECF4C 002E8BAC 7D 7F 07 75 */ extsb. r31, r11 +/* 802ECF50 002E8BB0 41 80 00 0C */ blt lbl_802ECF5C +/* 802ECF54 002E8BB4 2C 1F 01 00 */ cmpwi r31, 0x100 +/* 802ECF58 002E8BB8 41 80 00 08 */ blt lbl_802ECF60 +lbl_802ECF5C: +/* 802ECF5C 002E8BBC 39 40 00 01 */ li r10, 1 +lbl_802ECF60: +/* 802ECF60 002E8BC0 2C 0A 00 00 */ cmpwi r10, 0 +/* 802ECF64 002E8BC4 41 82 00 08 */ beq lbl_802ECF6C +/* 802ECF68 002E8BC8 48 00 00 0C */ b lbl_802ECF74 +lbl_802ECF6C: +/* 802ECF6C 002E8BCC 81 46 00 10 */ lwz r10, 0x10(r6) +/* 802ECF70 002E8BD0 7F EA F8 AE */ lbzx r31, r10, r31 +lbl_802ECF74: +/* 802ECF74 002E8BD4 89 6C 00 00 */ lbz r11, 0(r12) +/* 802ECF78 002E8BD8 39 40 00 00 */ li r10, 0 +/* 802ECF7C 002E8BDC 39 8C 00 01 */ addi r12, r12, 1 +/* 802ECF80 002E8BE0 7D 6B 07 75 */ extsb. r11, r11 +/* 802ECF84 002E8BE4 41 80 00 0C */ blt lbl_802ECF90 +/* 802ECF88 002E8BE8 2C 0B 01 00 */ cmpwi r11, 0x100 +/* 802ECF8C 002E8BEC 41 80 00 08 */ blt lbl_802ECF94 +lbl_802ECF90: +/* 802ECF90 002E8BF0 39 40 00 01 */ li r10, 1 +lbl_802ECF94: +/* 802ECF94 002E8BF4 2C 0A 00 00 */ cmpwi r10, 0 +/* 802ECF98 002E8BF8 41 82 00 08 */ beq lbl_802ECFA0 +/* 802ECF9C 002E8BFC 48 00 00 0C */ b lbl_802ECFA8 +lbl_802ECFA0: +/* 802ECFA0 002E8C00 81 46 00 10 */ lwz r10, 0x10(r6) +/* 802ECFA4 002E8C04 7D 6A 58 AE */ lbzx r11, r10, r11 +lbl_802ECFA8: +/* 802ECFA8 002E8C08 7C 0B F8 00 */ cmpw r11, r31 +/* 802ECFAC 002E8C0C 41 82 00 0C */ beq lbl_802ECFB8 +/* 802ECFB0 002E8C10 39 40 00 00 */ li r10, 0 +/* 802ECFB4 002E8C14 48 00 00 34 */ b lbl_802ECFE8 +lbl_802ECFB8: +/* 802ECFB8 002E8C18 89 5E 00 00 */ lbz r10, 0(r30) +/* 802ECFBC 002E8C1C 7D 4A 07 75 */ extsb. r10, r10 +/* 802ECFC0 002E8C20 40 82 FF 80 */ bne lbl_802ECF40 +/* 802ECFC4 002E8C24 89 4C 00 00 */ lbz r10, 0(r12) +/* 802ECFC8 002E8C28 7D 4A 07 74 */ extsb r10, r10 +/* 802ECFCC 002E8C2C 2C 0A 00 2F */ cmpwi r10, 0x2f +/* 802ECFD0 002E8C30 41 82 00 0C */ beq lbl_802ECFDC +/* 802ECFD4 002E8C34 2C 0A 00 00 */ cmpwi r10, 0 +/* 802ECFD8 002E8C38 40 82 00 0C */ bne lbl_802ECFE4 +lbl_802ECFDC: +/* 802ECFDC 002E8C3C 39 40 00 01 */ li r10, 1 +/* 802ECFE0 002E8C40 48 00 00 08 */ b lbl_802ECFE8 +lbl_802ECFE4: +/* 802ECFE4 002E8C44 39 40 00 00 */ li r10, 0 +lbl_802ECFE8: +/* 802ECFE8 002E8C48 2C 0A 00 01 */ cmpwi r10, 1 +/* 802ECFEC 002E8C4C 41 82 00 34 */ beq lbl_802ED020 +lbl_802ECFF0: +/* 802ECFF0 002E8C50 1D 48 00 0C */ mulli r10, r8, 0xc +/* 802ECFF4 002E8C54 7D 69 52 14 */ add r11, r9, r10 +/* 802ECFF8 002E8C58 7D 49 50 2E */ lwzx r10, r9, r10 +/* 802ECFFC 002E8C5C 55 4A 00 0F */ rlwinm. r10, r10, 0, 0, 7 +/* 802ED000 002E8C60 41 82 00 0C */ beq lbl_802ED00C +/* 802ED004 002E8C64 81 0B 00 08 */ lwz r8, 8(r11) +/* 802ED008 002E8C68 48 00 00 08 */ b lbl_802ED010 +lbl_802ED00C: +/* 802ED00C 002E8C6C 39 08 00 01 */ addi r8, r8, 1 +lbl_802ED010: +/* 802ED010 002E8C70 7C 08 28 40 */ cmplw r8, r5 +/* 802ED014 002E8C74 41 80 FE D8 */ blt lbl_802ECEEC +/* 802ED018 002E8C78 38 60 FF FF */ li r3, -1 +/* 802ED01C 002E8C7C 48 00 00 20 */ b lbl_802ED03C +lbl_802ED020: +/* 802ED020 002E8C80 2C 00 00 00 */ cmpwi r0, 0 +/* 802ED024 002E8C84 40 82 00 0C */ bne lbl_802ED030 +/* 802ED028 002E8C88 7D 03 43 78 */ mr r3, r8 +/* 802ED02C 002E8C8C 48 00 00 10 */ b lbl_802ED03C +lbl_802ED030: +/* 802ED030 002E8C90 7C 87 22 14 */ add r4, r7, r4 +/* 802ED034 002E8C94 38 84 00 01 */ addi r4, r4, 1 +/* 802ED038 002E8C98 4B FF FD D0 */ b lbl_802ECE08 +lbl_802ED03C: +/* 802ED03C 002E8C9C 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802ED040 002E8CA0 83 C1 00 08 */ lwz r30, 8(r1) +/* 802ED044 002E8CA4 38 21 00 10 */ addi r1, r1, 0x10 +/* 802ED048 002E8CA8 4E 80 00 20 */ blr + +.global ARCGetStartAddrInMem +ARCGetStartAddrInMem: +/* 802ED04C 002E8CAC 80 83 00 00 */ lwz r4, 0(r3) +/* 802ED050 002E8CB0 80 03 00 04 */ lwz r0, 4(r3) +/* 802ED054 002E8CB4 80 64 00 00 */ lwz r3, 0(r4) +/* 802ED058 002E8CB8 7C 63 02 14 */ add r3, r3, r0 +/* 802ED05C 002E8CBC 4E 80 00 20 */ blr + +.global ARCGetLength +ARCGetLength: +/* 802ED060 002E8CC0 80 63 00 08 */ lwz r3, 8(r3) +/* 802ED064 002E8CC4 4E 80 00 20 */ blr + +.global ARCClose +ARCClose: +/* 802ED068 002E8CC8 38 60 00 01 */ li r3, 1 +/* 802ED06C 002E8CCC 4E 80 00 20 */ blr + +.global ARCChangeDir +ARCChangeDir: +/* 802ED070 002E8CD0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802ED074 002E8CD4 7C 08 02 A6 */ mflr r0 +/* 802ED078 002E8CD8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802ED07C 002E8CDC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802ED080 002E8CE0 7C 7F 1B 78 */ mr r31, r3 +/* 802ED084 002E8CE4 4B FF FD 65 */ bl ARCConvertPathToEntrynum +/* 802ED088 002E8CE8 2C 03 00 00 */ cmpwi r3, 0 +/* 802ED08C 002E8CEC 80 9F 00 04 */ lwz r4, 4(r31) +/* 802ED090 002E8CF0 41 80 00 14 */ blt lbl_802ED0A4 +/* 802ED094 002E8CF4 1C 03 00 0C */ mulli r0, r3, 0xc +/* 802ED098 002E8CF8 7C 04 00 2E */ lwzx r0, r4, r0 +/* 802ED09C 002E8CFC 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 +/* 802ED0A0 002E8D00 40 82 00 0C */ bne lbl_802ED0AC +lbl_802ED0A4: +/* 802ED0A4 002E8D04 38 60 00 00 */ li r3, 0 +/* 802ED0A8 002E8D08 48 00 00 0C */ b lbl_802ED0B4 +lbl_802ED0AC: +/* 802ED0AC 002E8D0C 90 7F 00 18 */ stw r3, 0x18(r31) +/* 802ED0B0 002E8D10 38 60 00 01 */ li r3, 1 +lbl_802ED0B4: +/* 802ED0B4 002E8D14 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802ED0B8 002E8D18 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802ED0BC 002E8D1C 7C 08 03 A6 */ mtlr r0 +/* 802ED0C0 002E8D20 38 21 00 10 */ addi r1, r1, 0x10 +/* 802ED0C4 002E8D24 4E 80 00 20 */ blr + +.global ARCOpenDir +ARCOpenDir: +/* 802ED0C8 002E8D28 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802ED0CC 002E8D2C 7C 08 02 A6 */ mflr r0 +/* 802ED0D0 002E8D30 90 01 00 14 */ stw r0, 0x14(r1) +/* 802ED0D4 002E8D34 93 E1 00 0C */ stw r31, 0xc(r1) +/* 802ED0D8 002E8D38 7C BF 2B 78 */ mr r31, r5 +/* 802ED0DC 002E8D3C 93 C1 00 08 */ stw r30, 8(r1) +/* 802ED0E0 002E8D40 7C 7E 1B 78 */ mr r30, r3 +/* 802ED0E4 002E8D44 4B FF FD 05 */ bl ARCConvertPathToEntrynum +/* 802ED0E8 002E8D48 2C 03 00 00 */ cmpwi r3, 0 +/* 802ED0EC 002E8D4C 80 BE 00 04 */ lwz r5, 4(r30) +/* 802ED0F0 002E8D50 41 80 00 14 */ blt lbl_802ED104 +/* 802ED0F4 002E8D54 1C 83 00 0C */ mulli r4, r3, 0xc +/* 802ED0F8 002E8D58 7C 05 20 2E */ lwzx r0, r5, r4 +/* 802ED0FC 002E8D5C 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 +/* 802ED100 002E8D60 40 82 00 0C */ bne lbl_802ED10C +lbl_802ED104: +/* 802ED104 002E8D64 38 60 00 00 */ li r3, 0 +/* 802ED108 002E8D68 48 00 00 24 */ b lbl_802ED12C +lbl_802ED10C: +/* 802ED10C 002E8D6C 38 03 00 01 */ addi r0, r3, 1 +/* 802ED110 002E8D70 90 7F 00 04 */ stw r3, 4(r31) +/* 802ED114 002E8D74 7C 85 22 14 */ add r4, r5, r4 +/* 802ED118 002E8D78 38 60 00 01 */ li r3, 1 +/* 802ED11C 002E8D7C 93 DF 00 00 */ stw r30, 0(r31) +/* 802ED120 002E8D80 90 1F 00 08 */ stw r0, 8(r31) +/* 802ED124 002E8D84 80 04 00 08 */ lwz r0, 8(r4) +/* 802ED128 002E8D88 90 1F 00 0C */ stw r0, 0xc(r31) +lbl_802ED12C: +/* 802ED12C 002E8D8C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802ED130 002E8D90 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 802ED134 002E8D94 83 C1 00 08 */ lwz r30, 8(r1) +/* 802ED138 002E8D98 7C 08 03 A6 */ mtlr r0 +/* 802ED13C 002E8D9C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802ED140 002E8DA0 4E 80 00 20 */ blr + +.global ARCReadDir +ARCReadDir: +/* 802ED144 002E8DA4 80 E3 00 08 */ lwz r7, 8(r3) +/* 802ED148 002E8DA8 81 23 00 00 */ lwz r9, 0(r3) +/* 802ED14C 002E8DAC 1C 07 00 0C */ mulli r0, r7, 0xc +/* 802ED150 002E8DB0 81 09 00 04 */ lwz r8, 4(r9) +/* 802ED154 002E8DB4 7C C8 02 14 */ add r6, r8, r0 +lbl_802ED158: +/* 802ED158 002E8DB8 80 03 00 04 */ lwz r0, 4(r3) +/* 802ED15C 002E8DBC 7C 07 00 40 */ cmplw r7, r0 +/* 802ED160 002E8DC0 40 81 00 10 */ ble lbl_802ED170 +/* 802ED164 002E8DC4 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802ED168 002E8DC8 7C 00 38 40 */ cmplw r0, r7 +/* 802ED16C 002E8DCC 41 81 00 0C */ bgt lbl_802ED178 +lbl_802ED170: +/* 802ED170 002E8DD0 38 60 00 00 */ li r3, 0 +/* 802ED174 002E8DD4 4E 80 00 20 */ blr +lbl_802ED178: +/* 802ED178 002E8DD8 91 24 00 00 */ stw r9, 0(r4) +/* 802ED17C 002E8DDC 90 E4 00 04 */ stw r7, 4(r4) +/* 802ED180 002E8DE0 80 06 00 00 */ lwz r0, 0(r6) +/* 802ED184 002E8DE4 54 05 00 0E */ rlwinm r5, r0, 0, 0, 7 +/* 802ED188 002E8DE8 7C 05 00 D0 */ neg r0, r5 +/* 802ED18C 002E8DEC 7C 00 2B 78 */ or r0, r0, r5 +/* 802ED190 002E8DF0 54 00 0F FE */ srwi r0, r0, 0x1f +/* 802ED194 002E8DF4 90 04 00 08 */ stw r0, 8(r4) +/* 802ED198 002E8DF8 80 06 00 00 */ lwz r0, 0(r6) +/* 802ED19C 002E8DFC 80 A9 00 10 */ lwz r5, 0x10(r9) +/* 802ED1A0 002E8E00 54 00 02 3E */ clrlwi r0, r0, 8 +/* 802ED1A4 002E8E04 7C A5 02 14 */ add r5, r5, r0 +/* 802ED1A8 002E8E08 90 A4 00 0C */ stw r5, 0xc(r4) +/* 802ED1AC 002E8E0C 88 05 00 00 */ lbz r0, 0(r5) +/* 802ED1B0 002E8E10 2C 00 00 2E */ cmpwi r0, 0x2e +/* 802ED1B4 002E8E14 40 82 00 1C */ bne lbl_802ED1D0 +/* 802ED1B8 002E8E18 88 05 00 01 */ lbz r0, 1(r5) +/* 802ED1BC 002E8E1C 7C 00 07 75 */ extsb. r0, r0 +/* 802ED1C0 002E8E20 40 82 00 10 */ bne lbl_802ED1D0 +/* 802ED1C4 002E8E24 38 C6 00 0C */ addi r6, r6, 0xc +/* 802ED1C8 002E8E28 38 E7 00 01 */ addi r7, r7, 1 +/* 802ED1CC 002E8E2C 4B FF FF 8C */ b lbl_802ED158 +lbl_802ED1D0: +/* 802ED1D0 002E8E30 1C 87 00 0C */ mulli r4, r7, 0xc +/* 802ED1D4 002E8E34 7C 08 20 2E */ lwzx r0, r8, r4 +/* 802ED1D8 002E8E38 54 00 00 0F */ rlwinm. r0, r0, 0, 0, 7 +/* 802ED1DC 002E8E3C 41 82 00 10 */ beq lbl_802ED1EC +/* 802ED1E0 002E8E40 7C 88 22 14 */ add r4, r8, r4 +/* 802ED1E4 002E8E44 80 04 00 08 */ lwz r0, 8(r4) +/* 802ED1E8 002E8E48 48 00 00 08 */ b lbl_802ED1F0 +lbl_802ED1EC: +/* 802ED1EC 002E8E4C 38 07 00 01 */ addi r0, r7, 1 +lbl_802ED1F0: +/* 802ED1F0 002E8E50 90 03 00 08 */ stw r0, 8(r3) +/* 802ED1F4 002E8E54 38 60 00 01 */ li r3, 1 +/* 802ED1F8 002E8E58 4E 80 00 20 */ blr + +.global ARCCloseDir +ARCCloseDir: +/* 802ED1FC 002E8E5C 38 60 00 01 */ li r3, 1 +/* 802ED200 002E8E60 4E 80 00 20 */ blr diff --git a/asm/SDK/DVD/dvdFatal.s b/asm/SDK/DVD/dvdFatal.s index e4ab30d..0410935 100644 --- a/asm/SDK/DVD/dvdFatal.s +++ b/asm/SDK/DVD/dvdFatal.s @@ -16,7 +16,7 @@ __DVDShowFatalMessage: /* 8028D004 00288C64 98 81 00 11 */ stb r4, 0x11(r1) /* 8028D008 00288C68 98 61 00 12 */ stb r3, 0x12(r1) /* 8028D00C 00288C6C 98 01 00 13 */ stb r0, 0x13(r1) -/* 8028D010 00288C70 48 05 F4 39 */ bl func_802EC448 +/* 8028D010 00288C70 48 05 F4 39 */ bl SCGetLanguage /* 8028D014 00288C74 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 8028D018 00288C78 40 82 00 10 */ bne lbl_8028D028 /* 8028D01C 00288C7C 38 60 00 01 */ li r3, 1 @@ -26,7 +26,7 @@ lbl_8028D028: /* 8028D028 00288C88 38 60 00 00 */ li r3, 0 /* 8028D02C 00288C8C 4B FE 0D 41 */ bl OSSetFontEncode lbl_8028D030: -/* 8028D030 00288C90 48 05 F4 19 */ bl func_802EC448 +/* 8028D030 00288C90 48 05 F4 19 */ bl SCGetLanguage /* 8028D034 00288C94 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 8028D038 00288C98 28 00 00 06 */ cmplwi r0, 6 /* 8028D03C 00288C9C 40 81 00 14 */ ble lbl_8028D050 @@ -35,7 +35,7 @@ lbl_8028D030: /* 8028D048 00288CA8 80 A3 00 04 */ lwz r5, 4(r3) /* 8028D04C 00288CAC 48 00 00 18 */ b lbl_8028D064 lbl_8028D050: -/* 8028D050 00288CB0 48 05 F3 F9 */ bl func_802EC448 +/* 8028D050 00288CB0 48 05 F3 F9 */ bl SCGetLanguage /* 8028D054 00288CB4 3C 80 80 40 */ lis r4, lbl_803FD9B8@ha /* 8028D058 00288CB8 54 60 15 BA */ rlwinm r0, r3, 2, 0x16, 0x1d /* 8028D05C 00288CBC 38 84 D9 B8 */ addi r4, r4, lbl_803FD9B8@l diff --git a/asm/SDK/HBM/HBMRemoteSpk.s b/asm/SDK/HBM/HBMRemoteSpk.s index 0850e68..f9fd5c4 100644 --- a/asm/SDK/HBM/HBMRemoteSpk.s +++ b/asm/SDK/HBM/HBMRemoteSpk.s @@ -130,7 +130,7 @@ lbl_803A5A98: /* 803A5AA8 003A1708 7C 00 00 34 */ cntlzw r0, r0 /* 803A5AAC 003A170C 38 C0 00 28 */ li r6, 0x28 /* 803A5AB0 003A1710 54 04 D9 7E */ srwi r4, r0, 5 -/* 803A5AB4 003A1714 4B F4 6F 6D */ bl func_802ECA20 +/* 803A5AB4 003A1714 4B F4 6F 6D */ bl WENCGetEncodeData /* 803A5AB8 003A1718 7F 83 E3 78 */ mr r3, r28 /* 803A5ABC 003A171C 38 81 00 08 */ addi r4, r1, 8 /* 803A5AC0 003A1720 38 A0 00 14 */ li r5, 0x14 @@ -203,7 +203,7 @@ __ct__Q210homebutton9RemoteSpkFPv: /* 803A5BA4 003A1804 41 82 00 24 */ beq lbl_803A5BC8 /* 803A5BA8 003A1808 7C 83 23 78 */ mr r3, r4 /* 803A5BAC 003A180C 38 9A 01 D0 */ addi r4, r26, 0x1d0 -/* 803A5BB0 003A1810 4B F4 71 49 */ bl func_802ECCF8 +/* 803A5BB0 003A1810 4B F4 71 49 */ bl ARCInitHandle /* 803A5BB4 003A1814 7C 03 00 D0 */ neg r0, r3 /* 803A5BB8 003A1818 7C 00 1B 78 */ or r0, r0, r3 /* 803A5BBC 003A181C 54 00 0F FE */ srwi r0, r0, 0x1f @@ -525,15 +525,15 @@ Play__Q210homebutton9RemoteSpkFliSc: /* 803A6008 003A1C68 7F 84 E3 78 */ mr r4, r28 /* 803A600C 003A1C6C 38 A1 00 08 */ addi r5, r1, 8 /* 803A6010 003A1C70 38 63 01 D0 */ addi r3, r3, 0x1d0 -/* 803A6014 003A1C74 4B F4 6D 85 */ bl func_802ECD98 +/* 803A6014 003A1C74 4B F4 6D 85 */ bl ARCFastOpen /* 803A6018 003A1C78 38 61 00 08 */ addi r3, r1, 8 -/* 803A601C 003A1C7C 4B F4 70 31 */ bl func_802ED04C +/* 803A601C 003A1C7C 4B F4 70 31 */ bl ARCGetStartAddrInMem /* 803A6020 003A1C80 7C 7E 1B 78 */ mr r30, r3 /* 803A6024 003A1C84 38 61 00 08 */ addi r3, r1, 8 -/* 803A6028 003A1C88 4B F4 70 39 */ bl func_802ED060 +/* 803A6028 003A1C88 4B F4 70 39 */ bl ARCGetLength /* 803A602C 003A1C8C 7C 7F 1B 78 */ mr r31, r3 /* 803A6030 003A1C90 38 61 00 08 */ addi r3, r1, 8 -/* 803A6034 003A1C94 4B F4 70 35 */ bl func_802ED068 +/* 803A6034 003A1C94 4B F4 70 35 */ bl ARCClose /* 803A6038 003A1C98 1C 7B 00 68 */ mulli r3, r27, 0x68 /* 803A603C 003A1C9C 38 00 00 00 */ li r0, 0 /* 803A6040 003A1CA0 7C 7A 1A 14 */ add r3, r26, r3 diff --git a/asm/SDK/OS/OSReset.s b/asm/SDK/OS/OSReset.s index eb427c6..dc489de 100644 --- a/asm/SDK/OS/OSReset.s +++ b/asm/SDK/OS/OSReset.s @@ -283,7 +283,7 @@ lbl_80270020: /* 80270024 0026BC84 28 03 00 01 */ cmplwi r3, 1 /* 80270028 0026BC88 41 82 FF F8 */ beq lbl_80270020 /* 8027002C 0026BC8C 38 61 00 08 */ addi r3, r1, 8 -/* 80270030 0026BC90 48 07 C4 0D */ bl func_802EC43C +/* 80270030 0026BC90 48 07 C4 0D */ bl SCGetIdleMode /* 80270034 0026BC94 48 00 3C E9 */ bl __OSStopPlayRecord /* 80270038 0026BC98 48 00 35 F5 */ bl __OSUnRegisterStateEvent /* 8027003C 0026BC9C 48 01 C7 F1 */ bl __DVDPrepareReset diff --git a/asm/SDK/SC/scapi.s b/asm/SDK/SC/scapi.s new file mode 100644 index 0000000..1700de2 --- /dev/null +++ b/asm/SDK/SC/scapi.s @@ -0,0 +1,363 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global SCGetAspectRatio +SCGetAspectRatio: +/* 802EC320 002E7F80 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC324 002E7F84 7C 08 02 A6 */ mflr r0 +/* 802EC328 002E7F88 38 80 00 01 */ li r4, 1 +/* 802EC32C 002E7F8C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC330 002E7F90 38 61 00 08 */ addi r3, r1, 8 +/* 802EC334 002E7F94 4B FF F7 75 */ bl SCFindU8Item +/* 802EC338 002E7F98 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC33C 002E7F9C 40 82 00 10 */ bne lbl_802EC34C +/* 802EC340 002E7FA0 38 00 00 00 */ li r0, 0 +/* 802EC344 002E7FA4 98 01 00 08 */ stb r0, 8(r1) +/* 802EC348 002E7FA8 48 00 00 18 */ b lbl_802EC360 +lbl_802EC34C: +/* 802EC34C 002E7FAC 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC350 002E7FB0 28 00 00 01 */ cmplwi r0, 1 +/* 802EC354 002E7FB4 41 82 00 0C */ beq lbl_802EC360 +/* 802EC358 002E7FB8 38 00 00 00 */ li r0, 0 +/* 802EC35C 002E7FBC 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC360: +/* 802EC360 002E7FC0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC364 002E7FC4 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC368 002E7FC8 7C 08 03 A6 */ mtlr r0 +/* 802EC36C 002E7FCC 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC370 002E7FD0 4E 80 00 20 */ blr + +.global SCGetDisplayOffsetH +SCGetDisplayOffsetH: +/* 802EC374 002E7FD4 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC378 002E7FD8 7C 08 02 A6 */ mflr r0 +/* 802EC37C 002E7FDC 38 80 00 05 */ li r4, 5 +/* 802EC380 002E7FE0 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC384 002E7FE4 38 61 00 08 */ addi r3, r1, 8 +/* 802EC388 002E7FE8 4B FF F7 F5 */ bl SCFindS8Item +/* 802EC38C 002E7FEC 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC390 002E7FF0 40 82 00 10 */ bne lbl_802EC3A0 +/* 802EC394 002E7FF4 38 00 00 00 */ li r0, 0 +/* 802EC398 002E7FF8 98 01 00 08 */ stb r0, 8(r1) +/* 802EC39C 002E7FFC 48 00 00 30 */ b lbl_802EC3CC +lbl_802EC3A0: +/* 802EC3A0 002E8000 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC3A4 002E8004 7C 00 07 74 */ extsb r0, r0 +/* 802EC3A8 002E8008 2C 00 FF E0 */ cmpwi r0, -32 +/* 802EC3AC 002E800C 40 80 00 10 */ bge lbl_802EC3BC +/* 802EC3B0 002E8010 38 00 FF E0 */ li r0, -32 +/* 802EC3B4 002E8014 98 01 00 08 */ stb r0, 8(r1) +/* 802EC3B8 002E8018 48 00 00 14 */ b lbl_802EC3CC +lbl_802EC3BC: +/* 802EC3BC 002E801C 2C 00 00 20 */ cmpwi r0, 0x20 +/* 802EC3C0 002E8020 40 81 00 0C */ ble lbl_802EC3CC +/* 802EC3C4 002E8024 38 00 00 20 */ li r0, 0x20 +/* 802EC3C8 002E8028 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC3CC: +/* 802EC3CC 002E802C 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC3D0 002E8030 54 00 00 3C */ rlwinm r0, r0, 0, 0, 0x1e +/* 802EC3D4 002E8034 7C 03 07 74 */ extsb r3, r0 +/* 802EC3D8 002E8038 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC3DC 002E803C 7C 08 03 A6 */ mtlr r0 +/* 802EC3E0 002E8040 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC3E4 002E8044 4E 80 00 20 */ blr + +.global SCGetEuRgb60Mode +SCGetEuRgb60Mode: +/* 802EC3E8 002E8048 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC3EC 002E804C 7C 08 02 A6 */ mflr r0 +/* 802EC3F0 002E8050 38 80 00 06 */ li r4, 6 +/* 802EC3F4 002E8054 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC3F8 002E8058 38 61 00 08 */ addi r3, r1, 8 +/* 802EC3FC 002E805C 4B FF F6 AD */ bl SCFindU8Item +/* 802EC400 002E8060 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC404 002E8064 40 82 00 10 */ bne lbl_802EC414 +/* 802EC408 002E8068 38 00 00 00 */ li r0, 0 +/* 802EC40C 002E806C 98 01 00 08 */ stb r0, 8(r1) +/* 802EC410 002E8070 48 00 00 18 */ b lbl_802EC428 +lbl_802EC414: +/* 802EC414 002E8074 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC418 002E8078 28 00 00 01 */ cmplwi r0, 1 +/* 802EC41C 002E807C 41 82 00 0C */ beq lbl_802EC428 +/* 802EC420 002E8080 38 00 00 00 */ li r0, 0 +/* 802EC424 002E8084 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC428: +/* 802EC428 002E8088 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC42C 002E808C 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC430 002E8090 7C 08 03 A6 */ mtlr r0 +/* 802EC434 002E8094 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC438 002E8098 4E 80 00 20 */ blr + +.global SCGetIdleMode +SCGetIdleMode: +/* 802EC43C 002E809C 38 80 00 02 */ li r4, 2 +/* 802EC440 002E80A0 38 A0 00 09 */ li r5, 9 +/* 802EC444 002E80A4 4B FF F3 48 */ b SCFindByteArrayItem + +.global SCGetLanguage +SCGetLanguage: +/* 802EC448 002E80A8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC44C 002E80AC 7C 08 02 A6 */ mflr r0 +/* 802EC450 002E80B0 38 80 00 0B */ li r4, 0xb +/* 802EC454 002E80B4 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC458 002E80B8 38 61 00 08 */ addi r3, r1, 8 +/* 802EC45C 002E80BC 4B FF F6 4D */ bl SCFindU8Item +/* 802EC460 002E80C0 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC464 002E80C4 40 82 00 28 */ bne lbl_802EC48C +/* 802EC468 002E80C8 48 00 04 91 */ bl SCGetProductArea +/* 802EC46C 002E80CC 7C 60 07 75 */ extsb. r0, r3 +/* 802EC470 002E80D0 40 82 00 10 */ bne lbl_802EC480 +/* 802EC474 002E80D4 38 00 00 00 */ li r0, 0 +/* 802EC478 002E80D8 98 01 00 08 */ stb r0, 8(r1) +/* 802EC47C 002E80DC 48 00 00 24 */ b lbl_802EC4A0 +lbl_802EC480: +/* 802EC480 002E80E0 38 00 00 01 */ li r0, 1 +/* 802EC484 002E80E4 98 01 00 08 */ stb r0, 8(r1) +/* 802EC488 002E80E8 48 00 00 18 */ b lbl_802EC4A0 +lbl_802EC48C: +/* 802EC48C 002E80EC 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC490 002E80F0 28 00 00 09 */ cmplwi r0, 9 +/* 802EC494 002E80F4 40 81 00 0C */ ble lbl_802EC4A0 +/* 802EC498 002E80F8 38 00 00 01 */ li r0, 1 +/* 802EC49C 002E80FC 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC4A0: +/* 802EC4A0 002E8100 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC4A4 002E8104 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC4A8 002E8108 7C 08 03 A6 */ mtlr r0 +/* 802EC4AC 002E810C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC4B0 002E8110 4E 80 00 20 */ blr + +.global SCGetProgressiveMode +SCGetProgressiveMode: +/* 802EC4B4 002E8114 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC4B8 002E8118 7C 08 02 A6 */ mflr r0 +/* 802EC4BC 002E811C 38 80 00 0E */ li r4, 0xe +/* 802EC4C0 002E8120 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC4C4 002E8124 38 61 00 08 */ addi r3, r1, 8 +/* 802EC4C8 002E8128 4B FF F5 E1 */ bl SCFindU8Item +/* 802EC4CC 002E812C 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC4D0 002E8130 40 82 00 10 */ bne lbl_802EC4E0 +/* 802EC4D4 002E8134 38 00 00 00 */ li r0, 0 +/* 802EC4D8 002E8138 98 01 00 08 */ stb r0, 8(r1) +/* 802EC4DC 002E813C 48 00 00 18 */ b lbl_802EC4F4 +lbl_802EC4E0: +/* 802EC4E0 002E8140 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC4E4 002E8144 28 00 00 01 */ cmplwi r0, 1 +/* 802EC4E8 002E8148 41 82 00 0C */ beq lbl_802EC4F4 +/* 802EC4EC 002E814C 38 00 00 00 */ li r0, 0 +/* 802EC4F0 002E8150 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC4F4: +/* 802EC4F4 002E8154 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC4F8 002E8158 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC4FC 002E815C 7C 08 03 A6 */ mtlr r0 +/* 802EC500 002E8160 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC504 002E8164 4E 80 00 20 */ blr + +.global SCGetScreenSaverMode +SCGetScreenSaverMode: +/* 802EC508 002E8168 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC50C 002E816C 7C 08 02 A6 */ mflr r0 +/* 802EC510 002E8170 38 80 00 0F */ li r4, 0xf +/* 802EC514 002E8174 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC518 002E8178 38 61 00 08 */ addi r3, r1, 8 +/* 802EC51C 002E817C 4B FF F5 8D */ bl SCFindU8Item +/* 802EC520 002E8180 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC524 002E8184 40 82 00 10 */ bne lbl_802EC534 +/* 802EC528 002E8188 38 00 00 01 */ li r0, 1 +/* 802EC52C 002E818C 98 01 00 08 */ stb r0, 8(r1) +/* 802EC530 002E8190 48 00 00 18 */ b lbl_802EC548 +lbl_802EC534: +/* 802EC534 002E8194 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC538 002E8198 28 00 00 01 */ cmplwi r0, 1 +/* 802EC53C 002E819C 41 82 00 0C */ beq lbl_802EC548 +/* 802EC540 002E81A0 38 00 00 00 */ li r0, 0 +/* 802EC544 002E81A4 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC548: +/* 802EC548 002E81A8 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC54C 002E81AC 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC550 002E81B0 7C 08 03 A6 */ mtlr r0 +/* 802EC554 002E81B4 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC558 002E81B8 4E 80 00 20 */ blr + +.global SCGetSoundMode +SCGetSoundMode: +/* 802EC55C 002E81BC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC560 002E81C0 7C 08 02 A6 */ mflr r0 +/* 802EC564 002E81C4 38 80 00 11 */ li r4, 0x11 +/* 802EC568 002E81C8 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC56C 002E81CC 38 61 00 08 */ addi r3, r1, 8 +/* 802EC570 002E81D0 4B FF F5 39 */ bl SCFindU8Item +/* 802EC574 002E81D4 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC578 002E81D8 40 82 00 10 */ bne lbl_802EC588 +/* 802EC57C 002E81DC 38 00 00 01 */ li r0, 1 +/* 802EC580 002E81E0 98 01 00 08 */ stb r0, 8(r1) +/* 802EC584 002E81E4 48 00 00 28 */ b lbl_802EC5AC +lbl_802EC588: +/* 802EC588 002E81E8 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC58C 002E81EC 2C 00 00 00 */ cmpwi r0, 0 +/* 802EC590 002E81F0 41 82 00 1C */ beq lbl_802EC5AC +/* 802EC594 002E81F4 28 00 00 01 */ cmplwi r0, 1 +/* 802EC598 002E81F8 41 82 00 14 */ beq lbl_802EC5AC +/* 802EC59C 002E81FC 28 00 00 02 */ cmplwi r0, 2 +/* 802EC5A0 002E8200 41 82 00 0C */ beq lbl_802EC5AC +/* 802EC5A4 002E8204 38 00 00 01 */ li r0, 1 +/* 802EC5A8 002E8208 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC5AC: +/* 802EC5AC 002E820C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC5B0 002E8210 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC5B4 002E8214 7C 08 03 A6 */ mtlr r0 +/* 802EC5B8 002E8218 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC5BC 002E821C 4E 80 00 20 */ blr + +.global SCGetCounterBias +SCGetCounterBias: +/* 802EC5C0 002E8220 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC5C4 002E8224 7C 08 02 A6 */ mflr r0 +/* 802EC5C8 002E8228 38 80 00 00 */ li r4, 0 +/* 802EC5CC 002E822C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC5D0 002E8230 38 61 00 08 */ addi r3, r1, 8 +/* 802EC5D4 002E8234 4B FF F6 7D */ bl SCFindU32Item +/* 802EC5D8 002E8238 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC5DC 002E823C 40 82 00 10 */ bne lbl_802EC5EC +/* 802EC5E0 002E8240 3C 60 0B 4A */ lis r3, 0x0B49D800@ha +/* 802EC5E4 002E8244 38 03 D8 00 */ addi r0, r3, 0x0B49D800@l +/* 802EC5E8 002E8248 90 01 00 08 */ stw r0, 8(r1) +lbl_802EC5EC: +/* 802EC5EC 002E824C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC5F0 002E8250 80 61 00 08 */ lwz r3, 8(r1) +/* 802EC5F4 002E8254 7C 08 03 A6 */ mtlr r0 +/* 802EC5F8 002E8258 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC5FC 002E825C 4E 80 00 20 */ blr + +.global SCGetBtDeviceInfoArray +SCGetBtDeviceInfoArray: +/* 802EC600 002E8260 38 80 04 61 */ li r4, 0x461 +/* 802EC604 002E8264 38 A0 00 1C */ li r5, 0x1c +/* 802EC608 002E8268 4B FF F1 84 */ b SCFindByteArrayItem + +.global SCSetBtDeviceInfoArray +SCSetBtDeviceInfoArray: +/* 802EC60C 002E826C 38 80 04 61 */ li r4, 0x461 +/* 802EC610 002E8270 38 A0 00 1C */ li r5, 0x1c +/* 802EC614 002E8274 4B FF F2 58 */ b SCReplaceByteArrayItem + +.global SCGetBtDpdSensibility +SCGetBtDpdSensibility: +/* 802EC618 002E8278 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC61C 002E827C 7C 08 02 A6 */ mflr r0 +/* 802EC620 002E8280 38 80 00 1D */ li r4, 0x1d +/* 802EC624 002E8284 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC628 002E8288 38 61 00 08 */ addi r3, r1, 8 +/* 802EC62C 002E828C 4B FF F6 25 */ bl SCFindU32Item +/* 802EC630 002E8290 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC634 002E8294 40 82 00 10 */ bne lbl_802EC644 +/* 802EC638 002E8298 38 00 00 02 */ li r0, 2 +/* 802EC63C 002E829C 90 01 00 08 */ stw r0, 8(r1) +/* 802EC640 002E82A0 48 00 00 2C */ b lbl_802EC66C +lbl_802EC644: +/* 802EC644 002E82A4 80 01 00 08 */ lwz r0, 8(r1) +/* 802EC648 002E82A8 28 00 00 01 */ cmplwi r0, 1 +/* 802EC64C 002E82AC 40 80 00 10 */ bge lbl_802EC65C +/* 802EC650 002E82B0 38 00 00 01 */ li r0, 1 +/* 802EC654 002E82B4 90 01 00 08 */ stw r0, 8(r1) +/* 802EC658 002E82B8 48 00 00 14 */ b lbl_802EC66C +lbl_802EC65C: +/* 802EC65C 002E82BC 28 00 00 05 */ cmplwi r0, 5 +/* 802EC660 002E82C0 40 81 00 0C */ ble lbl_802EC66C +/* 802EC664 002E82C4 38 00 00 05 */ li r0, 5 +/* 802EC668 002E82C8 90 01 00 08 */ stw r0, 8(r1) +lbl_802EC66C: +/* 802EC66C 002E82CC 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC670 002E82D0 80 61 00 08 */ lwz r3, 8(r1) +/* 802EC674 002E82D4 7C 08 03 A6 */ mtlr r0 +/* 802EC678 002E82D8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC67C 002E82DC 4E 80 00 20 */ blr + +.global SCGetWpadMotorMode +SCGetWpadMotorMode: +/* 802EC680 002E82E0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC684 002E82E4 7C 08 02 A6 */ mflr r0 +/* 802EC688 002E82E8 38 80 00 1F */ li r4, 0x1f +/* 802EC68C 002E82EC 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC690 002E82F0 38 61 00 08 */ addi r3, r1, 8 +/* 802EC694 002E82F4 4B FF F4 15 */ bl SCFindU8Item +/* 802EC698 002E82F8 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC69C 002E82FC 40 82 00 10 */ bne lbl_802EC6AC +/* 802EC6A0 002E8300 38 00 00 01 */ li r0, 1 +/* 802EC6A4 002E8304 98 01 00 08 */ stb r0, 8(r1) +/* 802EC6A8 002E8308 48 00 00 18 */ b lbl_802EC6C0 +lbl_802EC6AC: +/* 802EC6AC 002E830C 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC6B0 002E8310 28 00 00 01 */ cmplwi r0, 1 +/* 802EC6B4 002E8314 41 82 00 0C */ beq lbl_802EC6C0 +/* 802EC6B8 002E8318 38 00 00 00 */ li r0, 0 +/* 802EC6BC 002E831C 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC6C0: +/* 802EC6C0 002E8320 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC6C4 002E8324 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC6C8 002E8328 7C 08 03 A6 */ mtlr r0 +/* 802EC6CC 002E832C 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC6D0 002E8330 4E 80 00 20 */ blr + +.global SCSetWpadMotorMode +SCSetWpadMotorMode: +/* 802EC6D4 002E8334 38 80 00 1F */ li r4, 0x1f +/* 802EC6D8 002E8338 4B FF F6 4C */ b SCReplaceU8Item + +.global SCGetWpadSensorBarPosition +SCGetWpadSensorBarPosition: +/* 802EC6DC 002E833C 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC6E0 002E8340 7C 08 02 A6 */ mflr r0 +/* 802EC6E4 002E8344 38 80 00 20 */ li r4, 0x20 +/* 802EC6E8 002E8348 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC6EC 002E834C 38 61 00 08 */ addi r3, r1, 8 +/* 802EC6F0 002E8350 4B FF F3 B9 */ bl SCFindU8Item +/* 802EC6F4 002E8354 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC6F8 002E8358 40 82 00 10 */ bne lbl_802EC708 +/* 802EC6FC 002E835C 38 00 00 00 */ li r0, 0 +/* 802EC700 002E8360 98 01 00 08 */ stb r0, 8(r1) +/* 802EC704 002E8364 48 00 00 18 */ b lbl_802EC71C +lbl_802EC708: +/* 802EC708 002E8368 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC70C 002E836C 28 00 00 01 */ cmplwi r0, 1 +/* 802EC710 002E8370 41 82 00 0C */ beq lbl_802EC71C +/* 802EC714 002E8374 38 00 00 00 */ li r0, 0 +/* 802EC718 002E8378 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC71C: +/* 802EC71C 002E837C 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC720 002E8380 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC724 002E8384 7C 08 03 A6 */ mtlr r0 +/* 802EC728 002E8388 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC72C 002E838C 4E 80 00 20 */ blr + +.global SCGetWpadSpeakerVolume +SCGetWpadSpeakerVolume: +/* 802EC730 002E8390 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC734 002E8394 7C 08 02 A6 */ mflr r0 +/* 802EC738 002E8398 38 80 00 1E */ li r4, 0x1e +/* 802EC73C 002E839C 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC740 002E83A0 38 61 00 08 */ addi r3, r1, 8 +/* 802EC744 002E83A4 4B FF F3 65 */ bl SCFindU8Item +/* 802EC748 002E83A8 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC74C 002E83AC 40 82 00 10 */ bne lbl_802EC75C +/* 802EC750 002E83B0 38 00 00 59 */ li r0, 0x59 +/* 802EC754 002E83B4 98 01 00 08 */ stb r0, 8(r1) +/* 802EC758 002E83B8 48 00 00 18 */ b lbl_802EC770 +lbl_802EC75C: +/* 802EC75C 002E83BC 88 01 00 08 */ lbz r0, 8(r1) +/* 802EC760 002E83C0 28 00 00 7F */ cmplwi r0, 0x7f +/* 802EC764 002E83C4 40 81 00 0C */ ble lbl_802EC770 +/* 802EC768 002E83C8 38 00 00 7F */ li r0, 0x7f +/* 802EC76C 002E83CC 98 01 00 08 */ stb r0, 8(r1) +lbl_802EC770: +/* 802EC770 002E83D0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC774 002E83D4 88 61 00 08 */ lbz r3, 8(r1) +/* 802EC778 002E83D8 7C 08 03 A6 */ mtlr r0 +/* 802EC77C 002E83DC 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC780 002E83E0 4E 80 00 20 */ blr + +.global SCSetWpadSpeakerVolume +SCSetWpadSpeakerVolume: +/* 802EC784 002E83E4 38 80 00 1E */ li r4, 0x1e +/* 802EC788 002E83E8 4B FF F5 9C */ b SCReplaceU8Item diff --git a/asm/SDK/SC/scapi_prdinfo.s b/asm/SDK/SC/scapi_prdinfo.s new file mode 100644 index 0000000..c242d6c --- /dev/null +++ b/asm/SDK/SC/scapi_prdinfo.s @@ -0,0 +1,200 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global __SCF1 +__SCF1: +/* 802EC78C 002E83EC 3C C0 73 B6 */ lis r6, 0x73B5DBFA@ha +/* 802EC790 002E83F0 38 00 00 80 */ li r0, 0x80 +/* 802EC794 002E83F4 39 66 DB FA */ addi r11, r6, 0x73B5DBFA@l +/* 802EC798 002E83F8 39 20 00 00 */ li r9, 0 +/* 802EC79C 002E83FC 39 80 00 00 */ li r12, 0 +/* 802EC7A0 002E8400 38 C0 00 00 */ li r6, 0 +/* 802EC7A4 002E8404 39 40 00 00 */ li r10, 0 +/* 802EC7A8 002E8408 7C 09 03 A6 */ mtctr r0 +lbl_802EC7AC: +/* 802EC7AC 002E840C 3D 0A 80 00 */ addis r8, r10, 0x8000 +/* 802EC7B0 002E8410 89 08 38 00 */ lbz r8, 0x3800(r8) +/* 802EC7B4 002E8414 2C 08 00 00 */ cmpwi r8, 0 +/* 802EC7B8 002E8418 41 82 00 48 */ beq lbl_802EC800 +/* 802EC7BC 002E841C 7C E3 60 AE */ lbzx r7, r3, r12 +/* 802EC7C0 002E8420 7D 00 5A 78 */ xor r0, r8, r11 +/* 802EC7C4 002E8424 54 08 06 3E */ clrlwi r8, r0, 0x18 +/* 802EC7C8 002E8428 7C E0 07 75 */ extsb. r0, r7 +/* 802EC7CC 002E842C 40 82 00 14 */ bne lbl_802EC7E0 +/* 802EC7D0 002E8430 28 08 00 3D */ cmplwi r8, 0x3d +/* 802EC7D4 002E8434 40 82 00 0C */ bne lbl_802EC7E0 +/* 802EC7D8 002E8438 39 20 00 01 */ li r9, 1 +/* 802EC7DC 002E843C 48 00 00 9C */ b lbl_802EC878 +lbl_802EC7E0: +/* 802EC7E0 002E8440 7C E7 07 74 */ extsb r7, r7 +/* 802EC7E4 002E8444 38 0C 00 01 */ addi r0, r12, 1 +/* 802EC7E8 002E8448 7D 07 3A 78 */ xor r7, r8, r7 +/* 802EC7EC 002E844C 70 E7 00 DF */ andi. r7, r7, 0xdf +/* 802EC7F0 002E8450 7C E7 00 34 */ cntlzw r7, r7 +/* 802EC7F4 002E8454 54 E7 DF FE */ rlwinm r7, r7, 0x1b, 0x1f, 0x1f +/* 802EC7F8 002E8458 7C E7 00 D0 */ neg r7, r7 +/* 802EC7FC 002E845C 7C 0C 38 38 */ and r12, r0, r7 +lbl_802EC800: +/* 802EC800 002E8460 39 4A 00 01 */ addi r10, r10, 1 +/* 802EC804 002E8464 55 67 0F FE */ srwi r7, r11, 0x1f +/* 802EC808 002E8468 3D 0A 80 00 */ addis r8, r10, 0x8000 +/* 802EC80C 002E846C 55 60 08 3C */ slwi r0, r11, 1 +/* 802EC810 002E8470 89 08 38 00 */ lbz r8, 0x3800(r8) +/* 802EC814 002E8474 7C EB 03 78 */ or r11, r7, r0 +/* 802EC818 002E8478 2C 08 00 00 */ cmpwi r8, 0 +/* 802EC81C 002E847C 41 82 00 48 */ beq lbl_802EC864 +/* 802EC820 002E8480 7C E3 60 AE */ lbzx r7, r3, r12 +/* 802EC824 002E8484 7D 00 5A 78 */ xor r0, r8, r11 +/* 802EC828 002E8488 54 08 06 3E */ clrlwi r8, r0, 0x18 +/* 802EC82C 002E848C 7C E0 07 75 */ extsb. r0, r7 +/* 802EC830 002E8490 40 82 00 14 */ bne lbl_802EC844 +/* 802EC834 002E8494 28 08 00 3D */ cmplwi r8, 0x3d +/* 802EC838 002E8498 40 82 00 0C */ bne lbl_802EC844 +/* 802EC83C 002E849C 39 20 00 01 */ li r9, 1 +/* 802EC840 002E84A0 48 00 00 38 */ b lbl_802EC878 +lbl_802EC844: +/* 802EC844 002E84A4 7C E7 07 74 */ extsb r7, r7 +/* 802EC848 002E84A8 38 0C 00 01 */ addi r0, r12, 1 +/* 802EC84C 002E84AC 7D 07 3A 78 */ xor r7, r8, r7 +/* 802EC850 002E84B0 70 E7 00 DF */ andi. r7, r7, 0xdf +/* 802EC854 002E84B4 7C E7 00 34 */ cntlzw r7, r7 +/* 802EC858 002E84B8 54 E7 DF FE */ rlwinm r7, r7, 0x1b, 0x1f, 0x1f +/* 802EC85C 002E84BC 7C E7 00 D0 */ neg r7, r7 +/* 802EC860 002E84C0 7C 0C 38 38 */ and r12, r0, r7 +lbl_802EC864: +/* 802EC864 002E84C4 55 67 0F FE */ srwi r7, r11, 0x1f +/* 802EC868 002E84C8 55 60 08 3C */ slwi r0, r11, 1 +/* 802EC86C 002E84CC 7C EB 03 78 */ or r11, r7, r0 +/* 802EC870 002E84D0 39 4A 00 01 */ addi r10, r10, 1 +/* 802EC874 002E84D4 42 00 FF 38 */ bdnz lbl_802EC7AC +lbl_802EC878: +/* 802EC878 002E84D8 2C 09 00 00 */ cmpwi r9, 0 +/* 802EC87C 002E84DC 41 82 00 74 */ beq lbl_802EC8F0 +/* 802EC880 002E84E0 39 4A 00 01 */ addi r10, r10, 1 +/* 802EC884 002E84E4 48 00 00 5C */ b lbl_802EC8E0 +lbl_802EC888: +/* 802EC888 002E84E8 3C 6A 80 00 */ addis r3, r10, 0x8000 +/* 802EC88C 002E84EC 55 67 0F FE */ srwi r7, r11, 0x1f +/* 802EC890 002E84F0 88 63 38 00 */ lbz r3, 0x3800(r3) +/* 802EC894 002E84F4 55 60 08 3C */ slwi r0, r11, 1 +/* 802EC898 002E84F8 7C EB 03 78 */ or r11, r7, r0 +/* 802EC89C 002E84FC 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC8A0 002E8500 41 82 00 20 */ beq lbl_802EC8C0 +/* 802EC8A4 002E8504 7C 60 5A 78 */ xor r0, r3, r11 +/* 802EC8A8 002E8508 54 03 06 3E */ clrlwi r3, r0, 0x18 +/* 802EC8AC 002E850C 28 03 00 0D */ cmplwi r3, 0xd +/* 802EC8B0 002E8510 41 82 00 0C */ beq lbl_802EC8BC +/* 802EC8B4 002E8514 28 03 00 0A */ cmplwi r3, 0xa +/* 802EC8B8 002E8518 40 82 00 08 */ bne lbl_802EC8C0 +lbl_802EC8BC: +/* 802EC8BC 002E851C 38 60 00 00 */ li r3, 0 +lbl_802EC8C0: +/* 802EC8C0 002E8520 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC8C4 002E8524 98 64 00 00 */ stb r3, 0(r4) +/* 802EC8C8 002E8528 38 C6 00 01 */ addi r6, r6, 1 +/* 802EC8CC 002E852C 38 84 00 01 */ addi r4, r4, 1 +/* 802EC8D0 002E8530 40 82 00 0C */ bne lbl_802EC8DC +/* 802EC8D4 002E8534 38 60 00 01 */ li r3, 1 +/* 802EC8D8 002E8538 4E 80 00 20 */ blr +lbl_802EC8DC: +/* 802EC8DC 002E853C 39 4A 00 01 */ addi r10, r10, 1 +lbl_802EC8E0: +/* 802EC8E0 002E8540 28 0A 01 00 */ cmplwi r10, 0x100 +/* 802EC8E4 002E8544 40 80 00 0C */ bge lbl_802EC8F0 +/* 802EC8E8 002E8548 7C 06 28 40 */ cmplw r6, r5 +/* 802EC8EC 002E854C 41 80 FF 9C */ blt lbl_802EC888 +lbl_802EC8F0: +/* 802EC8F0 002E8550 38 60 00 00 */ li r3, 0 +/* 802EC8F4 002E8554 4E 80 00 20 */ blr + +.global SCGetProductArea +SCGetProductArea: +/* 802EC8F8 002E8558 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802EC8FC 002E855C 7C 08 02 A6 */ mflr r0 +/* 802EC900 002E8560 38 6D 8B C0 */ addi r3, r13, lbl_8063DE80-_SDA_BASE_ +/* 802EC904 002E8564 38 A0 00 04 */ li r5, 4 +/* 802EC908 002E8568 90 01 00 24 */ stw r0, 0x24(r1) +/* 802EC90C 002E856C 38 81 00 08 */ addi r4, r1, 8 +/* 802EC910 002E8570 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802EC914 002E8574 93 C1 00 18 */ stw r30, 0x18(r1) +/* 802EC918 002E8578 3F C0 80 44 */ lis r30, lbl_80445A38@ha +/* 802EC91C 002E857C 3B DE 5A 38 */ addi r30, r30, lbl_80445A38@l +/* 802EC920 002E8580 4B FF FE 6D */ bl __SCF1 +/* 802EC924 002E8584 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC928 002E8588 41 82 00 38 */ beq lbl_802EC960 +/* 802EC92C 002E858C 48 00 00 24 */ b lbl_802EC950 +lbl_802EC930: +/* 802EC930 002E8590 38 7E 00 01 */ addi r3, r30, 1 +/* 802EC934 002E8594 38 81 00 08 */ addi r4, r1, 8 +/* 802EC938 002E8598 4B EE 1B 15 */ bl strcmp +/* 802EC93C 002E859C 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC940 002E85A0 40 82 00 0C */ bne lbl_802EC94C +/* 802EC944 002E85A4 7F E3 FB 78 */ mr r3, r31 +/* 802EC948 002E85A8 48 00 00 1C */ b lbl_802EC964 +lbl_802EC94C: +/* 802EC94C 002E85AC 3B DE 00 05 */ addi r30, r30, 5 +lbl_802EC950: +/* 802EC950 002E85B0 8B FE 00 00 */ lbz r31, 0(r30) +/* 802EC954 002E85B4 7F E0 07 74 */ extsb r0, r31 +/* 802EC958 002E85B8 2C 00 FF FF */ cmpwi r0, -1 +/* 802EC95C 002E85BC 40 82 FF D4 */ bne lbl_802EC930 +lbl_802EC960: +/* 802EC960 002E85C0 38 60 FF FF */ li r3, -1 +lbl_802EC964: +/* 802EC964 002E85C4 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802EC968 002E85C8 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802EC96C 002E85CC 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 802EC970 002E85D0 7C 08 03 A6 */ mtlr r0 +/* 802EC974 002E85D4 38 21 00 20 */ addi r1, r1, 0x20 +/* 802EC978 002E85D8 4E 80 00 20 */ blr + +.global SCGetProductCode +SCGetProductCode: +/* 802EC97C 002E85DC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 802EC980 002E85E0 7C 08 02 A6 */ mflr r0 +/* 802EC984 002E85E4 38 6D 8B C8 */ addi r3, r13, lbl_8063DE88-_SDA_BASE_ +/* 802EC988 002E85E8 38 8D AF 28 */ addi r4, r13, lbl_806401E8-_SDA_BASE_ +/* 802EC98C 002E85EC 90 01 00 14 */ stw r0, 0x14(r1) +/* 802EC990 002E85F0 38 A0 00 06 */ li r5, 6 +/* 802EC994 002E85F4 4B FF FD F9 */ bl __SCF1 +/* 802EC998 002E85F8 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC99C 002E85FC 38 60 00 00 */ li r3, 0 +/* 802EC9A0 002E8600 41 82 00 08 */ beq lbl_802EC9A8 +/* 802EC9A4 002E8604 38 6D AF 28 */ addi r3, r13, lbl_806401E8-_SDA_BASE_ +lbl_802EC9A8: +/* 802EC9A8 002E8608 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802EC9AC 002E860C 7C 08 03 A6 */ mtlr r0 +/* 802EC9B0 002E8610 38 21 00 10 */ addi r1, r1, 0x10 +/* 802EC9B4 002E8614 4E 80 00 20 */ blr + +.global SCGetProductSN +SCGetProductSN: +/* 802EC9B8 002E8618 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802EC9BC 002E861C 7C 08 02 A6 */ mflr r0 +/* 802EC9C0 002E8620 38 A0 00 0B */ li r5, 0xb +/* 802EC9C4 002E8624 90 01 00 24 */ stw r0, 0x24(r1) +/* 802EC9C8 002E8628 38 81 00 08 */ addi r4, r1, 8 +/* 802EC9CC 002E862C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802EC9D0 002E8630 7C 7F 1B 78 */ mr r31, r3 +/* 802EC9D4 002E8634 38 6D 8B D0 */ addi r3, r13, lbl_8063DE90-_SDA_BASE_ +/* 802EC9D8 002E8638 4B FF FD B5 */ bl __SCF1 +/* 802EC9DC 002E863C 2C 03 00 00 */ cmpwi r3, 0 +/* 802EC9E0 002E8640 41 82 00 28 */ beq lbl_802ECA08 +/* 802EC9E4 002E8644 7F E5 FB 78 */ mr r5, r31 +/* 802EC9E8 002E8648 38 61 00 08 */ addi r3, r1, 8 +/* 802EC9EC 002E864C 38 8D 8B D8 */ addi r4, r13, lbl_8063DE98-_SDA_BASE_ +/* 802EC9F0 002E8650 4C C6 31 82 */ crclr 6 +/* 802EC9F4 002E8654 4B EE 18 15 */ bl sscanf +/* 802EC9F8 002E8658 2C 03 00 01 */ cmpwi r3, 1 +/* 802EC9FC 002E865C 40 82 00 0C */ bne lbl_802ECA08 +/* 802ECA00 002E8660 38 60 00 01 */ li r3, 1 +/* 802ECA04 002E8664 48 00 00 08 */ b lbl_802ECA0C +lbl_802ECA08: +/* 802ECA08 002E8668 38 60 00 00 */ li r3, 0 +lbl_802ECA0C: +/* 802ECA0C 002E866C 80 01 00 24 */ lwz r0, 0x24(r1) +/* 802ECA10 002E8670 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 802ECA14 002E8674 7C 08 03 A6 */ mtlr r0 +/* 802ECA18 002E8678 38 21 00 20 */ addi r1, r1, 0x20 +/* 802ECA1C 002E867C 4E 80 00 20 */ blr diff --git a/asm/SDK/VI/vi.s b/asm/SDK/VI/vi.s index c1708c0..e2ae773 100644 --- a/asm/SDK/VI/vi.s +++ b/asm/SDK/VI/vi.s @@ -1063,7 +1063,7 @@ lbl_80278224: /* 8027836C 00273FCC 7C A3 1B 78 */ or r3, r5, r3 /* 80278370 00273FD0 B0 7E 20 64 */ sth r3, 0x2064(r30) /* 80278374 00273FD4 B0 1E 20 70 */ sth r0, 0x2070(r30) -/* 80278378 00273FD8 48 07 3F FD */ bl func_802EC374 +/* 80278378 00273FD8 48 07 3F FD */ bl SCGetDisplayOffsetH /* 8027837C 00273FDC 7C 60 07 74 */ extsb r0, r3 /* 80278380 00273FE0 B3 AD A8 EE */ sth r29, lbl_8063FBAE-_SDA_BASE_(r13) /* 80278384 00273FE4 3C 60 80 00 */ lis r3, 0x800000CC@ha @@ -1294,7 +1294,7 @@ lbl_802786C4: /* 802786DC 0027433C 90 0D A8 CC */ stw r0, lbl_8063FB8C-_SDA_BASE_(r13) /* 802786E0 00274340 90 6D A8 E4 */ stw r3, lbl_8063FBA4-_SDA_BASE_(r13) /* 802786E4 00274344 80 0D A9 60 */ lwz r0, lbl_8063FC20-_SDA_BASE_(r13) -/* 802786E8 00274348 48 07 3E 21 */ bl func_802EC508 +/* 802786E8 00274348 48 07 3E 21 */ bl SCGetScreenSaverMode /* 802786EC 0027434C 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 802786F0 00274350 40 82 00 08 */ bne lbl_802786F8 /* 802786F4 00274354 3B 60 00 00 */ li r27, 0 @@ -2852,7 +2852,7 @@ VIEnableDimming: /* 80279D1C 0027597C 7C 7E 1B 78 */ mr r30, r3 /* 80279D20 00275980 83 ED A9 60 */ lwz r31, lbl_8063FC20-_SDA_BASE_(r13) /* 80279D24 00275984 40 82 00 14 */ bne lbl_80279D38 -/* 80279D28 00275988 48 07 27 E1 */ bl func_802EC508 +/* 80279D28 00275988 48 07 27 E1 */ bl SCGetScreenSaverMode /* 80279D2C 0027598C 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80279D30 00275990 40 82 00 08 */ bne lbl_80279D38 /* 80279D34 00275994 3B C0 00 00 */ li r30, 0 diff --git a/asm/SDK/WENC/wenc.s b/asm/SDK/WENC/wenc.s new file mode 100644 index 0000000..2182756 --- /dev/null +++ b/asm/SDK/WENC/wenc.s @@ -0,0 +1,202 @@ +.include "macros.inc" + +.section .text, "ax" # 0x80006980 - 0x803E1E60 + +.global WENCGetEncodeData +WENCGetEncodeData: +/* 802ECA20 002E8680 94 21 FF 70 */ stwu r1, -0x90(r1) +/* 802ECA24 002E8684 7C 08 02 A6 */ mflr r0 +/* 802ECA28 002E8688 90 01 00 94 */ stw r0, 0x94(r1) +/* 802ECA2C 002E868C 39 61 00 90 */ addi r11, r1, 0x90 +/* 802ECA30 002E8690 4B ED A6 D5 */ bl _savegpr_18 +/* 802ECA34 002E8694 3D 40 80 40 */ lis r10, lbl_80400004@ha +/* 802ECA38 002E8698 85 2A E0 B8 */ lwzu r9, -0x1f48(r10) +/* 802ECA3C 002E869C 39 66 00 01 */ addi r11, r6, 1 +/* 802ECA40 002E86A0 7C 99 23 78 */ mr r25, r4 +/* 802ECA44 002E86A4 55 64 0F FE */ srwi r4, r11, 0x1f +/* 802ECA48 002E86A8 81 0A 00 04 */ lwz r8, lbl_80400004@l(r10) +/* 802ECA4C 002E86AC 7C FF 3B 78 */ mr r31, r7 +/* 802ECA50 002E86B0 80 0A 00 08 */ lwz r0, 8(r10) +/* 802ECA54 002E86B4 7C 84 5A 14 */ add r4, r4, r11 +/* 802ECA58 002E86B8 82 4A 00 0C */ lwz r18, 0xc(r10) +/* 802ECA5C 002E86BC 83 6A 00 10 */ lwz r27, 0x10(r10) +/* 802ECA60 002E86C0 7C DE 33 78 */ mr r30, r6 +/* 802ECA64 002E86C4 83 4A 00 14 */ lwz r26, 0x14(r10) +/* 802ECA68 002E86C8 7C 7C 1B 78 */ mr r28, r3 +/* 802ECA6C 002E86CC 83 0A 00 18 */ lwz r24, 0x18(r10) +/* 802ECA70 002E86D0 7C BD 2B 78 */ mr r29, r5 +/* 802ECA74 002E86D4 82 EA 00 1C */ lwz r23, 0x1c(r10) +/* 802ECA78 002E86D8 7C 85 0E 70 */ srawi r5, r4, 1 +/* 802ECA7C 002E86DC 82 CA 00 20 */ lwz r22, 0x20(r10) +/* 802ECA80 002E86E0 7F E3 FB 78 */ mr r3, r31 +/* 802ECA84 002E86E4 82 AA 00 24 */ lwz r21, 0x24(r10) +/* 802ECA88 002E86E8 38 80 00 00 */ li r4, 0 +/* 802ECA8C 002E86EC 82 8A 00 28 */ lwz r20, 0x28(r10) +/* 802ECA90 002E86F0 82 6A 00 2C */ lwz r19, 0x2c(r10) +/* 802ECA94 002E86F4 81 8A 00 30 */ lwz r12, 0x30(r10) +/* 802ECA98 002E86F8 81 6A 00 34 */ lwz r11, 0x34(r10) +/* 802ECA9C 002E86FC 80 EA 00 38 */ lwz r7, 0x38(r10) +/* 802ECAA0 002E8700 80 CA 00 3C */ lwz r6, 0x3c(r10) +/* 802ECAA4 002E8704 91 21 00 08 */ stw r9, 8(r1) +/* 802ECAA8 002E8708 91 01 00 0C */ stw r8, 0xc(r1) +/* 802ECAAC 002E870C 90 01 00 10 */ stw r0, 0x10(r1) +/* 802ECAB0 002E8710 92 41 00 14 */ stw r18, 0x14(r1) +/* 802ECAB4 002E8714 93 61 00 18 */ stw r27, 0x18(r1) +/* 802ECAB8 002E8718 93 41 00 1C */ stw r26, 0x1c(r1) +/* 802ECABC 002E871C 93 01 00 20 */ stw r24, 0x20(r1) +/* 802ECAC0 002E8720 92 E1 00 24 */ stw r23, 0x24(r1) +/* 802ECAC4 002E8724 92 C1 00 28 */ stw r22, 0x28(r1) +/* 802ECAC8 002E8728 92 A1 00 2C */ stw r21, 0x2c(r1) +/* 802ECACC 002E872C 92 81 00 30 */ stw r20, 0x30(r1) +/* 802ECAD0 002E8730 92 61 00 34 */ stw r19, 0x34(r1) +/* 802ECAD4 002E8734 91 81 00 38 */ stw r12, 0x38(r1) +/* 802ECAD8 002E8738 91 61 00 3C */ stw r11, 0x3c(r1) +/* 802ECADC 002E873C 90 E1 00 40 */ stw r7, 0x40(r1) +/* 802ECAE0 002E8740 90 C1 00 44 */ stw r6, 0x44(r1) +/* 802ECAE4 002E8744 4B D1 76 21 */ bl memset +/* 802ECAE8 002E8748 57 20 07 FF */ clrlwi. r0, r25, 0x1f +/* 802ECAEC 002E874C 40 82 00 20 */ bne lbl_802ECB0C +/* 802ECAF0 002E8750 39 60 00 00 */ li r11, 0 +/* 802ECAF4 002E8754 39 80 00 7F */ li r12, 0x7f +/* 802ECAF8 002E8758 38 A0 00 00 */ li r5, 0 +/* 802ECAFC 002E875C 3B 60 00 00 */ li r27, 0 +/* 802ECB00 002E8760 3B 40 00 00 */ li r26, 0 +/* 802ECB04 002E8764 3B 20 00 00 */ li r25, 0 +/* 802ECB08 002E8768 48 00 00 1C */ b lbl_802ECB24 +lbl_802ECB0C: +/* 802ECB0C 002E876C 81 7C 00 00 */ lwz r11, 0(r28) +/* 802ECB10 002E8770 81 9C 00 04 */ lwz r12, 4(r28) +/* 802ECB14 002E8774 80 BC 00 08 */ lwz r5, 8(r28) +/* 802ECB18 002E8778 83 7C 00 0C */ lwz r27, 0xc(r28) +/* 802ECB1C 002E877C 83 5C 00 10 */ lwz r26, 0x10(r28) +/* 802ECB20 002E8780 83 3C 00 14 */ lwz r25, 0x14(r28) +lbl_802ECB24: +/* 802ECB24 002E8784 3C 60 00 01 */ lis r3, 0x0000FFFF@ha +/* 802ECB28 002E8788 3B 01 00 08 */ addi r24, r1, 8 +/* 802ECB2C 002E878C C8 42 A4 90 */ lfd f2, lbl_80642A90-_SDA2_BASE_(r2) +/* 802ECB30 002E8790 38 83 FF FF */ addi r4, r3, 0x0000FFFF@l +/* 802ECB34 002E8794 38 C0 00 00 */ li r6, 0 +/* 802ECB38 002E8798 3C 00 FF FF */ lis r0, 0xffff +/* 802ECB3C 002E879C 3E E0 43 30 */ lis r23, 0x4330 +/* 802ECB40 002E87A0 7F C9 03 A6 */ mtctr r30 +/* 802ECB44 002E87A4 2C 1E 00 00 */ cmpwi r30, 0 +/* 802ECB48 002E87A8 40 81 01 7C */ ble lbl_802ECCC4 +lbl_802ECB4C: +/* 802ECB4C 002E87AC A8 BD 00 00 */ lha r5, 0(r29) +/* 802ECB50 002E87B0 39 40 00 00 */ li r10, 0 +/* 802ECB54 002E87B4 39 20 00 00 */ li r9, 0 +/* 802ECB58 002E87B8 39 00 00 00 */ li r8, 0 +/* 802ECB5C 002E87BC 7C 05 58 00 */ cmpw r5, r11 +/* 802ECB60 002E87C0 38 E0 00 00 */ li r7, 0 +/* 802ECB64 002E87C4 3B BD 00 02 */ addi r29, r29, 2 +/* 802ECB68 002E87C8 40 80 00 08 */ bge lbl_802ECB70 +/* 802ECB6C 002E87CC 38 E0 00 01 */ li r7, 1 +lbl_802ECB70: +/* 802ECB70 002E87D0 7E 6B 28 50 */ subf r19, r11, r5 +/* 802ECB74 002E87D4 7E 65 FE 70 */ srawi r5, r19, 0x1f +/* 802ECB78 002E87D8 7C BB 9A 78 */ xor r27, r5, r19 +/* 802ECB7C 002E87DC 7F 65 D8 50 */ subf r27, r5, r27 +/* 802ECB80 002E87E0 7C 1B 60 00 */ cmpw r27, r12 +/* 802ECB84 002E87E4 41 80 00 0C */ blt lbl_802ECB90 +/* 802ECB88 002E87E8 39 00 00 01 */ li r8, 1 +/* 802ECB8C 002E87EC 7F 6C D8 50 */ subf r27, r12, r27 +lbl_802ECB90: +/* 802ECB90 002E87F0 55 85 0F FE */ srwi r5, r12, 0x1f +/* 802ECB94 002E87F4 7C A5 62 14 */ add r5, r5, r12 +/* 802ECB98 002E87F8 7C BA 0E 70 */ srawi r26, r5, 1 +/* 802ECB9C 002E87FC 7C 1B D0 00 */ cmpw r27, r26 +/* 802ECBA0 002E8800 41 80 00 0C */ blt lbl_802ECBAC +/* 802ECBA4 002E8804 39 20 00 01 */ li r9, 1 +/* 802ECBA8 002E8808 7F 7A D8 50 */ subf r27, r26, r27 +lbl_802ECBAC: +/* 802ECBAC 002E880C 57 45 0F FE */ srwi r5, r26, 0x1f +/* 802ECBB0 002E8810 7C A5 D2 14 */ add r5, r5, r26 +/* 802ECBB4 002E8814 7C B9 0E 70 */ srawi r25, r5, 1 +/* 802ECBB8 002E8818 7C 1B C8 00 */ cmpw r27, r25 +/* 802ECBBC 002E881C 41 80 00 0C */ blt lbl_802ECBC8 +/* 802ECBC0 002E8820 39 40 00 01 */ li r10, 1 +/* 802ECBC4 002E8824 7F 79 D8 50 */ subf r27, r25, r27 +lbl_802ECBC8: +/* 802ECBC8 002E8828 7E 99 51 D6 */ mullw r20, r25, r10 +/* 802ECBCC 002E882C 54 E5 08 3C */ slwi r5, r7, 1 +/* 802ECBD0 002E8830 57 33 0F FE */ srwi r19, r25, 0x1f +/* 802ECBD4 002E8834 20 A5 00 01 */ subfic r5, r5, 1 +/* 802ECBD8 002E8838 7E 73 CA 14 */ add r19, r19, r25 +/* 802ECBDC 002E883C 7E AC 41 D6 */ mullw r21, r12, r8 +/* 802ECBE0 002E8840 7E 73 0E 70 */ srawi r19, r19, 1 +/* 802ECBE4 002E8844 7E DA 49 D6 */ mullw r22, r26, r9 +/* 802ECBE8 002E8848 7E B4 AA 14 */ add r21, r20, r21 +/* 802ECBEC 002E884C 7E D3 B2 14 */ add r22, r19, r22 +/* 802ECBF0 002E8850 7E D5 B2 14 */ add r22, r21, r22 +/* 802ECBF4 002E8854 7C A5 B1 D6 */ mullw r5, r5, r22 +/* 802ECBF8 002E8858 7C 05 20 00 */ cmpw r5, r4 +/* 802ECBFC 002E885C 40 81 00 08 */ ble lbl_802ECC04 +/* 802ECC00 002E8860 38 A3 FF FF */ addi r5, r3, -1 +lbl_802ECC04: +/* 802ECC04 002E8864 7C 05 00 00 */ cmpw r5, r0 +/* 802ECC08 002E8868 40 80 00 08 */ bge lbl_802ECC10 +/* 802ECC0C 002E886C 3C A0 FF FF */ lis r5, 0xffff +lbl_802ECC10: +/* 802ECC10 002E8870 7D 6B 2A 14 */ add r11, r11, r5 +/* 802ECC14 002E8874 2C 0B 7F FF */ cmpwi r11, 0x7fff +/* 802ECC18 002E8878 40 81 00 08 */ ble lbl_802ECC20 +/* 802ECC1C 002E887C 39 60 7F FF */ li r11, 0x7fff +lbl_802ECC20: +/* 802ECC20 002E8880 2C 0B 80 00 */ cmpwi r11, -32768 +/* 802ECC24 002E8884 40 80 00 08 */ bge lbl_802ECC2C +/* 802ECC28 002E8888 39 60 80 00 */ li r11, -32768 +lbl_802ECC2C: +/* 802ECC2C 002E888C 6D 8C 80 00 */ xoris r12, r12, 0x8000 +/* 802ECC30 002E8890 55 12 10 3A */ slwi r18, r8, 2 +/* 802ECC34 002E8894 91 81 00 4C */ stw r12, 0x4c(r1) +/* 802ECC38 002E8898 54 D6 07 FE */ clrlwi r22, r6, 0x1f +/* 802ECC3C 002E889C 55 29 08 3C */ slwi r9, r9, 1 +/* 802ECC40 002E88A0 7D 0A 92 14 */ add r8, r10, r18 +/* 802ECC44 002E88A4 92 E1 00 48 */ stw r23, 0x48(r1) +/* 802ECC48 002E88A8 7D 09 42 14 */ add r8, r9, r8 +/* 802ECC4C 002E88AC 55 08 18 38 */ slwi r8, r8, 3 +/* 802ECC50 002E88B0 54 CC 0F FE */ srwi r12, r6, 0x1f +/* 802ECC54 002E88B4 C8 21 00 48 */ lfd f1, 0x48(r1) +/* 802ECC58 002E88B8 7D 29 92 14 */ add r9, r9, r18 +/* 802ECC5C 002E88BC 7C 18 44 AE */ lfdx f0, r24, r8 +/* 802ECC60 002E88C0 7D 0C 32 14 */ add r8, r12, r6 +/* 802ECC64 002E88C4 FC 21 10 28 */ fsub f1, f1, f2 +/* 802ECC68 002E88C8 7D 0C 0E 70 */ srawi r12, r8, 1 +/* 802ECC6C 002E88CC 54 E8 18 38 */ slwi r8, r7, 3 +/* 802ECC70 002E88D0 7C EA 4A 14 */ add r7, r10, r9 +/* 802ECC74 002E88D4 7C E8 3A 14 */ add r7, r8, r7 +/* 802ECC78 002E88D8 3A D6 FF FF */ addi r22, r22, -1 +/* 802ECC7C 002E88DC FC 01 00 32 */ fmul f0, f1, f0 +/* 802ECC80 002E88E0 56 C9 07 7A */ rlwinm r9, r22, 0, 0x1d, 0x1d +/* 802ECC84 002E88E4 54 E7 06 3E */ clrlwi r7, r7, 0x18 +/* 802ECC88 002E88E8 7D 1F 60 AE */ lbzx r8, r31, r12 +/* 802ECC8C 002E88EC 7C E7 48 30 */ slw r7, r7, r9 +/* 802ECC90 002E88F0 7D 07 3B 78 */ or r7, r8, r7 +/* 802ECC94 002E88F4 FC 00 00 1E */ fctiwz f0, f0 +/* 802ECC98 002E88F8 7C FF 61 AE */ stbx r7, r31, r12 +/* 802ECC9C 002E88FC D8 01 00 50 */ stfd f0, 0x50(r1) +/* 802ECCA0 002E8900 81 81 00 54 */ lwz r12, 0x54(r1) +/* 802ECCA4 002E8904 2C 0C 00 7F */ cmpwi r12, 0x7f +/* 802ECCA8 002E8908 41 81 00 08 */ bgt lbl_802ECCB0 +/* 802ECCAC 002E890C 39 80 00 7F */ li r12, 0x7f +lbl_802ECCB0: +/* 802ECCB0 002E8910 2C 0C 60 00 */ cmpwi r12, 0x6000 +/* 802ECCB4 002E8914 41 80 00 08 */ blt lbl_802ECCBC +/* 802ECCB8 002E8918 39 80 60 00 */ li r12, 0x6000 +lbl_802ECCBC: +/* 802ECCBC 002E891C 38 C6 00 01 */ addi r6, r6, 1 +/* 802ECCC0 002E8920 42 00 FE 8C */ bdnz lbl_802ECB4C +lbl_802ECCC4: +/* 802ECCC4 002E8924 91 7C 00 00 */ stw r11, 0(r28) +/* 802ECCC8 002E8928 39 61 00 90 */ addi r11, r1, 0x90 +/* 802ECCCC 002E892C 7F C3 F3 78 */ mr r3, r30 +/* 802ECCD0 002E8930 91 9C 00 04 */ stw r12, 4(r28) +/* 802ECCD4 002E8934 90 BC 00 08 */ stw r5, 8(r28) +/* 802ECCD8 002E8938 93 7C 00 0C */ stw r27, 0xc(r28) +/* 802ECCDC 002E893C 93 5C 00 10 */ stw r26, 0x10(r28) +/* 802ECCE0 002E8940 93 3C 00 14 */ stw r25, 0x14(r28) +/* 802ECCE4 002E8944 4B ED A4 6D */ bl _restgpr_18 +/* 802ECCE8 002E8948 80 01 00 94 */ lwz r0, 0x94(r1) +/* 802ECCEC 002E894C 7C 08 03 A6 */ mtlr r0 +/* 802ECCF0 002E8950 38 21 00 90 */ addi r1, r1, 0x90 +/* 802ECCF4 002E8954 4E 80 00 20 */ blr diff --git a/asm/SDK/WPAD/WPAD.s b/asm/SDK/WPAD/WPAD.s index 0dca761..638cbe5 100644 --- a/asm/SDK/WPAD/WPAD.s +++ b/asm/SDK/WPAD/WPAD.s @@ -1793,7 +1793,7 @@ lbl_802A748C: /* 802A750C 002A316C 40 82 00 28 */ bne lbl_802A7534 /* 802A7510 002A3170 3C 60 80 54 */ lis r3, lbl_8053AC28@ha /* 802A7514 002A3174 38 63 AC 28 */ addi r3, r3, lbl_8053AC28@l -/* 802A7518 002A3178 48 04 50 F5 */ bl func_802EC60C +/* 802A7518 002A3178 48 04 50 F5 */ bl SCSetBtDeviceInfoArray /* 802A751C 002A317C 2C 03 00 01 */ cmpwi r3, 1 /* 802A7520 002A3180 40 82 00 14 */ bne lbl_802A7534 /* 802A7524 002A3184 38 60 00 00 */ li r3, 0 @@ -1807,7 +1807,7 @@ lbl_802A7534: /* 802A7540 002A31A0 48 04 34 AD */ bl SCCheckStatus /* 802A7544 002A31A4 2C 03 00 00 */ cmpwi r3, 0 /* 802A7548 002A31A8 40 82 00 88 */ bne lbl_802A75D0 -/* 802A754C 002A31AC 48 04 50 CD */ bl func_802EC618 +/* 802A754C 002A31AC 48 04 50 CD */ bl SCGetBtDpdSensibility /* 802A7550 002A31B0 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 802A7554 002A31B4 28 00 00 01 */ cmplwi r0, 1 /* 802A7558 002A31B8 40 80 00 08 */ bge ENCiCheckBreakType @@ -1818,19 +1818,19 @@ ENCiCheckBreakType: /* 802A7568 002A31C8 38 00 00 05 */ li r0, 5 lbl_802A756C: /* 802A756C 002A31CC 98 0D AE 61 */ stb r0, lbl_80640121-_SDA_BASE_(r13) -/* 802A7570 002A31D0 48 04 51 6D */ bl func_802EC6DC +/* 802A7570 002A31D0 48 04 51 6D */ bl SCGetWpadSensorBarPosition /* 802A7574 002A31D4 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 802A7578 002A31D8 38 03 FF FF */ addi r0, r3, -1 /* 802A757C 002A31DC 7C 00 00 34 */ cntlzw r0, r0 /* 802A7580 002A31E0 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f /* 802A7584 002A31E4 98 0D AE 60 */ stb r0, lbl_80640120-_SDA_BASE_(r13) -/* 802A7588 002A31E8 48 04 50 F9 */ bl func_802EC680 +/* 802A7588 002A31E8 48 04 50 F9 */ bl SCGetWpadMotorMode /* 802A758C 002A31EC 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 802A7590 002A31F0 38 03 FF FF */ addi r0, r3, -1 /* 802A7594 002A31F4 7C 00 00 34 */ cntlzw r0, r0 /* 802A7598 002A31F8 54 00 D9 7E */ srwi r0, r0, 5 /* 802A759C 002A31FC 90 0D AE 5C */ stw r0, lbl_8064011C-_SDA_BASE_(r13) -/* 802A75A0 002A3200 48 04 51 91 */ bl func_802EC730 +/* 802A75A0 002A3200 48 04 51 91 */ bl SCGetWpadSpeakerVolume /* 802A75A4 002A3204 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 802A75A8 002A3208 7C 64 1B 78 */ mr r4, r3 /* 802A75AC 002A320C 40 82 00 08 */ bne lbl_802A75B4 @@ -2091,7 +2091,7 @@ lbl_802A7924: /* 802A7978 002A35D8 90 6D AE 54 */ stw r3, lbl_80640114-_SDA_BASE_(r13) /* 802A797C 002A35DC 4B FC 1D 31 */ bl OSGetAppType /* 802A7980 002A35E0 98 6D AE 58 */ stb r3, lbl_80640118-_SDA_BASE_(r13) -/* 802A7984 002A35E4 48 04 4C 95 */ bl func_802EC618 +/* 802A7984 002A35E4 48 04 4C 95 */ bl SCGetBtDpdSensibility /* 802A7988 002A35E8 54 60 06 3E */ clrlwi r0, r3, 0x18 /* 802A798C 002A35EC 28 00 00 01 */ cmplwi r0, 1 /* 802A7990 002A35F0 40 80 00 08 */ bge lbl_802A7998 @@ -2102,19 +2102,19 @@ lbl_802A7998: /* 802A79A0 002A3600 38 00 00 05 */ li r0, 5 lbl_802A79A4: /* 802A79A4 002A3604 98 0D AE 61 */ stb r0, lbl_80640121-_SDA_BASE_(r13) -/* 802A79A8 002A3608 48 04 4D 35 */ bl func_802EC6DC +/* 802A79A8 002A3608 48 04 4D 35 */ bl SCGetWpadSensorBarPosition /* 802A79AC 002A360C 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 802A79B0 002A3610 38 03 FF FF */ addi r0, r3, -1 /* 802A79B4 002A3614 7C 00 00 34 */ cntlzw r0, r0 /* 802A79B8 002A3618 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f /* 802A79BC 002A361C 98 0D AE 60 */ stb r0, lbl_80640120-_SDA_BASE_(r13) -/* 802A79C0 002A3620 48 04 4C C1 */ bl func_802EC680 +/* 802A79C0 002A3620 48 04 4C C1 */ bl SCGetWpadMotorMode /* 802A79C4 002A3624 54 63 06 3E */ clrlwi r3, r3, 0x18 /* 802A79C8 002A3628 38 03 FF FF */ addi r0, r3, -1 /* 802A79CC 002A362C 7C 00 00 34 */ cntlzw r0, r0 /* 802A79D0 002A3630 54 00 D9 7E */ srwi r0, r0, 5 /* 802A79D4 002A3634 90 0D AE 5C */ stw r0, lbl_8064011C-_SDA_BASE_(r13) -/* 802A79D8 002A3638 48 04 4D 59 */ bl func_802EC730 +/* 802A79D8 002A3638 48 04 4D 59 */ bl SCGetWpadSpeakerVolume /* 802A79DC 002A363C 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 802A79E0 002A3640 7C 66 1B 78 */ mr r6, r3 /* 802A79E4 002A3644 40 82 00 08 */ bne lbl_802A79EC @@ -4089,10 +4089,10 @@ lbl_802A95F4: /* 802A9608 002A5268 54 1F 0F FE */ srwi r31, r0, 0x1f /* 802A960C 002A526C 4B FC 51 79 */ bl OSRestoreInterrupts /* 802A9610 002A5270 7F C3 F3 78 */ mr r3, r30 -/* 802A9614 002A5274 48 04 31 71 */ bl func_802EC784 +/* 802A9614 002A5274 48 04 31 71 */ bl SCSetWpadSpeakerVolume /* 802A9618 002A5278 54 7E 07 FE */ clrlwi r30, r3, 0x1f /* 802A961C 002A527C 7F E3 FB 78 */ mr r3, r31 -/* 802A9620 002A5280 48 04 30 B5 */ bl func_802EC6D4 +/* 802A9620 002A5280 48 04 30 B5 */ bl SCSetWpadMotorMode /* 802A9624 002A5284 7F DE 18 39 */ and. r30, r30, r3 /* 802A9628 002A5288 41 82 00 10 */ beq lbl_802A9638 /* 802A962C 002A528C 7F A3 EB 78 */ mr r3, r29 diff --git a/asm/SDK/WUD/WUD.s b/asm/SDK/WUD/WUD.s index 124808a..9a03248 100644 --- a/asm/SDK/WUD/WUD.s +++ b/asm/SDK/WUD/WUD.s @@ -296,7 +296,7 @@ lbl_802B50A8: /* 802B50C0 002B0D20 48 00 44 BD */ bl WUD_DEBUGPrint /* 802B50C4 002B0D24 3C 60 80 54 */ lis r3, lbl_8053AC28@ha /* 802B50C8 002B0D28 38 63 AC 28 */ addi r3, r3, lbl_8053AC28@l -/* 802B50CC 002B0D2C 48 03 75 41 */ bl func_802EC60C +/* 802B50CC 002B0D2C 48 03 75 41 */ bl SCSetBtDeviceInfoArray /* 802B50D0 002B0D30 2C 03 00 00 */ cmpwi r3, 0 /* 802B50D4 002B0D34 38 60 00 16 */ li r3, 0x16 /* 802B50D8 002B0D38 41 82 00 08 */ beq lbl_802B50E0 @@ -1156,7 +1156,7 @@ DeleteAllHandler: /* 802B5CA0 002B1900 38 A0 04 61 */ li r5, 0x461 /* 802B5CA4 002B1904 4B D4 E4 61 */ bl memset /* 802B5CA8 002B1908 38 7F AC 28 */ addi r3, r31, -21464 -/* 802B5CAC 002B190C 48 03 69 61 */ bl func_802EC60C +/* 802B5CAC 002B190C 48 03 69 61 */ bl SCSetBtDeviceInfoArray /* 802B5CB0 002B1910 2C 03 00 00 */ cmpwi r3, 0 /* 802B5CB4 002B1914 41 82 00 70 */ beq lbl_802B5D24 /* 802B5CB8 002B1918 38 00 00 06 */ li r0, 6 @@ -1439,7 +1439,7 @@ WUDiGetRegisteredDevice: /* 802B6090 002B1CF0 38 A0 04 61 */ li r5, 0x461 /* 802B6094 002B1CF4 4B D4 E0 71 */ bl memset /* 802B6098 002B1CF8 38 7A AC 28 */ addi r3, r26, -21464 -/* 802B609C 002B1CFC 48 03 65 65 */ bl func_802EC600 +/* 802B609C 002B1CFC 48 03 65 65 */ bl SCGetBtDeviceInfoArray /* 802B60A0 002B1D00 38 7A AC 28 */ addi r3, r26, -21464 /* 802B60A4 002B1D04 3A C0 00 00 */ li r22, 0 /* 802B60A8 002B1D08 3B 03 00 01 */ addi r24, r3, 1 @@ -1598,7 +1598,7 @@ lbl_802B62C4: /* 802B62CC 002B1F2C 41 82 00 2C */ beq lbl_802B62F8 /* 802B62D0 002B1F30 3C 60 80 54 */ lis r3, lbl_8053AC28@ha /* 802B62D4 002B1F34 38 63 AC 28 */ addi r3, r3, lbl_8053AC28@l -/* 802B62D8 002B1F38 48 03 63 35 */ bl func_802EC60C +/* 802B62D8 002B1F38 48 03 63 35 */ bl SCSetBtDeviceInfoArray /* 802B62DC 002B1F3C 2C 03 00 00 */ cmpwi r3, 0 /* 802B62E0 002B1F40 41 82 00 18 */ beq lbl_802B62F8 /* 802B62E4 002B1F44 3C 60 80 2B */ lis r3, ShutFlushCallback@ha -- cgit v1.2.3