summaryrefslogtreecommitdiff
path: root/asm/SDK/MP/mpmisc.s
blob: ba008c76754b5b7d9dbd07b168089339e13c6f70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global MPSetUserGameInfo
MPSetUserGameInfo:
/* 802F1234 002ECE94  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 802F1238 002ECE98  7C 08 02 A6 */	mflr r0
/* 802F123C 002ECE9C  90 01 00 24 */	stw r0, 0x24(r1)
/* 802F1240 002ECEA0  93 E1 00 1C */	stw r31, 0x1c(r1)
/* 802F1244 002ECEA4  93 C1 00 18 */	stw r30, 0x18(r1)
/* 802F1248 002ECEA8  7C 9E 23 78 */	mr r30, r4
/* 802F124C 002ECEAC  93 A1 00 14 */	stw r29, 0x14(r1)
/* 802F1250 002ECEB0  7C 7D 1B 78 */	mr r29, r3
/* 802F1254 002ECEB4  80 0D AF 38 */	lwz r0, lbl_806401F8-_SDA_BASE_(r13)
/* 802F1258 002ECEB8  2C 00 00 00 */	cmpwi r0, 0
/* 802F125C 002ECEBC  40 82 00 0C */	bne lbl_802F1268
/* 802F1260 002ECEC0  38 60 FF 14 */	li r3, -236
/* 802F1264 002ECEC4  48 00 00 88 */	b lbl_802F12EC
lbl_802F1268:
/* 802F1268 002ECEC8  80 0D AF 3C */	lwz r0, lbl_806401FC-_SDA_BASE_(r13)
/* 802F126C 002ECECC  2C 00 00 00 */	cmpwi r0, 0
/* 802F1270 002ECED0  41 82 00 0C */	beq lbl_802F127C
/* 802F1274 002ECED4  38 60 FF FF */	li r3, -1
/* 802F1278 002ECED8  48 00 00 74 */	b lbl_802F12EC
lbl_802F127C:
/* 802F127C 002ECEDC  28 04 00 70 */	cmplwi r4, 0x70
/* 802F1280 002ECEE0  40 81 00 0C */	ble lbl_802F128C
/* 802F1284 002ECEE4  38 60 FF 01 */	li r3, -255
/* 802F1288 002ECEE8  48 00 00 64 */	b lbl_802F12EC
lbl_802F128C:
/* 802F128C 002ECEEC  38 00 00 00 */	li r0, 0
/* 802F1290 002ECEF0  7C 03 00 40 */	cmplw r3, r0
/* 802F1294 002ECEF4  40 82 00 0C */	bne lbl_802F12A0
/* 802F1298 002ECEF8  38 60 FF 01 */	li r3, -255
/* 802F129C 002ECEFC  48 00 00 50 */	b lbl_802F12EC
lbl_802F12A0:
/* 802F12A0 002ECF00  4B F7 D4 BD */	bl OSDisableInterrupts
/* 802F12A4 002ECF04  80 C2 AA 30 */	lwz r6, lbl_80643030-_SDA2_BASE_(r2)
/* 802F12A8 002ECF08  7C 7F 1B 78 */	mr r31, r3
/* 802F12AC 002ECF0C  7F A4 EB 78 */	mr r4, r29
/* 802F12B0 002ECF10  7F C5 F3 78 */	mr r5, r30
/* 802F12B4 002ECF14  93 C6 00 3C */	stw r30, 0x3c(r6)
/* 802F12B8 002ECF18  38 66 00 40 */	addi r3, r6, 0x40
/* 802F12BC 002ECF1C  4B D1 2D 45 */	bl memcpy
/* 802F12C0 002ECF20  28 1E 00 70 */	cmplwi r30, 0x70
/* 802F12C4 002ECF24  40 80 00 1C */	bge lbl_802F12E0
/* 802F12C8 002ECF28  80 02 AA 30 */	lwz r0, lbl_80643030-_SDA2_BASE_(r2)
/* 802F12CC 002ECF2C  20 BE 00 70 */	subfic r5, r30, 0x70
/* 802F12D0 002ECF30  38 80 00 00 */	li r4, 0
/* 802F12D4 002ECF34  7C 60 F2 14 */	add r3, r0, r30
/* 802F12D8 002ECF38  38 63 00 40 */	addi r3, r3, 0x40
/* 802F12DC 002ECF3C  4B D1 2E 29 */	bl memset
lbl_802F12E0:
/* 802F12E0 002ECF40  7F E3 FB 78 */	mr r3, r31
/* 802F12E4 002ECF44  4B F7 D4 A1 */	bl OSRestoreInterrupts
/* 802F12E8 002ECF48  38 60 00 00 */	li r3, 0
lbl_802F12EC:
/* 802F12EC 002ECF4C  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802F12F0 002ECF50  83 E1 00 1C */	lwz r31, 0x1c(r1)
/* 802F12F4 002ECF54  83 C1 00 18 */	lwz r30, 0x18(r1)
/* 802F12F8 002ECF58  83 A1 00 14 */	lwz r29, 0x14(r1)
/* 802F12FC 002ECF5C  7C 08 03 A6 */	mtlr r0
/* 802F1300 002ECF60  38 21 00 20 */	addi r1, r1, 0x20
/* 802F1304 002ECF64  4E 80 00 20 */	blr

