summaryrefslogtreecommitdiff
path: root/asm/SDK/SC
diff options
context:
space:
mode:
Diffstat (limited to 'asm/SDK/SC')
-rw-r--r--asm/SDK/SC/scapi.s363
-rw-r--r--asm/SDK/SC/scapi_prdinfo.s200
2 files changed, 563 insertions, 0 deletions
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