mirror of https://github.com/zeldaret/tp.git
Merge branch 'master' of https://github.com/zeldaret/tp into work7
This commit is contained in:
commit
401639f9fa
|
|
@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
|
|||
.init | 97.972973% | 9280 | 9472
|
||||
.extab | 100.000000% | 96 | 96
|
||||
.extabindex | 100.000000% | 96 | 96
|
||||
.text | 23.385005% | 841052 | 3596544
|
||||
.text | 23.307153% | 838252 | 3596544
|
||||
.ctors | 100.000000% | 448 | 448
|
||||
.dtors | 100.000000% | 32 | 32
|
||||
.rodata | 100.000000% | 193856 | 193856
|
||||
.data | 100.000000% | 197632 | 197632
|
||||
.sdata | 100.000000% | 1408 | 1408
|
||||
.sdata2 | 100.000000% | 20832 | 20832
|
||||
Total | 31.462104% | 1264988 | 4020672
|
||||
Total | 31.392464% | 1262188 | 4020672
|
||||
|
||||
## Total
|
||||
|
||||
Section | Percentage | Decompiled (bytes) | Total (bytes)
|
||||
---|---|---|---
|
||||
main.dol | 31.462104% | 1264988 | 4020672
|
||||
main.dol | 31.392464% | 1262188 | 4020672
|
||||
RELs | 33.041295% | 3799856 | 11500324
|
||||
Total | 32.632210% | 5064844 | 15520996
|
||||
Total | 32.614170% | 5062044 | 15520996
|
||||
|
||||
## RELs
|
||||
|
||||
|
|
|
|||
|
|
@ -1,44 +0,0 @@
|
|||
lbl_80353E20:
|
||||
/* 80353E20 7C 08 02 A6 */ mflr r0
|
||||
/* 80353E24 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80353E28 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80353E2C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 80353E30 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 80353E34 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 80353E38 93 81 00 10 */ stw r28, 0x10(r1)
|
||||
/* 80353E3C 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 80353E40 1C 9C 01 10 */ mulli r4, r28, 0x110
|
||||
/* 80353E44 3C 60 80 45 */ lis r3, __CARDBlock@ha /* 0x8044CBC0@ha */
|
||||
/* 80353E48 38 03 CB C0 */ addi r0, r3, __CARDBlock@l /* 0x8044CBC0@l */
|
||||
/* 80353E4C 7F E0 22 14 */ add r31, r0, r4
|
||||
/* 80353E50 4B FE 98 A5 */ bl OSDisableInterrupts
|
||||
/* 80353E54 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 80353E58 48 00 00 0C */ b lbl_80353E64
|
||||
lbl_80353E5C:
|
||||
/* 80353E5C 38 7F 00 8C */ addi r3, r31, 0x8c
|
||||
/* 80353E60 4B FE DD 4D */ bl OSSleepThread
|
||||
lbl_80353E64:
|
||||
/* 80353E64 2C 1C 00 00 */ cmpwi r28, 0
|
||||
/* 80353E68 41 80 00 0C */ blt lbl_80353E74
|
||||
/* 80353E6C 2C 1C 00 02 */ cmpwi r28, 2
|
||||
/* 80353E70 41 80 00 0C */ blt lbl_80353E7C
|
||||
lbl_80353E74:
|
||||
/* 80353E74 38 00 FF 80 */ li r0, -128
|
||||
/* 80353E78 48 00 00 08 */ b lbl_80353E80
|
||||
lbl_80353E7C:
|
||||
/* 80353E7C 80 1F 00 04 */ lwz r0, 4(r31)
|
||||
lbl_80353E80:
|
||||
/* 80353E80 7C 1E 03 78 */ mr r30, r0
|
||||
/* 80353E84 2C 1E FF FF */ cmpwi r30, -1
|
||||
/* 80353E88 41 82 FF D4 */ beq lbl_80353E5C
|
||||
/* 80353E8C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80353E90 4B FE 98 8D */ bl OSRestoreInterrupts
|
||||
/* 80353E94 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80353E98 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80353E9C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80353EA0 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80353EA4 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 80353EA8 83 81 00 10 */ lwz r28, 0x10(r1)
|
||||
/* 80353EAC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80353EB0 7C 08 03 A6 */ mtlr r0
|
||||
/* 80353EB4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
lbl_8035D5F8:
|
||||
/* 8035D5F8 38 C0 00 61 */ li r6, 0x61
|
||||
/* 8035D5FC 80 62 CB 80 */ lwz r3, __GXData(r2)
|
||||
/* 8035D600 3C A0 CC 01 */ lis r5, 0xCC01 /* 0xCC008000@ha */
|
||||
/* 8035D604 3C 80 55 00 */ lis r4, 0x5500 /* 0x550003FF@ha */
|
||||
/* 8035D608 98 C5 80 00 */ stb r6, 0x8000(r5) /* 0xCC008000@l */
|
||||
/* 8035D60C 38 04 03 FF */ addi r0, r4, 0x03FF /* 0x550003FF@l */
|
||||
/* 8035D610 90 05 80 00 */ stw r0, -0x8000(r5)
|
||||
/* 8035D614 3C 80 56 00 */ lis r4, 0x5600 /* 0x560003FF@ha */
|
||||
/* 8035D618 38 84 03 FF */ addi r4, r4, 0x03FF /* 0x560003FF@l */
|
||||
/* 8035D61C 98 C5 80 00 */ stb r6, -0x8000(r5)
|
||||
/* 8035D620 38 00 00 00 */ li r0, 0
|
||||
/* 8035D624 90 85 80 00 */ stw r4, -0x8000(r5)
|
||||
/* 8035D628 B0 03 00 02 */ sth r0, 2(r3)
|
||||
/* 8035D62C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
lbl_8035CC84:
|
||||
/* 8035CC84 54 65 07 FE */ clrlwi r5, r3, 0x1f
|
||||
/* 8035CC88 80 82 CB 80 */ lwz r4, __GXData(r2)
|
||||
/* 8035CC8C 38 05 FF FF */ addi r0, r5, -1
|
||||
/* 8035CC90 7C 05 00 34 */ cntlzw r5, r0
|
||||
/* 8035CC94 80 04 01 EC */ lwz r0, 0x1ec(r4)
|
||||
/* 8035CC98 54 A5 DE 3E */ rlwinm r5, r5, 0x1b, 0x18, 0x1f
|
||||
/* 8035CC9C 54 63 07 BC */ rlwinm r3, r3, 0, 0x1e, 0x1e
|
||||
/* 8035CCA0 50 A0 07 FE */ rlwimi r0, r5, 0, 0x1f, 0x1f
|
||||
/* 8035CCA4 38 63 FF FE */ addi r3, r3, -2
|
||||
/* 8035CCA8 90 04 01 EC */ stw r0, 0x1ec(r4)
|
||||
/* 8035CCAC 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 8035CCB0 54 03 DE 3E */ rlwinm r3, r0, 0x1b, 0x18, 0x1f
|
||||
/* 8035CCB4 80 04 01 EC */ lwz r0, 0x1ec(r4)
|
||||
/* 8035CCB8 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
|
||||
/* 8035CCBC 90 04 01 EC */ stw r0, 0x1ec(r4)
|
||||
/* 8035CCC0 80 04 01 FC */ lwz r0, 0x1fc(r4)
|
||||
/* 8035CCC4 50 A0 07 FE */ rlwimi r0, r5, 0, 0x1f, 0x1f
|
||||
/* 8035CCC8 90 04 01 FC */ stw r0, 0x1fc(r4)
|
||||
/* 8035CCCC 80 04 01 FC */ lwz r0, 0x1fc(r4)
|
||||
/* 8035CCD0 50 60 0F BC */ rlwimi r0, r3, 1, 0x1e, 0x1e
|
||||
/* 8035CCD4 90 04 01 FC */ stw r0, 0x1fc(r4)
|
||||
/* 8035CCD8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
lbl_8035D070:
|
||||
/* 8035D070 88 A3 00 00 */ lbz r5, 0(r3)
|
||||
/* 8035D074 38 C0 00 00 */ li r6, 0
|
||||
/* 8035D078 88 03 00 03 */ lbz r0, 3(r3)
|
||||
/* 8035D07C 39 20 00 61 */ li r9, 0x61
|
||||
/* 8035D080 50 A6 06 3E */ rlwimi r6, r5, 0, 0x18, 0x1f
|
||||
/* 8035D084 3D 00 CC 01 */ lis r8, 0xCC01 /* 0xCC008000@ha */
|
||||
/* 8035D088 80 A2 CB 80 */ lwz r5, __GXData(r2)
|
||||
/* 8035D08C 50 06 44 2E */ rlwimi r6, r0, 8, 0x10, 0x17
|
||||
/* 8035D090 99 28 80 00 */ stb r9, 0x8000(r8) /* 0xCC008000@l */
|
||||
/* 8035D094 38 00 00 4F */ li r0, 0x4f
|
||||
/* 8035D098 50 06 C0 0E */ rlwimi r6, r0, 0x18, 0, 7
|
||||
/* 8035D09C 90 C8 80 00 */ stw r6, -0x8000(r8)
|
||||
/* 8035D0A0 39 40 00 00 */ li r10, 0
|
||||
/* 8035D0A4 38 C0 00 50 */ li r6, 0x50
|
||||
/* 8035D0A8 88 E3 00 02 */ lbz r7, 2(r3)
|
||||
/* 8035D0AC 39 60 00 00 */ li r11, 0
|
||||
/* 8035D0B0 88 63 00 01 */ lbz r3, 1(r3)
|
||||
/* 8035D0B4 38 00 00 51 */ li r0, 0x51
|
||||
/* 8035D0B8 50 EB 06 3E */ rlwimi r11, r7, 0, 0x18, 0x1f
|
||||
/* 8035D0BC 50 6B 44 2E */ rlwimi r11, r3, 8, 0x10, 0x17
|
||||
/* 8035D0C0 99 28 80 00 */ stb r9, -0x8000(r8)
|
||||
/* 8035D0C4 50 CB C0 0E */ rlwimi r11, r6, 0x18, 0, 7
|
||||
/* 8035D0C8 91 68 80 00 */ stw r11, -0x8000(r8)
|
||||
/* 8035D0CC 50 8A 02 3E */ rlwimi r10, r4, 0, 8, 0x1f
|
||||
/* 8035D0D0 50 0A C0 0E */ rlwimi r10, r0, 0x18, 0, 7
|
||||
/* 8035D0D4 99 28 80 00 */ stb r9, -0x8000(r8)
|
||||
/* 8035D0D8 38 00 00 00 */ li r0, 0
|
||||
/* 8035D0DC 91 48 80 00 */ stw r10, -0x8000(r8)
|
||||
/* 8035D0E0 B0 05 00 02 */ sth r0, 2(r5)
|
||||
/* 8035D0E4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
lbl_8035CAFC:
|
||||
/* 8035CAFC 80 82 CB 80 */ lwz r4, __GXData(r2)
|
||||
/* 8035CB00 38 00 00 00 */ li r0, 0
|
||||
/* 8035CB04 90 04 01 E8 */ stw r0, 0x1e8(r4)
|
||||
/* 8035CB08 54 60 0C 3C */ rlwinm r0, r3, 1, 0x10, 0x1e
|
||||
/* 8035CB0C 7C 00 2E 70 */ srawi r0, r0, 5
|
||||
/* 8035CB10 80 64 01 E8 */ lwz r3, 0x1e8(r4)
|
||||
/* 8035CB14 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
|
||||
/* 8035CB18 38 00 00 4D */ li r0, 0x4d
|
||||
/* 8035CB1C 90 64 01 E8 */ stw r3, 0x1e8(r4)
|
||||
/* 8035CB20 80 64 01 E8 */ lwz r3, 0x1e8(r4)
|
||||
/* 8035CB24 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
|
||||
/* 8035CB28 90 64 01 E8 */ stw r3, 0x1e8(r4)
|
||||
/* 8035CB2C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
lbl_8035CC60:
|
||||
/* 8035CC60 80 A2 CB 80 */ lwz r5, __GXData(r2)
|
||||
/* 8035CC64 38 00 00 00 */ li r0, 0
|
||||
/* 8035CC68 80 85 01 EC */ lwz r4, 0x1ec(r5)
|
||||
/* 8035CC6C 50 64 64 A6 */ rlwimi r4, r3, 0xc, 0x12, 0x13
|
||||
/* 8035CC70 90 85 01 EC */ stw r4, 0x1ec(r5)
|
||||
/* 8035CC74 80 65 01 FC */ lwz r3, 0x1fc(r5)
|
||||
/* 8035CC78 50 03 64 A6 */ rlwimi r3, r0, 0xc, 0x12, 0x13
|
||||
/* 8035CC7C 90 65 01 FC */ stw r3, 0x1fc(r5)
|
||||
/* 8035CC80 4E 80 00 20 */ blr
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
lbl_8035D2F0:
|
||||
/* 8035D2F0 80 82 CB 80 */ lwz r4, __GXData(r2)
|
||||
/* 8035D2F4 80 04 01 EC */ lwz r0, 0x1ec(r4)
|
||||
/* 8035D2F8 50 60 3D F0 */ rlwimi r0, r3, 7, 0x17, 0x18
|
||||
/* 8035D2FC 90 04 01 EC */ stw r0, 0x1ec(r4)
|
||||
/* 8035D300 4E 80 00 20 */ blr
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
lbl_8035CA04:
|
||||
/* 8035CA04 81 02 CB 80 */ lwz r8, __GXData(r2)
|
||||
/* 8035CA08 39 20 00 00 */ li r9, 0
|
||||
/* 8035CA0C 54 A7 04 3E */ clrlwi r7, r5, 0x10
|
||||
/* 8035CA10 91 28 01 E0 */ stw r9, 0x1e0(r8)
|
||||
/* 8035CA14 54 C5 04 3E */ clrlwi r5, r6, 0x10
|
||||
/* 8035CA18 54 60 04 3E */ clrlwi r0, r3, 0x10
|
||||
/* 8035CA1C 80 68 01 E0 */ lwz r3, 0x1e0(r8)
|
||||
/* 8035CA20 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
|
||||
/* 8035CA24 54 80 04 3E */ clrlwi r0, r4, 0x10
|
||||
/* 8035CA28 90 68 01 E0 */ stw r3, 0x1e0(r8)
|
||||
/* 8035CA2C 38 C0 00 49 */ li r6, 0x49
|
||||
/* 8035CA30 38 87 FF FF */ addi r4, r7, -1
|
||||
/* 8035CA34 80 E8 01 E0 */ lwz r7, 0x1e0(r8)
|
||||
/* 8035CA38 50 07 53 2A */ rlwimi r7, r0, 0xa, 0xc, 0x15
|
||||
/* 8035CA3C 38 65 FF FF */ addi r3, r5, -1
|
||||
/* 8035CA40 90 E8 01 E0 */ stw r7, 0x1e0(r8)
|
||||
/* 8035CA44 38 00 00 4A */ li r0, 0x4a
|
||||
/* 8035CA48 80 A8 01 E0 */ lwz r5, 0x1e0(r8)
|
||||
/* 8035CA4C 50 C5 C0 0E */ rlwimi r5, r6, 0x18, 0, 7
|
||||
/* 8035CA50 90 A8 01 E0 */ stw r5, 0x1e0(r8)
|
||||
/* 8035CA54 91 28 01 E4 */ stw r9, 0x1e4(r8)
|
||||
/* 8035CA58 80 A8 01 E4 */ lwz r5, 0x1e4(r8)
|
||||
/* 8035CA5C 50 85 05 BE */ rlwimi r5, r4, 0, 0x16, 0x1f
|
||||
/* 8035CA60 90 A8 01 E4 */ stw r5, 0x1e4(r8)
|
||||
/* 8035CA64 80 88 01 E4 */ lwz r4, 0x1e4(r8)
|
||||
/* 8035CA68 50 64 53 2A */ rlwimi r4, r3, 0xa, 0xc, 0x15
|
||||
/* 8035CA6C 90 88 01 E4 */ stw r4, 0x1e4(r8)
|
||||
/* 8035CA70 80 68 01 E4 */ lwz r3, 0x1e4(r8)
|
||||
/* 8035CA74 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
|
||||
/* 8035CA78 90 68 01 E4 */ stw r3, 0x1e4(r8)
|
||||
/* 8035CA7C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
lbl_8035CA80:
|
||||
/* 8035CA80 81 02 CB 80 */ lwz r8, __GXData(r2)
|
||||
/* 8035CA84 39 20 00 00 */ li r9, 0
|
||||
/* 8035CA88 54 A7 04 3E */ clrlwi r7, r5, 0x10
|
||||
/* 8035CA8C 91 28 01 F0 */ stw r9, 0x1f0(r8)
|
||||
/* 8035CA90 54 C5 04 3E */ clrlwi r5, r6, 0x10
|
||||
/* 8035CA94 54 60 04 3E */ clrlwi r0, r3, 0x10
|
||||
/* 8035CA98 80 68 01 F0 */ lwz r3, 0x1f0(r8)
|
||||
/* 8035CA9C 50 03 05 BE */ rlwimi r3, r0, 0, 0x16, 0x1f
|
||||
/* 8035CAA0 54 80 04 3E */ clrlwi r0, r4, 0x10
|
||||
/* 8035CAA4 90 68 01 F0 */ stw r3, 0x1f0(r8)
|
||||
/* 8035CAA8 38 C0 00 49 */ li r6, 0x49
|
||||
/* 8035CAAC 38 87 FF FF */ addi r4, r7, -1
|
||||
/* 8035CAB0 80 E8 01 F0 */ lwz r7, 0x1f0(r8)
|
||||
/* 8035CAB4 50 07 53 2A */ rlwimi r7, r0, 0xa, 0xc, 0x15
|
||||
/* 8035CAB8 38 65 FF FF */ addi r3, r5, -1
|
||||
/* 8035CABC 90 E8 01 F0 */ stw r7, 0x1f0(r8)
|
||||
/* 8035CAC0 38 00 00 4A */ li r0, 0x4a
|
||||
/* 8035CAC4 80 A8 01 F0 */ lwz r5, 0x1f0(r8)
|
||||
/* 8035CAC8 50 C5 C0 0E */ rlwimi r5, r6, 0x18, 0, 7
|
||||
/* 8035CACC 90 A8 01 F0 */ stw r5, 0x1f0(r8)
|
||||
/* 8035CAD0 91 28 01 F4 */ stw r9, 0x1f4(r8)
|
||||
/* 8035CAD4 80 A8 01 F4 */ lwz r5, 0x1f4(r8)
|
||||
/* 8035CAD8 50 85 05 BE */ rlwimi r5, r4, 0, 0x16, 0x1f
|
||||
/* 8035CADC 90 A8 01 F4 */ stw r5, 0x1f4(r8)
|
||||
/* 8035CAE0 80 88 01 F4 */ lwz r4, 0x1f4(r8)
|
||||
/* 8035CAE4 50 64 53 2A */ rlwimi r4, r3, 0xa, 0xc, 0x15
|
||||
/* 8035CAE8 90 88 01 F4 */ stw r4, 0x1f4(r8)
|
||||
/* 8035CAEC 80 68 01 F4 */ lwz r3, 0x1f4(r8)
|
||||
/* 8035CAF0 50 03 C0 0E */ rlwimi r3, r0, 0x18, 0, 7
|
||||
/* 8035CAF4 90 68 01 F4 */ stw r3, 0x1f4(r8)
|
||||
/* 8035CAF8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
lbl_80359318:
|
||||
/* 80359318 28 03 00 14 */ cmplwi r3, 0x14
|
||||
/* 8035931C 41 80 00 0C */ blt lbl_80359328
|
||||
/* 80359320 38 60 00 00 */ li r3, 0
|
||||
/* 80359324 48 00 00 14 */ b lbl_80359338
|
||||
lbl_80359328:
|
||||
/* 80359328 54 63 20 36 */ slwi r3, r3, 4
|
||||
/* 8035932C 80 02 CB 80 */ lwz r0, __GXData(r2)
|
||||
/* 80359330 38 63 03 88 */ addi r3, r3, 0x388
|
||||
/* 80359334 7C 60 1A 14 */ add r3, r0, r3
|
||||
lbl_80359338:
|
||||
/* 80359338 4E 80 00 20 */ blr
|
||||
|
|
@ -1,66 +0,0 @@
|
|||
lbl_80346290:
|
||||
/* 80346290 7C 08 02 A6 */ mflr r0
|
||||
/* 80346294 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80346298 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8034629C 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 803462A0 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 803462A4 93 A1 00 14 */ stw r29, 0x14(r1)
|
||||
/* 803462A8 3B A3 00 00 */ addi r29, r3, 0
|
||||
/* 803462AC 28 1D 00 0B */ cmplwi r29, 0xb
|
||||
/* 803462B0 3C 60 80 3D */ lis r3, XYNTSC@ha /* 0x803D12D0@ha */
|
||||
/* 803462B4 3B E3 12 D0 */ addi r31, r3, XYNTSC@l /* 0x803D12D0@l */
|
||||
/* 803462B8 40 81 00 08 */ ble lbl_803462C0
|
||||
/* 803462BC 3B A0 00 0B */ li r29, 0xb
|
||||
lbl_803462C0:
|
||||
/* 803462C0 4B FF 74 35 */ bl OSDisableInterrupts
|
||||
/* 803462C4 93 AD 91 80 */ stw r29, SamplingRate(r13)
|
||||
/* 803462C8 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 803462CC 48 00 77 D1 */ bl VIGetTvFormat
|
||||
/* 803462D0 2C 03 00 02 */ cmpwi r3, 2
|
||||
/* 803462D4 41 82 00 24 */ beq lbl_803462F8
|
||||
/* 803462D8 40 80 00 14 */ bge lbl_803462EC
|
||||
/* 803462DC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803462E0 41 82 00 18 */ beq lbl_803462F8
|
||||
/* 803462E4 40 80 00 1C */ bge lbl_80346300
|
||||
/* 803462E8 48 00 00 20 */ b lbl_80346308
|
||||
lbl_803462EC:
|
||||
/* 803462EC 2C 03 00 05 */ cmpwi r3, 5
|
||||
/* 803462F0 41 82 00 08 */ beq lbl_803462F8
|
||||
/* 803462F4 48 00 00 14 */ b lbl_80346308
|
||||
lbl_803462F8:
|
||||
/* 803462F8 7F E4 FB 78 */ mr r4, r31
|
||||
/* 803462FC 48 00 00 20 */ b lbl_8034631C
|
||||
lbl_80346300:
|
||||
/* 80346300 38 9F 00 30 */ addi r4, r31, 0x30
|
||||
/* 80346304 48 00 00 18 */ b lbl_8034631C
|
||||
lbl_80346308:
|
||||
/* 80346308 38 7F 00 60 */ addi r3, r31, 0x60
|
||||
/* 8034630C 4C C6 31 82 */ crclr 6
|
||||
/* 80346310 4B CC 07 AD */ bl OSReport
|
||||
/* 80346314 3B A0 00 00 */ li r29, 0
|
||||
/* 80346318 38 9F 00 00 */ addi r4, r31, 0
|
||||
lbl_8034631C:
|
||||
/* 8034631C 3C 60 CC 00 */ lis r3, 0xCC00 /* 0xCC00206C@ha */
|
||||
/* 80346320 A0 03 20 6C */ lhz r0, 0x206C(r3) /* 0xCC00206C@l */
|
||||
/* 80346324 54 00 07 FF */ clrlwi. r0, r0, 0x1f
|
||||
/* 80346328 41 82 00 0C */ beq lbl_80346334
|
||||
/* 8034632C 38 A0 00 02 */ li r5, 2
|
||||
/* 80346330 48 00 00 08 */ b lbl_80346338
|
||||
lbl_80346334:
|
||||
/* 80346334 38 A0 00 01 */ li r5, 1
|
||||
lbl_80346338:
|
||||
/* 80346338 57 A3 10 3A */ slwi r3, r29, 2
|
||||
/* 8034633C 7C 04 1A 2E */ lhzx r0, r4, r3
|
||||
/* 80346340 7C 64 1A 14 */ add r3, r4, r3
|
||||
/* 80346344 88 83 00 02 */ lbz r4, 2(r3)
|
||||
/* 80346348 7C 65 01 D6 */ mullw r3, r5, r0
|
||||
/* 8034634C 4B FF F4 A9 */ bl SISetXY
|
||||
/* 80346350 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80346354 4B FF 73 C9 */ bl OSRestoreInterrupts
|
||||
/* 80346358 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8034635C 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80346360 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 80346364 83 A1 00 14 */ lwz r29, 0x14(r1)
|
||||
/* 80346368 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8034636C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80346370 4E 80 00 20 */ blr
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
lbl_8034DB04:
|
||||
/* 8034DB04 7C 08 02 A6 */ mflr r0
|
||||
/* 8034DB08 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034DB0C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8034DB10 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8034DB14 4B FE FB E1 */ bl OSDisableInterrupts
|
||||
/* 8034DB18 3C 80 CC 00 */ lis r4, 0xCC00 /* 0xCC00206E@ha */
|
||||
/* 8034DB1C A0 04 20 6E */ lhz r0, 0x206E(r4) /* 0xCC00206E@l */
|
||||
/* 8034DB20 54 1F 07 BE */ clrlwi r31, r0, 0x1e
|
||||
/* 8034DB24 4B FE FB F9 */ bl OSRestoreInterrupts
|
||||
/* 8034DB28 57 E3 07 FE */ clrlwi r3, r31, 0x1f
|
||||
/* 8034DB2C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8034DB30 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8034DB34 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8034DB38 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034DB3C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
lbl_8034D840:
|
||||
/* 8034D840 7C 08 02 A6 */ mflr r0
|
||||
/* 8034D844 3C 80 80 45 */ lis r4, regs@ha /* 0x8044CA28@ha */
|
||||
/* 8034D848 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034D84C 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8034D850 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 8034D854 3B E4 CA 28 */ addi r31, r4, regs@l /* 0x8044CA28@l */
|
||||
/* 8034D858 93 C1 00 18 */ stw r30, 0x18(r1)
|
||||
/* 8034D85C 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034D860 4B FE FE 95 */ bl OSDisableInterrupts
|
||||
/* 8034D864 93 DF 01 30 */ stw r30, 0x130(r31)
|
||||
/* 8034D868 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8034D86C 81 5F 01 44 */ lwz r10, 0x144(r31)
|
||||
/* 8034D870 80 1F 01 30 */ lwz r0, 0x130(r31)
|
||||
/* 8034D874 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 8034D878 A0 7F 00 FA */ lhz r3, 0xfa(r31)
|
||||
/* 8034D87C A0 9F 00 F6 */ lhz r4, 0xf6(r31)
|
||||
/* 8034D880 88 AA 00 00 */ lbz r5, 0(r10)
|
||||
/* 8034D884 A0 CA 00 02 */ lhz r6, 2(r10)
|
||||
/* 8034D888 A0 EA 00 04 */ lhz r7, 4(r10)
|
||||
/* 8034D88C A1 0A 00 06 */ lhz r8, 6(r10)
|
||||
/* 8034D890 A1 2A 00 08 */ lhz r9, 8(r10)
|
||||
/* 8034D894 A1 4A 00 0A */ lhz r10, 0xa(r10)
|
||||
/* 8034D898 4B FF F4 55 */ bl setVerticalRegs
|
||||
/* 8034D89C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034D8A0 4B FE FE 7D */ bl OSRestoreInterrupts
|
||||
/* 8034D8A4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 8034D8A8 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 8034D8AC 83 C1 00 18 */ lwz r30, 0x18(r1)
|
||||
/* 8034D8B0 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 8034D8B4 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034D8B8 4E 80 00 20 */ blr
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
lbl_8034D7C4:
|
||||
/* 8034D7C4 7C 08 02 A6 */ mflr r0
|
||||
/* 8034D7C8 3C 80 80 45 */ lis r4, regs@ha /* 0x8044CA28@ha */
|
||||
/* 8034D7CC 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034D7D0 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034D7D4 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034D7D8 3B E4 CA 28 */ addi r31, r4, regs@l /* 0x8044CA28@l */
|
||||
/* 8034D7DC 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 8034D7E0 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034D7E4 4B FE FF 11 */ bl OSDisableInterrupts
|
||||
/* 8034D7E8 93 DF 01 20 */ stw r30, 0x120(r31)
|
||||
/* 8034D7EC 38 00 00 01 */ li r0, 1
|
||||
/* 8034D7F0 3B C3 00 00 */ addi r30, r3, 0
|
||||
/* 8034D7F4 90 0D 92 B8 */ stw r0, FBSet(r13)
|
||||
/* 8034D7F8 38 7F 00 F0 */ addi r3, r31, 0xf0
|
||||
/* 8034D7FC 38 9F 01 24 */ addi r4, r31, 0x124
|
||||
/* 8034D800 38 BF 01 28 */ addi r5, r31, 0x128
|
||||
/* 8034D804 38 DF 01 3C */ addi r6, r31, 0x13c
|
||||
/* 8034D808 38 FF 01 40 */ addi r7, r31, 0x140
|
||||
/* 8034D80C 4B FF F2 0D */ bl setFbbRegs
|
||||
/* 8034D810 7F C3 F3 78 */ mr r3, r30
|
||||
/* 8034D814 4B FE FF 09 */ bl OSRestoreInterrupts
|
||||
/* 8034D818 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034D81C 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034D820 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 8034D824 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034D828 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034D82C 4E 80 00 20 */ blr
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
lbl_8034C224:
|
||||
/* 8034C224 7C 08 02 A6 */ mflr r0
|
||||
/* 8034C228 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034C22C 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034C230 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034C234 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 8034C238 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8034C23C 83 ED 92 78 */ lwz r31, PostCB(r13)
|
||||
/* 8034C240 4B FF 14 B5 */ bl OSDisableInterrupts
|
||||
/* 8034C244 93 CD 92 78 */ stw r30, PostCB(r13)
|
||||
/* 8034C248 4B FF 14 D5 */ bl OSRestoreInterrupts
|
||||
/* 8034C24C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034C250 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034C254 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034C258 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 8034C25C 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034C260 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034C264 4E 80 00 20 */ blr
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
lbl_8034C1E0:
|
||||
/* 8034C1E0 7C 08 02 A6 */ mflr r0
|
||||
/* 8034C1E4 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034C1E8 94 21 FF E8 */ stwu r1, -0x18(r1)
|
||||
/* 8034C1EC 93 E1 00 14 */ stw r31, 0x14(r1)
|
||||
/* 8034C1F0 93 C1 00 10 */ stw r30, 0x10(r1)
|
||||
/* 8034C1F4 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8034C1F8 83 ED 92 74 */ lwz r31, PreCB(r13)
|
||||
/* 8034C1FC 4B FF 14 F9 */ bl OSDisableInterrupts
|
||||
/* 8034C200 93 CD 92 74 */ stw r30, PreCB(r13)
|
||||
/* 8034C204 4B FF 15 19 */ bl OSRestoreInterrupts
|
||||
/* 8034C208 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034C20C 80 01 00 1C */ lwz r0, 0x1c(r1)
|
||||
/* 8034C210 83 E1 00 14 */ lwz r31, 0x14(r1)
|
||||
/* 8034C214 83 C1 00 10 */ lwz r30, 0x10(r1)
|
||||
/* 8034C218 38 21 00 18 */ addi r1, r1, 0x18
|
||||
/* 8034C21C 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034C220 4E 80 00 20 */ blr
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
lbl_8034C9C4:
|
||||
/* 8034C9C4 7C 08 02 A6 */ mflr r0
|
||||
/* 8034C9C8 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 8034C9CC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8034C9D0 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8034C9D4 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 8034C9D8 4B FF 0D 1D */ bl OSDisableInterrupts
|
||||
/* 8034C9DC 83 CD 92 64 */ lwz r30, retraceCount(r13)
|
||||
/* 8034C9E0 7C 7F 1B 78 */ mr r31, r3
|
||||
lbl_8034C9E4:
|
||||
/* 8034C9E4 38 6D 92 6C */ la r3, retraceQueue(r13) /* 804517EC-_SDA_BASE_ */
|
||||
/* 8034C9E8 4B FF 51 C5 */ bl OSSleepThread
|
||||
/* 8034C9EC 80 0D 92 64 */ lwz r0, retraceCount(r13)
|
||||
/* 8034C9F0 7C 1E 00 40 */ cmplw r30, r0
|
||||
/* 8034C9F4 41 82 FF F0 */ beq lbl_8034C9E4
|
||||
/* 8034C9F8 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8034C9FC 4B FF 0D 21 */ bl OSRestoreInterrupts
|
||||
/* 8034CA00 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8034CA04 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8034CA08 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 8034CA0C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8034CA10 7C 08 03 A6 */ mtlr r0
|
||||
/* 8034CA14 4E 80 00 20 */ blr
|
||||
|
|
@ -1,261 +0,0 @@
|
|||
lbl_80344238:
|
||||
/* 80344238 7C 08 02 A6 */ mflr r0
|
||||
/* 8034423C 90 01 00 04 */ stw r0, 4(r1)
|
||||
/* 80344240 94 21 FF B8 */ stwu r1, -0x48(r1)
|
||||
/* 80344244 BE E1 00 24 */ stmw r23, 0x24(r1)
|
||||
/* 80344248 7C 79 1B 79 */ or. r25, r3, r3
|
||||
/* 8034424C 3B 44 00 00 */ addi r26, r4, 0
|
||||
/* 80344250 3B 65 00 00 */ addi r27, r5, 0
|
||||
/* 80344254 54 64 30 32 */ slwi r4, r3, 6
|
||||
/* 80344258 3C 60 80 45 */ lis r3, Ecb@ha /* 0x8044C570@ha */
|
||||
/* 8034425C 38 03 C5 70 */ addi r0, r3, Ecb@l /* 0x8044C570@l */
|
||||
/* 80344260 7F E0 22 14 */ add r31, r0, r4
|
||||
/* 80344264 40 82 00 24 */ bne lbl_80344288
|
||||
/* 80344268 28 1A 00 02 */ cmplwi r26, 2
|
||||
/* 8034426C 40 82 00 1C */ bne lbl_80344288
|
||||
/* 80344270 80 0D 91 58 */ lwz r0, IDSerialPort1(r13)
|
||||
/* 80344274 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80344278 41 82 00 10 */ beq lbl_80344288
|
||||
/* 8034427C 90 1B 00 00 */ stw r0, 0(r27)
|
||||
/* 80344280 38 60 00 01 */ li r3, 1
|
||||
/* 80344284 48 00 03 50 */ b lbl_803445D4
|
||||
lbl_80344288:
|
||||
/* 80344288 2C 19 00 02 */ cmpwi r25, 2
|
||||
/* 8034428C 40 80 00 E0 */ bge lbl_8034436C
|
||||
/* 80344290 28 1A 00 00 */ cmplwi r26, 0
|
||||
/* 80344294 40 82 00 D8 */ bne lbl_8034436C
|
||||
/* 80344298 7F 23 CB 78 */ mr r3, r25
|
||||
/* 8034429C 4B FF F1 5D */ bl __EXIProbe
|
||||
/* 803442A0 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803442A4 40 82 00 0C */ bne lbl_803442B0
|
||||
/* 803442A8 38 60 00 00 */ li r3, 0
|
||||
/* 803442AC 48 00 03 28 */ b lbl_803445D4
|
||||
lbl_803442B0:
|
||||
/* 803442B0 80 9F 00 20 */ lwz r4, 0x20(r31)
|
||||
/* 803442B4 57 20 10 3A */ slwi r0, r25, 2
|
||||
/* 803442B8 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030C0@ha */
|
||||
/* 803442BC 3B C3 30 C0 */ addi r30, r3, 0x30C0 /* 0x800030C0@l */
|
||||
/* 803442C0 7F DE 02 14 */ add r30, r30, r0
|
||||
/* 803442C4 80 1E 00 00 */ lwz r0, 0(r30)
|
||||
/* 803442C8 7C 04 00 00 */ cmpw r4, r0
|
||||
/* 803442CC 40 82 00 14 */ bne lbl_803442E0
|
||||
/* 803442D0 80 1F 00 1C */ lwz r0, 0x1c(r31)
|
||||
/* 803442D4 90 1B 00 00 */ stw r0, 0(r27)
|
||||
/* 803442D8 80 7F 00 20 */ lwz r3, 0x20(r31)
|
||||
/* 803442DC 48 00 02 F8 */ b lbl_803445D4
|
||||
lbl_803442E0:
|
||||
/* 803442E0 4B FF 94 15 */ bl OSDisableInterrupts
|
||||
/* 803442E4 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 803442E8 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 803442EC 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
|
||||
/* 803442F0 40 82 00 14 */ bne lbl_80344304
|
||||
/* 803442F4 7F 23 CB 78 */ mr r3, r25
|
||||
/* 803442F8 4B FF F1 01 */ bl __EXIProbe
|
||||
/* 803442FC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80344300 40 82 00 14 */ bne lbl_80344314
|
||||
lbl_80344304:
|
||||
/* 80344304 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80344308 4B FF 94 15 */ bl OSRestoreInterrupts
|
||||
/* 8034430C 38 00 00 00 */ li r0, 0
|
||||
/* 80344310 48 00 00 48 */ b lbl_80344358
|
||||
lbl_80344314:
|
||||
/* 80344314 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 80344318 38 80 00 01 */ li r4, 1
|
||||
/* 8034431C 38 A0 00 00 */ li r5, 0
|
||||
/* 80344320 38 C0 00 00 */ li r6, 0
|
||||
/* 80344324 4B FF F0 11 */ bl EXIClearInterrupts
|
||||
/* 80344328 38 00 00 00 */ li r0, 0
|
||||
/* 8034432C 90 1F 00 08 */ stw r0, 8(r31)
|
||||
/* 80344330 3C 60 00 10 */ lis r3, 0x10
|
||||
/* 80344334 1C 19 00 03 */ mulli r0, r25, 3
|
||||
/* 80344338 7C 63 04 30 */ srw r3, r3, r0
|
||||
/* 8034433C 4B FF 98 09 */ bl __OSUnmaskInterrupts
|
||||
/* 80344340 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80344344 60 00 00 08 */ ori r0, r0, 8
|
||||
/* 80344348 90 1F 00 0C */ stw r0, 0xc(r31)
|
||||
/* 8034434C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80344350 4B FF 93 CD */ bl OSRestoreInterrupts
|
||||
/* 80344354 38 00 00 01 */ li r0, 1
|
||||
lbl_80344358:
|
||||
/* 80344358 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 8034435C 40 82 00 0C */ bne lbl_80344368
|
||||
/* 80344360 38 60 00 00 */ li r3, 0
|
||||
/* 80344364 48 00 02 70 */ b lbl_803445D4
|
||||
lbl_80344368:
|
||||
/* 80344368 83 BE 00 00 */ lwz r29, 0(r30)
|
||||
lbl_8034436C:
|
||||
/* 8034436C 4B FF 93 89 */ bl OSDisableInterrupts
|
||||
/* 80344370 3B 83 00 00 */ addi r28, r3, 0
|
||||
/* 80344374 38 00 00 00 */ li r0, 0
|
||||
/* 80344378 2C 19 00 02 */ cmpwi r25, 2
|
||||
/* 8034437C 40 80 00 10 */ bge lbl_8034438C
|
||||
/* 80344380 28 1A 00 00 */ cmplwi r26, 0
|
||||
/* 80344384 40 82 00 08 */ bne lbl_8034438C
|
||||
/* 80344388 38 00 00 01 */ li r0, 1
|
||||
lbl_8034438C:
|
||||
/* 8034438C 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80344390 41 82 00 10 */ beq lbl_803443A0
|
||||
/* 80344394 3C 60 80 34 */ lis r3, UnlockedHandler@ha /* 0x80344210@ha */
|
||||
/* 80344398 38 A3 42 10 */ addi r5, r3, UnlockedHandler@l /* 0x80344210@l */
|
||||
/* 8034439C 48 00 00 08 */ b lbl_803443A4
|
||||
lbl_803443A0:
|
||||
/* 803443A0 38 A0 00 00 */ li r5, 0
|
||||
lbl_803443A4:
|
||||
/* 803443A4 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 803443A8 38 9A 00 00 */ addi r4, r26, 0
|
||||
/* 803443AC 4B FF FC 7D */ bl EXILock
|
||||
/* 803443B0 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 803443B4 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 803443B8 7C 1E 03 79 */ or. r30, r0, r0
|
||||
/* 803443BC 40 82 01 34 */ bne lbl_803444F0
|
||||
/* 803443C0 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 803443C4 38 9A 00 00 */ addi r4, r26, 0
|
||||
/* 803443C8 38 A0 00 00 */ li r5, 0
|
||||
/* 803443CC 4B FF F4 9D */ bl EXISelect
|
||||
/* 803443D0 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 803443D4 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 803443D8 7C 1E 03 79 */ or. r30, r0, r0
|
||||
/* 803443DC 40 82 00 90 */ bne lbl_8034446C
|
||||
/* 803443E0 38 00 00 00 */ li r0, 0
|
||||
/* 803443E4 90 01 00 1C */ stw r0, 0x1c(r1)
|
||||
/* 803443E8 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 803443EC 38 81 00 1C */ addi r4, r1, 0x1c
|
||||
/* 803443F0 38 A0 00 02 */ li r5, 2
|
||||
/* 803443F4 38 C0 00 01 */ li r6, 1
|
||||
/* 803443F8 38 E0 00 00 */ li r7, 0
|
||||
/* 803443FC 4B FF E9 05 */ bl EXIImm
|
||||
/* 80344400 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80344404 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80344408 7F DE 03 78 */ or r30, r30, r0
|
||||
/* 8034440C 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 80344410 4B FF EC D9 */ bl EXISync
|
||||
/* 80344414 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80344418 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 8034441C 7F DE 03 78 */ or r30, r30, r0
|
||||
/* 80344420 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 80344424 38 9B 00 00 */ addi r4, r27, 0
|
||||
/* 80344428 38 A0 00 04 */ li r5, 4
|
||||
/* 8034442C 38 C0 00 00 */ li r6, 0
|
||||
/* 80344430 38 E0 00 00 */ li r7, 0
|
||||
/* 80344434 4B FF E8 CD */ bl EXIImm
|
||||
/* 80344438 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 8034443C 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80344440 7F DE 03 78 */ or r30, r30, r0
|
||||
/* 80344444 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 80344448 4B FF EC A1 */ bl EXISync
|
||||
/* 8034444C 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80344450 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80344454 7F DE 03 78 */ or r30, r30, r0
|
||||
/* 80344458 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 8034445C 4B FF F5 39 */ bl EXIDeselect
|
||||
/* 80344460 7C 60 00 34 */ cntlzw r0, r3
|
||||
/* 80344464 54 00 D9 7E */ srwi r0, r0, 5
|
||||
/* 80344468 7F DE 03 78 */ or r30, r30, r0
|
||||
lbl_8034446C:
|
||||
/* 8034446C 4B FF 92 89 */ bl OSDisableInterrupts
|
||||
/* 80344470 7C 77 1B 78 */ mr r23, r3
|
||||
/* 80344474 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80344478 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
|
||||
/* 8034447C 40 82 00 10 */ bne lbl_8034448C
|
||||
/* 80344480 7E E3 BB 78 */ mr r3, r23
|
||||
/* 80344484 4B FF 92 99 */ bl OSRestoreInterrupts
|
||||
/* 80344488 48 00 00 68 */ b lbl_803444F0
|
||||
lbl_8034448C:
|
||||
/* 8034448C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80344490 54 00 07 34 */ rlwinm r0, r0, 0, 0x1c, 0x1a
|
||||
/* 80344494 90 1F 00 0C */ stw r0, 0xc(r31)
|
||||
/* 80344498 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 8034449C 38 9F 00 00 */ addi r4, r31, 0
|
||||
/* 803444A0 4B FF E7 6D */ bl SetExiInterruptMask
|
||||
/* 803444A4 80 7F 00 24 */ lwz r3, 0x24(r31)
|
||||
/* 803444A8 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 803444AC 40 81 00 3C */ ble lbl_803444E8
|
||||
/* 803444B0 83 1F 00 2C */ lwz r24, 0x2c(r31)
|
||||
/* 803444B4 34 03 FF FF */ addic. r0, r3, -1
|
||||
/* 803444B8 90 1F 00 24 */ stw r0, 0x24(r31)
|
||||
/* 803444BC 40 81 00 18 */ ble lbl_803444D4
|
||||
/* 803444C0 38 7F 00 28 */ addi r3, r31, 0x28
|
||||
/* 803444C4 38 9F 00 30 */ addi r4, r31, 0x30
|
||||
/* 803444C8 80 1F 00 24 */ lwz r0, 0x24(r31)
|
||||
/* 803444CC 54 05 18 38 */ slwi r5, r0, 3
|
||||
/* 803444D0 48 02 1C 61 */ bl memmove
|
||||
lbl_803444D4:
|
||||
/* 803444D4 38 79 00 00 */ addi r3, r25, 0
|
||||
/* 803444D8 38 80 00 00 */ li r4, 0
|
||||
/* 803444DC 39 98 00 00 */ addi r12, r24, 0
|
||||
/* 803444E0 7D 88 03 A6 */ mtlr r12
|
||||
/* 803444E4 4E 80 00 21 */ blrl
|
||||
lbl_803444E8:
|
||||
/* 803444E8 7E E3 BB 78 */ mr r3, r23
|
||||
/* 803444EC 4B FF 92 31 */ bl OSRestoreInterrupts
|
||||
lbl_803444F0:
|
||||
/* 803444F0 7F 83 E3 78 */ mr r3, r28
|
||||
/* 803444F4 4B FF 92 29 */ bl OSRestoreInterrupts
|
||||
/* 803444F8 2C 19 00 02 */ cmpwi r25, 2
|
||||
/* 803444FC 40 80 00 C4 */ bge lbl_803445C0
|
||||
/* 80344500 28 1A 00 00 */ cmplwi r26, 0
|
||||
/* 80344504 40 82 00 BC */ bne lbl_803445C0
|
||||
/* 80344508 4B FF 91 ED */ bl OSDisableInterrupts
|
||||
/* 8034450C 7C 77 1B 78 */ mr r23, r3
|
||||
/* 80344510 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80344514 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
|
||||
/* 80344518 40 82 00 10 */ bne lbl_80344528
|
||||
/* 8034451C 7E E3 BB 78 */ mr r3, r23
|
||||
/* 80344520 4B FF 91 FD */ bl OSRestoreInterrupts
|
||||
/* 80344524 48 00 00 4C */ b lbl_80344570
|
||||
lbl_80344528:
|
||||
/* 80344528 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 8034452C 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
|
||||
/* 80344530 41 82 00 1C */ beq lbl_8034454C
|
||||
/* 80344534 80 1F 00 18 */ lwz r0, 0x18(r31)
|
||||
/* 80344538 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8034453C 40 82 00 10 */ bne lbl_8034454C
|
||||
/* 80344540 7E E3 BB 78 */ mr r3, r23
|
||||
/* 80344544 4B FF 91 D9 */ bl OSRestoreInterrupts
|
||||
/* 80344548 48 00 00 28 */ b lbl_80344570
|
||||
lbl_8034454C:
|
||||
/* 8034454C 80 1F 00 0C */ lwz r0, 0xc(r31)
|
||||
/* 80344550 54 00 07 76 */ rlwinm r0, r0, 0, 0x1d, 0x1b
|
||||
/* 80344554 90 1F 00 0C */ stw r0, 0xc(r31)
|
||||
/* 80344558 3C 60 00 50 */ lis r3, 0x50
|
||||
/* 8034455C 1C 19 00 03 */ mulli r0, r25, 3
|
||||
/* 80344560 7C 63 04 30 */ srw r3, r3, r0
|
||||
/* 80344564 4B FF 95 59 */ bl __OSMaskInterrupts
|
||||
/* 80344568 7E E3 BB 78 */ mr r3, r23
|
||||
/* 8034456C 4B FF 91 B1 */ bl OSRestoreInterrupts
|
||||
lbl_80344570:
|
||||
/* 80344570 4B FF 91 85 */ bl OSDisableInterrupts
|
||||
/* 80344574 57 20 10 3A */ slwi r0, r25, 2
|
||||
/* 80344578 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030C0@ha */
|
||||
/* 8034457C 38 84 30 C0 */ addi r4, r4, 0x30C0 /* 0x800030C0@l */
|
||||
/* 80344580 7C 04 00 2E */ lwzx r0, r4, r0
|
||||
/* 80344584 7C 9D 00 50 */ subf r4, r29, r0
|
||||
/* 80344588 30 04 FF FF */ addic r0, r4, -1
|
||||
/* 8034458C 7C 00 21 10 */ subfe r0, r0, r4
|
||||
/* 80344590 7F DE 03 79 */ or. r30, r30, r0
|
||||
/* 80344594 40 82 00 10 */ bne lbl_803445A4
|
||||
/* 80344598 80 1B 00 00 */ lwz r0, 0(r27)
|
||||
/* 8034459C 90 1F 00 1C */ stw r0, 0x1c(r31)
|
||||
/* 803445A0 93 BF 00 20 */ stw r29, 0x20(r31)
|
||||
lbl_803445A4:
|
||||
/* 803445A4 4B FF 91 79 */ bl OSRestoreInterrupts
|
||||
/* 803445A8 2C 1E 00 00 */ cmpwi r30, 0
|
||||
/* 803445AC 41 82 00 0C */ beq lbl_803445B8
|
||||
/* 803445B0 38 60 00 00 */ li r3, 0
|
||||
/* 803445B4 48 00 00 20 */ b lbl_803445D4
|
||||
lbl_803445B8:
|
||||
/* 803445B8 80 7F 00 20 */ lwz r3, 0x20(r31)
|
||||
/* 803445BC 48 00 00 18 */ b lbl_803445D4
|
||||
lbl_803445C0:
|
||||
/* 803445C0 2C 1E 00 00 */ cmpwi r30, 0
|
||||
/* 803445C4 41 82 00 0C */ beq lbl_803445D0
|
||||
/* 803445C8 38 60 00 00 */ li r3, 0
|
||||
/* 803445CC 48 00 00 08 */ b lbl_803445D4
|
||||
lbl_803445D0:
|
||||
/* 803445D0 38 60 00 01 */ li r3, 1
|
||||
lbl_803445D4:
|
||||
/* 803445D4 80 01 00 4C */ lwz r0, 0x4c(r1)
|
||||
/* 803445D8 BA E1 00 24 */ lmw r23, 0x24(r1)
|
||||
/* 803445DC 38 21 00 48 */ addi r1, r1, 0x48
|
||||
/* 803445E0 7C 08 03 A6 */ mtlr r0
|
||||
/* 803445E4 4E 80 00 20 */ blr
|
||||
|
|
@ -10,8 +10,8 @@ extern "C" {
|
|||
|
||||
void GXSetDispCopySrc(u16 left, u16 top, u16 width, u16 height);
|
||||
void GXSetTexCopySrc(u16 left, u16 top, u16 width, u16 height);
|
||||
void GXSetDispCopyDst(u16 width, u16 height);
|
||||
void GXSetTexCopyDst(u16 width, u16 height, GXTexFmt fmt, GXBool mipmap);
|
||||
void GXSetDispCopyDst(u16 arg0, u16 arg1);
|
||||
void GXSetTexCopyDst(u16 width, u16 height, s32 fmt, GXBool mipmap);
|
||||
void GXSetDispCopyFrame2Field(GXCopyMode mode);
|
||||
void GXSetCopyClamp(GXFBClamp clamp);
|
||||
u16 GXGetNumXfbLines(u32 efb_height, f32 y_scale);
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ typedef struct _GXData {
|
|||
|
||||
STATIC_ASSERT(sizeof(GXData) == 0x5B0);
|
||||
|
||||
extern GXData* __GXData;
|
||||
extern GXData* const __GXData;
|
||||
|
||||
extern u32* __piReg;
|
||||
extern u16* __cpReg;
|
||||
|
|
@ -100,6 +100,11 @@ inline void GXSetWasteFlags() {
|
|||
data->field_0x2 = 0;
|
||||
}
|
||||
|
||||
static inline void set_x2(u16 value)
|
||||
{
|
||||
__GXData->field_0x2 = value;
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ extern "C" {
|
|||
#endif
|
||||
|
||||
u32 GXGetTexBufferSize(u16 width, u16 height, u32 format, GXBool mipmap, u8 max_lod);
|
||||
void __GetImageTileCount();
|
||||
void __GetImageTileCount(u32 arg0, s16 arg1, s16 arg2, s32* arg3, s32* arg4, s32* arg5);
|
||||
void GXInitTexObj(GXTexObj* obj, void* image, u16 width, u16 height, GXTexFmt fmt,
|
||||
GXTexWrapMode wrapS, GXTexWrapMode wrapT, GXBool mipmap);
|
||||
void GXInitTexObjCI(GXTexObj* obj, void* image, u16 width, u16 height, GXCITexFmt format,
|
||||
|
|
|
|||
|
|
@ -641,43 +641,30 @@ s32 CARDFreeBlocks(s32 chan, s32* byteNotUsed, s32* filesNotUsed) {
|
|||
return __CARDPutControlBlock(card, CARD_RESULT_READY);
|
||||
}
|
||||
|
||||
/* 80353E20-80353EB8 34E760 0098+00 0/0 7/7 0/0 .text __CARDSync */
|
||||
#ifdef NONMATCHING
|
||||
s32 __CARDSync(s32 chan) {
|
||||
s32 CARDGetResultCode(s32 chan)
|
||||
{
|
||||
CARDControl* card;
|
||||
s32 val;
|
||||
BOOL enabled;
|
||||
s32 result;
|
||||
|
||||
if (chan < 0 || chan >= 2) {
|
||||
return CARD_RESULT_FATAL_ERROR;
|
||||
}
|
||||
card = &__CARDBlock[chan];
|
||||
return card->result;
|
||||
}
|
||||
|
||||
/* 80353E20-80353EB8 34E760 0098+00 0/0 7/7 0/0 .text __CARDSync */
|
||||
s32 __CARDSync(s32 chan) {
|
||||
CARDControl* block;
|
||||
s32 result;
|
||||
s32 enabled;
|
||||
|
||||
block = &__CARDBlock[chan];
|
||||
enabled = OSDisableInterrupts();
|
||||
for (;; ) {
|
||||
if (chan < 0 || chan >= 2)
|
||||
result = -0x80;
|
||||
else
|
||||
result = card->result;
|
||||
val = result;
|
||||
|
||||
if (val != CARD_RESULT_BUSY){
|
||||
break;
|
||||
} else {
|
||||
OSSleepThread(&card->threadQueue);
|
||||
}
|
||||
}
|
||||
while ((result = CARDGetResultCode(chan)) == -1) {
|
||||
OSSleepThread(&block->threadQueue);
|
||||
}
|
||||
OSRestoreInterrupts(enabled);
|
||||
|
||||
return val;
|
||||
return result;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 __CARDSync(s32 chan) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/card/CARDBios/__CARDSync.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80353EB8-80353F08 34E7F8 0050+00 1/0 0/0 0/0 .text OnReset */
|
||||
static s32 OnReset(s32 f) {
|
||||
|
|
|
|||
|
|
@ -642,8 +642,6 @@ static void UnlockedHandler(s32 chan, OSContext* context) {
|
|||
}
|
||||
|
||||
/* 80344238-803445E8 33EB78 03B0+00 5/5 3/3 0/0 .text EXIGetID */
|
||||
// Use of add. instead of add
|
||||
#ifdef NONMATCHING
|
||||
s32 EXIGetID(s32 chan, u32 dev, u32* id) {
|
||||
EXIControl* exi = &Ecb[chan];
|
||||
BOOL err;
|
||||
|
|
@ -651,7 +649,7 @@ s32 EXIGetID(s32 chan, u32 dev, u32* id) {
|
|||
s32 startTime;
|
||||
BOOL enabled;
|
||||
|
||||
if (exi == (EXIControl*)NULL && dev == 2 && IDSerialPort1[0] != 0) {
|
||||
if (chan == 0 && dev == 2 && IDSerialPort1[0] != 0) {
|
||||
*id = IDSerialPort1[0];
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -706,16 +704,6 @@ s32 EXIGetID(s32 chan, u32 dev, u32* id) {
|
|||
|
||||
return err ? 0 : !0;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 EXIGetID(s32 chan, u32 dev, u32* id) {
|
||||
nofralloc
|
||||
#include "asm/exi/EXIBios/EXIGetID.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D10F0-803D1100 02E210 000F+01 0/0 0/0 0/0 .data @473 */
|
||||
|
|
|
|||
|
|
@ -4,6 +4,8 @@
|
|||
//
|
||||
|
||||
#include "dolphin/gx/GXFrameBuf.h"
|
||||
#include "dolphin/gx/GXInit.h"
|
||||
#include "dolphin/gx/GX.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
|
|
@ -26,73 +28,112 @@ extern u8 GXEurgb60Hz480IntDf[60 + 4 /* padding */];
|
|||
// External References:
|
||||
//
|
||||
|
||||
void __GetImageTileCount();
|
||||
void __cvt_fp2unsigned();
|
||||
extern void* __GXData;
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8035CA04-8035CA80 357344 007C+00 0/0 2/2 0/0 .text GXSetDispCopySrc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetDispCopySrc(u16 left, u16 top, u16 width, u16 height) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopySrc.s"
|
||||
void GXSetDispCopySrc(u16 left, u16 top, u16 width, u16 height)
|
||||
{
|
||||
__GXData->field_0x1e0 = 0;
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e0, 22, 10, left);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e0, 12, 10, top);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e0, 0, 8, 73);
|
||||
__GXData->field_0x1e4 = 0;
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e4, 22, 10, width - 1);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e4, 12, 10, height - 1);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e4, 0, 8, 74);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8035CA80-8035CAFC 3573C0 007C+00 0/0 9/9 0/0 .text GXSetTexCopySrc */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetTexCopySrc(u16 left, u16 top, u16 width, u16 height) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetTexCopySrc.s"
|
||||
void GXSetTexCopySrc(u16 left, u16 top, u16 width, u16 height)
|
||||
{
|
||||
__GXData->field_0x1f0 = 0;
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f0, 22, 10, left);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f0, 12, 10, top);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f0, 0, 8, 0x49);
|
||||
__GXData->field_0x1f4 = 0;
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f4, 22, 10, width - 1);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f4, 12, 10, height - 1);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f4, 0, 8, 0x4A);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8035CAFC-8035CB30 35743C 0034+00 0/0 2/2 0/0 .text GXSetDispCopyDst */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetDispCopyDst(u16 width, u16 height) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopyDst.s"
|
||||
void GXSetDispCopyDst(u16 arg0, u16 arg1)
|
||||
{
|
||||
s32 val = (s32) ((arg0 << 1) & 0xFFFE) >> 5;
|
||||
__GXData->field_0x1e8 = 0;
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e8, 22, 10, val);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1e8, 0, 8, 0x4D);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8035CB30-8035CC60 357470 0130+00 0/0 9/9 0/0 .text GXSetTexCopyDst */
|
||||
#ifdef NONMATCHING
|
||||
void GXSetTexCopyDst(u16 width, u16 height, s32 fmt, GXBool mipmap) {
|
||||
s32 fmt2;
|
||||
s32 arg3, arg4, arg5;
|
||||
__GXData->field_0x200 = 0;
|
||||
|
||||
fmt2 = fmt & 0xf;
|
||||
if ((s32)fmt == GX_TF_Z16) {
|
||||
fmt2 = 0xb;
|
||||
}
|
||||
|
||||
switch (fmt) {
|
||||
case 0:
|
||||
case 1:
|
||||
case 2:
|
||||
case 3:
|
||||
case 0x26:
|
||||
GX_BITFIELD_SET(__GXData->field_0x1fc, 15, 2, 3);
|
||||
break;
|
||||
default:
|
||||
GX_BITFIELD_SET(__GXData->field_0x1fc, 15, 2, 2);
|
||||
break;
|
||||
}
|
||||
|
||||
__GXData->field_0x200 = (fmt & 0x10) == 0x10;
|
||||
__GXData->field_0x1fc = __rlwimi(__GXData->field_0x1fc, fmt2, 0, 28, 28);
|
||||
fmt2 &= 7;
|
||||
__GetImageTileCount(fmt, width, height, &arg3, &arg4, &arg5);
|
||||
__GXData->field_0x1f8 = 0;
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f8, 22, 10, arg3*arg5);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1f8, 0, 8, 0x4d);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1fc, 22, 1, mipmap);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1fc, 25, 3, fmt2);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetTexCopyDst(u16 width, u16 height, GXTexFmt fmt, GXBool mipmap) {
|
||||
asm void GXSetTexCopyDst(u16 width, u16 height, s32 fmt, GXBool mipmap) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetTexCopyDst.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8035CC60-8035CC84 3575A0 0024+00 0/0 1/1 0/0 .text GXSetDispCopyFrame2Field */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetDispCopyFrame2Field(GXCopyMode mode) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopyFrame2Field.s"
|
||||
void GXSetDispCopyFrame2Field(GXCopyMode arg0)
|
||||
{
|
||||
GX_BITFIELD_SET(__GXData->field_0x1ec, 18, 2, arg0);
|
||||
GX_BITFIELD_SET(__GXData->field_0x1fc, 18, 2, 0);
|
||||
}
|
||||
#pragma pop
|
||||
#define INSERT_FIELD(reg, value, nbits, shift) \
|
||||
(reg) = ((u32) (reg) & ~(((1 << (nbits)) - 1) << (shift))) | \
|
||||
((u32) (value) << (shift));
|
||||
|
||||
/* 8035CC84-8035CCDC 3575C4 0058+00 0/0 2/2 0/0 .text GXSetCopyClamp */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetCopyClamp(GXFBClamp clamp) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetCopyClamp.s"
|
||||
void GXSetCopyClamp(GXFBClamp clamp) {
|
||||
u8 isTop = (clamp & GX_CLAMP_TOP) == GX_CLAMP_TOP;
|
||||
u8 isBottom = (clamp & GX_CLAMP_BOTTOM) == GX_CLAMP_BOTTOM;
|
||||
__GXData->field_0x1ec = __rlwimi(__GXData->field_0x1ec, isTop, 0, 31, 31);
|
||||
__GXData->field_0x1ec = __rlwimi(__GXData->field_0x1ec, isBottom, 1, 30, 30);
|
||||
__GXData->field_0x1fc = __rlwimi(__GXData->field_0x1fc, isTop, 0, 31, 31);
|
||||
__GXData->field_0x1fc = __rlwimi(__GXData->field_0x1fc, isBottom, 1, 30, 30);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804565A8-804565B0 004BA8 0004+04 3/3 0/0 0/0 .sdata2 @179 */
|
||||
|
|
@ -137,14 +178,29 @@ asm u32 GXSetDispCopyYScale(f32 y_scale) {
|
|||
#pragma pop
|
||||
|
||||
/* 8035D070-8035D0E8 3579B0 0078+00 0/0 2/2 0/0 .text GXSetCopyClear */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetCopyClear(GXColor color, u32 clear_z) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetCopyClear.s"
|
||||
void GXSetCopyClear(GXColor color, u32 clear_z) {
|
||||
u32 r6 = 0;
|
||||
GX_BITFIELD_SET(r6, 24, 8, color.r);
|
||||
GX_BITFIELD_SET(r6, 16, 8, color.a);
|
||||
GX_BITFIELD_SET(r6, 0, 8, 0x4f);
|
||||
GXFIFO.u8 = 0x61;
|
||||
GXFIFO.u32 = r6;
|
||||
|
||||
r6 = 0;
|
||||
GX_BITFIELD_SET(r6, 24, 8, color.b);
|
||||
GX_BITFIELD_SET(r6, 16, 8, color.g);
|
||||
GX_BITFIELD_SET(r6, 0, 8, 0x50);
|
||||
GXFIFO.u8 = 0x61;
|
||||
GXFIFO.u32 = r6;
|
||||
|
||||
r6 = 0;
|
||||
GX_BITFIELD_SET(r6, 8, 24, clear_z);
|
||||
GX_BITFIELD_SET(r6, 0, 8, 0x51);
|
||||
GXFIFO.u8 = 0x61;
|
||||
GXFIFO.u32 = r6;
|
||||
|
||||
__GXData->field_0x2 = 0;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8035D0E8-8035D2F0 357A28 0208+00 0/0 4/4 0/0 .text GXSetCopyFilter */
|
||||
#pragma push
|
||||
|
|
@ -157,14 +213,10 @@ asm void GXSetCopyFilter(GXBool antialias, u8 pattern[12][2], GXBool vf, u8 vfil
|
|||
#pragma pop
|
||||
|
||||
/* 8035D2F0-8035D304 357C30 0014+00 0/0 2/2 0/0 .text GXSetDispCopyGamma */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXSetDispCopyGamma(GXGamma gamma) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXSetDispCopyGamma.s"
|
||||
void GXSetDispCopyGamma(GXGamma gamma)
|
||||
{
|
||||
GX_BITFIELD_SET(__GXData->field_0x1ec, 23, 2, gamma);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8035D304-8035D46C 357C44 0168+00 0/0 3/3 0/0 .text GXCopyDisp */
|
||||
#pragma push
|
||||
|
|
@ -187,14 +239,14 @@ asm void GXCopyTex(void* dst, GXBool clear) {
|
|||
#pragma pop
|
||||
|
||||
/* 8035D5F8-8035D630 357F38 0038+00 0/0 1/1 0/0 .text GXClearBoundingBox */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void GXClearBoundingBox(void) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXFrameBuf/GXClearBoundingBox.s"
|
||||
void GXClearBoundingBox(void)
|
||||
{
|
||||
GXFIFO.u8 = GX_LOAD_BP_REG;
|
||||
GXFIFO.u32 = 0x550003FF;
|
||||
GXFIFO.u8 = GX_LOAD_BP_REG;
|
||||
GXFIFO.u32 = 0x560003FF;
|
||||
set_x2(GX_FALSE);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D2448-803D2484 02F568 003C+00 0/0 2/1 0/0 .data GXNtsc480IntDf */
|
||||
|
|
|
|||
|
|
@ -132,7 +132,6 @@ void GXSetCullMode(GXCullMode mode) {
|
|||
GXCullMode mode2;
|
||||
data = __GXData;
|
||||
|
||||
// Useless set
|
||||
mode2 = (mode >> 1) & 1;
|
||||
GX_BITFIELD_SET(mode2, 30, 1, mode);
|
||||
|
||||
|
|
|
|||
|
|
@ -67,7 +67,7 @@ static GXFifoObj FifoObj;
|
|||
static GXData gxData;
|
||||
|
||||
/* 80456580-80456584 -00001 0004+00 6/6 108/108 0/0 .sdata2 __GXData */
|
||||
SECTION_SDATA2 extern GXData* __GXData = &gxData;
|
||||
GXData* const __GXData = &gxData;
|
||||
|
||||
/* 8035921C-80359318 353B5C 00FC+00 1/1 0/0 0/0 .text __GXDefaultTexRegionCallback */
|
||||
#pragma push
|
||||
|
|
@ -80,29 +80,16 @@ asm GXTexRegion* __GXDefaultTexRegionCallback(GXTexObj* obj, GXTexMapID mapID) {
|
|||
#pragma pop
|
||||
|
||||
/* 80359318-8035933C 353C58 0024+00 1/1 0/0 0/0 .text __GXDefaultTlutRegionCallback */
|
||||
// blr instead of b
|
||||
#ifdef NONMATCHING
|
||||
GXTlutRegion* __GXDefaultTlutRegionCallback(u32 tlut) {
|
||||
GXTlutRegion* region;
|
||||
|
||||
if (tlut >= 20) {
|
||||
region = NULL;
|
||||
} else {
|
||||
region = &__GXData->field_0x388[tlut];
|
||||
}
|
||||
|
||||
return region;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm GXTlutRegion* __GXDefaultTlutRegionCallback(u32 tlut) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXInit/__GXDefaultTlutRegionCallback.s"
|
||||
#pragma peephole off
|
||||
GXTlutRegion* __GXDefaultTlutRegionCallback(u32 tlut) {
|
||||
if (tlut >= 0x14) {
|
||||
return NULL;
|
||||
} else {
|
||||
return &__GXData->field_0x388[tlut];
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80451944-80451948 000E44 0004+00 1/1 0/0 0/0 .sbss resetFuncRegistered$145 */
|
||||
/* static */ u8 resetFuncRegistered[4];
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@
|
|||
// Forward References:
|
||||
//
|
||||
|
||||
void __GetImageTileCount();
|
||||
static void GXLoadTexObjPreLoaded();
|
||||
void GXLoadTexObj();
|
||||
void GXLoadTlut();
|
||||
|
|
@ -118,7 +117,7 @@ SECTION_DATA static void* lit_145[61] = {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __GetImageTileCount() {
|
||||
asm void __GetImageTileCount(u32 arg0, s16 arg1, s16 arg2, s32* arg3, s32* arg4, s32* arg5) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/gx/GXTexture/__GetImageTileCount.s"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,39 @@ SECTION_SDATA2 static f32 lit_105 = 0.5f;
|
|||
SECTION_SDATA2 static f32 lit_106 = 0.01745329238474369f;
|
||||
|
||||
/* 80346F28-80346FF8 341868 00D0+00 0/0 6/6 0/0 .text C_MTXPerspective */
|
||||
// Functions match but has issues with float constants
|
||||
#ifdef NONMATCHING
|
||||
void C_MTXPerspective(Mtx44 m, f32 fovY, f32 aspect, f32 n, f32 f)
|
||||
{
|
||||
f32 temp_f3;
|
||||
f32 temp_f4;
|
||||
|
||||
fovY = 0.5F * fovY;
|
||||
|
||||
temp_f4 = 1.0F / tanf(0.017453292F * (fovY));
|
||||
temp_f3 = 1.0F / (f - n);
|
||||
|
||||
m[0][0] = temp_f4 / aspect;
|
||||
m[0][1] = 0.0F;
|
||||
m[0][2] = 0.0F;
|
||||
m[0][3] = 0.0F;
|
||||
|
||||
m[1][0] = 0.0F;
|
||||
m[1][1] = temp_f4;
|
||||
m[1][2] = 0.0F;
|
||||
m[1][3] = 0.0F;
|
||||
|
||||
m[2][0] = 0.0F;
|
||||
m[2][1] = 0.0F;
|
||||
m[2][2] = -n * temp_f3;
|
||||
m[2][3] = temp_f3 * -(f * n);
|
||||
|
||||
m[3][0] = 0.0F;
|
||||
m[3][1] = 0.0F;
|
||||
m[3][2] = -1.0F;
|
||||
m[3][3] = 0.0F;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -44,8 +77,40 @@ asm void C_MTXPerspective(Mtx44 m, f32 fovy, f32 aspect, f32 near, f32 far) {
|
|||
#include "asm/dolphin/mtx/mtx44/C_MTXPerspective.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80346FF8-80347090 341938 0098+00 0/0 11/11 2/2 .text C_MTXOrtho */
|
||||
#ifdef NONMATCHING
|
||||
void C_MTXOrtho(Mtx44 m, f32 t, f32 b, f32 l, f32 r, f32 n, f32 f)
|
||||
{
|
||||
f32 temp_f8;
|
||||
f32 temp_f10;
|
||||
f32 temp_f4;
|
||||
|
||||
temp_f10 = 1.0F / (r - l);
|
||||
m[0][0] = 2.0F * temp_f10;
|
||||
m[0][1] = 0.0F;
|
||||
m[0][2] = 0.0F;
|
||||
m[0][3] = temp_f10 * -(r + l);
|
||||
|
||||
temp_f8 = 1.0F / (t - b);
|
||||
m[1][0] = 0.0F;
|
||||
m[1][1] = 2.0F * temp_f8;
|
||||
m[1][2] = 0.0F;
|
||||
m[1][3] = temp_f8 * -(t + b);
|
||||
|
||||
temp_f4 = 1.0F / (f - n);
|
||||
m[2][0] = 0.0F;
|
||||
m[2][1] = 0.0F;
|
||||
m[2][2] = -1.0F * temp_f4;
|
||||
m[2][3] = -f * temp_f4;
|
||||
|
||||
m[3][0] = 0.0F;
|
||||
m[3][1] = 0.0F;
|
||||
m[3][2] = 0.0F;
|
||||
m[3][3] = 1.0F;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -54,3 +119,4 @@ asm void C_MTXOrtho(Mtx44 m, f32 top, f32 bottom, f32 left, f32 right, f32 near,
|
|||
#include "asm/dolphin/mtx/mtx44/C_MTXOrtho.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -34,18 +34,10 @@ static XY XYPAL[12] = {
|
|||
};
|
||||
#pragma pop
|
||||
|
||||
/* 803D1330-803D1368 02E450 0033+05 0/1 0/0 0/0 .data @16 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DATA static char lit_16[] = "SISetSamplingRate: unknown TV format. Use default.";
|
||||
#pragma pop
|
||||
|
||||
/* 80451700-80451708 000C00 0004+04 2/2 0/0 0/0 .sbss SamplingRate */
|
||||
static u32 SamplingRate;
|
||||
|
||||
/* 80346290-80346374 340BD0 00E4+00 1/1 1/1 0/0 .text SISetSamplingRate */
|
||||
// needs compiler epilogue patch
|
||||
#ifdef NONMATCHING
|
||||
void SISetSamplingRate(u32 msec) {
|
||||
XY* xy;
|
||||
BOOL enabled;
|
||||
|
|
@ -77,16 +69,6 @@ void SISetSamplingRate(u32 msec) {
|
|||
SISetXY((__VIRegs[54] & 1 ? 2u : 1u) * xy[msec].line, xy[msec].count);
|
||||
OSRestoreInterrupts(enabled);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void SISetSamplingRate(u32 msec) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/si/SISamplingRate/SISetSamplingRate.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80346374-80346398 340CB4 0024+00 0/0 2/2 0/0 .text SIRefreshSamplingRate */
|
||||
void SIRefreshSamplingRate() {
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ LIBVI_A_CFLAGS := \
|
|||
-fp hard \
|
||||
-nodefaults \
|
||||
-str reuse \
|
||||
-inline auto \
|
||||
-RTTI off \
|
||||
-maxerrors 5 \
|
||||
-enum int $(INCLUDES) \
|
||||
|
|
@ -35,10 +36,11 @@ $(BUILD_DIR)/libs/dolphin/vi/%.o: libs/dolphin/vi/%.c $(BUILD_DIR)/libs/dolphin/
|
|||
@mkdir -p $(@D)
|
||||
@echo building... $<
|
||||
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).c
|
||||
@$(FRANK_CC) $(LIBVI_A_CFLAGS) -c -o $(@:.o=.po) $(basename $@).c
|
||||
@$(DOLPHIN_LIB_CC) $(LIBVI_A_CFLAGS) $(DEPFLAGS) -c -o $(dir $@) $(basename $@).c
|
||||
@if [ -z '$(DISABLE_DEPS)' ]; then tools/transform-dep.py '$(basename $@).d' '$(basename $@).d'; touch -c $@; fi
|
||||
@echo Frank is fixing $@
|
||||
@$(PYTHON) $(FRANK) $@ $@ $@
|
||||
@$(PYTHON) $(FRANK) $@ $(@:.o=.po) $@
|
||||
|
||||
ifndef DISABLE_DEPS
|
||||
LIBVI_A_D_FILES := $(LIBVI_A_O_FILES:.o=.d)
|
||||
|
|
|
|||
|
|
@ -14,15 +14,15 @@
|
|||
void __VIRetraceHandler();
|
||||
static void getTiming();
|
||||
void __VIInit();
|
||||
static void setFbbRegs();
|
||||
static void setVerticalRegs();
|
||||
static void setFbbRegs(void**, void**, void**, void**, void**);
|
||||
static void setVerticalRegs(u16, u16, u8, u16, u16, u16, u16, u16, u32);
|
||||
u32 VIGetRetraceCount();
|
||||
static void GetCurrentDisplayPosition();
|
||||
static void GetCurrentDisplayPosition(u32* x, u32* y);
|
||||
static void getCurrentFieldEvenOdd();
|
||||
void VIGetNextField();
|
||||
u32 VIGetNextField();
|
||||
void VIGetCurrentLine();
|
||||
void VIGetTvFormat();
|
||||
void VIGetDTVStatus();
|
||||
u32 VIGetDTVStatus();
|
||||
void __VIDisplayPositionToXY();
|
||||
void __VIGetCurrentPosition();
|
||||
|
||||
|
|
@ -46,19 +46,19 @@ static u8 regs[118 + 2 /* padding */];
|
|||
static u8 IsInitialized[4];
|
||||
|
||||
/* 804517E4-804517E8 000CE4 0004+00 4/3 0/0 0/0 .sbss retraceCount */
|
||||
static u8 retraceCount[4];
|
||||
static u32 retraceCount;
|
||||
|
||||
/* 804517E8-804517EC 000CE8 0004+00 3/3 0/0 0/0 .sbss flushFlag */
|
||||
static u8 flushFlag[4];
|
||||
|
||||
/* 804517EC-804517F4 000CEC 0008+00 3/3 0/0 0/0 .sbss retraceQueue */
|
||||
static u8 retraceQueue[8];
|
||||
static OSThreadQueue retraceQueue;
|
||||
|
||||
/* 804517F4-804517F8 000CF4 0004+00 3/3 0/0 0/0 .sbss PreCB */
|
||||
static u8 PreCB[4];
|
||||
static VIRetraceCallback PreCB;
|
||||
|
||||
/* 804517F8-804517FC 000CF8 0004+00 3/3 0/0 0/0 .sbss PostCB */
|
||||
static u8 PostCB[4];
|
||||
static VIRetraceCallback PostCB;
|
||||
|
||||
/* 804517FC-80451800 000CFC 0004+00 1/1 0/0 0/0 .sbss PositionCallback */
|
||||
static u8 PositionCallback[4];
|
||||
|
|
@ -112,24 +112,22 @@ asm void __VIRetraceHandler() {
|
|||
#pragma pop
|
||||
|
||||
/* 8034C1E0-8034C224 346B20 0044+00 0/0 4/4 0/0 .text VISetPreRetraceCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/VISetPreRetraceCallback.s"
|
||||
VIRetraceCallback VISetPreRetraceCallback(VIRetraceCallback cb) {
|
||||
VIRetraceCallback prevCb = PreCB;
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
PreCB = cb;
|
||||
OSRestoreInterrupts(enable);
|
||||
return prevCb;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034C224-8034C268 346B64 0044+00 0/0 4/4 2/2 .text VISetPostRetraceCallback */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/VISetPostRetraceCallback.s"
|
||||
VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback cb) {
|
||||
VIRetraceCallback prevCb = PostCB;
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
PostCB = cb;
|
||||
OSRestoreInterrupts(enable);
|
||||
return prevCb;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 803D1760-803D17A4 02E880 0044+00 4/3 0/0 0/0 .data @1 */
|
||||
|
|
@ -247,7 +245,7 @@ SECTION_DATA static void* lit_101[31] = {
|
|||
};
|
||||
|
||||
/* 80451838-8045183C 000D38 0004+00 2/2 0/0 0/0 .sbss FBSet */
|
||||
static u8 FBSet[4];
|
||||
static u32 FBSet;
|
||||
|
||||
/* 8045183C-80451840 000D3C 0004+00 1/1 0/0 0/0 .sbss timingExtra */
|
||||
static u8 timingExtra[4];
|
||||
|
|
@ -296,20 +294,22 @@ asm void VIInit() {
|
|||
#pragma pop
|
||||
|
||||
/* 8034C9C4-8034CA18 347304 0054+00 0/0 10/10 0/0 .text VIWaitForRetrace */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void VIWaitForRetrace() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/VIWaitForRetrace.s"
|
||||
void VIWaitForRetrace() {
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
u32 startVal = retraceCount;
|
||||
|
||||
do {
|
||||
OSSleepThread(&retraceQueue);
|
||||
} while(startVal == retraceCount);
|
||||
|
||||
OSRestoreInterrupts(enable);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034CA18-8034CCEC 347358 02D4+00 2/2 0/0 0/0 .text setFbbRegs */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void setFbbRegs() {
|
||||
static asm void setFbbRegs(void**, void**, void**, void**, void**) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/setFbbRegs.s"
|
||||
}
|
||||
|
|
@ -319,7 +319,7 @@ static asm void setFbbRegs() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void setVerticalRegs() {
|
||||
static asm void setVerticalRegs(u16 arg0, u16 arg1, u8 arg2, u16 arg3, u16 arg4, u16 arg5, u16 arg6, u16 arg7, u32 arg8) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/setVerticalRegs.s"
|
||||
}
|
||||
|
|
@ -395,14 +395,18 @@ asm void VIFlush() {
|
|||
#pragma pop
|
||||
|
||||
/* 8034D7C4-8034D830 348104 006C+00 0/0 3/3 0/0 .text VISetNextFrameBuffer */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void VISetNextFrameBuffer(void*) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/VISetNextFrameBuffer.s"
|
||||
void VISetNextFrameBuffer(void* buffer) {
|
||||
void** bufferArray = (void**)regs;
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
|
||||
bufferArray[72] = buffer;
|
||||
FBSet = 1;
|
||||
setFbbRegs(bufferArray + 60, bufferArray + 73,
|
||||
bufferArray + 74, bufferArray + 79, bufferArray + 80
|
||||
);
|
||||
|
||||
OSRestoreInterrupts(enable);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034D830-8034D838 -00001 0008+00 0/0 0/0 0/0 .text VIGetNextFrameBuffer */
|
||||
void* VIGetNextFrameBuffer() {
|
||||
|
|
@ -415,29 +419,59 @@ void* VIGetCurrentFrameBuffer() {
|
|||
}
|
||||
|
||||
/* 8034D840-8034D8BC 348180 007C+00 0/0 7/7 0/0 .text VISetBlack */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void VISetBlack(BOOL) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/VISetBlack.s"
|
||||
void VISetBlack(BOOL isBlack) {
|
||||
u8* ptr = regs;
|
||||
u16* ptr2;
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
|
||||
((u32*)ptr)[76] = isBlack;
|
||||
ptr2 = ((u16**)ptr)[81];
|
||||
setVerticalRegs(
|
||||
((u16*)ptr)[125],
|
||||
((u16*)ptr)[123],
|
||||
((u8*)ptr2)[0],
|
||||
ptr2[1],
|
||||
ptr2[2],
|
||||
ptr2[3],
|
||||
ptr2[4],
|
||||
ptr2[5],
|
||||
((u32*)ptr)[76]
|
||||
);
|
||||
|
||||
OSRestoreInterrupts(enable);
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034D8BC-8034D8C4 -00001 0008+00 0/0 0/0 0/0 .text VIGetRetraceCount */
|
||||
u32 VIGetRetraceCount() {
|
||||
return *(u32*)(&retraceCount);
|
||||
return retraceCount;
|
||||
}
|
||||
|
||||
/* 8034D8C4-8034D900 348204 003C+00 1/1 0/0 0/0 .text GetCurrentDisplayPosition */
|
||||
#ifdef NONMATCHING
|
||||
void GetCurrentDisplayPosition(u32* x, u32* y) {
|
||||
u32 val3;
|
||||
u32 val4;
|
||||
u32 val = __VIRegs[22] & 0x7FF;
|
||||
|
||||
do {
|
||||
val4 = val;
|
||||
val = __VIRegs[22] & 0x7FF;
|
||||
val3 = __VIRegs[23] & 0x7FF;
|
||||
} while (val4 != val);
|
||||
|
||||
*x = val3;
|
||||
*y = val;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void GetCurrentDisplayPosition() {
|
||||
static asm void GetCurrentDisplayPosition(u32* x, u32* y) {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/GetCurrentDisplayPosition.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 8034D900-8034D968 348240 0068+00 1/1 0/0 0/0 .text getCurrentFieldEvenOdd */
|
||||
#pragma push
|
||||
|
|
@ -453,7 +487,7 @@ static asm void getCurrentFieldEvenOdd() {
|
|||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void VIGetNextField() {
|
||||
asm u32 VIGetNextField() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/VIGetNextField.s"
|
||||
}
|
||||
|
|
@ -495,14 +529,13 @@ asm void VIGetTvFormat() {
|
|||
#pragma pop
|
||||
|
||||
/* 8034DB04-8034DB40 348444 003C+00 0/0 2/2 0/0 .text VIGetDTVStatus */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void VIGetDTVStatus() {
|
||||
nofralloc
|
||||
#include "asm/dolphin/vi/vi/VIGetDTVStatus.s"
|
||||
u32 VIGetDTVStatus() {
|
||||
u32 val;
|
||||
BOOL enable = OSDisableInterrupts();
|
||||
val = __VIRegs[55] & 3;
|
||||
OSRestoreInterrupts(enable);
|
||||
return val & 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8034DB40-8034DD5C 348480 021C+00 1/1 0/0 0/0 .text __VIDisplayPositionToXY */
|
||||
#pragma push
|
||||
|
|
|
|||
Loading…
Reference in New Issue