.global MPSetEntryFlag
MPSetEntryFlag:
/* 802F1308 002ECF68  80 0D AF 38 */	lwz r0, lbl_806401F8-_SDA_BASE_(r13)
/* 802F130C 002ECF6C  2C 00 00 00 */	cmpwi r0, 0
/* 802F1310 002ECF70  40 82 00 0C */	bne lbl_802F131C
/* 802F1314 002ECF74  38 60 FF 14 */	li r3, -236
/* 802F1318 002ECF78  4E 80 00 20 */	blr
lbl_802F131C:
/* 802F131C 002ECF7C  80 0D AF 3C */	lwz r0, lbl_806401FC-_SDA_BASE_(r13)
/* 802F1320 002ECF80  2C 00 00 00 */	cmpwi r0, 0
/* 802F1324 002ECF84  41 82 00 0C */	beq lbl_802F1330
/* 802F1328 002ECF88  38 60 FF FF */	li r3, -1
/* 802F132C 002ECF8C  4E 80 00 20 */	blr
lbl_802F1330:
/* 802F1330 002ECF90  2C 03 00 00 */	cmpwi r3, 0
/* 802F1334 002ECF94  41 82 00 0C */	beq lbl_802F1340
/* 802F1338 002ECF98  38 00 00 01 */	li r0, 1
/* 802F133C 002ECF9C  48 00 00 08 */	b lbl_802F1344
lbl_802F1340:
/* 802F1340 002ECFA0  38 00 00 00 */	li r0, 0
lbl_802F1344:
/* 802F1344 002ECFA4  80 82 AA 30 */	lwz r4, lbl_80643030-_SDA2_BASE_(r2)
/* 802F1348 002ECFA8  38 60 00 00 */	li r3, 0
/* 802F134C 002ECFAC  90 04 00 30 */	stw r0, 0x30(r4)
/* 802F1350 002ECFB0  4E 80 00 20 */	blr

.global MPiSetMultiBootFlag
MPiSetMultiBootFlag:
/* 802F1354 002ECFB4  80 0D AF 38 */	lwz r0, lbl_806401F8-_SDA_BASE_(r13)
/* 802F1358 002ECFB8  2C 00 00 00 */	cmpwi r0, 0
/* 802F135C 002ECFBC  40 82 00 0C */	bne lbl_802F1368
/* 802F1360 002ECFC0  38 60 FF 14 */	li r3, -236
/* 802F1364 002ECFC4  4E 80 00 20 */	blr
lbl_802F1368:
/* 802F1368 002ECFC8  80 0D AF 3C */	lwz r0, lbl_806401FC-_SDA_BASE_(r13)
/* 802F136C 002ECFCC  2C 00 00 00 */	cmpwi r0, 0
/* 802F1370 002ECFD0  41 82 00 0C */	beq lbl_802F137C
/* 802F1374 002ECFD4  38 60 FF FF */	li r3, -1
/* 802F1378 002ECFD8  4E 80 00 20 */	blr
lbl_802F137C:
/* 802F137C 002ECFDC  2C 03 00 00 */	cmpwi r3, 0
/* 802F1380 002ECFE0  41 82 00 0C */	beq lbl_802F138C
/* 802F1384 002ECFE4  38 00 00 01 */	li r0, 1
/* 802F1388 002ECFE8  48 00 00 08 */	b lbl_802F1390
lbl_802F138C:
/* 802F138C 002ECFEC  38 00 00 00 */	li r0, 0
lbl_802F1390:
/* 802F1390 002ECFF0  80 82 AA 30 */	lwz r4, lbl_80643030-_SDA2_BASE_(r2)
/* 802F1394 002ECFF4  38 60 00 00 */	li r3, 0
/* 802F1398 002ECFF8  90 04 00 34 */	stw r0, 0x34(r4)
/* 802F139C 002ECFFC  4E 80 00 20 */	blr