453 lines
22 KiB
ArmAsm
453 lines
22 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text1, "ax" # 0x80006A00 - 0x80406260
|
|
.global __GXSetDirtyState
|
|
__GXSetDirtyState:
|
|
/* 80034FF0 00030E30 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80034FF4 00030E34 7C 08 02 A6 */ mflr r0
|
|
/* 80034FF8 00030E38 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80034FFC 00030E3C 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80035000 00030E40 83 E2 86 08 */ lwz r31, __GXData-_SDA2_BASE_(r2)
|
|
/* 80035004 00030E44 93 C1 00 08 */ stw r30, 8(r1)
|
|
/* 80035008 00030E48 83 DF 05 FC */ lwz r30, 0x5fc(r31)
|
|
/* 8003500C 00030E4C 57 C0 07 FF */ clrlwi. r0, r30, 0x1f
|
|
/* 80035010 00030E50 41 82 00 08 */ beq lbl_80035018
|
|
/* 80035014 00030E54 48 00 22 9D */ bl __GXSetSUTexRegs
|
|
lbl_80035018:
|
|
/* 80035018 00030E58 57 C0 07 BD */ rlwinm. r0, r30, 0, 0x1e, 0x1e
|
|
/* 8003501C 00030E5C 41 82 00 08 */ beq lbl_80035024
|
|
/* 80035020 00030E60 4B FE F4 81 */ bl DefaultSwitchThreadCallback
|
|
lbl_80035024:
|
|
/* 80035024 00030E64 57 C0 07 7B */ rlwinm. r0, r30, 0, 0x1d, 0x1d
|
|
/* 80035028 00030E68 41 82 00 24 */ beq lbl_8003504C
|
|
/* 8003502C 00030E6C 3C 80 CC 01 */ lis r4, 0xCC008000@ha
|
|
/* 80035030 00030E70 38 00 00 61 */ li r0, 0x61
|
|
/* 80035034 00030E74 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
|
|
/* 80035038 00030E78 38 00 00 00 */ li r0, 0
|
|
/* 8003503C 00030E7C 80 A2 86 08 */ lwz r5, __GXData-_SDA2_BASE_(r2)
|
|
/* 80035040 00030E80 80 65 02 54 */ lwz r3, 0x254(r5)
|
|
/* 80035044 00030E84 90 64 80 00 */ stw r3, -0x8000(r4)
|
|
/* 80035048 00030E88 B0 05 00 02 */ sth r0, 2(r5)
|
|
lbl_8003504C:
|
|
/* 8003504C 00030E8C 57 C0 07 39 */ rlwinm. r0, r30, 0, 0x1c, 0x1c
|
|
/* 80035050 00030E90 41 82 00 08 */ beq lbl_80035058
|
|
/* 80035054 00030E94 4B FF E9 BD */ bl __GXSetVCD
|
|
lbl_80035058:
|
|
/* 80035058 00030E98 57 C0 06 F7 */ rlwinm. r0, r30, 0, 0x1b, 0x1b
|
|
/* 8003505C 00030E9C 41 82 00 08 */ beq lbl_80035064
|
|
/* 80035060 00030EA0 4B FF F1 01 */ bl __GXSetVAT
|
|
lbl_80035064:
|
|
/* 80035064 00030EA4 57 C0 06 F9 */ rlwinm. r0, r30, 0, 0x1b, 0x1c
|
|
/* 80035068 00030EA8 41 82 00 08 */ beq lbl_80035070
|
|
/* 8003506C 00030EAC 4B FF EA 55 */ bl __GXCalculateVLim
|
|
lbl_80035070:
|
|
/* 80035070 00030EB0 57 DE 00 2F */ rlwinm. r30, r30, 0, 0, 0x17
|
|
/* 80035074 00030EB4 41 82 01 DC */ beq lbl_80035250
|
|
/* 80035078 00030EB8 57 C4 05 2F */ rlwinm. r4, r30, 0, 0x14, 0x17
|
|
/* 8003507C 00030EBC 41 82 00 94 */ beq lbl_80035110
|
|
/* 80035080 00030EC0 54 80 05 EF */ rlwinm. r0, r4, 0, 0x17, 0x17
|
|
/* 80035084 00030EC4 41 82 00 20 */ beq lbl_800350A4
|
|
/* 80035088 00030EC8 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 8003508C 00030ECC 38 00 00 10 */ li r0, 0x10
|
|
/* 80035090 00030ED0 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 80035094 00030ED4 38 00 10 0A */ li r0, 0x100a
|
|
/* 80035098 00030ED8 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 8003509C 00030EDC 80 1F 00 A8 */ lwz r0, 0xa8(r31)
|
|
/* 800350A0 00030EE0 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
lbl_800350A4:
|
|
/* 800350A4 00030EE4 54 80 05 AD */ rlwinm. r0, r4, 0, 0x16, 0x16
|
|
/* 800350A8 00030EE8 41 82 00 20 */ beq lbl_800350C8
|
|
/* 800350AC 00030EEC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 800350B0 00030EF0 38 00 00 10 */ li r0, 0x10
|
|
/* 800350B4 00030EF4 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 800350B8 00030EF8 38 00 10 0B */ li r0, 0x100b
|
|
/* 800350BC 00030EFC 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 800350C0 00030F00 80 1F 00 AC */ lwz r0, 0xac(r31)
|
|
/* 800350C4 00030F04 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
lbl_800350C8:
|
|
/* 800350C8 00030F08 54 80 05 6B */ rlwinm. r0, r4, 0, 0x15, 0x15
|
|
/* 800350CC 00030F0C 41 82 00 20 */ beq lbl_800350EC
|
|
/* 800350D0 00030F10 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 800350D4 00030F14 38 00 00 10 */ li r0, 0x10
|
|
/* 800350D8 00030F18 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 800350DC 00030F1C 38 00 10 0C */ li r0, 0x100c
|
|
/* 800350E0 00030F20 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 800350E4 00030F24 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
|
/* 800350E8 00030F28 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
lbl_800350EC:
|
|
/* 800350EC 00030F2C 54 80 05 29 */ rlwinm. r0, r4, 0, 0x14, 0x14
|
|
/* 800350F0 00030F30 41 82 00 20 */ beq lbl_80035110
|
|
/* 800350F4 00030F34 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 800350F8 00030F38 38 00 00 10 */ li r0, 0x10
|
|
/* 800350FC 00030F3C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 80035100 00030F40 38 00 10 0D */ li r0, 0x100d
|
|
/* 80035104 00030F44 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 80035108 00030F48 80 1F 00 B4 */ lwz r0, 0xb4(r31)
|
|
/* 8003510C 00030F4C 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
lbl_80035110:
|
|
/* 80035110 00030F50 57 C7 01 CE */ rlwinm r7, r30, 0, 7, 7
|
|
/* 80035114 00030F54 53 C7 04 27 */ rlwimi. r7, r30, 0, 0x10, 0x13
|
|
/* 80035118 00030F58 41 82 00 74 */ beq lbl_8003518C
|
|
/* 8003511C 00030F5C 54 E0 01 CF */ rlwinm. r0, r7, 0, 7, 7
|
|
/* 80035120 00030F60 38 C0 10 0E */ li r6, 0x100e
|
|
/* 80035124 00030F64 41 82 00 24 */ beq lbl_80035148
|
|
/* 80035128 00030F68 80 BF 02 54 */ lwz r5, 0x254(r31)
|
|
/* 8003512C 00030F6C 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 80035130 00030F70 38 80 00 10 */ li r4, 0x10
|
|
/* 80035134 00030F74 38 00 10 09 */ li r0, 0x1009
|
|
/* 80035138 00030F78 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
|
|
/* 8003513C 00030F7C 54 A4 E7 7E */ rlwinm r4, r5, 0x1c, 0x1d, 0x1f
|
|
/* 80035140 00030F80 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 80035144 00030F84 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
lbl_80035148:
|
|
/* 80035148 00030F88 7F E5 FB 78 */ mr r5, r31
|
|
/* 8003514C 00030F8C 54 E7 A7 3E */ rlwinm r7, r7, 0x14, 0x1c, 0x1f
|
|
/* 80035150 00030F90 38 80 00 10 */ li r4, 0x10
|
|
/* 80035154 00030F94 3C 60 CC 01 */ lis r3, 0xcc01
|
|
/* 80035158 00030F98 48 00 00 2C */ b lbl_80035184
|
|
/* 8003515C 00030F9C 60 00 00 00 */ nop
|
|
lbl_80035160:
|
|
/* 80035160 00030FA0 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
|
|
/* 80035164 00030FA4 41 82 00 14 */ beq lbl_80035178
|
|
/* 80035168 00030FA8 98 83 80 00 */ stb r4, -0x8000(r3)
|
|
/* 8003516C 00030FAC 90 C3 80 00 */ stw r6, -0x8000(r3)
|
|
/* 80035170 00030FB0 80 05 00 B8 */ lwz r0, 0xb8(r5)
|
|
/* 80035174 00030FB4 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
lbl_80035178:
|
|
/* 80035178 00030FB8 54 E7 F8 7E */ srwi r7, r7, 1
|
|
/* 8003517C 00030FBC 38 A5 00 04 */ addi r5, r5, 4
|
|
/* 80035180 00030FC0 38 C6 00 01 */ addi r6, r6, 1
|
|
lbl_80035184:
|
|
/* 80035184 00030FC4 2C 07 00 00 */ cmpwi r7, 0
|
|
/* 80035188 00030FC8 40 82 FF D8 */ bne lbl_80035160
|
|
lbl_8003518C:
|
|
/* 8003518C 00030FCC 77 C8 02 FF */ andis. r8, r30, 0x2ff
|
|
/* 80035190 00030FD0 41 82 00 88 */ beq lbl_80035218
|
|
/* 80035194 00030FD4 55 00 01 8D */ rlwinm. r0, r8, 0, 6, 6
|
|
/* 80035198 00030FD8 38 C0 10 40 */ li r6, 0x1040
|
|
/* 8003519C 00030FDC 41 82 00 24 */ beq lbl_800351C0
|
|
/* 800351A0 00030FE0 80 BF 02 54 */ lwz r5, 0x254(r31)
|
|
/* 800351A4 00030FE4 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 800351A8 00030FE8 38 80 00 10 */ li r4, 0x10
|
|
/* 800351AC 00030FEC 38 00 10 3F */ li r0, 0x103f
|
|
/* 800351B0 00030FF0 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
|
|
/* 800351B4 00030FF4 54 A4 07 3E */ clrlwi r4, r5, 0x1c
|
|
/* 800351B8 00030FF8 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 800351BC 00030FFC 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
lbl_800351C0:
|
|
/* 800351C0 00031000 7F E7 FB 78 */ mr r7, r31
|
|
/* 800351C4 00031004 55 08 86 3E */ rlwinm r8, r8, 0x10, 0x18, 0x1f
|
|
/* 800351C8 00031008 38 80 00 10 */ li r4, 0x10
|
|
/* 800351CC 0003100C 3C 60 CC 01 */ lis r3, 0xcc01
|
|
/* 800351D0 00031010 48 00 00 40 */ b lbl_80035210
|
|
/* 800351D4 00031014 60 00 00 00 */ nop
|
|
lbl_800351D8:
|
|
/* 800351D8 00031018 55 00 07 FF */ clrlwi. r0, r8, 0x1f
|
|
/* 800351DC 0003101C 38 A6 00 10 */ addi r5, r6, 0x10
|
|
/* 800351E0 00031020 41 82 00 24 */ beq lbl_80035204
|
|
/* 800351E4 00031024 98 83 80 00 */ stb r4, -0x8000(r3)
|
|
/* 800351E8 00031028 90 C3 80 00 */ stw r6, -0x8000(r3)
|
|
/* 800351EC 0003102C 80 07 00 C8 */ lwz r0, 0xc8(r7)
|
|
/* 800351F0 00031030 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 800351F4 00031034 98 83 80 00 */ stb r4, -0x8000(r3)
|
|
/* 800351F8 00031038 90 A3 80 00 */ stw r5, -0x8000(r3)
|
|
/* 800351FC 0003103C 80 07 00 E8 */ lwz r0, 0xe8(r7)
|
|
/* 80035200 00031040 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
lbl_80035204:
|
|
/* 80035204 00031044 55 08 F8 7E */ srwi r8, r8, 1
|
|
/* 80035208 00031048 38 C6 00 01 */ addi r6, r6, 1
|
|
/* 8003520C 0003104C 38 E7 00 04 */ addi r7, r7, 4
|
|
lbl_80035210:
|
|
/* 80035210 00031050 2C 08 00 00 */ cmpwi r8, 0
|
|
/* 80035214 00031054 40 82 FF C4 */ bne lbl_800351D8
|
|
lbl_80035218:
|
|
/* 80035218 00031058 57 C0 01 4B */ rlwinm. r0, r30, 0, 5, 5
|
|
/* 8003521C 0003105C 41 82 00 14 */ beq lbl_80035230
|
|
/* 80035220 00031060 38 60 00 00 */ li r3, 0
|
|
/* 80035224 00031064 48 00 3E 0D */ bl __GXSetMatrixIndex
|
|
/* 80035228 00031068 38 60 00 05 */ li r3, 5
|
|
/* 8003522C 0003106C 48 00 3E 05 */ bl __GXSetMatrixIndex
|
|
lbl_80035230:
|
|
/* 80035230 00031070 57 C0 00 C7 */ rlwinm. r0, r30, 0, 3, 3
|
|
/* 80035234 00031074 41 82 00 08 */ beq lbl_8003523C
|
|
/* 80035238 00031078 48 00 3B E9 */ bl __GXSetViewport
|
|
lbl_8003523C:
|
|
/* 8003523C 0003107C 57 C0 01 09 */ rlwinm. r0, r30, 0, 4, 4
|
|
/* 80035240 00031080 41 82 00 08 */ beq lbl_80035248
|
|
/* 80035244 00031084 48 00 38 8D */ bl __GXSetProjection
|
|
lbl_80035248:
|
|
/* 80035248 00031088 38 00 00 01 */ li r0, 1
|
|
/* 8003524C 0003108C B0 1F 00 02 */ sth r0, 2(r31)
|
|
lbl_80035250:
|
|
/* 80035250 00031090 38 00 00 00 */ li r0, 0
|
|
/* 80035254 00031094 90 1F 05 FC */ stw r0, 0x5fc(r31)
|
|
/* 80035258 00031098 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 8003525C 0003109C 83 C1 00 08 */ lwz r30, 8(r1)
|
|
/* 80035260 000310A0 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80035264 000310A4 7C 08 03 A6 */ mtlr r0
|
|
/* 80035268 000310A8 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8003526C 000310AC 4E 80 00 20 */ blr
|
|
|
|
.global GXBegin
|
|
GXBegin:
|
|
/* 80035270 000310B0 94 21 FF E0 */ stwu r1, -0x20(r1)
|
|
/* 80035274 000310B4 7C 08 02 A6 */ mflr r0
|
|
/* 80035278 000310B8 90 01 00 24 */ stw r0, 0x24(r1)
|
|
/* 8003527C 000310BC 93 E1 00 1C */ stw r31, 0x1c(r1)
|
|
/* 80035280 000310C0 83 E2 86 08 */ lwz r31, __GXData-_SDA2_BASE_(r2)
|
|
/* 80035284 000310C4 93 C1 00 18 */ stw r30, 0x18(r1)
|
|
/* 80035288 000310C8 7C BE 2B 78 */ mr r30, r5
|
|
/* 8003528C 000310CC 93 A1 00 14 */ stw r29, 0x14(r1)
|
|
/* 80035290 000310D0 7C 9D 23 78 */ mr r29, r4
|
|
/* 80035294 000310D4 93 81 00 10 */ stw r28, 0x10(r1)
|
|
/* 80035298 000310D8 7C 7C 1B 78 */ mr r28, r3
|
|
/* 8003529C 000310DC 80 1F 05 FC */ lwz r0, 0x5fc(r31)
|
|
/* 800352A0 000310E0 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 800352A4 000310E4 41 82 00 08 */ beq lbl_800352AC
|
|
/* 800352A8 000310E8 4B FF FD 49 */ bl __GXSetDirtyState
|
|
lbl_800352AC:
|
|
/* 800352AC 000310EC 80 1F 00 00 */ lwz r0, 0(r31)
|
|
/* 800352B0 000310F0 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 800352B4 000310F4 40 82 00 D8 */ bne lbl_8003538C
|
|
/* 800352B8 000310F8 80 E2 86 08 */ lwz r7, __GXData-_SDA2_BASE_(r2)
|
|
/* 800352BC 000310FC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 800352C0 00031100 38 00 00 98 */ li r0, 0x98
|
|
/* 800352C4 00031104 38 C0 00 00 */ li r6, 0
|
|
/* 800352C8 00031108 A0 A7 00 04 */ lhz r5, 4(r7)
|
|
/* 800352CC 0003110C A0 87 00 06 */ lhz r4, 6(r7)
|
|
/* 800352D0 00031110 7C A5 21 D7 */ mullw. r5, r5, r4
|
|
/* 800352D4 00031114 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 800352D8 00031118 A0 07 00 04 */ lhz r0, 4(r7)
|
|
/* 800352DC 0003111C B0 03 80 00 */ sth r0, -0x8000(r3)
|
|
/* 800352E0 00031120 41 82 00 A4 */ beq lbl_80035384
|
|
/* 800352E4 00031124 38 65 00 03 */ addi r3, r5, 3
|
|
/* 800352E8 00031128 38 E5 FF E0 */ addi r7, r5, -32
|
|
/* 800352EC 0003112C 54 60 F0 BE */ srwi r0, r3, 2
|
|
/* 800352F0 00031130 28 00 00 08 */ cmplwi r0, 8
|
|
/* 800352F4 00031134 40 81 00 68 */ ble lbl_8003535C
|
|
/* 800352F8 00031138 28 03 00 03 */ cmplwi r3, 3
|
|
/* 800352FC 0003113C 38 00 00 00 */ li r0, 0
|
|
/* 80035300 00031140 41 80 00 10 */ blt lbl_80035310
|
|
/* 80035304 00031144 7C 05 18 40 */ cmplw r5, r3
|
|
/* 80035308 00031148 41 81 00 08 */ bgt lbl_80035310
|
|
/* 8003530C 0003114C 38 00 00 01 */ li r0, 1
|
|
lbl_80035310:
|
|
/* 80035310 00031150 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 80035314 00031154 41 82 00 48 */ beq lbl_8003535C
|
|
/* 80035318 00031158 38 07 00 1F */ addi r0, r7, 0x1f
|
|
/* 8003531C 0003115C 38 80 00 00 */ li r4, 0
|
|
/* 80035320 00031160 54 00 D9 7E */ srwi r0, r0, 5
|
|
/* 80035324 00031164 3C 60 CC 01 */ lis r3, 0xcc01
|
|
/* 80035328 00031168 7C 09 03 A6 */ mtctr r0
|
|
/* 8003532C 0003116C 28 07 00 00 */ cmplwi r7, 0
|
|
/* 80035330 00031170 40 81 00 2C */ ble lbl_8003535C
|
|
lbl_80035334:
|
|
/* 80035334 00031174 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035338 00031178 38 C6 00 20 */ addi r6, r6, 0x20
|
|
/* 8003533C 0003117C 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035340 00031180 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035344 00031184 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035348 00031188 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 8003534C 0003118C 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035350 00031190 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035354 00031194 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035358 00031198 42 00 FF DC */ bdnz lbl_80035334
|
|
lbl_8003535C:
|
|
/* 8003535C 0003119C 38 05 00 03 */ addi r0, r5, 3
|
|
/* 80035360 000311A0 38 80 00 00 */ li r4, 0
|
|
/* 80035364 000311A4 7C 06 00 50 */ subf r0, r6, r0
|
|
/* 80035368 000311A8 3C 60 CC 01 */ lis r3, 0xcc01
|
|
/* 8003536C 000311AC 54 00 F0 BE */ srwi r0, r0, 2
|
|
/* 80035370 000311B0 7C 09 03 A6 */ mtctr r0
|
|
/* 80035374 000311B4 7C 06 28 40 */ cmplw r6, r5
|
|
/* 80035378 000311B8 40 80 00 0C */ bge lbl_80035384
|
|
lbl_8003537C:
|
|
/* 8003537C 000311BC 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035380 000311C0 42 00 FF FC */ bdnz lbl_8003537C
|
|
lbl_80035384:
|
|
/* 80035384 000311C4 38 00 00 01 */ li r0, 1
|
|
/* 80035388 000311C8 B0 1F 00 02 */ sth r0, 2(r31)
|
|
lbl_8003538C:
|
|
/* 8003538C 000311CC 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 80035390 000311D0 7F A0 E3 78 */ or r0, r29, r28
|
|
/* 80035394 000311D4 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 80035398 000311D8 B3 C3 80 00 */ sth r30, -0x8000(r3)
|
|
/* 8003539C 000311DC 80 01 00 24 */ lwz r0, 0x24(r1)
|
|
/* 800353A0 000311E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
|
/* 800353A4 000311E4 83 C1 00 18 */ lwz r30, 0x18(r1)
|
|
/* 800353A8 000311E8 83 A1 00 14 */ lwz r29, 0x14(r1)
|
|
/* 800353AC 000311EC 83 81 00 10 */ lwz r28, 0x10(r1)
|
|
/* 800353B0 000311F0 7C 08 03 A6 */ mtlr r0
|
|
/* 800353B4 000311F4 38 21 00 20 */ addi r1, r1, 0x20
|
|
/* 800353B8 000311F8 4E 80 00 20 */ blr
|
|
/* 800353BC 000311FC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
|
|
.global __GXSendFlushPrim
|
|
__GXSendFlushPrim:
|
|
/* 800353C0 00031200 80 C2 86 08 */ lwz r6, __GXData-_SDA2_BASE_(r2)
|
|
/* 800353C4 00031204 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 800353C8 00031208 38 00 00 98 */ li r0, 0x98
|
|
/* 800353CC 0003120C 38 E0 00 00 */ li r7, 0
|
|
/* 800353D0 00031210 A0 A6 00 04 */ lhz r5, 4(r6)
|
|
/* 800353D4 00031214 A0 86 00 06 */ lhz r4, 6(r6)
|
|
/* 800353D8 00031218 7D 05 21 D7 */ mullw. r8, r5, r4
|
|
/* 800353DC 0003121C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 800353E0 00031220 A0 06 00 04 */ lhz r0, 4(r6)
|
|
/* 800353E4 00031224 B0 03 80 00 */ sth r0, -0x8000(r3)
|
|
/* 800353E8 00031228 41 82 00 A4 */ beq lbl_8003548C
|
|
/* 800353EC 0003122C 38 68 00 03 */ addi r3, r8, 3
|
|
/* 800353F0 00031230 38 A8 FF E0 */ addi r5, r8, -32
|
|
/* 800353F4 00031234 54 60 F0 BE */ srwi r0, r3, 2
|
|
/* 800353F8 00031238 28 00 00 08 */ cmplwi r0, 8
|
|
/* 800353FC 0003123C 40 81 00 68 */ ble lbl_80035464
|
|
/* 80035400 00031240 28 03 00 03 */ cmplwi r3, 3
|
|
/* 80035404 00031244 38 00 00 00 */ li r0, 0
|
|
/* 80035408 00031248 41 80 00 10 */ blt lbl_80035418
|
|
/* 8003540C 0003124C 7C 08 18 40 */ cmplw r8, r3
|
|
/* 80035410 00031250 41 81 00 08 */ bgt lbl_80035418
|
|
/* 80035414 00031254 38 00 00 01 */ li r0, 1
|
|
lbl_80035418:
|
|
/* 80035418 00031258 2C 00 00 00 */ cmpwi r0, 0
|
|
/* 8003541C 0003125C 41 82 00 48 */ beq lbl_80035464
|
|
/* 80035420 00031260 38 05 00 1F */ addi r0, r5, 0x1f
|
|
/* 80035424 00031264 38 80 00 00 */ li r4, 0
|
|
/* 80035428 00031268 54 00 D9 7E */ srwi r0, r0, 5
|
|
/* 8003542C 0003126C 3C 60 CC 01 */ lis r3, 0xcc01
|
|
/* 80035430 00031270 7C 09 03 A6 */ mtctr r0
|
|
/* 80035434 00031274 28 05 00 00 */ cmplwi r5, 0
|
|
/* 80035438 00031278 40 81 00 2C */ ble lbl_80035464
|
|
lbl_8003543C:
|
|
/* 8003543C 0003127C 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035440 00031280 38 E7 00 20 */ addi r7, r7, 0x20
|
|
/* 80035444 00031284 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035448 00031288 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 8003544C 0003128C 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035450 00031290 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035454 00031294 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035458 00031298 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 8003545C 0003129C 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035460 000312A0 42 00 FF DC */ bdnz lbl_8003543C
|
|
lbl_80035464:
|
|
/* 80035464 000312A4 38 08 00 03 */ addi r0, r8, 3
|
|
/* 80035468 000312A8 38 80 00 00 */ li r4, 0
|
|
/* 8003546C 000312AC 7C 07 00 50 */ subf r0, r7, r0
|
|
/* 80035470 000312B0 3C 60 CC 01 */ lis r3, 0xcc01
|
|
/* 80035474 000312B4 54 00 F0 BE */ srwi r0, r0, 2
|
|
/* 80035478 000312B8 7C 09 03 A6 */ mtctr r0
|
|
/* 8003547C 000312BC 7C 07 40 40 */ cmplw r7, r8
|
|
/* 80035480 000312C0 40 80 00 0C */ bge lbl_8003548C
|
|
lbl_80035484:
|
|
/* 80035484 000312C4 90 83 80 00 */ stw r4, -0x8000(r3)
|
|
/* 80035488 000312C8 42 00 FF FC */ bdnz lbl_80035484
|
|
lbl_8003548C:
|
|
/* 8003548C 000312CC 38 00 00 01 */ li r0, 1
|
|
/* 80035490 000312D0 B0 06 00 02 */ sth r0, 2(r6)
|
|
/* 80035494 000312D4 4E 80 00 20 */ blr
|
|
/* 80035498 000312D8 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 8003549C 000312DC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
|
|
.global GXSetLineWidth
|
|
GXSetLineWidth:
|
|
/* 800354A0 000312E0 81 02 86 08 */ lwz r8, __GXData-_SDA2_BASE_(r2)
|
|
/* 800354A4 000312E4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
|
|
/* 800354A8 000312E8 38 C0 00 61 */ li r6, 0x61
|
|
/* 800354AC 000312EC 38 00 00 00 */ li r0, 0
|
|
/* 800354B0 000312F0 80 E8 00 7C */ lwz r7, 0x7c(r8)
|
|
/* 800354B4 000312F4 50 67 06 3E */ rlwimi r7, r3, 0, 0x18, 0x1f
|
|
/* 800354B8 000312F8 50 87 83 5E */ rlwimi r7, r4, 0x10, 0xd, 0xf
|
|
/* 800354BC 000312FC 90 E8 00 7C */ stw r7, 0x7c(r8)
|
|
/* 800354C0 00031300 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
|
|
/* 800354C4 00031304 80 68 00 7C */ lwz r3, 0x7c(r8)
|
|
/* 800354C8 00031308 90 65 80 00 */ stw r3, -0x8000(r5)
|
|
/* 800354CC 0003130C B0 08 00 02 */ sth r0, 2(r8)
|
|
/* 800354D0 00031310 4E 80 00 20 */ blr
|
|
/* 800354D4 00031314 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 800354D8 00031318 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 800354DC 0003131C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
|
|
.global GXSetPointSize
|
|
GXSetPointSize:
|
|
/* 800354E0 00031320 81 02 86 08 */ lwz r8, __GXData-_SDA2_BASE_(r2)
|
|
/* 800354E4 00031324 3C A0 CC 01 */ lis r5, 0xCC008000@ha
|
|
/* 800354E8 00031328 38 C0 00 61 */ li r6, 0x61
|
|
/* 800354EC 0003132C 38 00 00 00 */ li r0, 0
|
|
/* 800354F0 00031330 80 E8 00 7C */ lwz r7, 0x7c(r8)
|
|
/* 800354F4 00031334 50 67 44 2E */ rlwimi r7, r3, 8, 0x10, 0x17
|
|
/* 800354F8 00031338 50 87 9A 98 */ rlwimi r7, r4, 0x13, 0xa, 0xc
|
|
/* 800354FC 0003133C 90 E8 00 7C */ stw r7, 0x7c(r8)
|
|
/* 80035500 00031340 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
|
|
/* 80035504 00031344 80 68 00 7C */ lwz r3, 0x7c(r8)
|
|
/* 80035508 00031348 90 65 80 00 */ stw r3, -0x8000(r5)
|
|
/* 8003550C 0003134C B0 08 00 02 */ sth r0, 2(r8)
|
|
/* 80035510 00031350 4E 80 00 20 */ blr
|
|
/* 80035514 00031354 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 80035518 00031358 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 8003551C 0003135C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
|
|
.global GXEnableTexOffsets
|
|
GXEnableTexOffsets:
|
|
/* 80035520 00031360 81 22 86 08 */ lwz r9, __GXData-_SDA2_BASE_(r2)
|
|
/* 80035524 00031364 54 60 10 3A */ slwi r0, r3, 2
|
|
/* 80035528 00031368 3C C0 CC 01 */ lis r6, 0xCC008000@ha
|
|
/* 8003552C 0003136C 38 60 00 61 */ li r3, 0x61
|
|
/* 80035530 00031370 7D 09 02 14 */ add r8, r9, r0
|
|
/* 80035534 00031374 38 00 00 00 */ li r0, 0
|
|
/* 80035538 00031378 80 E8 01 08 */ lwz r7, 0x108(r8)
|
|
/* 8003553C 0003137C 50 87 93 5A */ rlwimi r7, r4, 0x12, 0xd, 0xd
|
|
/* 80035540 00031380 50 A7 9B 18 */ rlwimi r7, r5, 0x13, 0xc, 0xc
|
|
/* 80035544 00031384 90 E8 01 08 */ stw r7, 0x108(r8)
|
|
/* 80035548 00031388 98 66 80 00 */ stb r3, 0xCC008000@l(r6)
|
|
/* 8003554C 0003138C 80 68 01 08 */ lwz r3, 0x108(r8)
|
|
/* 80035550 00031390 90 66 80 00 */ stw r3, -0x8000(r6)
|
|
/* 80035554 00031394 B0 09 00 02 */ sth r0, 2(r9)
|
|
/* 80035558 00031398 4E 80 00 20 */ blr
|
|
/* 8003555C 0003139C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
|
|
.global GXSetCullMode
|
|
GXSetCullMode:
|
|
/* 80035560 000313A0 80 82 86 08 */ lwz r4, __GXData-_SDA2_BASE_(r2)
|
|
/* 80035564 000313A4 54 65 FF FE */ rlwinm r5, r3, 0x1f, 0x1f, 0x1f
|
|
/* 80035568 000313A8 50 65 0F BC */ rlwimi r5, r3, 1, 0x1e, 0x1e
|
|
/* 8003556C 000313AC 80 04 02 54 */ lwz r0, 0x254(r4)
|
|
/* 80035570 000313B0 50 A0 74 22 */ rlwimi r0, r5, 0xe, 0x10, 0x11
|
|
/* 80035574 000313B4 90 04 02 54 */ stw r0, 0x254(r4)
|
|
/* 80035578 000313B8 80 04 05 FC */ lwz r0, 0x5fc(r4)
|
|
/* 8003557C 000313BC 60 00 00 04 */ ori r0, r0, 4
|
|
/* 80035580 000313C0 90 04 05 FC */ stw r0, 0x5fc(r4)
|
|
/* 80035584 000313C4 4E 80 00 20 */ blr
|
|
/* 80035588 000313C8 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 8003558C 000313CC 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
|
|
.global GXSetCoPlanar
|
|
GXSetCoPlanar:
|
|
/* 80035590 000313D0 80 E2 86 08 */ lwz r7, __GXData-_SDA2_BASE_(r2)
|
|
/* 80035594 000313D4 3C A0 CC 01 */ lis r5, 0xCC008000@ha
|
|
/* 80035598 000313D8 38 C0 00 61 */ li r6, 0x61
|
|
/* 8003559C 000313DC 3C 80 FE 08 */ lis r4, 0xfe08
|
|
/* 800355A0 000313E0 80 07 02 54 */ lwz r0, 0x254(r7)
|
|
/* 800355A4 000313E4 50 60 9B 18 */ rlwimi r0, r3, 0x13, 0xc, 0xc
|
|
/* 800355A8 000313E8 90 07 02 54 */ stw r0, 0x254(r7)
|
|
/* 800355AC 000313EC 38 00 00 00 */ li r0, 0
|
|
/* 800355B0 000313F0 98 C5 80 00 */ stb r6, 0xCC008000@l(r5)
|
|
/* 800355B4 000313F4 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 800355B8 000313F8 98 C5 80 00 */ stb r6, -0x8000(r5)
|
|
/* 800355BC 000313FC 80 67 02 54 */ lwz r3, 0x254(r7)
|
|
/* 800355C0 00031400 90 65 80 00 */ stw r3, -0x8000(r5)
|
|
/* 800355C4 00031404 B0 07 00 02 */ sth r0, 2(r7)
|
|
/* 800355C8 00031408 4E 80 00 20 */ blr
|
|
/* 800355CC 0003140C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
|
|
.global __GXSetGenMode
|
|
__GXSetGenMode:
|
|
/* 800355D0 00031410 3C 80 CC 01 */ lis r4, 0xCC008000@ha
|
|
/* 800355D4 00031414 38 00 00 61 */ li r0, 0x61
|
|
/* 800355D8 00031418 98 04 80 00 */ stb r0, 0xCC008000@l(r4)
|
|
/* 800355DC 0003141C 38 00 00 00 */ li r0, 0
|
|
/* 800355E0 00031420 80 A2 86 08 */ lwz r5, __GXData-_SDA2_BASE_(r2)
|
|
/* 800355E4 00031424 80 65 02 54 */ lwz r3, 0x254(r5)
|
|
/* 800355E8 00031428 90 64 80 00 */ stw r3, -0x8000(r4)
|
|
/* 800355EC 0003142C B0 05 00 02 */ sth r0, 2(r5)
|
|
/* 800355F0 00031430 4E 80 00 20 */ blr
|
|
/* 800355F4 00031434 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 800355F8 00031438 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|
|
/* 800355FC 0003143C 00 00 00 00 */ .4byte 0x00000000 /* unknown instruction */
|