diff --git a/Progress.md b/Progress.md index 583bcfc3c56..c66944acf8c 100644 --- a/Progress.md +++ b/Progress.md @@ -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 | 22.050391% | 793052 | 3596544 +.text | 22.077750% | 794036 | 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 | 30.268274% | 1216988 | 4020672 +Total | 30.292747% | 1217972 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 30.268274% | 1216988 | 4020672 +main.dol | 30.292747% | 1217972 | 4020672 RELs | 33.041295% | 3799856 | 11500324 -Total | 32.322951% | 5016844 | 15520996 +Total | 32.329291% | 5017828 | 15520996 ## RELs diff --git a/asm/JSystem/J2DGraph/J2DScreen/getResReference__9J2DScreenFP20JSURandomInputStreamUl.s b/asm/JSystem/J2DGraph/J2DScreen/getResReference__9J2DScreenFP20JSURandomInputStreamUl.s deleted file mode 100644 index e5cb0e135ce..00000000000 --- a/asm/JSystem/J2DGraph/J2DScreen/getResReference__9J2DScreenFP20JSURandomInputStreamUl.s +++ /dev/null @@ -1,67 +0,0 @@ -lbl_802F9280: -/* 802F9280 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 802F9284 7C 08 02 A6 */ mflr r0 -/* 802F9288 90 01 00 34 */ stw r0, 0x34(r1) -/* 802F928C 39 61 00 30 */ addi r11, r1, 0x30 -/* 802F9290 48 06 8F 45 */ bl _savegpr_27 -/* 802F9294 7C 9B 23 78 */ mr r27, r4 -/* 802F9298 7C BC 2B 78 */ mr r28, r5 -/* 802F929C 7F 63 DB 78 */ mr r3, r27 -/* 802F92A0 81 9B 00 00 */ lwz r12, 0(r27) -/* 802F92A4 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 802F92A8 7D 89 03 A6 */ mtctr r12 -/* 802F92AC 4E 80 04 21 */ bctrl -/* 802F92B0 7C 7F 1B 78 */ mr r31, r3 -/* 802F92B4 7F 63 DB 78 */ mr r3, r27 -/* 802F92B8 38 80 00 04 */ li r4, 4 -/* 802F92BC 81 9B 00 00 */ lwz r12, 0(r27) -/* 802F92C0 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802F92C4 7D 89 03 A6 */ mtctr r12 -/* 802F92C8 4E 80 04 21 */ bctrl -/* 802F92CC 7F 63 DB 78 */ mr r3, r27 -/* 802F92D0 38 81 00 0C */ addi r4, r1, 0xc -/* 802F92D4 38 A0 00 04 */ li r5, 4 -/* 802F92D8 4B FE 2F C1 */ bl read__14JSUInputStreamFPvl -/* 802F92DC 83 A1 00 0C */ lwz r29, 0xc(r1) -/* 802F92E0 7F 63 DB 78 */ mr r3, r27 -/* 802F92E4 38 80 00 04 */ li r4, 4 -/* 802F92E8 81 9B 00 00 */ lwz r12, 0(r27) -/* 802F92EC 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802F92F0 7D 89 03 A6 */ mtctr r12 -/* 802F92F4 4E 80 04 21 */ bctrl -/* 802F92F8 7F 63 DB 78 */ mr r3, r27 -/* 802F92FC 38 81 00 08 */ addi r4, r1, 8 -/* 802F9300 38 A0 00 04 */ li r5, 4 -/* 802F9304 4B FE 2F 95 */ bl read__14JSUInputStreamFPvl -/* 802F9308 83 C1 00 08 */ lwz r30, 8(r1) -/* 802F930C 7F 63 DB 78 */ mr r3, r27 -/* 802F9310 7C 9F F2 14 */ add r4, r31, r30 -/* 802F9314 38 A0 00 00 */ li r5, 0 -/* 802F9318 4B FE 31 C5 */ bl seek__20JSURandomInputStreamFl17JSUStreamSeekFrom -/* 802F931C 7F BE E8 50 */ subf r29, r30, r29 -/* 802F9320 57 80 02 DF */ rlwinm. r0, r28, 0, 0xb, 0xf -/* 802F9324 41 82 00 14 */ beq lbl_802F9338 -/* 802F9328 7F A3 EB 78 */ mr r3, r29 -/* 802F932C 4B FD 59 99 */ bl __nwa__FUl -/* 802F9330 7C 64 1B 78 */ mr r4, r3 -/* 802F9334 48 00 00 14 */ b lbl_802F9348 -lbl_802F9338: -/* 802F9338 7F A3 EB 78 */ mr r3, r29 -/* 802F933C 38 80 FF FC */ li r4, -4 -/* 802F9340 4B FD 59 AD */ bl __nwa__FUli -/* 802F9344 7C 64 1B 78 */ mr r4, r3 -lbl_802F9348: -/* 802F9348 7C 9E 23 78 */ mr r30, r4 -/* 802F934C 28 04 00 00 */ cmplwi r4, 0 -/* 802F9350 41 82 00 10 */ beq lbl_802F9360 -/* 802F9354 7F 63 DB 78 */ mr r3, r27 -/* 802F9358 7F A5 EB 78 */ mr r5, r29 -/* 802F935C 4B FE 2F 3D */ bl read__14JSUInputStreamFPvl -lbl_802F9360: -/* 802F9360 7F C3 F3 78 */ mr r3, r30 -/* 802F9364 39 61 00 30 */ addi r11, r1, 0x30 -/* 802F9368 48 06 8E B9 */ bl _restgpr_27 -/* 802F936C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802F9370 7C 08 03 A6 */ mtlr r0 -/* 802F9374 38 21 00 30 */ addi r1, r1, 0x30 -/* 802F9378 4E 80 00 20 */ blr diff --git a/asm/dolphin/pad/Pad/PADControlMotor.s b/asm/dolphin/pad/Pad/PADControlMotor.s deleted file mode 100644 index b7034a776cd..00000000000 --- a/asm/dolphin/pad/Pad/PADControlMotor.s +++ /dev/null @@ -1,50 +0,0 @@ -lbl_8034F1A0: -/* 8034F1A0 7C 08 02 A6 */ mflr r0 -/* 8034F1A4 90 01 00 04 */ stw r0, 4(r1) -/* 8034F1A8 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8034F1AC 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8034F1B0 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8034F1B4 3B C4 00 00 */ addi r30, r4, 0 -/* 8034F1B8 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 8034F1BC 3B A3 00 00 */ addi r29, r3, 0 -/* 8034F1C0 4B FE E5 35 */ bl OSDisableInterrupts -/* 8034F1C4 3C 00 80 00 */ lis r0, 0x8000 -/* 8034F1C8 80 8D 92 CC */ lwz r4, EnabledBits(r13) -/* 8034F1CC 7C 00 EC 30 */ srw r0, r0, r29 -/* 8034F1D0 7C 80 00 39 */ and. r0, r4, r0 -/* 8034F1D4 3B E3 00 00 */ addi r31, r3, 0 -/* 8034F1D8 41 82 00 5C */ beq lbl_8034F234 -/* 8034F1DC 7F A3 EB 78 */ mr r3, r29 -/* 8034F1E0 4B FF 6D B1 */ bl SIGetType -/* 8034F1E4 54 60 00 85 */ rlwinm. r0, r3, 0, 2, 2 -/* 8034F1E8 40 82 00 4C */ bne lbl_8034F234 -/* 8034F1EC 80 0D 84 B0 */ lwz r0, Spec(r13) -/* 8034F1F0 28 00 00 02 */ cmplwi r0, 2 -/* 8034F1F4 40 80 00 10 */ bge lbl_8034F204 -/* 8034F1F8 28 1E 00 02 */ cmplwi r30, 2 -/* 8034F1FC 40 82 00 08 */ bne lbl_8034F204 -/* 8034F200 3B C0 00 00 */ li r30, 0 -lbl_8034F204: -/* 8034F204 3C 60 80 00 */ lis r3, 0x8000 /* 0x800030E3@ha */ -/* 8034F208 88 03 30 E3 */ lbz r0, 0x30E3(r3) /* 0x800030E3@l */ -/* 8034F20C 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a -/* 8034F210 41 82 00 08 */ beq lbl_8034F218 -/* 8034F214 3B C0 00 00 */ li r30, 0 -lbl_8034F218: -/* 8034F218 80 8D 84 AC */ lwz r4, AnalogMode(r13) -/* 8034F21C 57 C0 07 BE */ clrlwi r0, r30, 0x1e -/* 8034F220 38 7D 00 00 */ addi r3, r29, 0 -/* 8034F224 64 84 00 40 */ oris r4, r4, 0x40 -/* 8034F228 7C 84 03 78 */ or r4, r4, r0 -/* 8034F22C 4B FF 65 A5 */ bl SISetCommand -/* 8034F230 4B FF 65 B5 */ bl SITransferCommands -lbl_8034F234: -/* 8034F234 7F E3 FB 78 */ mr r3, r31 -/* 8034F238 4B FE E4 E5 */ bl OSRestoreInterrupts -/* 8034F23C 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8034F240 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8034F244 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8034F248 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 8034F24C 38 21 00 28 */ addi r1, r1, 0x28 -/* 8034F250 7C 08 03 A6 */ mtlr r0 -/* 8034F254 4E 80 00 20 */ blr diff --git a/asm/dolphin/pad/Pad/PADRecalibrate.s b/asm/dolphin/pad/Pad/PADRecalibrate.s deleted file mode 100644 index 4328d69241f..00000000000 --- a/asm/dolphin/pad/Pad/PADRecalibrate.s +++ /dev/null @@ -1,72 +0,0 @@ -lbl_8034EC3C: -/* 8034EC3C 7C 08 02 A6 */ mflr r0 -/* 8034EC40 90 01 00 04 */ stw r0, 4(r1) -/* 8034EC44 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034EC48 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034EC4C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8034EC50 7C 7E 1B 78 */ mr r30, r3 -/* 8034EC54 4B FE EA A1 */ bl OSDisableInterrupts -/* 8034EC58 80 AD 92 E0 */ lwz r5, PendingBits(r13) -/* 8034EC5C 39 00 00 00 */ li r8, 0 -/* 8034EC60 80 CD 92 D8 */ lwz r6, WaitingBits(r13) -/* 8034EC64 3C 80 80 00 */ lis r4, 0x8000 /* 0x800030E3@ha */ -/* 8034EC68 80 0D 92 DC */ lwz r0, CheckingBits(r13) -/* 8034EC6C 7F DE 2B 78 */ or r30, r30, r5 -/* 8034EC70 80 AD 92 D0 */ lwz r5, ResettingBits(r13) -/* 8034EC74 7C C6 03 78 */ or r6, r6, r0 -/* 8034EC78 88 04 30 E3 */ lbz r0, 0x30E3(r4) /* 0x800030E3@l */ -/* 8034EC7C 7F DE 30 78 */ andc r30, r30, r6 -/* 8034EC80 80 CD 92 CC */ lwz r6, EnabledBits(r13) -/* 8034EC84 7C A5 F3 78 */ or r5, r5, r30 -/* 8034EC88 80 8D 92 E4 */ lwz r4, BarrelBits(r13) -/* 8034EC8C 90 AD 92 D0 */ stw r5, ResettingBits(r13) -/* 8034EC90 7F C9 F0 F8 */ nor r9, r30, r30 -/* 8034EC94 7C C5 48 38 */ and r5, r6, r9 -/* 8034EC98 7C 84 48 38 */ and r4, r4, r9 -/* 8034EC9C 80 ED 92 D0 */ lwz r7, ResettingBits(r13) -/* 8034ECA0 7C 7F 1B 78 */ mr r31, r3 -/* 8034ECA4 91 0D 92 E0 */ stw r8, PendingBits(r13) -/* 8034ECA8 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19 -/* 8034ECAC 90 AD 92 CC */ stw r5, EnabledBits(r13) -/* 8034ECB0 7C E3 30 38 */ and r3, r7, r6 -/* 8034ECB4 90 8D 92 E4 */ stw r4, BarrelBits(r13) -/* 8034ECB8 40 82 00 10 */ bne lbl_8034ECC8 -/* 8034ECBC 80 0D 92 D4 */ lwz r0, RecalibrateBits(r13) -/* 8034ECC0 7C 00 F3 78 */ or r0, r0, r30 -/* 8034ECC4 90 0D 92 D4 */ stw r0, RecalibrateBits(r13) -lbl_8034ECC8: -/* 8034ECC8 4B FF 6C 35 */ bl SIDisablePolling -/* 8034ECCC 80 0D 84 A4 */ lwz r0, ResettingChan(r13) -/* 8034ECD0 2C 00 00 20 */ cmpwi r0, 0x20 -/* 8034ECD4 40 82 00 58 */ bne lbl_8034ED2C -/* 8034ECD8 80 AD 92 D0 */ lwz r5, ResettingBits(r13) -/* 8034ECDC 7C A0 00 34 */ cntlzw r0, r5 -/* 8034ECE0 90 0D 84 A4 */ stw r0, ResettingChan(r13) -/* 8034ECE4 80 8D 84 A4 */ lwz r4, ResettingChan(r13) -/* 8034ECE8 2C 04 00 20 */ cmpwi r4, 0x20 -/* 8034ECEC 41 82 00 40 */ beq lbl_8034ED2C -/* 8034ECF0 3C 00 80 00 */ lis r0, 0x8000 -/* 8034ECF4 7C 00 24 30 */ srw r0, r0, r4 -/* 8034ECF8 7C A0 00 78 */ andc r0, r5, r0 -/* 8034ECFC 1C 84 00 0C */ mulli r4, r4, 0xc -/* 8034ED00 90 0D 92 D0 */ stw r0, ResettingBits(r13) -/* 8034ED04 3C 60 80 45 */ lis r3, Origin@ha /* 0x8044CB80@ha */ -/* 8034ED08 38 03 CB 80 */ addi r0, r3, Origin@l /* 0x8044CB80@l */ -/* 8034ED0C 7C 60 22 14 */ add r3, r0, r4 -/* 8034ED10 38 80 00 00 */ li r4, 0 -/* 8034ED14 38 A0 00 0C */ li r5, 0xc -/* 8034ED18 4B CB 47 41 */ bl memset -/* 8034ED1C 3C 80 80 35 */ lis r4, PADTypeAndStatusCallback@ha /* 0x8034E6C0@ha */ -/* 8034ED20 80 6D 84 A4 */ lwz r3, ResettingChan(r13) -/* 8034ED24 38 84 E6 C0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 0x8034E6C0@l */ -/* 8034ED28 4B FF 74 2D */ bl SIGetTypeAsync -lbl_8034ED2C: -/* 8034ED2C 7F E3 FB 78 */ mr r3, r31 -/* 8034ED30 4B FE E9 ED */ bl OSRestoreInterrupts -/* 8034ED34 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034ED38 38 60 00 01 */ li r3, 1 -/* 8034ED3C 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034ED40 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8034ED44 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034ED48 7C 08 03 A6 */ mtlr r0 -/* 8034ED4C 4E 80 00 20 */ blr diff --git a/asm/dolphin/pad/Pad/PADReset.s b/asm/dolphin/pad/Pad/PADReset.s deleted file mode 100644 index 7b9c1708d6f..00000000000 --- a/asm/dolphin/pad/Pad/PADReset.s +++ /dev/null @@ -1,71 +0,0 @@ -lbl_8034EB2C: -/* 8034EB2C 7C 08 02 A6 */ mflr r0 -/* 8034EB30 90 01 00 04 */ stw r0, 4(r1) -/* 8034EB34 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8034EB38 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8034EB3C 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8034EB40 7C 7E 1B 78 */ mr r30, r3 -/* 8034EB44 4B FE EB B1 */ bl OSDisableInterrupts -/* 8034EB48 80 8D 92 E0 */ lwz r4, PendingBits(r13) -/* 8034EB4C 39 00 00 00 */ li r8, 0 -/* 8034EB50 80 AD 92 D8 */ lwz r5, WaitingBits(r13) -/* 8034EB54 7C 7F 1B 78 */ mr r31, r3 -/* 8034EB58 80 0D 92 DC */ lwz r0, CheckingBits(r13) -/* 8034EB5C 7F DE 23 78 */ or r30, r30, r4 -/* 8034EB60 80 8D 92 D0 */ lwz r4, ResettingBits(r13) -/* 8034EB64 7C A5 03 78 */ or r5, r5, r0 -/* 8034EB68 80 0D 84 B0 */ lwz r0, Spec(r13) -/* 8034EB6C 7F DE 28 78 */ andc r30, r30, r5 -/* 8034EB70 80 CD 92 CC */ lwz r6, EnabledBits(r13) -/* 8034EB74 7C 85 F3 78 */ or r5, r4, r30 -/* 8034EB78 80 8D 92 E4 */ lwz r4, BarrelBits(r13) -/* 8034EB7C 7F C7 F0 F8 */ nor r7, r30, r30 -/* 8034EB80 90 AD 92 D0 */ stw r5, ResettingBits(r13) -/* 8034EB84 7C C5 38 38 */ and r5, r6, r7 -/* 8034EB88 7C 84 38 38 */ and r4, r4, r7 -/* 8034EB8C 80 ED 92 D0 */ lwz r7, ResettingBits(r13) -/* 8034EB90 28 00 00 04 */ cmplwi r0, 4 -/* 8034EB94 91 0D 92 E0 */ stw r8, PendingBits(r13) -/* 8034EB98 7C E3 30 38 */ and r3, r7, r6 -/* 8034EB9C 90 AD 92 CC */ stw r5, EnabledBits(r13) -/* 8034EBA0 90 8D 92 E4 */ stw r4, BarrelBits(r13) -/* 8034EBA4 40 82 00 10 */ bne lbl_8034EBB4 -/* 8034EBA8 80 0D 92 D4 */ lwz r0, RecalibrateBits(r13) -/* 8034EBAC 7C 00 F3 78 */ or r0, r0, r30 -/* 8034EBB0 90 0D 92 D4 */ stw r0, RecalibrateBits(r13) -lbl_8034EBB4: -/* 8034EBB4 4B FF 6D 49 */ bl SIDisablePolling -/* 8034EBB8 80 0D 84 A4 */ lwz r0, ResettingChan(r13) -/* 8034EBBC 2C 00 00 20 */ cmpwi r0, 0x20 -/* 8034EBC0 40 82 00 58 */ bne lbl_8034EC18 -/* 8034EBC4 80 AD 92 D0 */ lwz r5, ResettingBits(r13) -/* 8034EBC8 7C A0 00 34 */ cntlzw r0, r5 -/* 8034EBCC 90 0D 84 A4 */ stw r0, ResettingChan(r13) -/* 8034EBD0 80 8D 84 A4 */ lwz r4, ResettingChan(r13) -/* 8034EBD4 2C 04 00 20 */ cmpwi r4, 0x20 -/* 8034EBD8 41 82 00 40 */ beq lbl_8034EC18 -/* 8034EBDC 3C 00 80 00 */ lis r0, 0x8000 -/* 8034EBE0 7C 00 24 30 */ srw r0, r0, r4 -/* 8034EBE4 7C A0 00 78 */ andc r0, r5, r0 -/* 8034EBE8 1C 84 00 0C */ mulli r4, r4, 0xc -/* 8034EBEC 90 0D 92 D0 */ stw r0, ResettingBits(r13) -/* 8034EBF0 3C 60 80 45 */ lis r3, Origin@ha /* 0x8044CB80@ha */ -/* 8034EBF4 38 03 CB 80 */ addi r0, r3, Origin@l /* 0x8044CB80@l */ -/* 8034EBF8 7C 60 22 14 */ add r3, r0, r4 -/* 8034EBFC 38 80 00 00 */ li r4, 0 -/* 8034EC00 38 A0 00 0C */ li r5, 0xc -/* 8034EC04 4B CB 48 55 */ bl memset -/* 8034EC08 3C 80 80 35 */ lis r4, PADTypeAndStatusCallback@ha /* 0x8034E6C0@ha */ -/* 8034EC0C 80 6D 84 A4 */ lwz r3, ResettingChan(r13) -/* 8034EC10 38 84 E6 C0 */ addi r4, r4, PADTypeAndStatusCallback@l /* 0x8034E6C0@l */ -/* 8034EC14 4B FF 75 41 */ bl SIGetTypeAsync -lbl_8034EC18: -/* 8034EC18 7F E3 FB 78 */ mr r3, r31 -/* 8034EC1C 4B FE EB 01 */ bl OSRestoreInterrupts -/* 8034EC20 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8034EC24 38 60 00 01 */ li r3, 1 -/* 8034EC28 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8034EC2C 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8034EC30 38 21 00 18 */ addi r1, r1, 0x18 -/* 8034EC34 7C 08 03 A6 */ mtlr r0 -/* 8034EC38 4E 80 00 20 */ blr diff --git a/libs/JSystem/J2DGraph/J2DScreen.cpp b/libs/JSystem/J2DGraph/J2DScreen.cpp index d4aeeaa12bf..55e337eb99d 100644 --- a/libs/JSystem/J2DGraph/J2DScreen.cpp +++ b/libs/JSystem/J2DGraph/J2DScreen.cpp @@ -33,7 +33,6 @@ extern "C" void draw__9J2DScreenFffPC14J2DGrafContext(); extern "C" void search__9J2DScreenFUx(); extern "C" void searchUserInfo__9J2DScreenFUx(); extern "C" void drawSelf__9J2DScreenFffPA3_A4_f(); -extern "C" void getResReference__9J2DScreenFP20JSURandomInputStreamUl(); extern "C" void createMaterial__9J2DScreenFP20JSURandomInputStreamUlP10JKRArchive(); extern "C" void isUsed__9J2DScreenFPC7ResTIMG(); extern "C" void isUsed__9J2DScreenFPC7ResFONT(); @@ -575,43 +574,31 @@ asm void J2DScreen::drawSelf(f32 param_0, f32 param_1, Mtx* param_2) { /* 802F9280-802F937C 2F3BC0 00FC+00 1/1 0/0 0/0 .text * getResReference__9J2DScreenFP20JSURandomInputStreamUl */ -// small regalloc -#ifdef NONMATCHING J2DResReference* J2DScreen::getResReference(JSURandomInputStream* p_stream, u32 param_1) { s32 position = p_stream->getPosition(); p_stream->skip(4); - s32 start, end; - start = p_stream->readS32(); + s32 size1, size2; + size1 = p_stream->readS32(); p_stream->skip(4); - end = p_stream->readS32(); - p_stream->seek(position + end, JSUStreamSeekFrom_SET); + size2 = p_stream->readS32(); + p_stream->seek(position + size2, JSUStreamSeekFrom_SET); - s32 size = end - start; + size1 = size1 - size2; char* buffer; if (param_1 & 0x1F0000) { - buffer = new char[size]; + buffer = new char[size1]; } else { - buffer = new (-4) char[size]; + buffer = new (-4) char[size1]; } if (buffer != NULL) { - p_stream->read(buffer, size); + p_stream->read(buffer, size1); } return (J2DResReference*)buffer; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm J2DResReference* J2DScreen::getResReference(JSURandomInputStream* param_0, u32 param_1) { - nofralloc -#include "asm/JSystem/J2DGraph/J2DScreen/getResReference__9J2DScreenFP20JSURandomInputStreamUl.s" -} -#pragma pop -#endif /* 802F937C-802F9600 2F3CBC 0284+00 1/1 0/0 0/0 .text * createMaterial__9J2DScreenFP20JSURandomInputStreamUlP10JKRArchive */ @@ -646,28 +633,31 @@ bool J2DScreen::createMaterial(JSURandomInputStream* p_stream, u32 param_1, JKRA u32 offset = buffer[0x14] << 0x18 | buffer[0x15] << 0x10 | buffer[0x16] << 8 | buffer[0x17]; char* sec = (char*)buffer + offset; - u16* sec_s = (u16*)sec + *(u16*)sec; - - u16 num = sec_s[1]; + u16* sec_s = ((u16*)sec); + u32 size = ((u16*)sec)[0]*2; + u16 num = sec_s[size + 1]; while (sec[num] != 0) { - num++; + num++; } - num++; + num++; - ResNTAB* nametab = new ResNTAB[num]; + u8* nametab = new u8[num]; if (nametab != NULL) { for (u16 i = 0; i < num; i++) { - nametab->mEntries[i].mKeyCode = sec[i]; + nametab[i] = sec[i]; } - mNameTable = new JUTNameTab(nametab); + mNameTable = new JUTNameTab((ResNTAB*)nametab); if (mNameTable == NULL) { delete[] nametab; } else { + success: delete[] buffer; return true; } } + } else { + goto success; } } diff --git a/libs/dolphin/pad/Pad.c b/libs/dolphin/pad/Pad.c index 535eba9da4f..908ab7d14ff 100644 --- a/libs/dolphin/pad/Pad.c +++ b/libs/dolphin/pad/Pad.c @@ -296,7 +296,6 @@ static asm void PADReceiveCheckCallback(s32 chan, u32 type) { #pragma pop /* 8034EB2C-8034EC3C 34946C 0110+00 2/2 1/1 0/0 .text PADReset */ -#ifdef NONMATCHING BOOL PADReset(u32 mask) { BOOL enabled; u32 diableBits; @@ -309,6 +308,7 @@ BOOL PADReset(u32 mask) { ResettingBits |= mask; diableBits = ResettingBits & EnabledBits; EnabledBits &= ~mask; + BarrelBits &= ~mask; if (Spec == PAD_SPEC_4) { RecalibrateBits |= mask; @@ -322,19 +322,8 @@ BOOL PADReset(u32 mask) { OSRestoreInterrupts(enabled); return TRUE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL PADReset(u32 mask) { - nofralloc -#include "asm/dolphin/pad/Pad/PADReset.s" -} -#pragma pop -#endif /* 8034EC3C-8034ED50 34957C 0114+00 1/1 1/1 0/0 .text PADRecalibrate */ -#ifdef NONMATCHING BOOL PADRecalibrate(u32 mask) { BOOL enabled; u32 disableBits; @@ -345,9 +334,9 @@ BOOL PADRecalibrate(u32 mask) { PendingBits = 0; mask &= ~(WaitingBits | CheckingBits); ResettingBits |= mask; - BarrelBits &= ~mask; disableBits = ResettingBits & EnabledBits; EnabledBits &= ~mask; + BarrelBits &= ~mask; if (!(UnkVal & 0x40)) { RecalibrateBits |= mask; @@ -360,16 +349,6 @@ BOOL PADRecalibrate(u32 mask) { OSRestoreInterrupts(enabled); return TRUE; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL PADRecalibrate(u32 mask) { - nofralloc -#include "asm/dolphin/pad/Pad/PADRecalibrate.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 803D1B90-803D1BA0 -00001 0010+00 1/1 0/0 0/0 .data ResetFunctionInfo */ @@ -531,7 +510,6 @@ u32 PADRead(PADStatus* status) { } /* 8034F1A0-8034F258 349AE0 00B8+00 0/0 2/2 0/0 .text PADControlMotor */ -#ifdef NONMATCHING void PADControlMotor(s32 chan, u32 command) { BOOL enabled; u32 chanBit; @@ -543,21 +521,15 @@ void PADControlMotor(s32 chan, u32 command) { command = PAD_MOTOR_STOP; } + if (UnkVal & 0x20) { + command = PAD_MOTOR_STOP; + } + SISetCommand(chan, (0x40 << 16) | AnalogMode | (command & (0x00000001 | 0x00000002))); SITransferCommands(); } OSRestoreInterrupts(enabled); } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void PADControlMotor(s32 channel, u32 command) { - nofralloc -#include "asm/dolphin/pad/Pad/PADControlMotor.s" -} -#pragma pop -#endif /* 8034F258-8034F2B8 349B98 0060+00 1/1 1/1 0/0 .text PADSetSpec */ void PADSetSpec(u32 spec) {