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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global TPLBind
TPLBind:
/* 8029B918 00297578 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029B91C 0029757C 7C 08 02 A6 */ mflr r0
/* 8029B920 00297580 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029B924 00297584 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029B928 00297588 7C 7F 1B 78 */ mr r31, r3
/* 8029B92C 0029758C 80 83 00 00 */ lwz r4, 0(r3)
/* 8029B930 00297590 3C 04 FF E0 */ addis r0, r4, 0xffe0
/* 8029B934 00297594 28 00 AF 30 */ cmplwi r0, 0xaf30
/* 8029B938 00297598 41 82 00 1C */ beq lbl_8029B954
/* 8029B93C 0029759C 3C A0 80 44 */ lis r5, lbl_8043BEC0@ha
/* 8029B940 002975A0 38 6D 89 08 */ addi r3, r13, lbl_8063DBC8-_SDA_BASE_
/* 8029B944 002975A4 38 A5 BE C0 */ addi r5, r5, lbl_8043BEC0@l
/* 8029B948 002975A8 38 80 00 19 */ li r4, 0x19
/* 8029B94C 002975AC 4C C6 31 82 */ crclr 6
/* 8029B950 002975B0 4B FC FB 4D */ bl OSPanic
lbl_8029B954:
/* 8029B954 002975B4 80 1F 00 08 */ lwz r0, 8(r31)
/* 8029B958 002975B8 38 60 00 00 */ li r3, 0
/* 8029B95C 002975BC 38 A0 00 01 */ li r5, 1
/* 8029B960 002975C0 7C 00 FA 14 */ add r0, r0, r31
/* 8029B964 002975C4 90 1F 00 08 */ stw r0, 8(r31)
/* 8029B968 002975C8 48 00 00 A0 */ b lbl_8029BA08
lbl_8029B96C:
/* 8029B96C 002975CC 80 9F 00 08 */ lwz r4, 8(r31)
/* 8029B970 002975D0 54 66 1B 78 */ rlwinm r6, r3, 3, 0xd, 0x1c
/* 8029B974 002975D4 7C 04 30 2E */ lwzx r0, r4, r6
/* 8029B978 002975D8 2C 00 00 00 */ cmpwi r0, 0
/* 8029B97C 002975DC 41 82 00 38 */ beq lbl_8029B9B4
/* 8029B980 002975E0 7C 1F 02 14 */ add r0, r31, r0
/* 8029B984 002975E4 7C 04 31 2E */ stwx r0, r4, r6
/* 8029B988 002975E8 80 9F 00 08 */ lwz r4, 8(r31)
/* 8029B98C 002975EC 7C 84 30 2E */ lwzx r4, r4, r6
/* 8029B990 002975F0 88 04 00 23 */ lbz r0, 0x23(r4)
/* 8029B994 002975F4 2C 00 00 00 */ cmpwi r0, 0
/* 8029B998 002975F8 40 82 00 1C */ bne lbl_8029B9B4
/* 8029B99C 002975FC 80 04 00 08 */ lwz r0, 8(r4)
/* 8029B9A0 00297600 7C 1F 02 14 */ add r0, r31, r0
/* 8029B9A4 00297604 90 04 00 08 */ stw r0, 8(r4)
/* 8029B9A8 00297608 80 9F 00 08 */ lwz r4, 8(r31)
/* 8029B9AC 0029760C 7C 84 30 2E */ lwzx r4, r4, r6
/* 8029B9B0 00297610 98 A4 00 23 */ stb r5, 0x23(r4)
lbl_8029B9B4:
/* 8029B9B4 00297614 80 1F 00 08 */ lwz r0, 8(r31)
/* 8029B9B8 00297618 7C 80 32 14 */ add r4, r0, r6
/* 8029B9BC 0029761C 80 04 00 04 */ lwz r0, 4(r4)
/* 8029B9C0 00297620 2C 00 00 00 */ cmpwi r0, 0
/* 8029B9C4 00297624 41 82 00 40 */ beq lbl_8029BA04
/* 8029B9C8 00297628 7C 1F 02 14 */ add r0, r31, r0
/* 8029B9CC 0029762C 90 04 00 04 */ stw r0, 4(r4)
/* 8029B9D0 00297630 80 1F 00 08 */ lwz r0, 8(r31)
/* 8029B9D4 00297634 7C 80 32 14 */ add r4, r0, r6
/* 8029B9D8 00297638 80 84 00 04 */ lwz r4, 4(r4)
/* 8029B9DC 0029763C 88 04 00 02 */ lbz r0, 2(r4)
/* 8029B9E0 00297640 2C 00 00 00 */ cmpwi r0, 0
/* 8029B9E4 00297644 40 82 00 20 */ bne lbl_8029BA04
/* 8029B9E8 00297648 80 04 00 08 */ lwz r0, 8(r4)
/* 8029B9EC 0029764C 7C 1F 02 14 */ add r0, r31, r0
/* 8029B9F0 00297650 90 04 00 08 */ stw r0, 8(r4)
/* 8029B9F4 00297654 80 1F 00 08 */ lwz r0, 8(r31)
/* 8029B9F8 00297658 7C 80 32 14 */ add r4, r0, r6
/* 8029B9FC 0029765C 80 84 00 04 */ lwz r4, 4(r4)
/* 8029BA00 00297660 98 A4 00 02 */ stb r5, 2(r4)
lbl_8029BA04:
/* 8029BA04 00297664 38 63 00 01 */ addi r3, r3, 1
lbl_8029BA08:
/* 8029BA08 00297668 80 1F 00 04 */ lwz r0, 4(r31)
/* 8029BA0C 0029766C 54 64 04 3E */ clrlwi r4, r3, 0x10
/* 8029BA10 00297670 7C 04 00 40 */ cmplw r4, r0
/* 8029BA14 00297674 41 80 FF 58 */ blt lbl_8029B96C
/* 8029BA18 00297678 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029BA1C 0029767C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029BA20 00297680 7C 08 03 A6 */ mtlr r0
/* 8029BA24 00297684 38 21 00 10 */ addi r1, r1, 0x10
/* 8029BA28 00297688 4E 80 00 20 */ blr
.global TPLGet
TPLGet:
/* 8029BA2C 0029768C 80 A3 00 04 */ lwz r5, 4(r3)
/* 8029BA30 00297690 80 63 00 08 */ lwz r3, 8(r3)
/* 8029BA34 00297694 7C 04 2B 96 */ divwu r0, r4, r5
/* 8029BA38 00297698 7C 00 29 D6 */ mullw r0, r0, r5
/* 8029BA3C 0029769C 7C 00 20 50 */ subf r0, r0, r4
/* 8029BA40 002976A0 54 00 18 38 */ slwi r0, r0, 3
/* 8029BA44 002976A4 7C 63 02 14 */ add r3, r3, r0
/* 8029BA48 002976A8 4E 80 00 20 */ blr
.global TPLGetGXTexObjFromPalette
TPLGetGXTexObjFromPalette:
/* 8029BA4C 002976AC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8029BA50 002976B0 7C 08 02 A6 */ mflr r0
/* 8029BA54 002976B4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8029BA58 002976B8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8029BA5C 002976BC 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8029BA60 002976C0 93 A1 00 24 */ stw r29, 0x24(r1)
/* 8029BA64 002976C4 7C 9D 23 78 */ mr r29, r4
/* 8029BA68 002976C8 80 C3 00 04 */ lwz r6, 4(r3)
/* 8029BA6C 002976CC 83 C3 00 08 */ lwz r30, 8(r3)
/* 8029BA70 002976D0 7F A3 EB 78 */ mr r3, r29
/* 8029BA74 002976D4 7C 05 33 96 */ divwu r0, r5, r6
/* 8029BA78 002976D8 7C 00 31 D6 */ mullw r0, r0, r6
/* 8029BA7C 002976DC 7C 00 28 50 */ subf r0, r0, r5
/* 8029BA80 002976E0 54 1F 18 38 */ slwi r31, r0, 3
/* 8029BA84 002976E4 7D 3E F8 2E */ lwzx r9, r30, r31
/* 8029BA88 002976E8 88 C9 00 21 */ lbz r6, 0x21(r9)
/* 8029BA8C 002976EC 88 09 00 22 */ lbz r0, 0x22(r9)
/* 8029BA90 002976F0 80 89 00 08 */ lwz r4, 8(r9)
/* 8029BA94 002976F4 7C A6 00 50 */ subf r5, r6, r0
/* 8029BA98 002976F8 7C 00 30 50 */ subf r0, r0, r6
/* 8029BA9C 002976FC 7C A0 03 78 */ or r0, r5, r0
/* 8029BAA0 00297700 A0 A9 00 02 */ lhz r5, 2(r9)
/* 8029BAA4 00297704 A0 C9 00 00 */ lhz r6, 0(r9)
/* 8029BAA8 00297708 54 0A 0F FE */ srwi r10, r0, 0x1f
/* 8029BAAC 0029770C 80 E9 00 04 */ lwz r7, 4(r9)
/* 8029BAB0 00297710 81 09 00 0C */ lwz r8, 0xc(r9)
/* 8029BAB4 00297714 81 29 00 10 */ lwz r9, 0x10(r9)
/* 8029BAB8 00297718 4B FE 6C 19 */ bl GXInitTexObj
/* 8029BABC 0029771C 7C FE F8 2E */ lwzx r7, r30, r31
/* 8029BAC0 00297720 3C A0 43 30 */ lis r5, 0x4330
/* 8029BAC4 00297724 90 A1 00 08 */ stw r5, 8(r1)
/* 8029BAC8 00297728 7F A3 EB 78 */ mr r3, r29
/* 8029BACC 0029772C 88 87 00 21 */ lbz r4, 0x21(r7)
/* 8029BAD0 00297730 38 C0 00 00 */ li r6, 0
/* 8029BAD4 00297734 88 07 00 22 */ lbz r0, 0x22(r7)
/* 8029BAD8 00297738 39 00 00 00 */ li r8, 0
/* 8029BADC 0029773C 90 81 00 0C */ stw r4, 0xc(r1)
/* 8029BAE0 00297740 C8 42 A3 78 */ lfd f2, lbl_80642978-_SDA2_BASE_(r2)
/* 8029BAE4 00297744 C8 01 00 08 */ lfd f0, 8(r1)
/* 8029BAE8 00297748 90 A1 00 10 */ stw r5, 0x10(r1)
/* 8029BAEC 0029774C EC 20 10 28 */ fsubs f1, f0, f2
/* 8029BAF0 00297750 80 87 00 14 */ lwz r4, 0x14(r7)
/* 8029BAF4 00297754 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029BAF8 00297758 80 A7 00 18 */ lwz r5, 0x18(r7)
/* 8029BAFC 0029775C C8 01 00 10 */ lfd f0, 0x10(r1)
/* 8029BB00 00297760 C0 67 00 1C */ lfs f3, 0x1c(r7)
/* 8029BB04 00297764 EC 40 10 28 */ fsubs f2, f0, f2
/* 8029BB08 00297768 88 E7 00 20 */ lbz r7, 0x20(r7)
/* 8029BB0C 0029776C 4B FE 6E 19 */ bl GXInitTexObjLOD
/* 8029BB10 00297770 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8029BB14 00297774 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8029BB18 00297778 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8029BB1C 0029777C 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 8029BB20 00297780 7C 08 03 A6 */ mtlr r0
/* 8029BB24 00297784 38 21 00 30 */ addi r1, r1, 0x30
/* 8029BB28 00297788 4E 80 00 20 */ blr
|