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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global TRKDestructEvent
TRKDestructEvent:
/* 801D4930 001D0590 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801D4934 001D0594 7C 08 02 A6 */ mflr r0
/* 801D4938 001D0598 90 01 00 14 */ stw r0, 0x14(r1)
/* 801D493C 001D059C 80 63 00 08 */ lwz r3, 8(r3)
/* 801D4940 001D05A0 48 00 0A 39 */ bl TRKReleaseBuffer
/* 801D4944 001D05A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801D4948 001D05A8 7C 08 03 A6 */ mtlr r0
/* 801D494C 001D05AC 38 21 00 10 */ addi r1, r1, 0x10
/* 801D4950 001D05B0 4E 80 00 20 */ blr
.global TRKConstructEvent
TRKConstructEvent:
/* 801D4954 001D05B4 90 83 00 00 */ stw r4, 0(r3)
/* 801D4958 001D05B8 38 80 00 00 */ li r4, 0
/* 801D495C 001D05BC 38 00 FF FF */ li r0, -1
/* 801D4960 001D05C0 90 83 00 04 */ stw r4, 4(r3)
/* 801D4964 001D05C4 90 03 00 08 */ stw r0, 8(r3)
/* 801D4968 001D05C8 4E 80 00 20 */ blr
.global TRKPostEvent
TRKPostEvent:
/* 801D496C 001D05CC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801D4970 001D05D0 7C 08 02 A6 */ mflr r0
/* 801D4974 001D05D4 3C 80 80 49 */ lis r4, lbl_8048EDF0@ha
/* 801D4978 001D05D8 90 01 00 24 */ stw r0, 0x24(r1)
/* 801D497C 001D05DC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801D4980 001D05E0 3B E0 00 00 */ li r31, 0
/* 801D4984 001D05E4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801D4988 001D05E8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801D498C 001D05EC 7C 7D 1B 78 */ mr r29, r3
/* 801D4990 001D05F0 38 64 ED F0 */ addi r3, r4, lbl_8048EDF0@l
/* 801D4994 001D05F4 48 00 26 C9 */ bl TRKAcquireMutex
/* 801D4998 001D05F8 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D499C 001D05FC 3B C3 ED F0 */ addi r30, r3, lbl_8048EDF0@l
/* 801D49A0 001D0600 80 7E 00 04 */ lwz r3, 4(r30)
/* 801D49A4 001D0604 2C 03 00 02 */ cmpwi r3, 2
/* 801D49A8 001D0608 40 82 00 0C */ bne lbl_801D49B4
/* 801D49AC 001D060C 3B E0 01 00 */ li r31, 0x100
/* 801D49B0 001D0610 48 00 00 70 */ b lbl_801D4A20
lbl_801D49B4:
/* 801D49B4 001D0614 80 1E 00 08 */ lwz r0, 8(r30)
/* 801D49B8 001D0618 7F A4 EB 78 */ mr r4, r29
/* 801D49BC 001D061C 38 A0 00 0C */ li r5, 0xc
/* 801D49C0 001D0620 7C 00 1A 14 */ add r0, r0, r3
/* 801D49C4 001D0624 54 03 0F FE */ srwi r3, r0, 0x1f
/* 801D49C8 001D0628 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 801D49CC 001D062C 7C 00 1A 78 */ xor r0, r0, r3
/* 801D49D0 001D0630 7C 03 00 50 */ subf r0, r3, r0
/* 801D49D4 001D0634 1F A0 00 0C */ mulli r29, r0, 0xc
/* 801D49D8 001D0638 7C 7E EA 14 */ add r3, r30, r29
/* 801D49DC 001D063C 38 63 00 0C */ addi r3, r3, 0xc
/* 801D49E0 001D0640 4B E2 F7 85 */ bl TRK_memcpy
/* 801D49E4 001D0644 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D49E8 001D0648 38 83 ED F0 */ addi r4, r3, lbl_8048EDF0@l
/* 801D49EC 001D064C 80 04 00 24 */ lwz r0, 0x24(r4)
/* 801D49F0 001D0650 7C 64 EA 14 */ add r3, r4, r29
/* 801D49F4 001D0654 90 03 00 10 */ stw r0, 0x10(r3)
/* 801D49F8 001D0658 80 64 00 24 */ lwz r3, 0x24(r4)
/* 801D49FC 001D065C 38 03 00 01 */ addi r0, r3, 1
/* 801D4A00 001D0660 28 00 01 00 */ cmplwi r0, 0x100
/* 801D4A04 001D0664 90 04 00 24 */ stw r0, 0x24(r4)
/* 801D4A08 001D0668 40 80 00 0C */ bge lbl_801D4A14
/* 801D4A0C 001D066C 38 00 01 00 */ li r0, 0x100
/* 801D4A10 001D0670 90 04 00 24 */ stw r0, 0x24(r4)
lbl_801D4A14:
/* 801D4A14 001D0674 80 7E 00 04 */ lwz r3, 4(r30)
/* 801D4A18 001D0678 38 03 00 01 */ addi r0, r3, 1
/* 801D4A1C 001D067C 90 1E 00 04 */ stw r0, 4(r30)
lbl_801D4A20:
/* 801D4A20 001D0680 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D4A24 001D0684 38 63 ED F0 */ addi r3, r3, lbl_8048EDF0@l
/* 801D4A28 001D0688 48 00 26 2D */ bl TRKReleaseMutex
/* 801D4A2C 001D068C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801D4A30 001D0690 7F E3 FB 78 */ mr r3, r31
/* 801D4A34 001D0694 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801D4A38 001D0698 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 801D4A3C 001D069C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 801D4A40 001D06A0 7C 08 03 A6 */ mtlr r0
/* 801D4A44 001D06A4 38 21 00 20 */ addi r1, r1, 0x20
/* 801D4A48 001D06A8 4E 80 00 20 */ blr
.global TRKGetNextEvent
TRKGetNextEvent:
/* 801D4A4C 001D06AC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 801D4A50 001D06B0 7C 08 02 A6 */ mflr r0
/* 801D4A54 001D06B4 3C 80 80 49 */ lis r4, lbl_8048EDF0@ha
/* 801D4A58 001D06B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 801D4A5C 001D06BC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 801D4A60 001D06C0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 801D4A64 001D06C4 3B C0 00 00 */ li r30, 0
/* 801D4A68 001D06C8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 801D4A6C 001D06CC 7C 7D 1B 78 */ mr r29, r3
/* 801D4A70 001D06D0 38 64 ED F0 */ addi r3, r4, lbl_8048EDF0@l
/* 801D4A74 001D06D4 48 00 25 E9 */ bl TRKAcquireMutex
/* 801D4A78 001D06D8 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D4A7C 001D06DC 3B E3 ED F0 */ addi r31, r3, lbl_8048EDF0@l
/* 801D4A80 001D06E0 80 1F 00 04 */ lwz r0, 4(r31)
/* 801D4A84 001D06E4 2C 00 00 00 */ cmpwi r0, 0
/* 801D4A88 001D06E8 40 81 00 4C */ ble lbl_801D4AD4
/* 801D4A8C 001D06EC 80 1F 00 08 */ lwz r0, 8(r31)
/* 801D4A90 001D06F0 7F A3 EB 78 */ mr r3, r29
/* 801D4A94 001D06F4 38 A0 00 0C */ li r5, 0xc
/* 801D4A98 001D06F8 1C 00 00 0C */ mulli r0, r0, 0xc
/* 801D4A9C 001D06FC 7C 9F 02 14 */ add r4, r31, r0
/* 801D4AA0 001D0700 38 84 00 0C */ addi r4, r4, 0xc
/* 801D4AA4 001D0704 4B E2 F6 C1 */ bl TRK_memcpy
/* 801D4AA8 001D0708 80 7F 00 08 */ lwz r3, 8(r31)
/* 801D4AAC 001D070C 80 9F 00 04 */ lwz r4, 4(r31)
/* 801D4AB0 001D0710 38 03 00 01 */ addi r0, r3, 1
/* 801D4AB4 001D0714 38 64 FF FF */ addi r3, r4, -1
/* 801D4AB8 001D0718 90 1F 00 08 */ stw r0, 8(r31)
/* 801D4ABC 001D071C 2C 00 00 02 */ cmpwi r0, 2
/* 801D4AC0 001D0720 90 7F 00 04 */ stw r3, 4(r31)
/* 801D4AC4 001D0724 40 82 00 0C */ bne lbl_801D4AD0
/* 801D4AC8 001D0728 38 00 00 00 */ li r0, 0
/* 801D4ACC 001D072C 90 1F 00 08 */ stw r0, 8(r31)
lbl_801D4AD0:
/* 801D4AD0 001D0730 3B C0 00 01 */ li r30, 1
lbl_801D4AD4:
/* 801D4AD4 001D0734 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D4AD8 001D0738 38 63 ED F0 */ addi r3, r3, lbl_8048EDF0@l
/* 801D4ADC 001D073C 48 00 25 79 */ bl TRKReleaseMutex
/* 801D4AE0 001D0740 80 01 00 24 */ lwz r0, 0x24(r1)
/* 801D4AE4 001D0744 7F C3 F3 78 */ mr r3, r30
/* 801D4AE8 001D0748 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 801D4AEC 001D074C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 801D4AF0 001D0750 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 801D4AF4 001D0754 7C 08 03 A6 */ mtlr r0
/* 801D4AF8 001D0758 38 21 00 20 */ addi r1, r1, 0x20
/* 801D4AFC 001D075C 4E 80 00 20 */ blr
.global TRKInitializeEventQueue
TRKInitializeEventQueue:
/* 801D4B00 001D0760 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 801D4B04 001D0764 7C 08 02 A6 */ mflr r0
/* 801D4B08 001D0768 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D4B0C 001D076C 90 01 00 14 */ stw r0, 0x14(r1)
/* 801D4B10 001D0770 38 63 ED F0 */ addi r3, r3, lbl_8048EDF0@l
/* 801D4B14 001D0774 48 00 25 51 */ bl TRKInitializeMutex
/* 801D4B18 001D0778 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D4B1C 001D077C 38 63 ED F0 */ addi r3, r3, lbl_8048EDF0@l
/* 801D4B20 001D0780 48 00 25 3D */ bl TRKAcquireMutex
/* 801D4B24 001D0784 3C 60 80 49 */ lis r3, lbl_8048EDF0@ha
/* 801D4B28 001D0788 38 80 00 00 */ li r4, 0
/* 801D4B2C 001D078C 38 63 ED F0 */ addi r3, r3, lbl_8048EDF0@l
/* 801D4B30 001D0790 38 00 01 00 */ li r0, 0x100
/* 801D4B34 001D0794 90 83 00 04 */ stw r4, 4(r3)
/* 801D4B38 001D0798 90 83 00 08 */ stw r4, 8(r3)
/* 801D4B3C 001D079C 90 03 00 24 */ stw r0, 0x24(r3)
/* 801D4B40 001D07A0 48 00 25 15 */ bl TRKReleaseMutex
/* 801D4B44 001D07A4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 801D4B48 001D07A8 38 60 00 00 */ li r3, 0
/* 801D4B4C 001D07AC 7C 08 03 A6 */ mtlr r0
/* 801D4B50 001D07B0 38 21 00 10 */ addi r1, r1, 0x10
/* 801D4B54 001D07B4 4E 80 00 20 */ blr
|