Jsystem work (#399)

* Almost match JASBasicInst

* JASDrumSet OK

* Some JAudio2 struct adjustment

* Match JKRHeap::callAllDisposer

* JAISe OK

* Fix setAutoDelete

* JAISound OK

* Match a few functions in linklist

* Few matches in d_a_e_ym

* JUTTexture OK

* Work on JUTGamePad

* Import JUTResource

* Work on JUTResFont::getFontCode
This commit is contained in:
hatal175
2023-08-06 06:12:26 +03:00
committed by GitHub
parent 8b34c0210f
commit dc985026fa
79 changed files with 519 additions and 2705 deletions
@@ -1,72 +0,0 @@
lbl_8029F4CC:
/* 8029F4CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029F4D0 7C 08 02 A6 */ mflr r0
/* 8029F4D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029F4D8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029F4DC 7C 7F 1B 78 */ mr r31, r3
/* 8029F4E0 48 00 02 AD */ bl prepare___5JAISeFv
/* 8029F4E4 38 7F 00 10 */ addi r3, r31, 0x10
/* 8029F4E8 48 00 31 D1 */ bl calc_JAISound___8JAISoundFv
/* 8029F4EC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8029F4F0 41 82 00 5C */ beq lbl_8029F54C
/* 8029F4F4 C0 3F 03 28 */ lfs f1, 0x328(r31)
/* 8029F4F8 80 7F 03 34 */ lwz r3, 0x334(r31)
/* 8029F4FC 28 03 00 01 */ cmplwi r3, 1
/* 8029F500 40 81 00 18 */ ble lbl_8029F518
/* 8029F504 38 03 FF FF */ addi r0, r3, -1
/* 8029F508 90 1F 03 34 */ stw r0, 0x334(r31)
/* 8029F50C C0 1F 03 2C */ lfs f0, 0x32c(r31)
/* 8029F510 EC 21 00 2A */ fadds f1, f1, f0
/* 8029F514 48 00 00 14 */ b lbl_8029F528
lbl_8029F518:
/* 8029F518 40 82 00 10 */ bne lbl_8029F528
/* 8029F51C 38 00 00 00 */ li r0, 0
/* 8029F520 90 1F 03 34 */ stw r0, 0x334(r31)
/* 8029F524 C0 3F 03 30 */ lfs f1, 0x330(r31)
lbl_8029F528:
/* 8029F528 D0 3F 03 28 */ stfs f1, 0x328(r31)
/* 8029F52C 80 7F 03 24 */ lwz r3, 0x324(r31)
/* 8029F530 28 03 00 00 */ cmplwi r3, 0
/* 8029F534 41 82 00 18 */ beq lbl_8029F54C
/* 8029F538 7F E4 FB 78 */ mr r4, r31
/* 8029F53C 81 83 00 00 */ lwz r12, 0(r3)
/* 8029F540 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8029F544 7D 89 03 A6 */ mtctr r12
/* 8029F548 4E 80 04 21 */ bctrl
lbl_8029F54C:
/* 8029F54C 38 80 00 00 */ li r4, 0
/* 8029F550 88 7F 00 2F */ lbz r3, 0x2f(r31)
/* 8029F554 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 8029F558 41 82 00 2C */ beq lbl_8029F584
/* 8029F55C 54 60 EF FF */ rlwinm. r0, r3, 0x1d, 0x1f, 0x1f
/* 8029F560 41 82 00 20 */ beq lbl_8029F580
/* 8029F564 80 1F 00 40 */ lwz r0, 0x40(r31)
/* 8029F568 28 00 00 00 */ cmplwi r0, 0
/* 8029F56C 40 82 00 18 */ bne lbl_8029F584
/* 8029F570 C0 3F 00 34 */ lfs f1, 0x34(r31)
/* 8029F574 C0 02 BD 84 */ lfs f0, lit_736(r2)
/* 8029F578 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8029F57C 40 80 00 08 */ bge lbl_8029F584
lbl_8029F580:
/* 8029F580 38 80 00 01 */ li r4, 1
lbl_8029F584:
/* 8029F584 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 8029F588 40 82 00 14 */ bne lbl_8029F59C
/* 8029F58C 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 8029F590 3C 03 00 01 */ addis r0, r3, 1
/* 8029F594 28 00 FF FF */ cmplwi r0, 0xffff
/* 8029F598 40 82 00 10 */ bne lbl_8029F5A8
lbl_8029F59C:
/* 8029F59C 38 00 FF FF */ li r0, -1
/* 8029F5A0 90 1F 00 B0 */ stw r0, 0xb0(r31)
/* 8029F5A4 48 00 00 10 */ b lbl_8029F5B4
lbl_8029F5A8:
/* 8029F5A8 80 1F 00 AC */ lwz r0, 0xac(r31)
/* 8029F5AC 7C 00 1A 14 */ add r0, r0, r3
/* 8029F5B0 90 1F 00 B0 */ stw r0, 0xb0(r31)
lbl_8029F5B4:
/* 8029F5B4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029F5B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029F5BC 7C 08 03 A6 */ mtlr r0
/* 8029F5C0 38 21 00 10 */ addi r1, r1, 0x10
/* 8029F5C4 4E 80 00 20 */ blr
@@ -1,130 +0,0 @@
lbl_8029F304:
/* 8029F304 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8029F308 7C 08 02 A6 */ mflr r0
/* 8029F30C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029F310 39 61 00 20 */ addi r11, r1, 0x20
/* 8029F314 48 0C 2E C5 */ bl _savegpr_28
/* 8029F318 7C 7E 1B 78 */ mr r30, r3
/* 8029F31C 7C 9C 23 78 */ mr r28, r4
/* 8029F320 7C BD 2B 78 */ mr r29, r5
/* 8029F324 7C DF 33 78 */ mr r31, r6
/* 8029F328 7F A4 EB 78 */ mr r4, r29
/* 8029F32C 4B FF FD CD */ bl mixOut___5JAISeFRC14JASSoundParams
/* 8029F330 38 80 00 00 */ li r4, 0
/* 8029F334 88 7E 00 2F */ lbz r3, 0x2f(r30)
/* 8029F338 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 8029F33C 41 82 00 2C */ beq lbl_8029F368
/* 8029F340 54 60 EF FF */ rlwinm. r0, r3, 0x1d, 0x1f, 0x1f
/* 8029F344 41 82 00 20 */ beq lbl_8029F364
/* 8029F348 80 1E 00 40 */ lwz r0, 0x40(r30)
/* 8029F34C 28 00 00 00 */ cmplwi r0, 0
/* 8029F350 40 82 00 18 */ bne lbl_8029F368
/* 8029F354 C0 3E 00 34 */ lfs f1, 0x34(r30)
/* 8029F358 C0 02 BD 84 */ lfs f0, lit_736(r2)
/* 8029F35C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8029F360 40 80 00 08 */ bge lbl_8029F368
lbl_8029F364:
/* 8029F364 38 80 00 01 */ li r4, 1
lbl_8029F368:
/* 8029F368 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 8029F36C 41 82 00 10 */ beq lbl_8029F37C
/* 8029F370 7F C3 F3 78 */ mr r3, r30
/* 8029F374 4B FF FE A1 */ bl stopTrack___5JAISeFv
/* 8029F378 48 00 01 3C */ b lbl_8029F4B4
lbl_8029F37C:
/* 8029F37C 57 80 06 3F */ clrlwi. r0, r28, 0x18
/* 8029F380 41 82 00 DC */ beq lbl_8029F45C
/* 8029F384 88 1E 00 2E */ lbz r0, 0x2e(r30)
/* 8029F388 28 00 00 05 */ cmplwi r0, 5
/* 8029F38C 40 82 01 28 */ bne lbl_8029F4B4
/* 8029F390 88 1E 03 18 */ lbz r0, 0x318(r30)
/* 8029F394 28 00 00 00 */ cmplwi r0, 0
/* 8029F398 41 82 00 B4 */ beq lbl_8029F44C
/* 8029F39C 88 1E 02 DD */ lbz r0, 0x2dd(r30)
/* 8029F3A0 2C 00 00 02 */ cmpwi r0, 2
/* 8029F3A4 41 82 00 14 */ beq lbl_8029F3B8
/* 8029F3A8 40 80 01 0C */ bge lbl_8029F4B4
/* 8029F3AC 2C 00 00 01 */ cmpwi r0, 1
/* 8029F3B0 40 80 00 48 */ bge lbl_8029F3F8
/* 8029F3B4 48 00 01 00 */ b lbl_8029F4B4
lbl_8029F3B8:
/* 8029F3B8 88 1E 00 2D */ lbz r0, 0x2d(r30)
/* 8029F3BC 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8029F3C0 41 82 00 14 */ beq lbl_8029F3D4
/* 8029F3C4 7F C3 F3 78 */ mr r3, r30
/* 8029F3C8 7F A4 EB 78 */ mr r4, r29
/* 8029F3CC 4B FF FE 85 */ bl startTrack___5JAISeFRC14JASSoundParams
/* 8029F3D0 48 00 00 E4 */ b lbl_8029F4B4
lbl_8029F3D4:
/* 8029F3D4 38 60 00 00 */ li r3, 0
/* 8029F3D8 88 1E 00 2F */ lbz r0, 0x2f(r30)
/* 8029F3DC 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8029F3E0 98 1E 00 2F */ stb r0, 0x2f(r30)
/* 8029F3E4 38 60 00 01 */ li r3, 1
/* 8029F3E8 88 1E 00 2F */ lbz r0, 0x2f(r30)
/* 8029F3EC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8029F3F0 98 1E 00 2F */ stb r0, 0x2f(r30)
/* 8029F3F4 48 00 00 C0 */ b lbl_8029F4B4
lbl_8029F3F8:
/* 8029F3F8 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F3FC 38 80 00 00 */ li r4, 0
/* 8029F400 88 1E 00 2C */ lbz r0, 0x2c(r30)
/* 8029F404 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8029F408 40 82 00 10 */ bne lbl_8029F418
/* 8029F40C 88 1F 00 00 */ lbz r0, 0(r31)
/* 8029F410 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 8029F414 41 82 00 08 */ beq lbl_8029F41C
lbl_8029F418:
/* 8029F418 38 80 00 01 */ li r4, 1
lbl_8029F41C:
/* 8029F41C 4B FF 36 21 */ bl pause__8JASTrackFb
/* 8029F420 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F424 38 80 00 00 */ li r4, 0
/* 8029F428 88 1E 00 2C */ lbz r0, 0x2c(r30)
/* 8029F42C 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8029F430 40 82 00 10 */ bne lbl_8029F440
/* 8029F434 88 1F 00 00 */ lbz r0, 0(r31)
/* 8029F438 54 00 CF FF */ rlwinm. r0, r0, 0x19, 0x1f, 0x1f
/* 8029F43C 41 82 00 08 */ beq lbl_8029F444
lbl_8029F440:
/* 8029F440 38 80 00 01 */ li r4, 1
lbl_8029F444:
/* 8029F444 4B FF 33 5D */ bl mute__8JASTrackFb
/* 8029F448 48 00 00 6C */ b lbl_8029F4B4
lbl_8029F44C:
/* 8029F44C 7F C3 F3 78 */ mr r3, r30
/* 8029F450 7F A4 EB 78 */ mr r4, r29
/* 8029F454 4B FF FD FD */ bl startTrack___5JAISeFRC14JASSoundParams
/* 8029F458 48 00 00 5C */ b lbl_8029F4B4
lbl_8029F45C:
/* 8029F45C 88 7E 00 2D */ lbz r3, 0x2d(r30)
/* 8029F460 54 60 CF FF */ rlwinm. r0, r3, 0x19, 0x1f, 0x1f
/* 8029F464 41 82 00 28 */ beq lbl_8029F48C
/* 8029F468 54 60 DF FF */ rlwinm. r0, r3, 0x1b, 0x1f, 0x1f
/* 8029F46C 41 82 00 14 */ beq lbl_8029F480
/* 8029F470 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F474 38 80 00 01 */ li r4, 1
/* 8029F478 4B FF 35 C5 */ bl pause__8JASTrackFb
/* 8029F47C 48 00 00 38 */ b lbl_8029F4B4
lbl_8029F480:
/* 8029F480 7F C3 F3 78 */ mr r3, r30
/* 8029F484 4B FF FD 91 */ bl stopTrack___5JAISeFv
/* 8029F488 48 00 00 2C */ b lbl_8029F4B4
lbl_8029F48C:
/* 8029F48C 7F C3 F3 78 */ mr r3, r30
/* 8029F490 4B FF FD 85 */ bl stopTrack___5JAISeFv
/* 8029F494 38 60 00 00 */ li r3, 0
/* 8029F498 88 1E 00 2F */ lbz r0, 0x2f(r30)
/* 8029F49C 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8029F4A0 98 1E 00 2F */ stb r0, 0x2f(r30)
/* 8029F4A4 38 60 00 01 */ li r3, 1
/* 8029F4A8 88 1E 00 2F */ lbz r0, 0x2f(r30)
/* 8029F4AC 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8029F4B0 98 1E 00 2F */ stb r0, 0x2f(r30)
lbl_8029F4B4:
/* 8029F4B4 39 61 00 20 */ addi r11, r1, 0x20
/* 8029F4B8 48 0C 2D 6D */ bl _restgpr_28
/* 8029F4BC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029F4C0 7C 08 03 A6 */ mtlr r0
/* 8029F4C4 38 21 00 20 */ addi r1, r1, 0x20
/* 8029F4C8 4E 80 00 20 */ blr
@@ -1,40 +0,0 @@
lbl_8029F5C8:
/* 8029F5C8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029F5CC 7C 08 02 A6 */ mflr r0
/* 8029F5D0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029F5D4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029F5D8 7C 7F 1B 78 */ mr r31, r3
/* 8029F5DC 88 03 02 DD */ lbz r0, 0x2dd(r3)
/* 8029F5E0 2C 00 00 01 */ cmpwi r0, 1
/* 8029F5E4 41 82 00 54 */ beq lbl_8029F638
/* 8029F5E8 40 80 00 10 */ bge lbl_8029F5F8
/* 8029F5EC 2C 00 00 00 */ cmpwi r0, 0
/* 8029F5F0 40 80 00 10 */ bge lbl_8029F600
/* 8029F5F4 48 00 00 44 */ b lbl_8029F638
lbl_8029F5F8:
/* 8029F5F8 2C 00 00 03 */ cmpwi r0, 3
/* 8029F5FC 40 80 00 3C */ bge lbl_8029F638
lbl_8029F600:
/* 8029F600 80 9F 03 24 */ lwz r4, 0x324(r31)
/* 8029F604 28 04 00 00 */ cmplwi r4, 0
/* 8029F608 41 82 00 20 */ beq lbl_8029F628
/* 8029F60C 80 7F 03 20 */ lwz r3, 0x320(r31)
/* 8029F610 81 83 00 00 */ lwz r12, 0(r3)
/* 8029F614 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8029F618 7D 89 03 A6 */ mtctr r12
/* 8029F61C 4E 80 04 21 */ bctrl
/* 8029F620 38 00 00 00 */ li r0, 0
/* 8029F624 90 1F 03 24 */ stw r0, 0x324(r31)
lbl_8029F628:
/* 8029F628 38 7F 00 10 */ addi r3, r31, 0x10
/* 8029F62C 48 00 2F C5 */ bl die_JAISound___8JAISoundFv
/* 8029F630 38 60 00 01 */ li r3, 1
/* 8029F634 48 00 00 08 */ b lbl_8029F63C
lbl_8029F638:
/* 8029F638 38 60 00 00 */ li r3, 0
lbl_8029F63C:
/* 8029F63C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029F640 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029F644 7C 08 03 A6 */ mtlr r0
/* 8029F648 38 21 00 10 */ addi r1, r1, 0x10
/* 8029F64C 4E 80 00 20 */ blr
-48
View File
@@ -1,48 +0,0 @@
lbl_8029F03C:
/* 8029F03C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8029F040 7C 08 02 A6 */ mflr r0
/* 8029F044 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029F048 39 61 00 20 */ addi r11, r1, 0x20
/* 8029F04C 48 0C 31 8D */ bl _savegpr_28
/* 8029F050 7C 7C 1B 78 */ mr r28, r3
/* 8029F054 7C 9D 23 78 */ mr r29, r4
/* 8029F058 7C BE 2B 78 */ mr r30, r5
/* 8029F05C 7C DF 33 78 */ mr r31, r6
/* 8029F060 7F 84 E3 78 */ mr r4, r28
/* 8029F064 48 03 CD 99 */ bl __ct__10JSUPtrLinkFPv
/* 8029F068 38 7C 00 10 */ addi r3, r28, 0x10
/* 8029F06C 48 00 32 8D */ bl __ct__8JAISoundFv
/* 8029F070 3C 60 80 3D */ lis r3, __vt__5JAISe@ha /* 0x803C9858@ha */
/* 8029F074 38 63 98 58 */ addi r3, r3, __vt__5JAISe@l /* 0x803C9858@l */
/* 8029F078 90 7C 00 A8 */ stw r3, 0xa8(r28)
/* 8029F07C 38 03 00 08 */ addi r0, r3, 8
/* 8029F080 90 1C 00 10 */ stw r0, 0x10(r28)
/* 8029F084 C0 02 BD 78 */ lfs f0, lit_626(r2)
/* 8029F088 D0 1C 00 B4 */ stfs f0, 0xb4(r28)
/* 8029F08C D0 1C 00 BC */ stfs f0, 0xbc(r28)
/* 8029F090 C0 22 BD 7C */ lfs f1, lit_627(r2)
/* 8029F094 D0 3C 00 B8 */ stfs f1, 0xb8(r28)
/* 8029F098 C0 02 BD 80 */ lfs f0, lit_628(r2)
/* 8029F09C D0 1C 00 C0 */ stfs f0, 0xc0(r28)
/* 8029F0A0 D0 3C 00 C4 */ stfs f1, 0xc4(r28)
/* 8029F0A4 38 7C 00 C8 */ addi r3, r28, 0xc8
/* 8029F0A8 4B FF 21 81 */ bl __ct__8JASTrackFv
/* 8029F0AC 38 00 00 00 */ li r0, 0
/* 8029F0B0 90 1C 03 10 */ stw r0, 0x310(r28)
/* 8029F0B4 90 1C 03 14 */ stw r0, 0x314(r28)
/* 8029F0B8 C0 02 BD 78 */ lfs f0, lit_626(r2)
/* 8029F0BC D0 1C 03 28 */ stfs f0, 0x328(r28)
/* 8029F0C0 C0 02 BD 7C */ lfs f0, lit_627(r2)
/* 8029F0C4 D0 1C 03 2C */ stfs f0, 0x32c(r28)
/* 8029F0C8 90 1C 03 34 */ stw r0, 0x334(r28)
/* 8029F0CC D0 1C 03 30 */ stfs f0, 0x330(r28)
/* 8029F0D0 93 DC 03 20 */ stw r30, 0x320(r28)
/* 8029F0D4 93 BC 03 1C */ stw r29, 0x31c(r28)
/* 8029F0D8 93 FC 00 AC */ stw r31, 0xac(r28)
/* 8029F0DC 7F 83 E3 78 */ mr r3, r28
/* 8029F0E0 39 61 00 20 */ addi r11, r1, 0x20
/* 8029F0E4 48 0C 31 41 */ bl _restgpr_28
/* 8029F0E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029F0EC 7C 08 03 A6 */ mtlr r0
/* 8029F0F0 38 21 00 20 */ addi r1, r1, 0x20
/* 8029F0F4 4E 80 00 20 */ blr
-37
View File
@@ -1,37 +0,0 @@
lbl_8029F650:
/* 8029F650 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8029F654 7C 08 02 A6 */ mflr r0
/* 8029F658 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029F65C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8029F660 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8029F664 7C 7E 1B 78 */ mr r30, r3
/* 8029F668 7C 9F 23 78 */ mr r31, r4
/* 8029F66C 80 04 00 00 */ lwz r0, 0(r4)
/* 8029F670 90 01 00 0C */ stw r0, 0xc(r1)
/* 8029F674 38 7E 00 10 */ addi r3, r30, 0x10
/* 8029F678 38 81 00 0C */ addi r4, r1, 0xc
/* 8029F67C 48 00 2C AD */ bl func_802A2328
/* 8029F680 38 60 00 00 */ li r3, 0
/* 8029F684 98 7E 03 18 */ stb r3, 0x318(r30)
/* 8029F688 80 1E 03 20 */ lwz r0, 0x320(r30)
/* 8029F68C 28 00 00 00 */ cmplwi r0, 0
/* 8029F690 41 82 00 2C */ beq lbl_8029F6BC
/* 8029F694 80 1F 00 00 */ lwz r0, 0(r31)
/* 8029F698 90 01 00 08 */ stw r0, 8(r1)
/* 8029F69C 80 7E 03 20 */ lwz r3, 0x320(r30)
/* 8029F6A0 38 81 00 08 */ addi r4, r1, 8
/* 8029F6A4 81 83 00 00 */ lwz r12, 0(r3)
/* 8029F6A8 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8029F6AC 7D 89 03 A6 */ mtctr r12
/* 8029F6B0 4E 80 04 21 */ bctrl
/* 8029F6B4 90 7E 03 24 */ stw r3, 0x324(r30)
/* 8029F6B8 48 00 00 08 */ b lbl_8029F6C0
lbl_8029F6BC:
/* 8029F6BC 90 7E 03 24 */ stw r3, 0x324(r30)
lbl_8029F6C0:
/* 8029F6C0 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8029F6C4 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8029F6C8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029F6CC 7C 08 03 A6 */ mtlr r0
/* 8029F6D0 38 21 00 20 */ addi r1, r1, 0x20
/* 8029F6D4 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_8029F870:
/* 8029F870 38 63 FF F0 */ addi r3, r3, -16
/* 8029F874 4B FF FD 54 */ b JAISound_tryDie___5JAISeFv
@@ -1,3 +0,0 @@
lbl_8029F878:
/* 8029F878 38 63 FF F0 */ addi r3, r3, -16
/* 8029F87C 4B FF FF EC */ b getTempoMgr__5JAISeFv
@@ -1,3 +0,0 @@
lbl_8029F880:
/* 8029F880 38 63 FF F0 */ addi r3, r3, -16
/* 8029F884 4B FF FF D0 */ b getChildTrack__5JAISeFi
@@ -1,3 +0,0 @@
lbl_8029F888:
/* 8029F888 38 63 FF F0 */ addi r3, r3, -16
/* 8029F88C 4B FF FF C0 */ b getTrack__5JAISeFv
@@ -1,3 +0,0 @@
lbl_8029F890:
/* 8029F890 38 63 FF F0 */ addi r3, r3, -16
/* 8029F894 4B FF FF D0 */ b asSe__5JAISeFv
@@ -1,3 +0,0 @@
lbl_8029F898:
/* 8029F898 38 63 FF F0 */ addi r3, r3, -16
/* 8029F89C 4B FF FE 4C */ b releaseChild__5JAISeFi
@@ -1,3 +0,0 @@
lbl_8029F8A0:
/* 8029F8A0 38 63 FF F0 */ addi r3, r3, -16
/* 8029F8A4 4B FF FE 3C */ b getChild__5JAISeFi
@@ -1,3 +0,0 @@
lbl_8029F8A8:
/* 8029F8A8 38 63 FF F0 */ addi r3, r3, -16
/* 8029F8AC 4B FF FE 2C */ b getNumChild__5JAISeCFv
@@ -1,5 +0,0 @@
lbl_8029F854:
/* 8029F854 54 80 10 3A */ slwi r0, r4, 2
/* 8029F858 7C 63 02 14 */ add r3, r3, r0
/* 8029F85C 80 63 01 F8 */ lwz r3, 0x1f8(r3)
/* 8029F860 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_8029F868:
/* 8029F868 38 63 03 28 */ addi r3, r3, 0x328
/* 8029F86C 4E 80 00 20 */ blr
@@ -1,3 +0,0 @@
lbl_8029F84C:
/* 8029F84C 38 63 00 C8 */ addi r3, r3, 0xc8
/* 8029F850 4E 80 00 20 */ blr
@@ -1,77 +0,0 @@
lbl_8029F0F8:
/* 8029F0F8 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8029F0FC 7C 08 02 A6 */ mflr r0
/* 8029F100 90 01 00 34 */ stw r0, 0x34(r1)
/* 8029F104 39 61 00 30 */ addi r11, r1, 0x30
/* 8029F108 48 0C 30 D5 */ bl _savegpr_29
/* 8029F10C 7C 7D 1B 78 */ mr r29, r3
/* 8029F110 7C 9E 23 78 */ mr r30, r4
/* 8029F114 38 7D 00 C8 */ addi r3, r29, 0xc8
/* 8029F118 C0 3D 03 28 */ lfs f1, 0x328(r29)
/* 8029F11C 4B FF 3A 71 */ bl setTempoRate__8JASTrackFf
/* 8029F120 C0 02 BD 78 */ lfs f0, lit_626(r2)
/* 8029F124 D0 01 00 08 */ stfs f0, 8(r1)
/* 8029F128 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 8029F12C C0 22 BD 7C */ lfs f1, lit_627(r2)
/* 8029F130 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 8029F134 C0 02 BD 80 */ lfs f0, lit_628(r2)
/* 8029F138 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8029F13C D0 21 00 18 */ stfs f1, 0x18(r1)
/* 8029F140 38 7D 00 4C */ addi r3, r29, 0x4c
/* 8029F144 7F C4 F3 78 */ mr r4, r30
/* 8029F148 38 A1 00 08 */ addi r5, r1, 8
/* 8029F14C C0 3D 00 34 */ lfs f1, 0x34(r29)
/* 8029F150 48 00 31 31 */ bl mixOutAll__14JAISoundParamsFRC14JASSoundParamsP14JASSoundParamsf
/* 8029F154 80 7D 03 24 */ lwz r3, 0x324(r29)
/* 8029F158 28 03 00 00 */ cmplwi r3, 0
/* 8029F15C 41 82 00 1C */ beq lbl_8029F178
/* 8029F160 7F A4 EB 78 */ mr r4, r29
/* 8029F164 38 A1 00 08 */ addi r5, r1, 8
/* 8029F168 81 83 00 00 */ lwz r12, 0(r3)
/* 8029F16C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8029F170 7D 89 03 A6 */ mtctr r12
/* 8029F174 4E 80 04 21 */ bctrl
lbl_8029F178:
/* 8029F178 80 1D 00 18 */ lwz r0, 0x18(r29)
/* 8029F17C 28 00 00 00 */ cmplwi r0, 0
/* 8029F180 41 82 00 54 */ beq lbl_8029F1D4
/* 8029F184 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 8029F188 81 83 00 00 */ lwz r12, 0(r3)
/* 8029F18C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 8029F190 7D 89 03 A6 */ mtctr r12
/* 8029F194 4E 80 04 21 */ bctrl
/* 8029F198 7C 7F 1B 78 */ mr r31, r3
/* 8029F19C 3B C0 00 00 */ li r30, 0
/* 8029F1A0 48 00 00 28 */ b lbl_8029F1C8
lbl_8029F1A4:
/* 8029F1A4 80 7D 00 1C */ lwz r3, 0x1c(r29)
/* 8029F1A8 38 81 00 08 */ addi r4, r1, 8
/* 8029F1AC 80 BD 00 18 */ lwz r5, 0x18(r29)
/* 8029F1B0 7F C6 F3 78 */ mr r6, r30
/* 8029F1B4 81 83 00 00 */ lwz r12, 0(r3)
/* 8029F1B8 81 8C 00 1C */ lwz r12, 0x1c(r12)
/* 8029F1BC 7D 89 03 A6 */ mtctr r12
/* 8029F1C0 4E 80 04 21 */ bctrl
/* 8029F1C4 3B DE 00 01 */ addi r30, r30, 1
lbl_8029F1C8:
/* 8029F1C8 7C 1E F8 00 */ cmpw r30, r31
/* 8029F1CC 41 80 FF D8 */ blt lbl_8029F1A4
/* 8029F1D0 48 00 00 2C */ b lbl_8029F1FC
lbl_8029F1D4:
/* 8029F1D4 C0 01 00 08 */ lfs f0, 8(r1)
/* 8029F1D8 D0 1D 00 B4 */ stfs f0, 0xb4(r29)
/* 8029F1DC C0 01 00 0C */ lfs f0, 0xc(r1)
/* 8029F1E0 D0 1D 00 B8 */ stfs f0, 0xb8(r29)
/* 8029F1E4 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8029F1E8 D0 1D 00 BC */ stfs f0, 0xbc(r29)
/* 8029F1EC C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8029F1F0 D0 1D 00 C0 */ stfs f0, 0xc0(r29)
/* 8029F1F4 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8029F1F8 D0 1D 00 C4 */ stfs f0, 0xc4(r29)
lbl_8029F1FC:
/* 8029F1FC 39 61 00 30 */ addi r11, r1, 0x30
/* 8029F200 48 0C 30 29 */ bl _restgpr_29
/* 8029F204 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8029F208 7C 08 03 A6 */ mtlr r0
/* 8029F20C 38 21 00 30 */ addi r1, r1, 0x30
/* 8029F210 4E 80 00 20 */ blr
@@ -1,55 +0,0 @@
lbl_8029F78C:
/* 8029F78C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029F790 7C 08 02 A6 */ mflr r0
/* 8029F794 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029F798 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029F79C 7C 7F 1B 78 */ mr r31, r3
/* 8029F7A0 88 03 00 2E */ lbz r0, 0x2e(r3)
/* 8029F7A4 2C 00 00 03 */ cmpwi r0, 3
/* 8029F7A8 41 82 00 90 */ beq lbl_8029F838
/* 8029F7AC 40 80 00 1C */ bge lbl_8029F7C8
/* 8029F7B0 2C 00 00 01 */ cmpwi r0, 1
/* 8029F7B4 41 82 00 64 */ beq lbl_8029F818
/* 8029F7B8 40 80 00 24 */ bge lbl_8029F7DC
/* 8029F7BC 2C 00 00 00 */ cmpwi r0, 0
/* 8029F7C0 40 80 00 40 */ bge lbl_8029F800
/* 8029F7C4 48 00 00 74 */ b lbl_8029F838
lbl_8029F7C8:
/* 8029F7C8 2C 00 00 07 */ cmpwi r0, 7
/* 8029F7CC 40 80 00 6C */ bge lbl_8029F838
/* 8029F7D0 2C 00 00 05 */ cmpwi r0, 5
/* 8029F7D4 40 80 00 64 */ bge lbl_8029F838
/* 8029F7D8 48 00 00 58 */ b lbl_8029F830
lbl_8029F7DC:
/* 8029F7DC 38 60 00 00 */ li r3, 0
/* 8029F7E0 88 1F 00 2F */ lbz r0, 0x2f(r31)
/* 8029F7E4 50 60 1F 38 */ rlwimi r0, r3, 3, 0x1c, 0x1c
/* 8029F7E8 98 1F 00 2F */ stb r0, 0x2f(r31)
/* 8029F7EC 38 60 00 01 */ li r3, 1
/* 8029F7F0 88 1F 00 2F */ lbz r0, 0x2f(r31)
/* 8029F7F4 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 8029F7F8 98 1F 00 2F */ stb r0, 0x2f(r31)
/* 8029F7FC 48 00 00 3C */ b lbl_8029F838
lbl_8029F800:
/* 8029F800 4B FF FE ED */ bl prepare_getSeqData___5JAISeFv
/* 8029F804 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8029F808 41 82 00 30 */ beq lbl_8029F838
/* 8029F80C 38 00 00 05 */ li r0, 5
/* 8029F810 98 1F 00 2E */ stb r0, 0x2e(r31)
/* 8029F814 48 00 00 24 */ b lbl_8029F838
lbl_8029F818:
/* 8029F818 4B FF FE D5 */ bl prepare_getSeqData___5JAISeFv
/* 8029F81C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8029F820 41 82 00 18 */ beq lbl_8029F838
/* 8029F824 38 00 00 03 */ li r0, 3
/* 8029F828 98 1F 00 2E */ stb r0, 0x2e(r31)
/* 8029F82C 48 00 00 0C */ b lbl_8029F838
lbl_8029F830:
/* 8029F830 38 00 00 05 */ li r0, 5
/* 8029F834 98 1F 00 2E */ stb r0, 0x2e(r31)
lbl_8029F838:
/* 8029F838 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029F83C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029F840 7C 08 03 A6 */ mtlr r0
/* 8029F844 38 21 00 10 */ addi r1, r1, 0x10
/* 8029F848 4E 80 00 20 */ blr
@@ -1,47 +0,0 @@
lbl_8029F6EC:
/* 8029F6EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8029F6F0 7C 08 02 A6 */ mflr r0
/* 8029F6F4 90 01 00 24 */ stw r0, 0x24(r1)
/* 8029F6F8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8029F6FC 7C 7F 1B 78 */ mr r31, r3
/* 8029F700 80 03 00 28 */ lwz r0, 0x28(r3)
/* 8029F704 90 01 00 08 */ stw r0, 8(r1)
/* 8029F708 80 63 03 1C */ lwz r3, 0x31c(r3)
/* 8029F70C 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8029F710 38 81 00 08 */ addi r4, r1, 8
/* 8029F714 38 BF 03 10 */ addi r5, r31, 0x310
/* 8029F718 81 83 00 00 */ lwz r12, 0(r3)
/* 8029F71C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 8029F720 7D 89 03 A6 */ mtctr r12
/* 8029F724 4E 80 04 21 */ bctrl
/* 8029F728 2C 03 00 01 */ cmpwi r3, 1
/* 8029F72C 41 82 00 30 */ beq lbl_8029F75C
/* 8029F730 40 80 00 10 */ bge lbl_8029F740
/* 8029F734 2C 03 00 00 */ cmpwi r3, 0
/* 8029F738 40 80 00 14 */ bge lbl_8029F74C
/* 8029F73C 48 00 00 38 */ b lbl_8029F774
lbl_8029F740:
/* 8029F740 2C 03 00 03 */ cmpwi r3, 3
/* 8029F744 40 80 00 30 */ bge lbl_8029F774
/* 8029F748 48 00 00 24 */ b lbl_8029F76C
lbl_8029F74C:
/* 8029F74C 38 00 00 02 */ li r0, 2
/* 8029F750 98 1F 00 2E */ stb r0, 0x2e(r31)
/* 8029F754 38 60 00 00 */ li r3, 0
/* 8029F758 48 00 00 20 */ b lbl_8029F778
lbl_8029F75C:
/* 8029F75C 38 7F 00 10 */ addi r3, r31, 0x10
/* 8029F760 48 00 2F 0D */ bl increasePrepareCount_JAISound___8JAISoundFv
/* 8029F764 38 60 00 00 */ li r3, 0
/* 8029F768 48 00 00 10 */ b lbl_8029F778
lbl_8029F76C:
/* 8029F76C 38 60 00 01 */ li r3, 1
/* 8029F770 48 00 00 08 */ b lbl_8029F778
lbl_8029F774:
/* 8029F774 38 60 00 00 */ li r3, 0
lbl_8029F778:
/* 8029F778 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8029F77C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8029F780 7C 08 03 A6 */ mtlr r0
/* 8029F784 38 21 00 20 */ addi r1, r1, 0x20
/* 8029F788 4E 80 00 20 */ blr
@@ -1,49 +0,0 @@
lbl_8029F250:
/* 8029F250 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029F254 7C 08 02 A6 */ mflr r0
/* 8029F258 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029F25C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029F260 93 C1 00 08 */ stw r30, 8(r1)
/* 8029F264 7C 7E 1B 78 */ mr r30, r3
/* 8029F268 7C 9F 23 78 */ mr r31, r4
/* 8029F26C 88 03 02 DD */ lbz r0, 0x2dd(r3)
/* 8029F270 28 00 00 02 */ cmplwi r0, 2
/* 8029F274 40 82 00 0C */ bne lbl_8029F280
/* 8029F278 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F27C 4B FF 23 59 */ bl init__8JASTrackFv
lbl_8029F280:
/* 8029F280 80 1E 00 18 */ lwz r0, 0x18(r30)
/* 8029F284 28 00 00 00 */ cmplwi r0, 0
/* 8029F288 41 82 00 14 */ beq lbl_8029F29C
/* 8029F28C 38 7E 00 10 */ addi r3, r30, 0x10
/* 8029F290 38 9E 00 C8 */ addi r4, r30, 0xc8
/* 8029F294 48 00 37 49 */ bl initTrack_JAISound___8JAISoundFP8JASTrack
/* 8029F298 48 00 00 34 */ b lbl_8029F2CC
lbl_8029F29C:
/* 8029F29C 38 7E 00 4C */ addi r3, r30, 0x4c
/* 8029F2A0 7F E4 FB 78 */ mr r4, r31
/* 8029F2A4 38 BE 00 B4 */ addi r5, r30, 0xb4
/* 8029F2A8 C0 3E 00 34 */ lfs f1, 0x34(r30)
/* 8029F2AC 48 00 2F D5 */ bl mixOutAll__14JAISoundParamsFRC14JASSoundParamsP14JASSoundParamsf
/* 8029F2B0 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F2B4 38 80 00 01 */ li r4, 1
/* 8029F2B8 4B FF 21 8D */ bl setChannelMgrCount__8JASTrackFUl
/* 8029F2BC 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F2C0 38 80 00 00 */ li r4, 0
/* 8029F2C4 38 BE 00 B4 */ addi r5, r30, 0xb4
/* 8029F2C8 4B FF 27 2D */ bl assignExtBuffer__8JASTrackFUlP14JASSoundParams
lbl_8029F2CC:
/* 8029F2CC 38 00 00 01 */ li r0, 1
/* 8029F2D0 98 1E 03 18 */ stb r0, 0x318(r30)
/* 8029F2D4 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F2D8 80 9E 03 10 */ lwz r4, 0x310(r30)
/* 8029F2DC 80 BE 03 14 */ lwz r5, 0x314(r30)
/* 8029F2E0 4B FF 27 29 */ bl setSeqData__8JASTrackFPvUl
/* 8029F2E4 38 7E 00 C8 */ addi r3, r30, 0xc8
/* 8029F2E8 4B FF 27 41 */ bl startSeq__8JASTrackFv
/* 8029F2EC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029F2F0 83 C1 00 08 */ lwz r30, 8(r1)
/* 8029F2F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029F2F8 7C 08 03 A6 */ mtlr r0
/* 8029F2FC 38 21 00 10 */ addi r1, r1, 0x10
/* 8029F300 4E 80 00 20 */ blr
@@ -1,18 +0,0 @@
lbl_8029F214:
/* 8029F214 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8029F218 7C 08 02 A6 */ mflr r0
/* 8029F21C 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029F220 88 03 02 DD */ lbz r0, 0x2dd(r3)
/* 8029F224 2C 00 00 01 */ cmpwi r0, 1
/* 8029F228 41 82 00 10 */ beq lbl_8029F238
/* 8029F22C 40 80 00 14 */ bge lbl_8029F240
/* 8029F230 48 00 00 10 */ b lbl_8029F240
/* 8029F234 48 00 00 0C */ b lbl_8029F240
lbl_8029F238:
/* 8029F238 38 63 00 C8 */ addi r3, r3, 0xc8
/* 8029F23C 4B FF 28 3D */ bl stopSeq__8JASTrackFv
lbl_8029F240:
/* 8029F240 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8029F244 7C 08 03 A6 */ mtlr r0
/* 8029F248 38 21 00 10 */ addi r1, r1, 0x10
/* 8029F24C 4E 80 00 20 */ blr
@@ -1,13 +0,0 @@
lbl_802A22F8:
/* 802A22F8 3C 80 80 3D */ lis r4, __vt__8JAISound@ha /* 0x803C9970@ha */
/* 802A22FC 38 04 99 70 */ addi r0, r4, __vt__8JAISound@l /* 0x803C9970@l */
/* 802A2300 90 03 00 00 */ stw r0, 0(r3)
/* 802A2304 C0 02 BD BC */ lfs f0, lit_697(r2)
/* 802A2308 D0 03 00 48 */ stfs f0, 0x48(r3)
/* 802A230C D0 03 00 50 */ stfs f0, 0x50(r3)
/* 802A2310 C0 22 BD C0 */ lfs f1, lit_698(r2)
/* 802A2314 D0 23 00 4C */ stfs f1, 0x4c(r3)
/* 802A2318 C0 02 BD B8 */ lfs f0, lit_659(r2)
/* 802A231C D0 03 00 54 */ stfs f0, 0x54(r3)
/* 802A2320 D0 23 00 58 */ stfs f1, 0x58(r3)
/* 802A2324 4E 80 00 20 */ blr
@@ -1,33 +0,0 @@
lbl_802A25F0:
/* 802A25F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A25F4 7C 08 02 A6 */ mflr r0
/* 802A25F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A25FC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802A2600 7C 7F 1B 78 */ mr r31, r3
/* 802A2604 80 83 00 08 */ lwz r4, 8(r3)
/* 802A2608 28 04 00 00 */ cmplwi r4, 0
/* 802A260C 41 82 00 24 */ beq lbl_802A2630
/* 802A2610 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 802A2614 81 83 00 00 */ lwz r12, 0(r3)
/* 802A2618 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 802A261C 7D 89 03 A6 */ mtctr r12
/* 802A2620 4E 80 04 21 */ bctrl
/* 802A2624 38 00 00 00 */ li r0, 0
/* 802A2628 90 1F 00 08 */ stw r0, 8(r31)
/* 802A262C 90 1F 00 0C */ stw r0, 0xc(r31)
lbl_802A2630:
/* 802A2630 C0 02 BD C0 */ lfs f0, lit_698(r2)
/* 802A2634 D0 1F 00 24 */ stfs f0, 0x24(r31)
/* 802A2638 D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802A263C 38 00 00 00 */ li r0, 0
/* 802A2640 90 1F 00 30 */ stw r0, 0x30(r31)
/* 802A2644 D0 1F 00 2C */ stfs f0, 0x2c(r31)
/* 802A2648 7F E3 FB 78 */ mr r3, r31
/* 802A264C 4B FF FB 55 */ bl releaseHandle__8JAISoundFv
/* 802A2650 38 00 00 06 */ li r0, 6
/* 802A2654 98 1F 00 1E */ stb r0, 0x1e(r31)
/* 802A2658 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802A265C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A2660 7C 08 03 A6 */ mtlr r0
/* 802A2664 38 21 00 10 */ addi r1, r1, 0x10
/* 802A2668 4E 80 00 20 */ blr
@@ -1,76 +0,0 @@
lbl_802A2328:
/* 802A2328 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802A232C 7C 08 02 A6 */ mflr r0
/* 802A2330 90 01 00 24 */ stw r0, 0x24(r1)
/* 802A2334 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802A2338 7C 7F 1B 78 */ mr r31, r3
/* 802A233C 38 60 00 00 */ li r3, 0
/* 802A2340 90 7F 00 04 */ stw r3, 4(r31)
/* 802A2344 80 04 00 00 */ lwz r0, 0(r4)
/* 802A2348 90 1F 00 18 */ stw r0, 0x18(r31)
/* 802A234C 98 7F 00 1C */ stb r3, 0x1c(r31)
/* 802A2350 98 7F 00 1D */ stb r3, 0x1d(r31)
/* 802A2354 B0 7F 00 1E */ sth r3, 0x1e(r31)
/* 802A2358 90 7F 00 20 */ stw r3, 0x20(r31)
/* 802A235C C0 42 BD BC */ lfs f2, lit_697(r2)
/* 802A2360 D0 5F 00 48 */ stfs f2, 0x48(r31)
/* 802A2364 D0 5F 00 50 */ stfs f2, 0x50(r31)
/* 802A2368 C0 22 BD C0 */ lfs f1, lit_698(r2)
/* 802A236C D0 3F 00 4C */ stfs f1, 0x4c(r31)
/* 802A2370 C0 02 BD B8 */ lfs f0, lit_659(r2)
/* 802A2374 D0 1F 00 54 */ stfs f0, 0x54(r31)
/* 802A2378 D0 3F 00 58 */ stfs f1, 0x58(r31)
/* 802A237C D0 3F 00 5C */ stfs f1, 0x5c(r31)
/* 802A2380 90 7F 00 64 */ stw r3, 0x64(r31)
/* 802A2384 D0 3F 00 60 */ stfs f1, 0x60(r31)
/* 802A2388 D0 3F 00 68 */ stfs f1, 0x68(r31)
/* 802A238C 90 7F 00 70 */ stw r3, 0x70(r31)
/* 802A2390 D0 3F 00 6C */ stfs f1, 0x6c(r31)
/* 802A2394 D0 3F 00 74 */ stfs f1, 0x74(r31)
/* 802A2398 90 7F 00 7C */ stw r3, 0x7c(r31)
/* 802A239C D0 3F 00 78 */ stfs f1, 0x78(r31)
/* 802A23A0 D0 3F 00 80 */ stfs f1, 0x80(r31)
/* 802A23A4 90 7F 00 88 */ stw r3, 0x88(r31)
/* 802A23A8 D0 3F 00 84 */ stfs f1, 0x84(r31)
/* 802A23AC D0 3F 00 8C */ stfs f1, 0x8c(r31)
/* 802A23B0 90 7F 00 94 */ stw r3, 0x94(r31)
/* 802A23B4 D0 3F 00 90 */ stfs f1, 0x90(r31)
/* 802A23B8 D0 5F 00 3C */ stfs f2, 0x3c(r31)
/* 802A23BC D0 3F 00 40 */ stfs f1, 0x40(r31)
/* 802A23C0 D0 5F 00 44 */ stfs f2, 0x44(r31)
/* 802A23C4 D0 5F 00 24 */ stfs f2, 0x24(r31)
/* 802A23C8 D0 3F 00 28 */ stfs f1, 0x28(r31)
/* 802A23CC 90 7F 00 30 */ stw r3, 0x30(r31)
/* 802A23D0 D0 3F 00 2C */ stfs f1, 0x2c(r31)
/* 802A23D4 90 DF 00 0C */ stw r6, 0xc(r31)
/* 802A23D8 90 7F 00 14 */ stw r3, 0x14(r31)
/* 802A23DC 90 7F 00 38 */ stw r3, 0x38(r31)
/* 802A23E0 28 05 00 00 */ cmplwi r5, 0
/* 802A23E4 41 82 00 44 */ beq lbl_802A2428
/* 802A23E8 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 802A23EC 28 00 00 00 */ cmplwi r0, 0
/* 802A23F0 41 82 00 38 */ beq lbl_802A2428
/* 802A23F4 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 802A23F8 90 01 00 08 */ stw r0, 8(r1)
/* 802A23FC 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 802A2400 7C A4 2B 78 */ mr r4, r5
/* 802A2404 38 A1 00 08 */ addi r5, r1, 8
/* 802A2408 38 C0 00 00 */ li r6, 0
/* 802A240C 38 E0 00 00 */ li r7, 0
/* 802A2410 81 83 00 00 */ lwz r12, 0(r3)
/* 802A2414 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802A2418 7D 89 03 A6 */ mtctr r12
/* 802A241C 4E 80 04 21 */ bctrl
/* 802A2420 90 7F 00 08 */ stw r3, 8(r31)
/* 802A2424 48 00 00 0C */ b lbl_802A2430
lbl_802A2428:
/* 802A2428 38 00 00 00 */ li r0, 0
/* 802A242C 90 1F 00 08 */ stw r0, 8(r31)
lbl_802A2430:
/* 802A2430 38 00 00 00 */ li r0, 0
/* 802A2434 90 1F 00 34 */ stw r0, 0x34(r31)
/* 802A2438 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802A243C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802A2440 7C 08 03 A6 */ mtlr r0
/* 802A2444 38 21 00 20 */ addi r1, r1, 0x20
/* 802A2448 4E 80 00 20 */ blr
@@ -1,52 +0,0 @@
lbl_802A24DC:
/* 802A24DC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802A24E0 7C 08 02 A6 */ mflr r0
/* 802A24E4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802A24E8 28 04 00 00 */ cmplwi r4, 0
/* 802A24EC 40 82 00 0C */ bne lbl_802A24F8
/* 802A24F0 48 00 00 A9 */ bl stop__8JAISoundFv
/* 802A24F4 48 00 00 94 */ b lbl_802A2588
lbl_802A24F8:
/* 802A24F8 41 82 00 40 */ beq lbl_802A2538
/* 802A24FC C0 03 00 24 */ lfs f0, 0x24(r3)
/* 802A2500 90 83 00 30 */ stw r4, 0x30(r3)
/* 802A2504 C0 62 BD C0 */ lfs f3, lit_698(r2)
/* 802A2508 EC 43 00 28 */ fsubs f2, f3, f0
/* 802A250C 80 03 00 30 */ lwz r0, 0x30(r3)
/* 802A2510 C8 22 BD C8 */ lfd f1, lit_766(r2)
/* 802A2514 90 01 00 0C */ stw r0, 0xc(r1)
/* 802A2518 3C 00 43 30 */ lis r0, 0x4330
/* 802A251C 90 01 00 08 */ stw r0, 8(r1)
/* 802A2520 C8 01 00 08 */ lfd f0, 8(r1)
/* 802A2524 EC 00 08 28 */ fsubs f0, f0, f1
/* 802A2528 EC 02 00 24 */ fdivs f0, f2, f0
/* 802A252C D0 03 00 28 */ stfs f0, 0x28(r3)
/* 802A2530 D0 63 00 2C */ stfs f3, 0x2c(r3)
/* 802A2534 48 00 00 1C */ b lbl_802A2550
lbl_802A2538:
/* 802A2538 C0 02 BD C0 */ lfs f0, lit_698(r2)
/* 802A253C D0 03 00 24 */ stfs f0, 0x24(r3)
/* 802A2540 D0 03 00 28 */ stfs f0, 0x28(r3)
/* 802A2544 38 00 00 00 */ li r0, 0
/* 802A2548 90 03 00 30 */ stw r0, 0x30(r3)
/* 802A254C D0 03 00 2C */ stfs f0, 0x2c(r3)
lbl_802A2550:
/* 802A2550 38 80 00 00 */ li r4, 0
/* 802A2554 88 03 00 1D */ lbz r0, 0x1d(r3)
/* 802A2558 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 802A255C 98 03 00 1D */ stb r0, 0x1d(r3)
/* 802A2560 88 03 00 1D */ lbz r0, 0x1d(r3)
/* 802A2564 50 80 36 72 */ rlwimi r0, r4, 6, 0x19, 0x19
/* 802A2568 98 03 00 1D */ stb r0, 0x1d(r3)
/* 802A256C 38 80 00 01 */ li r4, 1
/* 802A2570 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802A2574 50 80 1F 38 */ rlwimi r0, r4, 3, 0x1c, 0x1c
/* 802A2578 98 03 00 1F */ stb r0, 0x1f(r3)
/* 802A257C 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802A2580 50 80 3E 30 */ rlwimi r0, r4, 7, 0x18, 0x18
/* 802A2584 98 03 00 1F */ stb r0, 0x1f(r3)
lbl_802A2588:
/* 802A2588 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802A258C 7C 08 03 A6 */ mtlr r0
/* 802A2590 38 21 00 10 */ addi r1, r1, 0x10
/* 802A2594 4E 80 00 20 */ blr
@@ -1,27 +0,0 @@
lbl_80298014:
/* 80298014 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80298018 7C 08 02 A6 */ mflr r0
/* 8029801C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80298020 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80298024 7C 7F 1B 78 */ mr r31, r3
/* 80298028 3C 60 80 3C */ lis r3, __vt__7JASInst@ha /* 0x803C76FC@ha */
/* 8029802C 38 03 76 FC */ addi r0, r3, __vt__7JASInst@l /* 0x803C76FC@l */
/* 80298030 90 1F 00 00 */ stw r0, 0(r31)
/* 80298034 3C 60 80 3C */ lis r3, __vt__12JASBasicInst@ha /* 0x803C76E8@ha */
/* 80298038 38 03 76 E8 */ addi r0, r3, __vt__12JASBasicInst@l /* 0x803C76E8@l */
/* 8029803C 90 1F 00 00 */ stw r0, 0(r31)
/* 80298040 C0 02 BC 40 */ lfs f0, lit_187(r2)
/* 80298044 D0 1F 00 04 */ stfs f0, 4(r31)
/* 80298048 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8029804C 38 00 00 00 */ li r0, 0
/* 80298050 90 1F 00 14 */ stw r0, 0x14(r31)
/* 80298054 90 1F 00 18 */ stw r0, 0x18(r31)
/* 80298058 38 7F 00 0C */ addi r3, r31, 0xc
/* 8029805C 38 80 00 08 */ li r4, 8
/* 80298060 4B FF 74 21 */ bl bzero__7JASCalcFPvUl
/* 80298064 7F E3 FB 78 */ mr r3, r31
/* 80298068 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029806C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80298070 7C 08 03 A6 */ mtlr r0
/* 80298074 38 21 00 10 */ addi r1, r1, 0x10
/* 80298078 4E 80 00 20 */ blr
@@ -1,4 +0,0 @@
lbl_802982D4:
/* 802982D4 38 00 FF FF */ li r0, -1
/* 802982D8 90 03 00 00 */ stw r0, 0(r3)
/* 802982DC 4E 80 00 20 */ blr
@@ -1,34 +0,0 @@
lbl_8029807C:
/* 8029807C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80298080 7C 08 02 A6 */ mflr r0
/* 80298084 90 01 00 14 */ stw r0, 0x14(r1)
/* 80298088 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8029808C 93 C1 00 08 */ stw r30, 8(r1)
/* 80298090 7C 7E 1B 79 */ or. r30, r3, r3
/* 80298094 7C 9F 23 78 */ mr r31, r4
/* 80298098 41 82 00 44 */ beq lbl_802980DC
/* 8029809C 3C 60 80 3C */ lis r3, __vt__12JASBasicInst@ha /* 0x803C76E8@ha */
/* 802980A0 38 03 76 E8 */ addi r0, r3, __vt__12JASBasicInst@l /* 0x803C76E8@l */
/* 802980A4 90 1E 00 00 */ stw r0, 0(r30)
/* 802980A8 80 7E 00 18 */ lwz r3, 0x18(r30)
/* 802980AC 3C 80 80 2A */ lis r4, __dt__Q212JASBasicInst7TKeymapFv@ha /* 0x80298250@ha */
/* 802980B0 38 84 82 50 */ addi r4, r4, __dt__Q212JASBasicInst7TKeymapFv@l /* 0x80298250@l */
/* 802980B4 48 0C 9B B9 */ bl __destroy_new_array
/* 802980B8 28 1E 00 00 */ cmplwi r30, 0
/* 802980BC 41 82 00 10 */ beq lbl_802980CC
/* 802980C0 3C 60 80 3C */ lis r3, __vt__7JASInst@ha /* 0x803C76FC@ha */
/* 802980C4 38 03 76 FC */ addi r0, r3, __vt__7JASInst@l /* 0x803C76FC@l */
/* 802980C8 90 1E 00 00 */ stw r0, 0(r30)
lbl_802980CC:
/* 802980CC 7F E0 07 35 */ extsh. r0, r31
/* 802980D0 40 81 00 0C */ ble lbl_802980DC
/* 802980D4 7F C3 F3 78 */ mr r3, r30
/* 802980D8 48 03 6C 65 */ bl __dl__FPv
lbl_802980DC:
/* 802980DC 7F C3 F3 78 */ mr r3, r30
/* 802980E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802980E4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802980E8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802980EC 7C 08 03 A6 */ mtlr r0
/* 802980F0 38 21 00 10 */ addi r1, r1, 0x10
/* 802980F4 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
lbl_80298250:
/* 80298250 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80298254 7C 08 02 A6 */ mflr r0
/* 80298258 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029825C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80298260 7C 7F 1B 79 */ or. r31, r3, r3
/* 80298264 41 82 00 10 */ beq lbl_80298274
/* 80298268 7C 80 07 35 */ extsh. r0, r4
/* 8029826C 40 81 00 08 */ ble lbl_80298274
/* 80298270 48 03 6A CD */ bl __dl__FPv
lbl_80298274:
/* 80298274 7F E3 FB 78 */ mr r3, r31
/* 80298278 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8029827C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80298280 7C 08 03 A6 */ mtlr r0
/* 80298284 38 21 00 10 */ addi r1, r1, 0x10
/* 80298288 4E 80 00 20 */ blr
@@ -1,11 +0,0 @@
lbl_8029822C:
/* 8029822C 80 03 00 14 */ lwz r0, 0x14(r3)
/* 80298230 7C 04 00 40 */ cmplw r4, r0
/* 80298234 41 80 00 0C */ blt lbl_80298240
/* 80298238 38 60 00 00 */ li r3, 0
/* 8029823C 4E 80 00 20 */ blr
lbl_80298240:
/* 80298240 80 63 00 18 */ lwz r3, 0x18(r3)
/* 80298244 54 80 20 36 */ slwi r0, r4, 4
/* 80298248 7C 63 02 14 */ add r3, r3, r0
/* 8029824C 4E 80 00 20 */ blr
@@ -1,46 +0,0 @@
lbl_802980F8:
/* 802980F8 38 A0 00 00 */ li r5, 0
/* 802980FC 98 A6 00 1C */ stb r5, 0x1c(r6)
/* 80298100 98 A6 00 1E */ stb r5, 0x1e(r6)
/* 80298104 38 03 00 0C */ addi r0, r3, 0xc
/* 80298108 90 06 00 14 */ stw r0, 0x14(r6)
/* 8029810C 38 00 00 02 */ li r0, 2
/* 80298110 98 06 00 1D */ stb r0, 0x1d(r6)
/* 80298114 C0 03 00 04 */ lfs f0, 4(r3)
/* 80298118 D0 06 00 00 */ stfs f0, 0(r6)
/* 8029811C C0 03 00 08 */ lfs f0, 8(r3)
/* 80298120 D0 06 00 08 */ stfs f0, 8(r6)
/* 80298124 39 00 00 00 */ li r8, 0
/* 80298128 80 03 00 14 */ lwz r0, 0x14(r3)
/* 8029812C 80 63 00 18 */ lwz r3, 0x18(r3)
/* 80298130 7C 09 03 A6 */ mtctr r0
/* 80298134 28 00 00 00 */ cmplwi r0, 0
/* 80298138 40 81 00 24 */ ble lbl_8029815C
lbl_8029813C:
/* 8029813C 7C E3 2A 14 */ add r7, r3, r5
/* 80298140 80 07 00 00 */ lwz r0, 0(r7)
/* 80298144 7C 04 00 00 */ cmpw r4, r0
/* 80298148 41 81 00 0C */ bgt lbl_80298154
/* 8029814C 7C E8 3B 78 */ mr r8, r7
/* 80298150 48 00 00 0C */ b lbl_8029815C
lbl_80298154:
/* 80298154 38 A5 00 10 */ addi r5, r5, 0x10
/* 80298158 42 00 FF E4 */ bdnz lbl_8029813C
lbl_8029815C:
/* 8029815C 28 08 00 00 */ cmplwi r8, 0
/* 80298160 40 82 00 0C */ bne lbl_8029816C
/* 80298164 38 60 00 00 */ li r3, 0
/* 80298168 4E 80 00 20 */ blr
lbl_8029816C:
/* 8029816C C0 26 00 00 */ lfs f1, 0(r6)
/* 80298170 C0 08 00 08 */ lfs f0, 8(r8)
/* 80298174 EC 01 00 32 */ fmuls f0, f1, f0
/* 80298178 D0 06 00 00 */ stfs f0, 0(r6)
/* 8029817C C0 26 00 08 */ lfs f1, 8(r6)
/* 80298180 C0 08 00 0C */ lfs f0, 0xc(r8)
/* 80298184 EC 01 00 32 */ fmuls f0, f1, f0
/* 80298188 D0 06 00 08 */ stfs f0, 8(r6)
/* 8029818C A0 08 00 04 */ lhz r0, 4(r8)
/* 80298190 B0 06 00 1A */ sth r0, 0x1a(r6)
/* 80298194 38 60 00 01 */ li r3, 1
/* 80298198 4E 80 00 20 */ blr
@@ -1,4 +0,0 @@
lbl_802982E0:
/* 802982E0 3C 60 42 53 */ lis r3, 0x4253 /* 0x42534943@ha */
/* 802982E4 38 63 49 43 */ addi r3, r3, 0x4943 /* 0x42534943@l */
/* 802982E8 4E 80 00 20 */ blr
@@ -1,33 +0,0 @@
lbl_8029819C:
/* 8029819C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802981A0 7C 08 02 A6 */ mflr r0
/* 802981A4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802981A8 39 61 00 20 */ addi r11, r1, 0x20
/* 802981AC 48 0C A0 31 */ bl _savegpr_29
/* 802981B0 7C 7D 1B 78 */ mr r29, r3
/* 802981B4 7C 9E 23 78 */ mr r30, r4
/* 802981B8 7C BF 2B 78 */ mr r31, r5
/* 802981BC 80 63 00 18 */ lwz r3, 0x18(r3)
/* 802981C0 3C 80 80 2A */ lis r4, __dt__Q212JASBasicInst7TKeymapFv@ha /* 0x80298250@ha */
/* 802981C4 38 84 82 50 */ addi r4, r4, __dt__Q212JASBasicInst7TKeymapFv@l /* 0x80298250@l */
/* 802981C8 48 0C 9A A5 */ bl __destroy_new_array
/* 802981CC 57 C3 20 36 */ slwi r3, r30, 4
/* 802981D0 38 63 00 10 */ addi r3, r3, 0x10
/* 802981D4 7F E4 FB 78 */ mr r4, r31
/* 802981D8 38 A0 00 00 */ li r5, 0
/* 802981DC 48 03 6B 35 */ bl __nwa__FUlP7JKRHeapi
/* 802981E0 3C 80 80 2A */ lis r4, __ct__Q212JASBasicInst7TKeymapFv@ha /* 0x802982D4@ha */
/* 802981E4 38 84 82 D4 */ addi r4, r4, __ct__Q212JASBasicInst7TKeymapFv@l /* 0x802982D4@l */
/* 802981E8 3C A0 80 2A */ lis r5, __dt__Q212JASBasicInst7TKeymapFv@ha /* 0x80298250@ha */
/* 802981EC 38 A5 82 50 */ addi r5, r5, __dt__Q212JASBasicInst7TKeymapFv@l /* 0x80298250@l */
/* 802981F0 38 C0 00 10 */ li r6, 0x10
/* 802981F4 7F C7 F3 78 */ mr r7, r30
/* 802981F8 48 0C 9D 1D */ bl __construct_new_array
/* 802981FC 90 7D 00 18 */ stw r3, 0x18(r29)
/* 80298200 93 DD 00 14 */ stw r30, 0x14(r29)
/* 80298204 39 61 00 20 */ addi r11, r1, 0x20
/* 80298208 48 0C A0 21 */ bl _restgpr_29
/* 8029820C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80298210 7C 08 03 A6 */ mtlr r0
/* 80298214 38 21 00 20 */ addi r1, r1, 0x20
/* 80298218 4E 80 00 20 */ blr
@@ -1,5 +0,0 @@
lbl_8029821C:
/* 8029821C 54 80 10 3A */ slwi r0, r4, 2
/* 80298220 7C 63 02 14 */ add r3, r3, r0
/* 80298224 90 A3 00 0C */ stw r5, 0xc(r3)
/* 80298228 4E 80 00 20 */ blr
@@ -1,11 +0,0 @@
lbl_802982EC:
/* 802982EC 3C 80 80 3C */ lis r4, __vt__7JASInst@ha /* 0x803C76FC@ha */
/* 802982F0 38 04 76 FC */ addi r0, r4, __vt__7JASInst@l /* 0x803C76FC@l */
/* 802982F4 90 03 00 00 */ stw r0, 0(r3)
/* 802982F8 3C 80 80 3C */ lis r4, __vt__10JASDrumSet@ha /* 0x803C7710@ha */
/* 802982FC 38 04 77 10 */ addi r0, r4, __vt__10JASDrumSet@l /* 0x803C7710@l */
/* 80298300 90 03 00 00 */ stw r0, 0(r3)
/* 80298304 38 00 00 00 */ li r0, 0
/* 80298308 90 03 00 04 */ stw r0, 4(r3)
/* 8029830C 98 03 00 08 */ stb r0, 8(r3)
/* 80298310 4E 80 00 20 */ blr
@@ -1,9 +0,0 @@
lbl_802984C4:
/* 802984C4 C0 02 BC 48 */ lfs f0, lit_219(r2)
/* 802984C8 D0 03 00 00 */ stfs f0, 0(r3)
/* 802984CC D0 03 00 04 */ stfs f0, 4(r3)
/* 802984D0 C0 02 BC 50 */ lfs f0, lit_253(r2)
/* 802984D4 D0 03 00 08 */ stfs f0, 8(r3)
/* 802984D8 38 00 03 E8 */ li r0, 0x3e8
/* 802984DC B0 03 00 0C */ sth r0, 0xc(r3)
/* 802984E0 4E 80 00 20 */ blr
@@ -1,26 +0,0 @@
lbl_80298314:
/* 80298314 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80298318 7C 08 02 A6 */ mflr r0
/* 8029831C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80298320 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80298324 7C 7F 1B 79 */ or. r31, r3, r3
/* 80298328 41 82 00 30 */ beq lbl_80298358
/* 8029832C 3C 60 80 3C */ lis r3, __vt__10JASDrumSet@ha /* 0x803C7710@ha */
/* 80298330 38 03 77 10 */ addi r0, r3, __vt__10JASDrumSet@l /* 0x803C7710@l */
/* 80298334 90 1F 00 00 */ stw r0, 0(r31)
/* 80298338 41 82 00 10 */ beq lbl_80298348
/* 8029833C 3C 60 80 3C */ lis r3, __vt__7JASInst@ha /* 0x803C76FC@ha */
/* 80298340 38 03 76 FC */ addi r0, r3, __vt__7JASInst@l /* 0x803C76FC@l */
/* 80298344 90 1F 00 00 */ stw r0, 0(r31)
lbl_80298348:
/* 80298348 7C 80 07 35 */ extsh. r0, r4
/* 8029834C 40 81 00 0C */ ble lbl_80298358
/* 80298350 7F E3 FB 78 */ mr r3, r31
/* 80298354 48 03 69 E9 */ bl __dl__FPv
lbl_80298358:
/* 80298358 7F E3 FB 78 */ mr r3, r31
/* 8029835C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80298360 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80298364 7C 08 03 A6 */ mtlr r0
/* 80298368 38 21 00 10 */ addi r1, r1, 0x10
/* 8029836C 4E 80 00 20 */ blr
@@ -1,63 +0,0 @@
lbl_802983CC:
/* 802983CC 80 A3 00 04 */ lwz r5, 4(r3)
/* 802983D0 28 05 00 00 */ cmplwi r5, 0
/* 802983D4 40 82 00 0C */ bne lbl_802983E0
/* 802983D8 38 60 00 00 */ li r3, 0
/* 802983DC 4E 80 00 20 */ blr
lbl_802983E0:
/* 802983E0 88 03 00 08 */ lbz r0, 8(r3)
/* 802983E4 7C 04 00 00 */ cmpw r4, r0
/* 802983E8 41 80 00 0C */ blt lbl_802983F4
/* 802983EC 38 60 00 00 */ li r3, 0
/* 802983F0 4E 80 00 20 */ blr
lbl_802983F4:
/* 802983F4 54 80 10 3A */ slwi r0, r4, 2
/* 802983F8 7C E5 00 2E */ lwzx r7, r5, r0
/* 802983FC 28 07 00 00 */ cmplwi r7, 0
/* 80298400 40 82 00 0C */ bne lbl_8029840C
/* 80298404 38 60 00 00 */ li r3, 0
/* 80298408 4E 80 00 20 */ blr
lbl_8029840C:
/* 8029840C 38 A0 00 00 */ li r5, 0
/* 80298410 98 A6 00 1C */ stb r5, 0x1c(r6)
/* 80298414 38 80 00 01 */ li r4, 1
/* 80298418 98 86 00 1E */ stb r4, 0x1e(r6)
/* 8029841C C0 07 00 00 */ lfs f0, 0(r7)
/* 80298420 D0 06 00 00 */ stfs f0, 0(r6)
/* 80298424 C0 07 00 04 */ lfs f0, 4(r7)
/* 80298428 D0 06 00 08 */ stfs f0, 8(r6)
/* 8029842C C0 07 00 08 */ lfs f0, 8(r7)
/* 80298430 D0 06 00 0C */ stfs f0, 0xc(r6)
/* 80298434 A0 07 00 0C */ lhz r0, 0xc(r7)
/* 80298438 B0 06 00 18 */ sth r0, 0x18(r6)
/* 8029843C 3C 60 80 43 */ lis r3, osc@ha /* 0x80431B58@ha */
/* 80298440 94 A3 1B 58 */ stwu r5, osc@l(r3) /* 0x80431B58@l */
/* 80298444 C0 02 BC 48 */ lfs f0, lit_219(r2)
/* 80298448 D0 03 00 04 */ stfs f0, 4(r3)
/* 8029844C 90 A3 00 08 */ stw r5, 8(r3)
/* 80298450 90 A3 00 0C */ stw r5, 0xc(r3)
/* 80298454 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 80298458 C0 02 BC 4C */ lfs f0, lit_220(r2)
/* 8029845C D0 03 00 14 */ stfs f0, 0x14(r3)
/* 80298460 88 0D 8C F4 */ lbz r0, data_80451274(r13)
/* 80298464 7C 00 07 75 */ extsb. r0, r0
/* 80298468 40 82 00 0C */ bne lbl_80298474
/* 8029846C 90 6D 8C F0 */ stw r3, oscp(r13)
/* 80298470 98 8D 8C F4 */ stb r4, data_80451274(r13)
lbl_80298474:
/* 80298474 38 0D 8C F0 */ la r0, oscp(r13) /* 80451270-_SDA_BASE_ */
/* 80298478 90 06 00 14 */ stw r0, 0x14(r6)
/* 8029847C 38 00 00 01 */ li r0, 1
/* 80298480 98 06 00 1D */ stb r0, 0x1d(r6)
/* 80298484 C0 26 00 00 */ lfs f1, 0(r6)
/* 80298488 C0 07 00 10 */ lfs f0, 0x10(r7)
/* 8029848C EC 01 00 32 */ fmuls f0, f1, f0
/* 80298490 D0 06 00 00 */ stfs f0, 0(r6)
/* 80298494 C0 26 00 08 */ lfs f1, 8(r6)
/* 80298498 C0 07 00 14 */ lfs f0, 0x14(r7)
/* 8029849C EC 01 00 32 */ fmuls f0, f1, f0
/* 802984A0 D0 06 00 08 */ stfs f0, 8(r6)
/* 802984A4 A0 07 00 0E */ lhz r0, 0xe(r7)
/* 802984A8 B0 06 00 1A */ sth r0, 0x1a(r6)
/* 802984AC 38 60 00 01 */ li r3, 1
/* 802984B0 4E 80 00 20 */ blr
@@ -1,4 +0,0 @@
lbl_802984EC:
/* 802984EC 3C 60 50 45 */ lis r3, 0x5045 /* 0x50455243@ha */
/* 802984F0 38 63 52 43 */ addi r3, r3, 0x5243 /* 0x50455243@l */
/* 802984F4 4E 80 00 20 */ blr
@@ -1,25 +0,0 @@
lbl_80298370:
/* 80298370 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80298374 7C 08 02 A6 */ mflr r0
/* 80298378 90 01 00 14 */ stw r0, 0x14(r1)
/* 8029837C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80298380 7C 7F 1B 78 */ mr r31, r3
/* 80298384 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80298388 41 82 00 30 */ beq lbl_802983B8
/* 8029838C 98 9F 00 08 */ stb r4, 8(r31)
/* 80298390 88 1F 00 08 */ lbz r0, 8(r31)
/* 80298394 54 03 10 3A */ slwi r3, r0, 2
/* 80298398 7C A4 2B 78 */ mr r4, r5
/* 8029839C 38 A0 00 00 */ li r5, 0
/* 802983A0 48 03 69 71 */ bl __nwa__FUlP7JKRHeapi
/* 802983A4 90 7F 00 04 */ stw r3, 4(r31)
/* 802983A8 80 7F 00 04 */ lwz r3, 4(r31)
/* 802983AC 88 1F 00 08 */ lbz r0, 8(r31)
/* 802983B0 54 04 10 3A */ slwi r4, r0, 2
/* 802983B4 4B FF 70 CD */ bl bzero__7JASCalcFPvUl
lbl_802983B8:
/* 802983B8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802983BC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802983C0 7C 08 03 A6 */ mtlr r0
/* 802983C4 38 21 00 10 */ addi r1, r1, 0x10
/* 802983C8 4E 80 00 20 */ blr
@@ -1,5 +0,0 @@
lbl_802984B4:
/* 802984B4 80 63 00 04 */ lwz r3, 4(r3)
/* 802984B8 54 80 10 3A */ slwi r0, r4, 2
/* 802984BC 7C A3 01 2E */ stwx r5, r3, r0
/* 802984C0 4E 80 00 20 */ blr
@@ -1,17 +0,0 @@
lbl_802DCA1C:
/* 802DCA1C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802DCA20 7C 08 02 A6 */ mflr r0
/* 802DCA24 90 01 00 14 */ stw r0, 0x14(r1)
/* 802DCA28 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802DCA2C 7C 7F 1B 79 */ or. r31, r3, r3
/* 802DCA30 41 82 00 10 */ beq lbl_802DCA40
/* 802DCA34 7C 80 07 35 */ extsh. r0, r4
/* 802DCA38 40 81 00 08 */ ble lbl_802DCA40
/* 802DCA3C 4B FF 23 01 */ bl __dl__FPv
lbl_802DCA40:
/* 802DCA40 7F E3 FB 78 */ mr r3, r31
/* 802DCA44 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802DCA48 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802DCA4C 7C 08 03 A6 */ mtlr r0
/* 802DCA50 38 21 00 10 */ addi r1, r1, 0x10
/* 802DCA54 4E 80 00 20 */ blr
@@ -1,19 +0,0 @@
lbl_802DCA58:
/* 802DCA58 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802DCA5C 7C 08 02 A6 */ mflr r0
/* 802DCA60 90 01 00 24 */ stw r0, 0x24(r1)
/* 802DCA64 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802DCA68 80 A5 00 00 */ lwz r5, 0(r5)
/* 802DCA6C 90 A1 00 14 */ stw r5, 0x14(r1)
/* 802DCA70 80 05 00 00 */ lwz r0, 0(r5)
/* 802DCA74 90 01 00 08 */ stw r0, 8(r1)
/* 802DCA78 90 01 00 0C */ stw r0, 0xc(r1)
/* 802DCA7C 90 A1 00 10 */ stw r5, 0x10(r1)
/* 802DCA80 38 A1 00 10 */ addi r5, r1, 0x10
/* 802DCA84 38 C1 00 0C */ addi r6, r1, 0xc
/* 802DCA88 48 00 00 19 */ bl erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorQ37JGadget13TNodeLinkList8iterator
/* 802DCA8C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802DCA90 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802DCA94 7C 08 03 A6 */ mtlr r0
/* 802DCA98 38 21 00 20 */ addi r1, r1, 0x20
/* 802DCA9C 4E 80 00 20 */ blr
@@ -1,25 +0,0 @@
lbl_802CE574:
/* 802CE574 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CE578 7C 08 02 A6 */ mflr r0
/* 802CE57C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CE580 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802CE584 7C 7F 1B 78 */ mr r31, r3
/* 802CE588 48 00 00 20 */ b lbl_802CE5A8
lbl_802CE58C:
/* 802CE58C 80 61 00 08 */ lwz r3, 8(r1)
/* 802CE590 80 63 00 00 */ lwz r3, 0(r3)
/* 802CE594 38 80 FF FF */ li r4, -1
/* 802CE598 81 83 00 00 */ lwz r12, 0(r3)
/* 802CE59C 81 8C 00 08 */ lwz r12, 8(r12)
/* 802CE5A0 7D 89 03 A6 */ mtctr r12
/* 802CE5A4 4E 80 04 21 */ bctrl
lbl_802CE5A8:
/* 802CE5A8 80 1F 00 5C */ lwz r0, 0x5c(r31)
/* 802CE5AC 90 01 00 08 */ stw r0, 8(r1)
/* 802CE5B0 28 00 00 00 */ cmplwi r0, 0
/* 802CE5B4 40 82 FF D8 */ bne lbl_802CE58C
/* 802CE5B8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802CE5BC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CE5C0 7C 08 03 A6 */ mtlr r0
/* 802CE5C4 38 21 00 20 */ addi r1, r1, 0x20
/* 802CE5C8 4E 80 00 20 */ blr
@@ -1,11 +0,0 @@
lbl_802E16F8:
/* 802E16F8 38 A0 00 80 */ li r5, 0x80
/* 802E16FC 54 80 07 7E */ clrlwi r0, r4, 0x1d
/* 802E1700 7C A5 06 30 */ sraw r5, r5, r0
/* 802E1704 7C 80 1E 70 */ srawi r0, r4, 3
/* 802E1708 7C 03 00 AE */ lbzx r0, r3, r0
/* 802E170C 7C A0 00 38 */ and r0, r5, r0
/* 802E1710 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 802E1714 30 03 FF FF */ addic r0, r3, -1
/* 802E1718 7C 60 19 10 */ subfe r3, r0, r3
/* 802E171C 4E 80 00 20 */ blr
@@ -1,37 +0,0 @@
lbl_802E18CC:
/* 802E18CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802E18D0 7C 08 02 A6 */ mflr r0
/* 802E18D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802E18D8 88 04 00 00 */ lbz r0, 0(r4)
/* 802E18DC 54 07 40 2E */ slwi r7, r0, 8
/* 802E18E0 88 04 00 01 */ lbz r0, 1(r4)
/* 802E18E4 7C 07 02 14 */ add r0, r7, r0
/* 802E18E8 90 03 00 0C */ stw r0, 0xc(r3)
/* 802E18EC 38 04 00 02 */ addi r0, r4, 2
/* 802E18F0 90 03 00 08 */ stw r0, 8(r3)
/* 802E18F4 2C 05 00 01 */ cmpwi r5, 1
/* 802E18F8 41 82 00 2C */ beq lbl_802E1924
/* 802E18FC 40 80 00 10 */ bge lbl_802E190C
/* 802E1900 2C 05 00 00 */ cmpwi r5, 0
/* 802E1904 40 80 00 14 */ bge lbl_802E1918
/* 802E1908 48 00 00 30 */ b lbl_802E1938
lbl_802E190C:
/* 802E190C 2C 05 00 03 */ cmpwi r5, 3
/* 802E1910 40 80 00 28 */ bge lbl_802E1938
/* 802E1914 48 00 00 1C */ b lbl_802E1930
lbl_802E1918:
/* 802E1918 80 83 00 0C */ lwz r4, 0xc(r3)
/* 802E191C 4B FF FF 89 */ bl triggerPatternedRumble__Q210JUTGamePad7CRumbleFUl
/* 802E1920 48 00 00 18 */ b lbl_802E1938
lbl_802E1924:
/* 802E1924 38 80 FF FF */ li r4, -1
/* 802E1928 4B FF FF 7D */ bl triggerPatternedRumble__Q210JUTGamePad7CRumbleFUl
/* 802E192C 48 00 00 0C */ b lbl_802E1938
lbl_802E1930:
/* 802E1930 7C C4 33 78 */ mr r4, r6
/* 802E1934 4B FF FF 71 */ bl triggerPatternedRumble__Q210JUTGamePad7CRumbleFUl
lbl_802E1938:
/* 802E1938 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802E193C 7C 08 03 A6 */ mtlr r0
/* 802E1940 38 21 00 10 */ addi r1, r1, 0x10
/* 802E1944 4E 80 00 20 */ blr
@@ -1,106 +0,0 @@
lbl_802E1720:
/* 802E1720 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802E1724 7C 08 02 A6 */ mflr r0
/* 802E1728 90 01 00 24 */ stw r0, 0x24(r1)
/* 802E172C 39 61 00 20 */ addi r11, r1, 0x20
/* 802E1730 48 08 0A AD */ bl _savegpr_29
/* 802E1734 7C 7E 1B 78 */ mr r30, r3
/* 802E1738 7C 9D 23 78 */ mr r29, r4
/* 802E173C 80 8D 8F 68 */ lwz r4, mEnabled__Q210JUTGamePad7CRumble(r13)
/* 802E1740 7F BF 07 34 */ extsh r31, r29
/* 802E1744 57 E0 10 3A */ slwi r0, r31, 2
/* 802E1748 3C 60 80 3D */ lis r3, sChannelMask__Q210JUTGamePad7CRumble@ha /* 0x803CC5F0@ha */
/* 802E174C 38 63 C5 F0 */ addi r3, r3, sChannelMask__Q210JUTGamePad7CRumble@l /* 0x803CC5F0@l */
/* 802E1750 7C 03 00 2E */ lwzx r0, r3, r0
/* 802E1754 7C 83 00 38 */ and r3, r4, r0
/* 802E1758 30 03 FF FF */ addic r0, r3, -1
/* 802E175C 7C 00 19 10 */ subfe r0, r0, r3
/* 802E1760 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 802E1764 40 82 00 1C */ bne lbl_802E1780
/* 802E1768 38 00 00 00 */ li r0, 0
/* 802E176C 90 1E 00 00 */ stw r0, 0(r30)
/* 802E1770 90 1E 00 04 */ stw r0, 4(r30)
/* 802E1774 90 1E 00 08 */ stw r0, 8(r30)
/* 802E1778 90 1E 00 0C */ stw r0, 0xc(r30)
/* 802E177C 90 1E 00 10 */ stw r0, 0x10(r30)
lbl_802E1780:
/* 802E1780 80 1E 00 04 */ lwz r0, 4(r30)
/* 802E1784 28 00 00 00 */ cmplwi r0, 0
/* 802E1788 41 82 01 04 */ beq lbl_802E188C
/* 802E178C 80 BE 00 00 */ lwz r5, 0(r30)
/* 802E1790 7C 05 00 40 */ cmplw r5, r0
/* 802E1794 41 80 00 1C */ blt lbl_802E17B0
/* 802E1798 7F E3 FB 78 */ mr r3, r31
/* 802E179C 38 80 00 01 */ li r4, 1
/* 802E17A0 4B FF FE ED */ bl stopMotor__Q210JUTGamePad7CRumbleFib
/* 802E17A4 38 00 00 00 */ li r0, 0
/* 802E17A8 90 1E 00 04 */ stw r0, 4(r30)
/* 802E17AC 48 00 00 D4 */ b lbl_802E1880
lbl_802E17B0:
/* 802E17B0 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 802E17B4 28 04 00 00 */ cmplwi r4, 0
/* 802E17B8 40 82 00 24 */ bne lbl_802E17DC
/* 802E17BC 7F A0 07 34 */ extsh r0, r29
/* 802E17C0 38 6D 8F 64 */ la r3, mStatus__Q210JUTGamePad7CRumble(r13) /* 804514E4-_SDA_BASE_ */
/* 802E17C4 7C 03 00 AE */ lbzx r0, r3, r0
/* 802E17C8 28 00 00 00 */ cmplwi r0, 0
/* 802E17CC 40 82 00 C0 */ bne lbl_802E188C
/* 802E17D0 7F E3 FB 78 */ mr r3, r31
/* 802E17D4 4B FF FE 61 */ bl startMotor__Q210JUTGamePad7CRumbleFi
/* 802E17D8 48 00 00 B4 */ b lbl_802E188C
lbl_802E17DC:
/* 802E17DC 80 7E 00 08 */ lwz r3, 8(r30)
/* 802E17E0 7C 05 23 96 */ divwu r0, r5, r4
/* 802E17E4 7C 00 21 D6 */ mullw r0, r0, r4
/* 802E17E8 7C 80 28 50 */ subf r4, r0, r5
/* 802E17EC 4B FF FF 0D */ bl getNumBit__FPUci
/* 802E17F0 7F A0 07 34 */ extsh r0, r29
/* 802E17F4 38 8D 8F 64 */ la r4, mStatus__Q210JUTGamePad7CRumble(r13) /* 804514E4-_SDA_BASE_ */
/* 802E17F8 7C 84 00 AE */ lbzx r4, r4, r0
/* 802E17FC 30 04 FF FF */ addic r0, r4, -1
/* 802E1800 7C 00 21 10 */ subfe r0, r0, r4
/* 802E1804 54 1D 06 3E */ clrlwi r29, r0, 0x18
/* 802E1808 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802E180C 41 82 00 18 */ beq lbl_802E1824
/* 802E1810 28 1D 00 00 */ cmplwi r29, 0
/* 802E1814 40 82 00 10 */ bne lbl_802E1824
/* 802E1818 7F E3 FB 78 */ mr r3, r31
/* 802E181C 4B FF FE 19 */ bl startMotor__Q210JUTGamePad7CRumbleFi
/* 802E1820 48 00 00 60 */ b lbl_802E1880
lbl_802E1824:
/* 802E1824 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802E1828 40 82 00 58 */ bne lbl_802E1880
/* 802E182C 38 80 00 00 */ li r4, 0
/* 802E1830 80 7E 00 10 */ lwz r3, 0x10(r30)
/* 802E1834 28 03 00 00 */ cmplwi r3, 0
/* 802E1838 41 82 00 20 */ beq lbl_802E1858
/* 802E183C 80 BE 00 00 */ lwz r5, 0(r30)
/* 802E1840 80 9E 00 0C */ lwz r4, 0xc(r30)
/* 802E1844 7C 05 23 96 */ divwu r0, r5, r4
/* 802E1848 7C 00 21 D6 */ mullw r0, r0, r4
/* 802E184C 7C 80 28 50 */ subf r4, r0, r5
/* 802E1850 4B FF FE A9 */ bl getNumBit__FPUci
/* 802E1854 7C 64 1B 78 */ mr r4, r3
lbl_802E1858:
/* 802E1858 28 1D 00 00 */ cmplwi r29, 0
/* 802E185C 41 82 00 10 */ beq lbl_802E186C
/* 802E1860 7F E3 FB 78 */ mr r3, r31
/* 802E1864 4B FF FE 29 */ bl stopMotor__Q210JUTGamePad7CRumbleFib
/* 802E1868 48 00 00 18 */ b lbl_802E1880
lbl_802E186C:
/* 802E186C 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802E1870 41 82 00 10 */ beq lbl_802E1880
/* 802E1874 7F E3 FB 78 */ mr r3, r31
/* 802E1878 38 80 00 01 */ li r4, 1
/* 802E187C 4B FF FE 11 */ bl stopMotor__Q210JUTGamePad7CRumbleFib
lbl_802E1880:
/* 802E1880 80 7E 00 00 */ lwz r3, 0(r30)
/* 802E1884 38 03 00 01 */ addi r0, r3, 1
/* 802E1888 90 1E 00 00 */ stw r0, 0(r30)
lbl_802E188C:
/* 802E188C 39 61 00 20 */ addi r11, r1, 0x20
/* 802E1890 48 08 09 99 */ bl _restgpr_29
/* 802E1894 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802E1898 7C 08 03 A6 */ mtlr r0
/* 802E189C 38 21 00 20 */ addi r1, r1, 0x20
/* 802E18A0 4E 80 00 20 */ blr
@@ -1,45 +0,0 @@
lbl_802DE078:
/* 802DE078 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802DE07C 7C 08 02 A6 */ mflr r0
/* 802DE080 90 01 00 24 */ stw r0, 0x24(r1)
/* 802DE084 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE088 48 08 41 51 */ bl _savegpr_28
/* 802DE08C 7C 7C 1B 78 */ mr r28, r3
/* 802DE090 7C 9D 23 78 */ mr r29, r4
/* 802DE094 7C BE 2B 78 */ mr r30, r5
/* 802DE098 7C DF 33 78 */ mr r31, r6
/* 802DE09C 7F A3 EB 78 */ mr r3, r29
/* 802DE0A0 7F 84 E3 78 */ mr r4, r28
/* 802DE0A4 38 A0 00 01 */ li r5, 1
/* 802DE0A8 4B FF E1 F1 */ bl read__14JSUInputStreamFPvl
/* 802DE0AC 7F A3 EB 78 */ mr r3, r29
/* 802DE0B0 38 9C 00 01 */ addi r4, r28, 1
/* 802DE0B4 38 A0 00 01 */ li r5, 1
/* 802DE0B8 4B FF E1 E1 */ bl read__14JSUInputStreamFPvl
/* 802DE0BC 7F A3 EB 78 */ mr r3, r29
/* 802DE0C0 38 9C 00 02 */ addi r4, r28, 2
/* 802DE0C4 88 BC 00 01 */ lbz r5, 1(r28)
/* 802DE0C8 4B FF E1 D1 */ bl read__14JSUInputStreamFPvl
/* 802DE0CC 88 1C 00 00 */ lbz r0, 0(r28)
/* 802DE0D0 28 00 00 02 */ cmplwi r0, 2
/* 802DE0D4 41 82 00 14 */ beq lbl_802DE0E8
/* 802DE0D8 28 00 00 03 */ cmplwi r0, 3
/* 802DE0DC 41 82 00 0C */ beq lbl_802DE0E8
/* 802DE0E0 28 00 00 04 */ cmplwi r0, 4
/* 802DE0E4 40 82 00 14 */ bne lbl_802DE0F8
lbl_802DE0E8:
/* 802DE0E8 38 80 00 00 */ li r4, 0
/* 802DE0EC 88 1C 00 01 */ lbz r0, 1(r28)
/* 802DE0F0 7C 7C 02 14 */ add r3, r28, r0
/* 802DE0F4 98 83 00 02 */ stb r4, 2(r3)
lbl_802DE0F8:
/* 802DE0F8 7F 83 E3 78 */ mr r3, r28
/* 802DE0FC 7F C4 F3 78 */ mr r4, r30
/* 802DE100 7F E5 FB 78 */ mr r5, r31
/* 802DE104 48 00 00 B9 */ bl getResource__15JUTResReferenceFUlP10JKRArchive
/* 802DE108 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE10C 48 08 41 19 */ bl _restgpr_28
/* 802DE110 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802DE114 7C 08 03 A6 */ mtlr r0
/* 802DE118 38 21 00 20 */ addi r1, r1, 0x20
/* 802DE11C 4E 80 00 20 */ blr
@@ -1,43 +0,0 @@
lbl_802DE120:
/* 802DE120 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802DE124 7C 08 02 A6 */ mflr r0
/* 802DE128 90 01 00 24 */ stw r0, 0x24(r1)
/* 802DE12C 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE130 48 08 40 AD */ bl _savegpr_29
/* 802DE134 7C 7D 1B 78 */ mr r29, r3
/* 802DE138 7C BE 2B 78 */ mr r30, r5
/* 802DE13C 7C DF 33 78 */ mr r31, r6
/* 802DE140 88 04 00 00 */ lbz r0, 0(r4)
/* 802DE144 98 03 00 00 */ stb r0, 0(r3)
/* 802DE148 88 04 00 01 */ lbz r0, 1(r4)
/* 802DE14C 98 03 00 01 */ stb r0, 1(r3)
/* 802DE150 88 A3 00 01 */ lbz r5, 1(r3)
/* 802DE154 28 05 00 00 */ cmplwi r5, 0
/* 802DE158 41 82 00 10 */ beq lbl_802DE168
/* 802DE15C 38 7D 00 02 */ addi r3, r29, 2
/* 802DE160 38 84 00 02 */ addi r4, r4, 2
/* 802DE164 4B D2 53 DD */ bl memcpy
lbl_802DE168:
/* 802DE168 88 1D 00 00 */ lbz r0, 0(r29)
/* 802DE16C 28 00 00 02 */ cmplwi r0, 2
/* 802DE170 41 82 00 14 */ beq lbl_802DE184
/* 802DE174 28 00 00 03 */ cmplwi r0, 3
/* 802DE178 41 82 00 0C */ beq lbl_802DE184
/* 802DE17C 28 00 00 04 */ cmplwi r0, 4
/* 802DE180 40 82 00 14 */ bne lbl_802DE194
lbl_802DE184:
/* 802DE184 38 80 00 00 */ li r4, 0
/* 802DE188 88 1D 00 01 */ lbz r0, 1(r29)
/* 802DE18C 7C 7D 02 14 */ add r3, r29, r0
/* 802DE190 98 83 00 02 */ stb r4, 2(r3)
lbl_802DE194:
/* 802DE194 7F A3 EB 78 */ mr r3, r29
/* 802DE198 7F C4 F3 78 */ mr r4, r30
/* 802DE19C 7F E5 FB 78 */ mr r5, r31
/* 802DE1A0 48 00 00 1D */ bl getResource__15JUTResReferenceFUlP10JKRArchive
/* 802DE1A4 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE1A8 48 08 40 81 */ bl _restgpr_29
/* 802DE1AC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802DE1B0 7C 08 03 A6 */ mtlr r0
/* 802DE1B4 38 21 00 20 */ addi r1, r1, 0x20
/* 802DE1B8 4E 80 00 20 */ blr
@@ -1,36 +0,0 @@
lbl_802DE1BC:
/* 802DE1BC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802DE1C0 7C 08 02 A6 */ mflr r0
/* 802DE1C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802DE1C8 7C 66 1B 78 */ mr r6, r3
/* 802DE1CC 38 60 00 00 */ li r3, 0
/* 802DE1D0 88 06 00 00 */ lbz r0, 0(r6)
/* 802DE1D4 2C 00 00 03 */ cmpwi r0, 3
/* 802DE1D8 41 82 00 34 */ beq lbl_802DE20C
/* 802DE1DC 40 80 00 14 */ bge lbl_802DE1F0
/* 802DE1E0 2C 00 00 01 */ cmpwi r0, 1
/* 802DE1E4 41 82 00 40 */ beq lbl_802DE224
/* 802DE1E8 40 80 00 14 */ bge lbl_802DE1FC
/* 802DE1EC 48 00 00 38 */ b lbl_802DE224
lbl_802DE1F0:
/* 802DE1F0 2C 00 00 05 */ cmpwi r0, 5
/* 802DE1F4 40 80 00 30 */ bge lbl_802DE224
/* 802DE1F8 48 00 00 24 */ b lbl_802DE21C
lbl_802DE1FC:
/* 802DE1FC 7C 83 23 78 */ mr r3, r4
/* 802DE200 38 86 00 02 */ addi r4, r6, 2
/* 802DE204 4B FF 79 35 */ bl getGlbResource__10JKRArchiveFUlPCcP10JKRArchive
/* 802DE208 48 00 00 1C */ b lbl_802DE224
lbl_802DE20C:
/* 802DE20C 38 66 00 02 */ addi r3, r6, 2
/* 802DE210 7C A4 2B 78 */ mr r4, r5
/* 802DE214 4B FF 60 5D */ bl getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader
/* 802DE218 48 00 00 0C */ b lbl_802DE224
lbl_802DE21C:
/* 802DE21C 38 66 00 02 */ addi r3, r6, 2
/* 802DE220 4B FF 60 05 */ bl getGlbResource__13JKRFileLoaderFPCc
lbl_802DE224:
/* 802DE224 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802DE228 7C 08 03 A6 */ mtlr r0
/* 802DE22C 38 21 00 10 */ addi r1, r1, 0x10
/* 802DE230 4E 80 00 20 */ blr
@@ -1,65 +0,0 @@
lbl_802DE744:
/* 802DE744 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802DE748 7C 08 02 A6 */ mflr r0
/* 802DE74C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802DE750 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802DE754 7C 7F 1B 78 */ mr r31, r3
/* 802DE758 80 63 00 20 */ lwz r3, 0x20(r3)
/* 802DE75C 88 63 00 10 */ lbz r3, 0x10(r3)
/* 802DE760 30 03 FF FF */ addic r0, r3, -1
/* 802DE764 7D 40 19 10 */ subfe r10, r0, r3
/* 802DE768 98 9F 00 3A */ stb r4, 0x3a(r31)
/* 802DE76C 80 FF 00 20 */ lwz r7, 0x20(r31)
/* 802DE770 80 67 00 1C */ lwz r3, 0x1c(r7)
/* 802DE774 28 03 00 00 */ cmplwi r3, 0
/* 802DE778 38 00 00 20 */ li r0, 0x20
/* 802DE77C 41 82 00 08 */ beq lbl_802DE784
/* 802DE780 7C 60 1B 78 */ mr r0, r3
lbl_802DE784:
/* 802DE784 7C 07 02 14 */ add r0, r7, r0
/* 802DE788 90 81 00 08 */ stw r4, 8(r1)
/* 802DE78C 7F E3 FB 78 */ mr r3, r31
/* 802DE790 7C 04 03 78 */ mr r4, r0
/* 802DE794 A0 A7 00 02 */ lhz r5, 2(r7)
/* 802DE798 A0 C7 00 04 */ lhz r6, 4(r7)
/* 802DE79C 88 E7 00 00 */ lbz r7, 0(r7)
/* 802DE7A0 89 1F 00 30 */ lbz r8, 0x30(r31)
/* 802DE7A4 89 3F 00 31 */ lbz r9, 0x31(r31)
/* 802DE7A8 48 07 F8 E5 */ bl GXInitTexObjCI
/* 802DE7AC 81 1F 00 20 */ lwz r8, 0x20(r31)
/* 802DE7B0 7F E3 FB 78 */ mr r3, r31
/* 802DE7B4 88 9F 00 32 */ lbz r4, 0x32(r31)
/* 802DE7B8 88 BF 00 33 */ lbz r5, 0x33(r31)
/* 802DE7BC A0 1F 00 34 */ lhz r0, 0x34(r31)
/* 802DE7C0 C8 62 C5 E0 */ lfd f3, lit_456(r2)
/* 802DE7C4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802DE7C8 3C C0 43 30 */ lis r6, 0x4330
/* 802DE7CC 90 C1 00 10 */ stw r6, 0x10(r1)
/* 802DE7D0 C8 01 00 10 */ lfd f0, 0x10(r1)
/* 802DE7D4 EC 00 18 28 */ fsubs f0, f0, f3
/* 802DE7D8 C0 42 C5 D8 */ lfs f2, lit_453(r2)
/* 802DE7DC EC 20 00 B2 */ fmuls f1, f0, f2
/* 802DE7E0 A0 1F 00 36 */ lhz r0, 0x36(r31)
/* 802DE7E4 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802DE7E8 90 C1 00 18 */ stw r6, 0x18(r1)
/* 802DE7EC C8 01 00 18 */ lfd f0, 0x18(r1)
/* 802DE7F0 EC 00 18 28 */ fsubs f0, f0, f3
/* 802DE7F4 EC 40 00 B2 */ fmuls f2, f0, f2
/* 802DE7F8 A8 1F 00 38 */ lha r0, 0x38(r31)
/* 802DE7FC C8 62 C5 E8 */ lfd f3, lit_459(r2)
/* 802DE800 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802DE804 90 01 00 24 */ stw r0, 0x24(r1)
/* 802DE808 90 C1 00 20 */ stw r6, 0x20(r1)
/* 802DE80C C8 01 00 20 */ lfd f0, 0x20(r1)
/* 802DE810 EC 60 18 28 */ fsubs f3, f0, f3
/* 802DE814 C0 02 C5 DC */ lfs f0, lit_454(r2)
/* 802DE818 EC 63 00 24 */ fdivs f3, f3, f0
/* 802DE81C 88 C8 00 12 */ lbz r6, 0x12(r8)
/* 802DE820 88 E8 00 11 */ lbz r7, 0x11(r8)
/* 802DE824 89 08 00 13 */ lbz r8, 0x13(r8)
/* 802DE828 48 07 F8 AD */ bl GXInitTexObjLOD
/* 802DE82C 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802DE830 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802DE834 7C 08 03 A6 */ mtlr r0
/* 802DE838 38 21 00 30 */ addi r1, r1, 0x30
/* 802DE83C 4E 80 00 20 */ blr
@@ -1,61 +0,0 @@
lbl_802DE658:
/* 802DE658 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802DE65C 7C 08 02 A6 */ mflr r0
/* 802DE660 90 01 00 34 */ stw r0, 0x34(r1)
/* 802DE664 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 802DE668 7C 7F 1B 78 */ mr r31, r3
/* 802DE66C 80 E3 00 20 */ lwz r7, 0x20(r3)
/* 802DE670 88 67 00 10 */ lbz r3, 0x10(r7)
/* 802DE674 30 03 FF FF */ addic r0, r3, -1
/* 802DE678 7D 40 19 10 */ subfe r10, r0, r3
/* 802DE67C 80 67 00 1C */ lwz r3, 0x1c(r7)
/* 802DE680 28 03 00 00 */ cmplwi r3, 0
/* 802DE684 38 00 00 20 */ li r0, 0x20
/* 802DE688 41 82 00 08 */ beq lbl_802DE690
/* 802DE68C 7C 60 1B 78 */ mr r0, r3
lbl_802DE690:
/* 802DE690 7C 87 02 14 */ add r4, r7, r0
/* 802DE694 7F E3 FB 78 */ mr r3, r31
/* 802DE698 A0 A7 00 02 */ lhz r5, 2(r7)
/* 802DE69C A0 C7 00 04 */ lhz r6, 4(r7)
/* 802DE6A0 88 E7 00 00 */ lbz r7, 0(r7)
/* 802DE6A4 89 1F 00 30 */ lbz r8, 0x30(r31)
/* 802DE6A8 89 3F 00 31 */ lbz r9, 0x31(r31)
/* 802DE6AC 48 07 F7 95 */ bl GXInitTexObj
/* 802DE6B0 81 1F 00 20 */ lwz r8, 0x20(r31)
/* 802DE6B4 7F E3 FB 78 */ mr r3, r31
/* 802DE6B8 88 9F 00 32 */ lbz r4, 0x32(r31)
/* 802DE6BC 88 BF 00 33 */ lbz r5, 0x33(r31)
/* 802DE6C0 A0 1F 00 34 */ lhz r0, 0x34(r31)
/* 802DE6C4 C8 62 C5 E0 */ lfd f3, lit_456(r2)
/* 802DE6C8 90 01 00 0C */ stw r0, 0xc(r1)
/* 802DE6CC 3C C0 43 30 */ lis r6, 0x4330
/* 802DE6D0 90 C1 00 08 */ stw r6, 8(r1)
/* 802DE6D4 C8 01 00 08 */ lfd f0, 8(r1)
/* 802DE6D8 EC 00 18 28 */ fsubs f0, f0, f3
/* 802DE6DC C0 42 C5 D8 */ lfs f2, lit_453(r2)
/* 802DE6E0 EC 20 00 B2 */ fmuls f1, f0, f2
/* 802DE6E4 A0 1F 00 36 */ lhz r0, 0x36(r31)
/* 802DE6E8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802DE6EC 90 C1 00 10 */ stw r6, 0x10(r1)
/* 802DE6F0 C8 01 00 10 */ lfd f0, 0x10(r1)
/* 802DE6F4 EC 00 18 28 */ fsubs f0, f0, f3
/* 802DE6F8 EC 40 00 B2 */ fmuls f2, f0, f2
/* 802DE6FC A8 1F 00 38 */ lha r0, 0x38(r31)
/* 802DE700 C8 62 C5 E8 */ lfd f3, lit_459(r2)
/* 802DE704 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802DE708 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802DE70C 90 C1 00 18 */ stw r6, 0x18(r1)
/* 802DE710 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 802DE714 EC 60 18 28 */ fsubs f3, f0, f3
/* 802DE718 C0 02 C5 DC */ lfs f0, lit_454(r2)
/* 802DE71C EC 63 00 24 */ fdivs f3, f3, f0
/* 802DE720 88 C8 00 12 */ lbz r6, 0x12(r8)
/* 802DE724 88 E8 00 11 */ lbz r7, 0x11(r8)
/* 802DE728 89 08 00 13 */ lbz r8, 0x13(r8)
/* 802DE72C 48 07 F9 A9 */ bl GXInitTexObjLOD
/* 802DE730 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 802DE734 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802DE738 7C 08 03 A6 */ mtlr r0
/* 802DE73C 38 21 00 30 */ addi r1, r1, 0x30
/* 802DE740 4E 80 00 20 */ blr
@@ -1,81 +0,0 @@
lbl_802DE480:
/* 802DE480 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802DE484 7C 08 02 A6 */ mflr r0
/* 802DE488 90 01 00 24 */ stw r0, 0x24(r1)
/* 802DE48C 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE490 48 08 3D 4D */ bl _savegpr_29
/* 802DE494 7C 7D 1B 78 */ mr r29, r3
/* 802DE498 7C BE 2B 78 */ mr r30, r5
/* 802DE49C 7C DF 33 78 */ mr r31, r6
/* 802DE4A0 28 04 00 00 */ cmplwi r4, 0
/* 802DE4A4 41 82 00 F4 */ beq lbl_802DE598
/* 802DE4A8 90 9D 00 20 */ stw r4, 0x20(r29)
/* 802DE4AC 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE4B0 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 802DE4B4 7C 03 02 14 */ add r0, r3, r0
/* 802DE4B8 90 1D 00 24 */ stw r0, 0x24(r29)
/* 802DE4BC 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE4C0 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 802DE4C4 28 00 00 00 */ cmplwi r0, 0
/* 802DE4C8 40 82 00 0C */ bne lbl_802DE4D4
/* 802DE4CC 38 03 00 20 */ addi r0, r3, 0x20
/* 802DE4D0 90 1D 00 24 */ stw r0, 0x24(r29)
lbl_802DE4D4:
/* 802DE4D4 88 1D 00 3B */ lbz r0, 0x3b(r29)
/* 802DE4D8 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 802DE4DC 41 82 00 0C */ beq lbl_802DE4E8
/* 802DE4E0 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 802DE4E4 4B FF 08 59 */ bl __dl__FPv
lbl_802DE4E8:
/* 802DE4E8 93 DD 00 28 */ stw r30, 0x28(r29)
/* 802DE4EC 88 1D 00 3B */ lbz r0, 0x3b(r29)
/* 802DE4F0 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 802DE4F4 98 1D 00 3B */ stb r0, 0x3b(r29)
/* 802DE4F8 38 00 00 00 */ li r0, 0
/* 802DE4FC 90 1D 00 2C */ stw r0, 0x2c(r29)
/* 802DE500 28 1E 00 00 */ cmplwi r30, 0
/* 802DE504 41 82 00 30 */ beq lbl_802DE534
/* 802DE508 9B FD 00 3A */ stb r31, 0x3a(r29)
/* 802DE50C 88 1E 00 0C */ lbz r0, 0xc(r30)
/* 802DE510 7C 1F 00 00 */ cmpw r31, r0
/* 802DE514 41 82 00 20 */ beq lbl_802DE534
/* 802DE518 88 BE 00 0D */ lbz r5, 0xd(r30)
/* 802DE51C 88 DE 00 16 */ lbz r6, 0x16(r30)
/* 802DE520 A0 FE 00 14 */ lhz r7, 0x14(r30)
/* 802DE524 81 1E 00 10 */ lwz r8, 0x10(r30)
/* 802DE528 7F C3 F3 78 */ mr r3, r30
/* 802DE52C 7F E4 FB 78 */ mr r4, r31
/* 802DE530 48 00 03 ED */ bl storeTLUT__10JUTPaletteF7_GXTlut10_GXTlutFmt15JUTTransparencyUsPv
lbl_802DE534:
/* 802DE534 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE538 88 03 00 06 */ lbz r0, 6(r3)
/* 802DE53C 98 1D 00 30 */ stb r0, 0x30(r29)
/* 802DE540 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE544 88 03 00 07 */ lbz r0, 7(r3)
/* 802DE548 98 1D 00 31 */ stb r0, 0x31(r29)
/* 802DE54C 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE550 88 03 00 14 */ lbz r0, 0x14(r3)
/* 802DE554 98 1D 00 32 */ stb r0, 0x32(r29)
/* 802DE558 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE55C 88 03 00 15 */ lbz r0, 0x15(r3)
/* 802DE560 98 1D 00 33 */ stb r0, 0x33(r29)
/* 802DE564 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE568 88 03 00 16 */ lbz r0, 0x16(r3)
/* 802DE56C 7C 00 07 74 */ extsb r0, r0
/* 802DE570 B0 1D 00 34 */ sth r0, 0x34(r29)
/* 802DE574 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE578 88 03 00 17 */ lbz r0, 0x17(r3)
/* 802DE57C 7C 00 07 74 */ extsb r0, r0
/* 802DE580 B0 1D 00 36 */ sth r0, 0x36(r29)
/* 802DE584 80 7D 00 20 */ lwz r3, 0x20(r29)
/* 802DE588 A8 03 00 1A */ lha r0, 0x1a(r3)
/* 802DE58C B0 1D 00 38 */ sth r0, 0x38(r29)
/* 802DE590 7F A3 EB 78 */ mr r3, r29
/* 802DE594 48 00 00 75 */ bl init__10JUTTextureFv
lbl_802DE598:
/* 802DE598 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE59C 48 08 3C 8D */ bl _restgpr_29
/* 802DE5A0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802DE5A4 7C 08 03 A6 */ mtlr r0
/* 802DE5A8 38 21 00 20 */ addi r1, r1, 0x20
/* 802DE5AC 4E 80 00 20 */ blr
@@ -1,115 +0,0 @@
lbl_802DE2A8:
/* 802DE2A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802DE2AC 7C 08 02 A6 */ mflr r0
/* 802DE2B0 90 01 00 24 */ stw r0, 0x24(r1)
/* 802DE2B4 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE2B8 48 08 3F 25 */ bl _savegpr_29
/* 802DE2BC 7C 7F 1B 78 */ mr r31, r3
/* 802DE2C0 28 04 00 00 */ cmplwi r4, 0
/* 802DE2C4 41 82 01 70 */ beq lbl_802DE434
/* 802DE2C8 54 A0 06 3E */ clrlwi r0, r5, 0x18
/* 802DE2CC 28 00 00 10 */ cmplwi r0, 0x10
/* 802DE2D0 40 80 01 64 */ bge lbl_802DE434
/* 802DE2D4 90 9F 00 20 */ stw r4, 0x20(r31)
/* 802DE2D8 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE2DC 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 802DE2E0 7C 03 02 14 */ add r0, r3, r0
/* 802DE2E4 90 1F 00 24 */ stw r0, 0x24(r31)
/* 802DE2E8 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE2EC 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 802DE2F0 28 00 00 00 */ cmplwi r0, 0
/* 802DE2F4 40 82 00 0C */ bne lbl_802DE300
/* 802DE2F8 38 03 00 20 */ addi r0, r3, 0x20
/* 802DE2FC 90 1F 00 24 */ stw r0, 0x24(r31)
lbl_802DE300:
/* 802DE300 38 00 00 00 */ li r0, 0
/* 802DE304 90 1F 00 2C */ stw r0, 0x2c(r31)
/* 802DE308 98 1F 00 3A */ stb r0, 0x3a(r31)
/* 802DE30C 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE310 88 03 00 06 */ lbz r0, 6(r3)
/* 802DE314 98 1F 00 30 */ stb r0, 0x30(r31)
/* 802DE318 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE31C 88 03 00 07 */ lbz r0, 7(r3)
/* 802DE320 98 1F 00 31 */ stb r0, 0x31(r31)
/* 802DE324 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE328 88 03 00 14 */ lbz r0, 0x14(r3)
/* 802DE32C 98 1F 00 32 */ stb r0, 0x32(r31)
/* 802DE330 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE334 88 03 00 15 */ lbz r0, 0x15(r3)
/* 802DE338 98 1F 00 33 */ stb r0, 0x33(r31)
/* 802DE33C 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE340 88 03 00 16 */ lbz r0, 0x16(r3)
/* 802DE344 7C 00 07 74 */ extsb r0, r0
/* 802DE348 B0 1F 00 34 */ sth r0, 0x34(r31)
/* 802DE34C 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE350 88 03 00 17 */ lbz r0, 0x17(r3)
/* 802DE354 7C 00 07 74 */ extsb r0, r0
/* 802DE358 B0 1F 00 36 */ sth r0, 0x36(r31)
/* 802DE35C 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802DE360 A8 03 00 1A */ lha r0, 0x1a(r3)
/* 802DE364 B0 1F 00 38 */ sth r0, 0x38(r31)
/* 802DE368 81 1F 00 20 */ lwz r8, 0x20(r31)
/* 802DE36C A0 E8 00 0A */ lhz r7, 0xa(r8)
/* 802DE370 28 07 00 00 */ cmplwi r7, 0
/* 802DE374 40 82 00 10 */ bne lbl_802DE384
/* 802DE378 7F E3 FB 78 */ mr r3, r31
/* 802DE37C 48 00 02 DD */ bl initTexObj__10JUTTextureFv
/* 802DE380 48 00 00 B4 */ b lbl_802DE434
lbl_802DE384:
/* 802DE384 28 07 01 00 */ cmplwi r7, 0x100
/* 802DE388 40 81 00 24 */ ble lbl_802DE3AC
/* 802DE38C 54 A3 06 3E */ clrlwi r3, r5, 0x18
/* 802DE390 54 A0 F0 02 */ slwi r0, r5, 0x1e
/* 802DE394 54 63 0F FE */ srwi r3, r3, 0x1f
/* 802DE398 7C 03 00 50 */ subf r0, r3, r0
/* 802DE39C 54 00 10 3E */ rotlwi r0, r0, 2
/* 802DE3A0 7C 60 1A 14 */ add r3, r0, r3
/* 802DE3A4 3B A3 00 10 */ addi r29, r3, 0x10
/* 802DE3A8 48 00 00 08 */ b lbl_802DE3B0
lbl_802DE3AC:
/* 802DE3AC 54 BD 06 3E */ clrlwi r29, r5, 0x18
lbl_802DE3B0:
/* 802DE3B0 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 802DE3B4 28 03 00 00 */ cmplwi r3, 0
/* 802DE3B8 41 82 00 10 */ beq lbl_802DE3C8
/* 802DE3BC 88 1F 00 3B */ lbz r0, 0x3b(r31)
/* 802DE3C0 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 802DE3C4 40 82 00 4C */ bne lbl_802DE410
lbl_802DE3C8:
/* 802DE3C8 38 60 00 18 */ li r3, 0x18
/* 802DE3CC 4B FF 08 81 */ bl __nw__FUl
/* 802DE3D0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802DE3D4 41 82 00 24 */ beq lbl_802DE3F8
/* 802DE3D8 81 1F 00 20 */ lwz r8, 0x20(r31)
/* 802DE3DC 7F A4 EB 78 */ mr r4, r29
/* 802DE3E0 88 A8 00 09 */ lbz r5, 9(r8)
/* 802DE3E4 88 C8 00 01 */ lbz r6, 1(r8)
/* 802DE3E8 A0 E8 00 0A */ lhz r7, 0xa(r8)
/* 802DE3EC 80 08 00 0C */ lwz r0, 0xc(r8)
/* 802DE3F0 7D 08 02 14 */ add r8, r8, r0
/* 802DE3F4 48 00 05 29 */ bl storeTLUT__10JUTPaletteF7_GXTlut10_GXTlutFmt15JUTTransparencyUsPv
lbl_802DE3F8:
/* 802DE3F8 93 DF 00 28 */ stw r30, 0x28(r31)
/* 802DE3FC 88 1F 00 3B */ lbz r0, 0x3b(r31)
/* 802DE400 54 00 07 FE */ clrlwi r0, r0, 0x1f
/* 802DE404 60 00 00 02 */ ori r0, r0, 2
/* 802DE408 98 1F 00 3B */ stb r0, 0x3b(r31)
/* 802DE40C 48 00 00 1C */ b lbl_802DE428
lbl_802DE410:
/* 802DE410 7F A4 EB 78 */ mr r4, r29
/* 802DE414 88 A8 00 09 */ lbz r5, 9(r8)
/* 802DE418 88 C8 00 01 */ lbz r6, 1(r8)
/* 802DE41C 80 08 00 0C */ lwz r0, 0xc(r8)
/* 802DE420 7D 08 02 14 */ add r8, r8, r0
/* 802DE424 48 00 04 F9 */ bl storeTLUT__10JUTPaletteF7_GXTlut10_GXTlutFmt15JUTTransparencyUsPv
lbl_802DE428:
/* 802DE428 7F E3 FB 78 */ mr r3, r31
/* 802DE42C 80 9F 00 28 */ lwz r4, 0x28(r31)
/* 802DE430 48 00 01 81 */ bl attachPalette__10JUTTextureFP10JUTPalette
lbl_802DE434:
/* 802DE434 39 61 00 20 */ addi r11, r1, 0x20
/* 802DE438 48 08 3D F1 */ bl _restgpr_29
/* 802DE43C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802DE440 7C 08 03 A6 */ mtlr r0
/* 802DE444 38 21 00 20 */ addi r1, r1, 0x20
/* 802DE448 4E 80 00 20 */ blr
+2 -2
View File
@@ -26,8 +26,8 @@ public:
/* 0x27c */ JAITempoMgr mTempoMgr;
};
/* 8029F6D8 */ virtual bool getNumChild() const;
/* 8029F6E0 */ virtual bool getChild(int);
/* 8029F6D8 */ virtual s32 getNumChild() const;
/* 8029F6E0 */ virtual JAISoundChild* getChild(int);
/* 8029F6E8 */ virtual void releaseChild(int);
/* 8029F84C */ virtual JASTrack* getTrack();
/* 8029F854 */ virtual JASTrack* getChildTrack(int);
+56
View File
@@ -2,5 +2,61 @@
#define JASBASICINST_H
#include "dolphin/types.h"
#include "JSystem/JAudio2/JASOscillator.h"
#include "JSystem/JAudio2/JASSoundParams.h"
struct JKRHeap;
struct JASInstParam : public JASSoundParams {
JASInstParam() {
field_0x14 = NULL;
field_0x18 = 0;
field_0x1a = 0;
field_0x1c = 0;
field_0x1d = 0;
field_0x1e = 0;
}
JASOscillator::Data** field_0x14;
u16 field_0x18;
u16 field_0x1a;
u8 field_0x1c;
u8 field_0x1d;
u8 field_0x1e;
};
struct JASInst {
virtual ~JASInst() {}
virtual bool getParam(int, int, JASInstParam*) const = 0;
virtual u32 getType() const = 0;
};
struct JASBasicInst : public JASInst {
struct TKeymap {
/* 80298250 */ ~TKeymap();
/* 802982D4 */ TKeymap();
s32 field_0x0;
u16 field_0x4;
u16 field_0x6;
f32 field_0x8;
f32 field_0xc;
};
/* 80298014 */ JASBasicInst();
/* 8029819C */ void setKeyRegionCount(u32, JKRHeap*);
/* 8029821C */ void setOsc(int, JASOscillator::Data const*);
/* 8029822C */ TKeymap* getKeyRegion(int);
/* 8029807C */ virtual ~JASBasicInst();
/* 802980F8 */ virtual bool getParam(int, int, JASInstParam*) const;
/* 802982E0 */ virtual u32 getType() const { return 'BSIC'; };
f32 mVolume;
f32 mPitch;
JASOscillator::Data const* field_0xc[2];
u32 mKeymapCount;
TKeymap* mKeymap;
};
#endif /* JASBASICINST_H */
+28
View File
@@ -2,5 +2,33 @@
#define JASDRUMSET_H
#include "dolphin/types.h"
#include "JSystem/JAudio2/JASBasicInst.h"
struct JKRHeap;
struct JASDrumSet : public JASInst {
struct TPerc {
/* 802984C4 */ TPerc();
/* 802984E4 */ void setRelease(u32);
f32 mVolume;
f32 mPitch;
f32 mPan;
u16 field_0xc;
u16 field_0xe;
f32 field_0x10;
f32 field_0x14;
};
/* 802982EC */ JASDrumSet();
/* 80298314 */ virtual ~JASDrumSet();
/* 80298370 */ void newPercArray(u8, JKRHeap*);
/* 802983CC */ virtual bool getParam(int, int, JASInstParam*) const;
/* 802984B4 */ void setPerc(int, JASDrumSet::TPerc*);
/* 802984EC */ virtual u32 getType() const;
TPerc** field_0x4;
u8 field_0x8;
};
#endif /* JASDRUMSET_H */
+2
View File
@@ -5,6 +5,8 @@
struct JASOscillator {
struct Point {};
struct Data {
/* 0x00 */ u32 _00;
/* 0x04 */ f32 _04;
+13 -9
View File
@@ -2,6 +2,7 @@
#define JASTRACK_H
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JAudio2/JASOscillator.h"
struct JASSoundParams;
@@ -15,12 +16,6 @@ struct JASDsp {
static u32 FILTER_MODE_IIR;
};
struct JASOscillator {
struct Point {};
struct Data {};
};
struct JASChannel {
/* 8029AAD0 */ void release(u16);
/* 8029AB64 */ void setOscInit(u32, JASOscillator::Data const*);
@@ -126,8 +121,8 @@ struct JASTrack {
int getChannelMgrCount() { return channelMgrCount; }
u8 getStatus() const { return mStatus; }
JASTrack* getChild(u32 index) { return field_0x130[index]; }
void setAutoDelete(bool param_0) {
field_0x216 = (param_0 << 4) | field_0x216 & ~0x10;
inline void setAutoDelete(u8 param_0) {
field_0x216.autoDelete = param_0;
}
/* 0x000 */ u8 field_0x0[0x5c]; // JASSeqCtrl
@@ -154,7 +149,16 @@ struct JASTrack {
/* 0x204 */ short field_0x204[8];
/* 0x214 */ char field_0x214;
/* 0x215 */ u8 mStatus;
/* 0x216 */ u8 field_0x216;
/* 0x216 */ struct {
u8 flag0 : 1;
u8 flag1 : 1;
u8 flag2 : 1;
u8 autoDelete : 1;
u8 flag4 : 1;
u8 flag5 : 1;
u8 flag6 : 1;
u8 flag7 : 1;
} field_0x216;
/* 0x218 */ f32 field_0x218;
/* 0x21C */ f32 field_0x21c;
/* 0x220 */ u32 field_0x220;
+6
View File
@@ -10,6 +10,8 @@ struct TLinkListNode {
mPrev = NULL;
}
TLinkListNode* getNext() { return mNext; }
/* 0x0 */ TLinkListNode* mNext;
/* 0x4 */ TLinkListNode* mPrev;
}; // Size: 0x8
@@ -18,6 +20,10 @@ struct TNodeLinkList {
struct iterator {
iterator(TLinkListNode* pNode) { node = pNode; }
iterator(const iterator& iter) { *this = iter; }
iterator& operator++() {
node = node->getNext();
return *this;
}
TLinkListNode* node;
};
+1 -1
View File
@@ -80,7 +80,7 @@ public:
/* 0x2C */ virtual void getWidthEntry(int i_no, TWidth* width) const = 0;
/* 0x30 */ virtual int getCellWidth() const;
/* 0x34 */ virtual s32 getCellHeight() const;
/* 0x38 */ virtual u16 getFontType() const = 0;
/* 0x38 */ virtual int getFontType() const = 0;
/* 0x3C */ virtual ResFONT* getResFont() const = 0;
/* 0x40 */ virtual bool isLeadByte(int a1) const = 0;
+4
View File
@@ -28,6 +28,10 @@ public:
/* 802DE95C */ bool load();
u8 getTlutName() const { return mTlutName; }
u8 getFormat() const { return mFormat; }
u8 getTransparency() const { return mTransparency; }
u16 getNumColors() const { return mNumColors; }
ResTLUT* getColorTable() const { return mColorTable; }
private:
/* 0x00 */ _GXTlutObj mTlutObj;
+1 -1
View File
@@ -29,7 +29,7 @@ public:
/* 802DFC64 */ virtual void getWidthEntry(int, JUTFont::TWidth*) const;
/* 802DFD0C */ virtual int getCellWidth() const;
/* 802DFD58 */ virtual s32 getCellHeight() const;
/* 802DDFE0 */ virtual u16 getFontType() const;
/* 802DDFE0 */ virtual int getFontType() const;
/* 802DDFD8 */ virtual ResFONT* getResFont() const;
/* 802DFDA4 */ virtual bool isLeadByte(int) const;
/* 802DFF60 */ virtual void loadImage(int, _GXTexMapID);
+11 -2
View File
@@ -8,10 +8,19 @@ class JSUInputStream;
class JUTResReference {
private:
u8 unk_0x0[0x101];
/* 0x001 */ u8 mType;
/* 0x002 */ u8 mNameLength;
/* 0x003 */ char mName[0x100];
public:
JUTResReference() { unk_0x0[0] = 0; }
enum ResType {
RESTYPE_Null = 0,
RESTYPE_Unk1 = 1,
RESTYPE_Unk2 = 2,
RESTYPE_Unk3 = 3,
RESTYPE_Unk4 = 4,
};
JUTResReference() { mType = 0; }
/* 802DE078 */ void* getResource(JSUInputStream*, u32, JKRArchive*);
/* 802DE120 */ void* getResource(void const*, u32, JKRArchive*);
/* 802DE1BC */ void* getResource(u32, JKRArchive*);
+3 -2
View File
@@ -65,6 +65,7 @@ public:
void setCaptureFlag(bool flag) { mFlags &= 2 | flag; }
u8 getCaptureFlag() const { return mFlags & 1; }
u8 getEmbPaletteDelFlag() const { return mFlags & 2; }
void setEmbPaletteDelFlag(bool flag) { mFlags = (mFlags & 1) | (flag << 1);}
u8 getTlutName() const { return mTlutName; }
private:
@@ -77,8 +78,8 @@ private:
/* 0x31 */ u8 mWrapT;
/* 0x32 */ u8 mMinFilter;
/* 0x33 */ u8 mMagFilter;
/* 0x34 */ s16 mMinLOD;
/* 0x36 */ s16 mMaxLOD;
/* 0x34 */ u16 mMinLOD;
/* 0x36 */ u16 mMaxLOD;
/* 0x38 */ s16 mLODBias;
/* 0x3A */ u8 mTlutName;
/* 0x3B */ u8 mFlags;
+8 -364
View File
@@ -3,169 +3,41 @@
// Translation Unit: JAISe
//
//#include "JSystem/JAudio2/JAISe.h"
#include "JSystem/JAudio2/JAISe.h"
#include "JSystem/JAudio2/JAIAudience.h"
//#include "JSystem/JAudio2/JAISeMgr.h"
#include "JSystem/JAudio2/JAISeMgr.h"
#include "JSystem/JAudio2/JAISound.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "JSystem/JSupport/JSUList.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
struct JAISeMgr {};
struct JAISe {
/* 8029F03C */ JAISe(JAISeMgr*, JAISoundStrategyMgr<JAISe>*, u32);
/* 8029F0F8 */ void mixOut_(JASSoundParams const&);
/* 8029F214 */ void stopTrack_();
/* 8029F250 */ void startTrack_(JASSoundParams const&);
/* 8029F304 */ void JAISeCategoryMgr_mixOut_(bool, JASSoundParams const&, JAISoundActivity);
/* 8029F4CC */ void JAISeCategoryMgr_calc_();
/* 8029F5C8 */ bool JAISound_tryDie_();
/* 8029F650 */ void JAISeMgr_startID_(JAISoundID, JGeometry::TVec3<f32> const*, JAIAudience*);
/* 8029F6D8 */ bool getNumChild() const;
/* 8029F6E0 */ bool getChild(int);
/* 8029F6E8 */ void releaseChild(int);
/* 8029F6EC */ bool prepare_getSeqData_();
/* 8029F78C */ void prepare_();
/* 8029F84C */ JASTrack* getTrack();
/* 8029F854 */ JASTrack* getChildTrack(int);
/* 8029F864 */ JAISe* asSe();
/* 8029F868 */ JAITempoMgr* getTempoMgr();
};
//
// Forward References:
//
extern "C" void func_8029F03C();
extern "C" void mixOut___5JAISeFRC14JASSoundParams();
extern "C" void stopTrack___5JAISeFv();
extern "C" void startTrack___5JAISeFRC14JASSoundParams();
extern "C" void JAISeCategoryMgr_mixOut___5JAISeFbRC14JASSoundParams16JAISoundActivity();
extern "C" void JAISeCategoryMgr_calc___5JAISeFv();
extern "C" void JAISound_tryDie___5JAISeFv();
extern "C" void func_8029F650();
extern "C" bool getNumChild__5JAISeCFv();
extern "C" bool getChild__5JAISeFi();
extern "C" void releaseChild__5JAISeFi();
extern "C" void prepare_getSeqData___5JAISeFv();
extern "C" void prepare___5JAISeFv();
extern "C" void getTrack__5JAISeFv();
extern "C" void getChildTrack__5JAISeFi();
extern "C" void asSe__5JAISeFv();
extern "C" void getTempoMgr__5JAISeFv();
extern "C" static void func_8029F870();
extern "C" static void func_8029F878();
extern "C" static void func_8029F880();
extern "C" static void func_8029F888();
extern "C" static void func_8029F890();
extern "C" static void func_8029F898();
extern "C" static void func_8029F8A0();
extern "C" static void func_8029F8A8();
//
// External References:
//
extern "C" void __ct__8JASTrackFv();
extern "C" void setChannelMgrCount__8JASTrackFUl();
extern "C" void init__8JASTrackFv();
extern "C" void assignExtBuffer__8JASTrackFUlP14JASSoundParams();
extern "C" void setSeqData__8JASTrackFPvUl();
extern "C" void startSeq__8JASTrackFv();
extern "C" void stopSeq__8JASTrackFv();
extern "C" void mute__8JASTrackFb();
extern "C" void pause__8JASTrackFb();
extern "C" void setTempoRate__8JASTrackFf();
extern "C" void mixOutAll__14JAISoundParamsFRC14JASSoundParamsP14JASSoundParamsf();
extern "C" void __ct__8JAISoundFv();
extern "C" void func_802A2328();
extern "C" bool asSeq__8JAISoundFv();
extern "C" bool asStream__8JAISoundFv();
extern "C" void die_JAISound___8JAISoundFv();
extern "C" void increasePrepareCount_JAISound___8JAISoundFv();
extern "C" void calc_JAISound___8JAISoundFv();
extern "C" void initTrack_JAISound___8JAISoundFP8JASTrack();
extern "C" void __ct__10JSUPtrLinkFPv();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* ############################################################################################## */
/* 803C9858-803C98B0 026978 0058+00 1/1 1/1 0/0 .data __vt__5JAISe */
SECTION_DATA extern void* __vt__5JAISe[22] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)func_8029F8A8,
(void*)func_8029F8A0,
(void*)func_8029F898,
(void*)func_8029F890,
(void*)asSeq__8JAISoundFv,
(void*)asStream__8JAISoundFv,
(void*)func_8029F888,
(void*)func_8029F880,
(void*)func_8029F878,
(void*)func_8029F870,
(void*)getNumChild__5JAISeCFv,
(void*)getChild__5JAISeFi,
(void*)releaseChild__5JAISeFi,
(void*)getTrack__5JAISeFv,
(void*)getChildTrack__5JAISeFi,
(void*)asSe__5JAISeFv,
(void*)getTempoMgr__5JAISeFv,
(void*)JAISound_tryDie___5JAISeFv,
};
/* 80455778-8045577C 003D78 0004+00 2/2 0/0 0/0 .sdata2 @626 */
SECTION_SDATA2 static f32 lit_626 = 1.0f;
/* 8045577C-80455780 003D7C 0004+00 2/2 0/0 0/0 .sdata2 @627 */
SECTION_SDATA2 static u8 lit_627[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80455780-80455784 003D80 0004+00 2/2 0/0 0/0 .sdata2 @628 */
SECTION_SDATA2 static f32 lit_628 = 0.5f;
/* 8029F03C-8029F0F8 29997C 00BC+00 0/0 1/1 0/0 .text
* __ct__5JAISeFP8JAISeMgrP27JAISoundStrategyMgr<5JAISe>Ul */
// multiple inheritance thunks
#ifdef NONMATCHING
JAISe::JAISe(JAISeMgr* param_0, JAISoundStrategyMgr<JAISe>* param_1, u32 param_2) : JSULink<JAISe>(this) {
inner_.mSoundStrategyMgr = param_1;
inner_.seMgr = param_0;
inner_.mProperPriority = param_2;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAISe::JAISe(JAISeMgr* param_0, JAISoundStrategyMgr<JAISe>* param_1, u32 param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F03C.s"
}
#pragma pop
#endif
/* 8029F0F8-8029F214 299A38 011C+00 1/1 0/0 0/0 .text mixOut___5JAISeFRC14JASSoundParams
*/
// multiple inheritance thunks
#ifdef NONMATCHING
*/
void JAISe::mixOut_(JASSoundParams const& param_0) {
inner_.track.setTempoRate(inner_.mTempoMgr.getTempo());
JASSoundParams stackParams;
@@ -182,20 +54,8 @@ void JAISe::mixOut_(JASSoundParams const& param_0) {
inner_.mSoundParams = stackParams;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISe::mixOut_(JASSoundParams const& param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/mixOut___5JAISeFRC14JASSoundParams.s"
}
#pragma pop
#endif
/* 8029F214-8029F250 299B54 003C+00 1/1 0/0 0/0 .text stopTrack___5JAISeFv */
// multiple inheritance thunks
#ifdef NONMATCHING
void JAISe::stopTrack_() {
switch (inner_.track.getStatus()) {
case 0:
@@ -207,20 +67,8 @@ void JAISe::stopTrack_() {
break;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISe::stopTrack_() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/stopTrack___5JAISeFv.s"
}
#pragma pop
#endif
/* 8029F250-8029F304 299B90 00B4+00 1/1 0/0 0/0 .text startTrack___5JAISeFRC14JASSoundParams */
// multiple inheritance thunks
#ifdef NONMATCHING
void JAISe::startTrack_(JASSoundParams const& param_0) {
if (inner_.track.getStatus() == 2) {
inner_.track.init();
@@ -236,25 +84,9 @@ void JAISe::startTrack_(JASSoundParams const& param_0) {
inner_.track.setSeqData(inner_.mSeqData.field_0x0, inner_.mSeqData.field_0x4);
inner_.track.startSeq();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISe::startTrack_(JASSoundParams const& param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/startTrack___5JAISeFRC14JASSoundParams.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80455784-80455788 003D84 0004+00 2/2 0/0 0/0 .sdata2 @736 */
SECTION_SDATA2 static f32 lit_736 = 1.0f / 100.0f;
/* 8029F304-8029F4CC 299C44 01C8+00 0/0 1/1 0/0 .text
* JAISeCategoryMgr_mixOut___5JAISeFbRC14JASSoundParams16JAISoundActivity */
// Matches with literals
#ifdef NONMATCHING
void JAISe::JAISeCategoryMgr_mixOut_(bool param_0, JASSoundParams const& param_1, JAISoundActivity param_2) {
mixOut_(param_1);
if (isStopping()) {
@@ -289,21 +121,8 @@ void JAISe::JAISeCategoryMgr_mixOut_(bool param_0, JASSoundParams const& param_1
stop_JAISound_();
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISe::JAISeCategoryMgr_mixOut_(bool param_0, JASSoundParams const& param_1,
JAISoundActivity param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/JAISeCategoryMgr_mixOut___5JAISeFbRC14JASSoundParams16JAISoundActivity.s"
}
#pragma pop
#endif
/* 8029F4CC-8029F5C8 299E0C 00FC+00 0/0 1/1 0/0 .text JAISeCategoryMgr_calc___5JAISeFv */
// Matches with literals
#ifdef NONMATCHING
void JAISe::JAISeCategoryMgr_calc_() {
prepare_();
if (calc_JAISound_()) {
@@ -318,20 +137,8 @@ void JAISe::JAISeCategoryMgr_calc_() {
inner_.mPriority = inner_.mProperPriority + mPriority;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISe::JAISeCategoryMgr_calc_() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/JAISeCategoryMgr_calc___5JAISeFv.s"
}
#pragma pop
#endif
/* 8029F5C8-8029F650 299F08 0088+00 2/1 0/0 0/0 .text JAISound_tryDie___5JAISeFv */
// multiple inheritance thunks
#ifdef NONMATCHING
bool JAISe::JAISound_tryDie_() {
switch (inner_.track.getStatus()) {
case 0:
@@ -347,21 +154,9 @@ bool JAISe::JAISound_tryDie_() {
}
return false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool JAISe::JAISound_tryDie_() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/JAISound_tryDie___5JAISeFv.s"
}
#pragma pop
#endif
/* 8029F650-8029F6D8 299F90 0088+00 0/0 1/1 0/0 .text
* JAISeMgr_startID___5JAISeF10JAISoundIDPCQ29JGeometry8TVec3<f>P11JAIAudience */
// multiple inheritance thunks
#ifdef NONMATCHING
void JAISe::JAISeMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1, JAIAudience* param_2) {
start_JAISound_(param_0, param_1, param_2);
inner_.field_0x26c = 0;
@@ -371,26 +166,15 @@ void JAISe::JAISeMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* p
inner_.field_0x278 = NULL;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISe::JAISeMgr_startID_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1,
JAIAudience* param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F650.s"
}
#pragma pop
#endif
/* 8029F6D8-8029F6E0 29A018 0008+00 2/1 0/0 0/0 .text getNumChild__5JAISeCFv */
bool JAISe::getNumChild() const {
return false;
s32 JAISe::getNumChild() const {
return 0;
}
/* 8029F6E0-8029F6E8 29A020 0008+00 2/1 0/0 0/0 .text getChild__5JAISeFi */
bool JAISe::getChild(int param_0) {
return false;
JAISoundChild* JAISe::getChild(int param_0) {
return NULL;
}
/* 8029F6E8-8029F6EC 29A028 0004+00 2/1 0/0 0/0 .text releaseChild__5JAISeFi */
@@ -399,8 +183,6 @@ void JAISe::releaseChild(int param_0) {
}
/* 8029F6EC-8029F78C 29A02C 00A0+00 1/1 0/0 0/0 .text prepare_getSeqData___5JAISeFv */
// multiple inheritance thunks
#ifdef NONMATCHING
bool JAISe::prepare_getSeqData_() {
switch (inner_.seMgr->getSeqDataMgr()->getSeqData(soundID, &inner_.mSeqData)) {
case 0:
@@ -414,20 +196,8 @@ bool JAISe::prepare_getSeqData_() {
}
return false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool JAISe::prepare_getSeqData_() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/prepare_getSeqData___5JAISeFv.s"
}
#pragma pop
#endif
/* 8029F78C-8029F84C 29A0CC 00C0+00 1/1 0/0 0/0 .text prepare___5JAISeFv */
// multiple inheritance thunks
#ifdef NONMATCHING
void JAISe::prepare_() {
switch (status_.state.unk) {
case 6:
@@ -453,50 +223,16 @@ void JAISe::prepare_() {
break;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISe::prepare_() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/prepare___5JAISeFv.s"
}
#pragma pop
#endif
/* 8029F84C-8029F854 29A18C 0008+00 2/1 0/0 0/0 .text getTrack__5JAISeFv */
// multiple inheritance thunks
#ifdef NONMATCHING
JASTrack* JAISe::getTrack() {
return &inner_.track;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASTrack* JAISe::getTrack() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/getTrack__5JAISeFv.s"
}
#pragma pop
#endif
/* 8029F854-8029F864 29A194 0010+00 2/1 0/0 0/0 .text getChildTrack__5JAISeFi */
// multiple inheritance thunks
#ifdef NONMATCHING
JASTrack* JAISe::getChildTrack(int param_0) {
return inner_.track.getChild(param_0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASTrack* JAISe::getChildTrack(int param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/getChildTrack__5JAISeFi.s"
}
#pragma pop
#endif
/* 8029F864-8029F868 29A1A4 0004+00 2/1 0/0 0/0 .text asSe__5JAISeFv */
JAISe* JAISe::asSe() {
@@ -504,98 +240,6 @@ JAISe* JAISe::asSe() {
}
/* 8029F868-8029F870 29A1A8 0008+00 2/1 0/0 0/0 .text getTempoMgr__5JAISeFv */
// multiple inheritance thunks
#ifdef NONMATCHING
JAITempoMgr* JAISe::getTempoMgr() {
return &inner_.mTempoMgr;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAITempoMgr* JAISe::getTempoMgr() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/getTempoMgr__5JAISeFv.s"
}
#pragma pop
#endif
/* 8029F870-8029F878 29A1B0 0008+00 1/0 0/0 0/0 .text @16@JAISound_tryDie___5JAISeFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F870() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F870.s"
}
#pragma pop
/* 8029F878-8029F880 29A1B8 0008+00 1/0 0/0 0/0 .text @16@getTempoMgr__5JAISeFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F878() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F878.s"
}
#pragma pop
/* 8029F880-8029F888 29A1C0 0008+00 1/0 0/0 0/0 .text @16@getChildTrack__5JAISeFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F880() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F880.s"
}
#pragma pop
/* 8029F888-8029F890 29A1C8 0008+00 1/0 0/0 0/0 .text @16@getTrack__5JAISeFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F888() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F888.s"
}
#pragma pop
/* 8029F890-8029F898 29A1D0 0008+00 1/0 0/0 0/0 .text @16@asSe__5JAISeFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F890() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F890.s"
}
#pragma pop
/* 8029F898-8029F8A0 29A1D8 0008+00 1/0 0/0 0/0 .text @16@releaseChild__5JAISeFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F898() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F898.s"
}
#pragma pop
/* 8029F8A0-8029F8A8 29A1E0 0008+00 1/0 0/0 0/0 .text @16@getChild__5JAISeFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F8A0() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F8A0.s"
}
#pragma pop
/* 8029F8A8-8029F8B0 29A1E8 0008+00 1/0 0/0 0/0 .text @16@getNumChild__5JAISeCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void func_8029F8A8() {
nofralloc
#include "asm/JSystem/JAudio2/JAISe/func_8029F8A8.s"
}
#pragma pop
+1 -1
View File
@@ -197,7 +197,7 @@ void JAISeq::playSeqData_(JASSoundParams const& param_0, JAISoundActivity param_
static u8 lit_716[12];
/* 802A0CA4-802A0E48 29B5E4 01A4+00 1/1 0/0 0/0 .text reserveChildTracks___6JAISeqFi */
// setAutoDelete inline, operator new?
// operator new?
#ifdef NONMATCHING
void JAISeq::reserveChildTracks_(int param_0) {
for (int i = 0; i < 2; i++) {
+2 -113
View File
@@ -9,7 +9,6 @@
#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JAudio2/JASReport.h"
#include "JSystem/JAudio2/JASTrack.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "global.h"
@@ -17,37 +16,10 @@
// Forward References:
//
extern "C" void releaseSound__14JAISoundHandleFv();
extern "C" void releaseHandle__8JAISoundFv();
extern "C" void attachHandle__8JAISoundFP14JAISoundHandle();
extern "C" void lockWhenPrepared__15JAISoundStatus_Fv();
extern "C" void unlockIfLocked__15JAISoundStatus_Fv();
extern "C" void mixOutAll__14JAISoundParamsFRC14JASSoundParamsP14JASSoundParamsf();
extern "C" void __ct__8JAISoundFv();
extern "C" void func_802A2328();
extern "C" void acceptsNewAudible__8JAISoundCFv();
extern "C" void func_802A2474();
extern "C" void stop__8JAISoundFUl();
extern "C" void stop__8JAISoundFv();
extern "C" bool asSe__8JAISoundFv();
extern "C" bool asSeq__8JAISoundFv();
extern "C" bool asStream__8JAISoundFv();
extern "C" void die_JAISound___8JAISoundFv();
extern "C" void increasePrepareCount_JAISound___8JAISoundFv();
extern "C" void calc_JAISound___8JAISoundFv();
extern "C" void initTrack_JAISound___8JAISoundFP8JASTrack();
extern "C" extern char const* const JAISound__stringBase0;
//
// External References:
//
extern "C" void JASReport__FPCce();
extern "C" void setChannelMgrCount__8JASTrackFUl();
extern "C" void assignExtBuffer__8JASTrackFUlP14JASSoundParams();
extern "C" void _savegpr_26();
extern "C" void _restgpr_26();
//
// Declarations:
//
@@ -106,10 +78,6 @@ s32 JAISoundStatus_::unlockIfLocked() {
return 0;
}
/* ############################################################################################## */
/* 804557B8-804557BC 003DB8 0004+00 3/3 0/0 0/0 .sdata2 @659 */
SECTION_SDATA2 static f32 lit_659 = 0.5f;
/* 802A2280-802A22F8 29CBC0 0078+00 0/0 4/4 0/0 .text
* mixOutAll__14JAISoundParamsFRC14JASSoundParamsP14JASSoundParamsf */
void JAISoundParams::mixOutAll(JASSoundParams const& param_0, JASSoundParams* param_1,
@@ -117,55 +85,15 @@ void JAISoundParams::mixOutAll(JASSoundParams const& param_0, JASSoundParams* pa
param_1->mVolume = mMove.mParams.mVolume * (param_0.mVolume * mProperty.field_0x0) * param_2;
param_1->mFxMix = mMove.mParams.mFxMix + (param_0.mFxMix + mProperty.field_0x4);
param_1->mPitch = mMove.mParams.mPitch * (param_0.mPitch * mProperty.field_0x8);
param_1->mPan = (param_0.mPan + mMove.mParams.mPan) - lit_659;
param_1->mPan = (param_0.mPan + mMove.mParams.mPan) - 0.5f;
param_1->mDolby = param_0.mDolby + mMove.mParams.mDolby;
}
/* ############################################################################################## */
/* 803C9970-803C99A0 026A90 0030+00 1/1 0/0 0/0 .data __vt__8JAISound */
SECTION_DATA extern void* __vt__8JAISound[12] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)asSe__8JAISoundFv,
(void*)asSeq__8JAISoundFv,
(void*)asStream__8JAISoundFv,
(void*)NULL,
(void*)NULL,
(void*)NULL,
(void*)NULL,
};
/* 804557BC-804557C0 003DBC 0004+00 2/2 0/0 0/0 .sdata2 @697 */
SECTION_SDATA2 static f32 lit_697 = 1.0f;
/* 804557C0-804557C8 003DC0 0004+04 4/4 0/0 0/0 .sdata2 @698 */
SECTION_SDATA2 static f32 lit_698[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 802A22F8-802A2328 29CC38 0030+00 0/0 3/3 0/0 .text __ct__8JAISoundFv */
// matches with literals
#ifdef NONMATCHING
JAISound::JAISound() : params() {}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JAISound::JAISound() {
nofralloc
#include "asm/JSystem/JAudio2/JAISound/__ct__8JAISoundFv.s"
}
#pragma pop
#endif
/* 802A2328-802A244C 29CC68 0124+00 0/0 3/3 0/0 .text
* start_JAISound___8JAISoundF10JAISoundIDPCQ29JGeometry8TVec3<f>P11JAIAudience */
#ifdef NONMATCHING
void JAISound::start_JAISound_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1,
JAIAudience* param_2) {
handle_ = NULL;
@@ -182,19 +110,8 @@ void JAISound::start_JAISound_(JAISoundID param_0, JGeometry::TVec3<f32> const*
} else {
audible_ = NULL;
}
field_0x34 = 0;
mPriority = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISound::start_JAISound_(JAISoundID param_0, JGeometry::TVec3<f32> const* param_1,
JAIAudience* param_2) {
nofralloc
#include "asm/JSystem/JAudio2/JAISound/func_802A2328.s"
}
#pragma pop
#endif
/* 802A244C-802A2474 29CD8C 0028+00 0/0 2/2 0/0 .text acceptsNewAudible__8JAISoundCFv */
bool JAISound::acceptsNewAudible() const {
@@ -216,12 +133,7 @@ void JAISound::newAudible(JGeometry::TVec3<f32> const& param_0,
audible_ = audience_->newAudible(param_0, sound, param_1, param_2);
}
/* ############################################################################################## */
/* 804557C8-804557D0 003DC8 0008+00 1/1 0/0 0/0 .sdata2 @766 */
SECTION_SDATA2 static f64 lit_766 = 4503599627370496.0 /* cast u32 to float */;
/* 802A24DC-802A2598 29CE1C 00BC+00 0/0 24/24 0/0 .text stop__8JAISoundFUl */
#ifdef NONMATCHING
void JAISound::stop(u32 fadeCount) {
ASSERT(status_.isAlive());
if (fadeCount == 0) {
@@ -235,16 +147,6 @@ void JAISound::stop(u32 fadeCount) {
status_.state.flags.flag1 = 1;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISound::stop(u32 param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JAISound/stop__8JAISoundFUl.s"
}
#pragma pop
#endif
/* 802A2598-802A25D8 29CED8 0040+00 2/2 21/21 0/0 .text stop__8JAISoundFv */
void JAISound::stop() {
@@ -268,7 +170,6 @@ JAIStream* JAISound::asStream() {
}
/* 802A25F0-802A266C 29CF30 007C+00 0/0 3/3 0/0 .text die_JAISound___8JAISoundFv */
#ifdef NONMATCHING
void JAISound::die_JAISound_() {
if (audible_ != NULL) {
audience_->deleteAudible(audible_);
@@ -279,16 +180,6 @@ void JAISound::die_JAISound_() {
releaseHandle();
status_.state.unk = 6;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAISound::die_JAISound_() {
nofralloc
#include "asm/JSystem/JAudio2/JAISound/die_JAISound___8JAISoundFv.s"
}
#pragma pop
#endif
/* 802A266C-802A26B8 29CFAC 004C+00 0/0 3/3 0/0 .text increasePrepareCount_JAISound___8JAISoundFv
*/
@@ -299,8 +190,6 @@ void JAISound::increasePrepareCount_JAISound_() {
}
}
/* ############################################################################################## */
/* 802A26B8-802A29DC 29CFF8 0324+00 0/0 3/3 0/0 .text calc_JAISound___8JAISoundFv */
bool JAISound::calc_JAISound_() {
status_.state.flags.flag2 = 1;
+54 -116
View File
@@ -4,6 +4,8 @@
//
#include "JSystem/JAudio2/JASBasicInst.h"
#include "JSystem/JAudio2/JASCalc.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -11,37 +13,6 @@
// Types:
//
struct JKRHeap {};
struct JASOscillator {
struct Data {};
};
struct JASInstParam {};
struct JASInst {
/* 8029828C */ ~JASInst();
};
struct JASCalc {
/* 8028F480 */ void bzero(void*, u32);
};
struct JASBasicInst {
struct TKeymap {
/* 80298250 */ ~TKeymap();
/* 802982D4 */ TKeymap();
};
/* 80298014 */ JASBasicInst();
/* 8029807C */ ~JASBasicInst();
/* 802980F8 */ void getParam(int, int, JASInstParam*) const;
/* 8029819C */ void setKeyRegionCount(u32, JKRHeap*);
/* 8029821C */ void setOsc(int, JASOscillator::Data const*);
/* 8029822C */ void getKeyRegion(int);
/* 802982E0 */ void getType() const;
};
//
// Forward References:
//
@@ -74,126 +45,93 @@ extern "C" void _restgpr_29();
//
/* ############################################################################################## */
/* 803C76E8-803C76FC 024808 0014+00 2/2 0/0 0/0 .data __vt__12JASBasicInst */
SECTION_DATA extern void* __vt__12JASBasicInst[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__12JASBasicInstFv,
(void*)getParam__12JASBasicInstCFiiP12JASInstParam,
(void*)getType__12JASBasicInstCFv,
};
/* 803C76FC-803C7710 02481C 0014+00 3/3 2/2 0/0 .data __vt__7JASInst */
SECTION_DATA extern void* __vt__7JASInst[5] = {
(void*)NULL /* RTTI */, (void*)NULL, (void*)__dt__7JASInstFv, (void*)NULL, (void*)NULL,
};
/* 80455640-80455648 003C40 0004+04 1/1 0/0 0/0 .sdata2 @187 */
SECTION_SDATA2 static f32 lit_187[1 + 1 /* padding */] = {
1.0f,
/* padding */
0.0f,
};
// /* 803C76FC-803C7710 02481C 0014+00 3/3 2/2 0/0 .data __vt__7JASInst */
SECTION_DATA extern void* __vt__7JASInst[5];
/* 80298014-8029807C 292954 0068+00 0/0 2/2 0/0 .text __ct__12JASBasicInstFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASBasicInst::JASBasicInst() {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/__ct__12JASBasicInstFv.s"
JASBasicInst::JASBasicInst() {
mVolume = 1.0;
mPitch = 1.0;
mKeymapCount = 0;
mKeymap = NULL;
JASCalc::bzero(field_0xc, sizeof(field_0xc));
}
#pragma pop
/* 8029807C-802980F8 2929BC 007C+00 1/0 0/0 0/0 .text __dt__12JASBasicInstFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASBasicInst::~JASBasicInst() {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/__dt__12JASBasicInstFv.s"
JASBasicInst::~JASBasicInst() {
delete[] mKeymap;
}
#pragma pop
/* 802980F8-8029819C 292A38 00A4+00 1/0 0/0 0/0 .text getParam__12JASBasicInstCFiiP12JASInstParam
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASBasicInst::getParam(int param_0, int param_1, JASInstParam* param_2) const {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/getParam__12JASBasicInstCFiiP12JASInstParam.s"
bool JASBasicInst::getParam(int param_0, int param_1, JASInstParam* param_2) const {
param_2->field_0x1c = 0;
param_2->field_0x1e = 0;
param_2->field_0x14 = (JASOscillator::Data**)&field_0xc;
param_2->field_0x1d = 2;
param_2->mVolume = mVolume;
param_2->mPitch = mPitch;
TKeymap* keyMap = NULL;
for (int i = 0; i < mKeymapCount; i++) {
if (param_0 <= mKeymap[i].field_0x0) {
keyMap = &mKeymap[i];
break;
}
}
if (keyMap == NULL) {
return false;
}
param_2->mVolume *= keyMap->field_0x8;
param_2->mPitch *= keyMap->field_0xc;
param_2->field_0x1a = keyMap->field_0x4;
return true;
}
#pragma pop
/* 8029819C-8029821C 292ADC 0080+00 0/0 2/2 0/0 .text
* setKeyRegionCount__12JASBasicInstFUlP7JKRHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASBasicInst::setKeyRegionCount(u32 param_0, JKRHeap* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/setKeyRegionCount__12JASBasicInstFUlP7JKRHeap.s"
void JASBasicInst::setKeyRegionCount(u32 count, JKRHeap* param_1) {
delete [] mKeymap;
mKeymap = new (param_1, 0) TKeymap[count];
mKeymapCount = count;
}
#pragma pop
/* 8029821C-8029822C 292B5C 0010+00 0/0 2/2 0/0 .text
* setOsc__12JASBasicInstFiPCQ213JASOscillator4Data */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASBasicInst::setOsc(int param_0, JASOscillator::Data const* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/setOsc__12JASBasicInstFiPCQ213JASOscillator4Data.s"
void JASBasicInst::setOsc(int param_0, JASOscillator::Data const* param_1) {
field_0xc[param_0] = param_1;
}
#pragma pop
/* 8029822C-80298250 292B6C 0024+00 0/0 2/2 0/0 .text getKeyRegion__12JASBasicInstFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASBasicInst::getKeyRegion(int param_0) {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/getKeyRegion__12JASBasicInstFi.s"
JASBasicInst::TKeymap* JASBasicInst::getKeyRegion(int param_0) {
if (param_0 >= mKeymapCount) {
return NULL;
}
return mKeymap + param_0;
}
#pragma pop
/* 80298250-8029828C 292B90 003C+00 2/2 0/0 0/0 .text __dt__Q212JASBasicInst7TKeymapFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASBasicInst::TKeymap::~TKeymap() {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/__dt__Q212JASBasicInst7TKeymapFv.s"
JASBasicInst::TKeymap::~TKeymap() {
}
#pragma pop
/* 8029828C-802982D4 292BCC 0048+00 1/0 0/0 0/0 .text __dt__7JASInstFv */
// If not here, default placement is after JASBasicInst::JASBasicInst
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASInst::~JASInst() {
//asm JASInst::~JASInst() {
asm void __dt__7JASInstFv() {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/__dt__7JASInstFv.s"
}
#pragma pop
/* 802982D4-802982E0 292C14 000C+00 1/1 0/0 0/0 .text __ct__Q212JASBasicInst7TKeymapFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASBasicInst::TKeymap::TKeymap() {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/__ct__Q212JASBasicInst7TKeymapFv.s"
JASBasicInst::TKeymap::TKeymap() {
field_0x0 = -1;
}
#pragma pop
/* 802982E0-802982EC 292C20 000C+00 1/0 0/0 0/0 .text getType__12JASBasicInstCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASBasicInst::getType() const {
nofralloc
#include "asm/JSystem/JAudio2/JASBasicInst/getType__12JASBasicInstCFv.s"
}
#pragma pop
+62 -118
View File
@@ -4,175 +4,119 @@
//
#include "JSystem/JAudio2/JASDrumSet.h"
#include "dol2asm.h"
#include "JSystem/JAudio2/JASCalc.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "dolphin/types.h"
//
// Types:
//
struct JKRHeap {};
struct JASInstParam {};
struct JASDrumSet {
struct TPerc {
/* 802984C4 */ TPerc();
/* 802984E4 */ void setRelease(u32);
};
/* 802982EC */ JASDrumSet();
/* 80298314 */ ~JASDrumSet();
/* 80298370 */ void newPercArray(u8, JKRHeap*);
/* 802983CC */ void getParam(int, int, JASInstParam*) const;
/* 802984B4 */ void setPerc(int, JASDrumSet::TPerc*);
/* 802984EC */ void getType() const;
};
struct JASCalc {
/* 8028F480 */ void bzero(void*, u32);
};
//
// Forward References:
//
extern "C" void __ct__10JASDrumSetFv();
extern "C" void __dt__10JASDrumSetFv();
extern "C" void newPercArray__10JASDrumSetFUcP7JKRHeap();
extern "C" void getParam__10JASDrumSetCFiiP12JASInstParam();
extern "C" void setPerc__10JASDrumSetFiPQ210JASDrumSet5TPerc();
extern "C" void __ct__Q210JASDrumSet5TPercFv();
extern "C" void setRelease__Q210JASDrumSet5TPercFUl();
extern "C" void getType__10JASDrumSetCFv();
//
// External References:
//
extern "C" void bzero__7JASCalcFPvUl();
extern "C" void* __nwa__FUlP7JKRHeapi();
extern "C" void __dl__FPv();
extern "C" extern void* __vt__7JASInst[5];
//
// Declarations:
//
/* ############################################################################################## */
/* 803C7710-803C7728 024830 0014+04 2/2 0/0 0/0 .data __vt__10JASDrumSet */
SECTION_DATA extern void* __vt__10JASDrumSet[5 + 1 /* padding */] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__10JASDrumSetFv,
(void*)getParam__10JASDrumSetCFiiP12JASInstParam,
(void*)getType__10JASDrumSetCFv,
/* padding */
NULL,
};
/* 802982EC-80298314 292C2C 0028+00 0/0 2/2 0/0 .text __ct__10JASDrumSetFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASDrumSet::JASDrumSet() {
nofralloc
#include "asm/JSystem/JAudio2/JASDrumSet/__ct__10JASDrumSetFv.s"
JASDrumSet::JASDrumSet() {
field_0x4 = NULL;
field_0x8 = 0;
}
#pragma pop
/* 80298314-80298370 292C54 005C+00 1/0 0/0 0/0 .text __dt__10JASDrumSetFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASDrumSet::~JASDrumSet() {
nofralloc
#include "asm/JSystem/JAudio2/JASDrumSet/__dt__10JASDrumSetFv.s"
JASDrumSet::~JASDrumSet() {
}
#pragma pop
/* 80298370-802983CC 292CB0 005C+00 0/0 2/2 0/0 .text newPercArray__10JASDrumSetFUcP7JKRHeap */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDrumSet::newPercArray(u8 param_0, JKRHeap* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASDrumSet/newPercArray__10JASDrumSetFUcP7JKRHeap.s"
void JASDrumSet::newPercArray(u8 param_0, JKRHeap* param_1) {
if (param_0) {
field_0x8 = param_0;
field_0x4 = new (param_1, 0) TPerc*[field_0x8];
JASCalc::bzero(field_0x4, field_0x8 * sizeof(TPerc*));
}
}
#pragma pop
/* ############################################################################################## */
/* 80431B58-80431B70 05E878 0018+00 1/1 0/0 0/0 .bss osc$213 */
static u8 osc[24];
static JASOscillator::Data osc;
/* 80451270-80451274 000770 0004+00 1/1 0/0 0/0 .sbss oscp$214 */
static u8 oscp[4];
static JASOscillator::Data* oscp;
/* 80451274-80451278 000774 0004+00 1/1 0/0 0/0 .sbss None */
static u8 data_80451274[4];
/* 80455648-8045564C 003C48 0004+00 2/2 0/0 0/0 .sdata2 @219 */
SECTION_SDATA2 static f32 lit_219 = 1.0f;
/* 8045564C-80455650 003C4C 0004+00 1/1 0/0 0/0 .sdata2 @220 */
SECTION_SDATA2 static u8 lit_220[4] = {
0x00,
0x00,
0x00,
0x00,
};
static s8 data_80451274[4];
/* 802983CC-802984B4 292D0C 00E8+00 1/0 0/0 0/0 .text getParam__10JASDrumSetCFiiP12JASInstParam */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDrumSet::getParam(int param_0, int param_1, JASInstParam* param_2) const {
nofralloc
#include "asm/JSystem/JAudio2/JASDrumSet/getParam__10JASDrumSetCFiiP12JASInstParam.s"
bool JASDrumSet::getParam(int param_0, int param_1, JASInstParam* param_2) const {
if (field_0x4 == NULL) {
return false;
}
if (param_0 >= field_0x8) {
return false;
}
TPerc* perc = field_0x4[param_0];
if (perc == NULL) {
return false;
}
param_2->field_0x1c = 0;
param_2->field_0x1e = 1;
param_2->mVolume = perc->mVolume;
param_2->mPitch = perc->mPitch;
param_2->mPan = perc->mPan;
param_2->field_0x18 = perc->field_0xc;
osc._00 = 0;
osc._04 = 1.0f;
osc._08 = NULL;
osc._0C = NULL;
osc._10 = 1.0f;
osc._14 = 0.0f;
if (data_80451274[0] == 0) {
oscp = &osc;
data_80451274[0] = 1;
}
param_2->field_0x14 = &oscp;
param_2->field_0x1d = 1;
param_2->mVolume *= perc->field_0x10;
param_2->mPitch *= perc->field_0x14;
param_2->field_0x1a = perc->field_0xe;
return true;
}
#pragma pop
/* 802984B4-802984C4 292DF4 0010+00 0/0 2/2 0/0 .text setPerc__10JASDrumSetFiPQ210JASDrumSet5TPerc
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDrumSet::setPerc(int param_0, JASDrumSet::TPerc* param_1) {
nofralloc
#include "asm/JSystem/JAudio2/JASDrumSet/setPerc__10JASDrumSetFiPQ210JASDrumSet5TPerc.s"
void JASDrumSet::setPerc(int param_0, JASDrumSet::TPerc* param_1) {
field_0x4[param_0] = param_1;
}
#pragma pop
/* ############################################################################################## */
/* 80455650-80455658 003C50 0004+04 1/1 0/0 0/0 .sdata2 @253 */
SECTION_SDATA2 static f32 lit_253[1 + 1 /* padding */] = {
0.5f,
/* padding */
0.0f,
};
/* 802984C4-802984E4 292E04 0020+00 0/0 2/2 0/0 .text __ct__Q210JASDrumSet5TPercFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JASDrumSet::TPerc::TPerc() {
nofralloc
#include "asm/JSystem/JAudio2/JASDrumSet/__ct__Q210JASDrumSet5TPercFv.s"
JASDrumSet::TPerc::TPerc() {
mVolume = 1.0f;
mPitch = 1.0f;
mPan = 0.5f;
field_0xc = 1000;
}
#pragma pop
/* 802984E4-802984EC -00001 0008+00 0/0 0/0 0/0 .text setRelease__Q210JASDrumSet5TPercFUl
*/
void JASDrumSet::TPerc::setRelease(u32 param_0) {
*(u16*)(((u8*)this) + 12) /* this->field_0xc */ = (u16)(param_0);
field_0xc = param_0;
}
/* 802984EC-802984F8 292E2C 000C+00 1/0 0/0 0/0 .text getType__10JASDrumSetCFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JASDrumSet::getType() const {
nofralloc
#include "asm/JSystem/JAudio2/JASDrumSet/getType__10JASDrumSetCFv.s"
}
#pragma pop
u32 JASDrumSet::getType() const { return 'PERC'; }
+4 -24
View File
@@ -40,37 +40,17 @@ extern "C" void _restgpr_29();
/* 802DCA1C-802DCA58 2D735C 003C+00 1/1 6/6 0/0 .text __dt__Q27JGadget13TNodeLinkListFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JGadget::TNodeLinkList::~TNodeLinkList() {
nofralloc
#include "asm/JSystem/JGadget/linklist/__dt__Q27JGadget13TNodeLinkListFv.s"
JGadget::TNodeLinkList::~TNodeLinkList() {
}
#pragma pop
/* 802DCA58-802DCAA0 2D7398 0048+00 0/0 2/2 0/0 .text
* erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iterator */
#ifdef NONMATCHING
JGadget::TNodeLinkList::iterator
JGadget::TNodeLinkList::erase(JGadget::TNodeLinkList::iterator it) {
TLinkListNode* node = it.node;
TLinkListNode* next = node->mNext;
iterator start(node);
iterator end(next);
return erase(start, end);
iterator it2 = JGadget::TNodeLinkList::iterator(it);
iterator next = ++it2;
return erase(it, next);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JGadget::TNodeLinkList::iterator
JGadget::TNodeLinkList::erase(JGadget::TNodeLinkList::iterator param_0) {
nofralloc
#include "asm/JSystem/JGadget/linklist/erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iterator.s"
}
#pragma pop
#endif
/* 802DCAA0-802DCB08 2D73E0 0068+00 1/1 0/0 0/0 .text
* erase__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorQ37JGadget13TNodeLinkList8iterator
+6
View File
@@ -342,6 +342,12 @@ void* JKRExpHeap::allocFromHead(u32 size, int align) {
} else {
CMemBlock* prev = foundBlock->mPrev;
CMemBlock* next = foundBlock->mNext;
// Works but very fake match
/*size = (u32)foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0);
removeFreeBlock(foundBlock);
if (size) {
setFreeBlock((CMemBlock*)size, prev, next);
}*/
newFreeBlock = foundBlock->allocFore(size, mCurrentGroupId, 0, 0, 0);
removeFreeBlock(foundBlock);
if (newFreeBlock) {
+1 -13
View File
@@ -188,25 +188,13 @@ void JKRHeap::free(void* ptr) {
}
/* 802CE574-802CE5CC 2C8EB4 0058+00 1/0 5/2 0/0 .text callAllDisposer__7JKRHeapFv */
// missing stack var
#ifdef NONMATCHING
void JKRHeap::callAllDisposer() {
JSUListIterator<JKRDisposer> iterator;
while (iterator = mDisposerList.getFirst(), iterator != mDisposerList.getEnd()) {
while ((iterator = mDisposerList.getFirst()) != mDisposerList.getEnd()) {
iterator->~JKRDisposer();
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JKRHeap::callAllDisposer() {
nofralloc
#include "asm/JSystem/JKernel/JKRHeap/callAllDisposer__7JKRHeapFv.s"
}
#pragma pop
#endif
/* 802CE5CC-802CE5F8 2C8F0C 002C+00 0/0 12/12 0/0 .text freeAll__7JKRHeapFv */
void JKRHeap::freeAll() {
+1 -1
View File
@@ -479,7 +479,7 @@ asm ResFONT* JUTResFont::getResFont() const {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u16 JUTResFont::getFontType() const {
asm int JUTResFont::getFontType() const {
nofralloc
#include "asm/JSystem/JUtility/JUTCacheFont/getFontType__10JUTResFontCFv.s"
}
+78 -28
View File
@@ -227,11 +227,11 @@ u32 JUTGamePad::read() {
u32 m_stick = mPadMStick[i].update(mPadStatus[i].stick_x, mPadStatus[i].stick_y,
sStickMode, WS_MAIN_STICK, mPadButton[i].mButton)
<< 0x18;
u32 s_stick = mPadSStick[i].update(mPadStatus[i].substick_x, mPadStatus[i].substick_y,
u32 s_stick = (mPadSStick[i].update(mPadStatus[i].substick_x, mPadStatus[i].substick_y,
sStickMode, WS_SUB_STICK, mPadButton[i].mButton)
<< 0x10;
u32 tmp = m_stick | s_stick;
mPadButton[i].update(&mPadStatus[i], tmp);
<< 0x10);
m_stick |= s_stick;
mPadButton[i].update(&mPadStatus[i], m_stick);
} else if (mPadStatus[i].error == -1) {
u32 m_stick = mPadMStick[i].update(0, 0, sStickMode, WS_MAIN_STICK, 0);
u32 s_stick = mPadSStick[i].update(0, 0, sStickMode, WS_SUB_STICK, 0);
@@ -258,7 +258,8 @@ u32 JUTGamePad::read() {
u32 s_stick = pad->mSubStick.update(status.substick_x, status.substick_y, sStickMode,
WS_SUB_STICK, pad->mButton.mButton)
<< 0x10;
pad->mButton.update(&status, m_stick | s_stick);
m_stick |= s_stick;
pad->mButton.update(&status, m_stick);
} else {
if (pad->mPortNum == -1) {
pad->assign();
@@ -639,24 +640,56 @@ void JUTGamePad::CRumble::stopMotor(int portNo, bool stop) {
}
/* 802E16F8-802E1720 2DC038 0028+00 1/1 0/0 0/0 .text getNumBit__FPUci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm u8 getNumBit(u8* param_0, int param_1) {
nofralloc
#include "asm/JSystem/JUtility/JUTGamePad/getNumBit__FPUci.s"
static bool getNumBit(u8* arr, int bitNo) {
u8 bit = (arr[bitNo >> 3] & (0x80 >> (bitNo & 7)));
return bit != 0;
}
#pragma pop
/* 802E1720-802E18A4 2DC060 0184+00 1/1 0/0 0/0 .text update__Q210JUTGamePad7CRumbleFs */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JUTGamePad::CRumble::update(s16 param_0) {
nofralloc
#include "asm/JSystem/JUtility/JUTGamePad/update__Q210JUTGamePad7CRumbleFs.s"
void JUTGamePad::CRumble::update(s16 portNo) {
if (isEnabledPort(portNo) == false) {
field_0x0 = 0;
field_0x4 = 0;
field_0x8 = NULL;
field_0xc = 0;
field_0x10 = NULL;
}
if (field_0x4 == 0) {
return;
}
if (field_0x0 >= field_0x4) {
stopMotor(portNo, true);
field_0x4 = 0;
} else if (field_0xc == 0) {
if (mStatus[portNo] == 0) {
startMotor(portNo);
}
return;
} else {
u32 temp = (field_0x0 / field_0xc);
bool numBit = getNumBit(field_0x8, field_0x0 - temp * field_0xc);
u8 status = mStatus[portNo] != false;
if (numBit && !status) {
startMotor(portNo);
} else if (!numBit) {
bool bit = false;
if (field_0x10) {
u32 temp = (field_0x0 / field_0xc);
bit = getNumBit(field_0x10, field_0x0 - temp * field_0xc);
}
if (status) {
stopMotor(portNo, bit);
} else if (bit) {
stopMotor(portNo, 1);
}
}
}
field_0x0++;
}
#pragma pop
/* 802E18A4-802E18CC 2DC1E4 0028+00 1/1 0/0 0/0 .text
* triggerPatternedRumble__Q210JUTGamePad7CRumbleFUl */
@@ -669,16 +702,22 @@ void JUTGamePad::CRumble::triggerPatternedRumble(u32 param_0) {
/* 802E18CC-802E1948 2DC20C 007C+00 0/0 2/2 0/0 .text
* startPatternedRumble__Q210JUTGamePad7CRumbleFPvQ310JUTGamePad7CRumble7ERumbleUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JUTGamePad::CRumble::startPatternedRumble(void* param_0,
JUTGamePad::CRumble::ERumble param_1,
u32 param_2) {
nofralloc
#include "asm/JSystem/JUtility/JUTGamePad/startPatternedRumble__Q210JUTGamePad7CRumbleFPvQ310JUTGamePad7CRumble7ERumbleUl.s"
void JUTGamePad::CRumble::startPatternedRumble(void* param_0, JUTGamePad::CRumble::ERumble param_1,
u32 param_2) {
field_0xc = ((*(u8*)param_0) << 8) + *((u8*)param_0 + 1);
field_0x8 = (u8*)param_0 + 2;
switch (param_1) {
case JUTGamePad::CRumble::VAL_0:
triggerPatternedRumble(field_0xc);
break;
case JUTGamePad::CRumble::VAL_1:
triggerPatternedRumble(-1);
break;
case JUTGamePad::CRumble::VAL_2:
triggerPatternedRumble(param_2);
break;
}
}
#pragma pop
/* 802E1948-802E1978 2DC288 0030+00 1/1 3/3 0/0 .text
* stopPatternedRumble__Q210JUTGamePad7CRumbleFs */
@@ -689,6 +728,16 @@ void JUTGamePad::CRumble::stopPatternedRumble(s16 port) {
/* 802E1978-802E199C 2DC2B8 0024+00 0/0 1/1 0/0 .text
* stopPatternedRumbleAtThePeriod__Q210JUTGamePad7CRumbleFv */
// r4 += (r5 - 1) is broken to r4 += r5 and r4 += 1
#ifdef NONMATCHING
void JUTGamePad::CRumble::stopPatternedRumbleAtThePeriod() {
u32 r5 = field_0xc;
u32 r4 = field_0x0;
r4 += (r5 - 1);
u32 temp = r4 / r5;
field_0x4 = r4 - temp * r5;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -697,6 +746,7 @@ asm void JUTGamePad::CRumble::stopPatternedRumbleAtThePeriod() {
#include "asm/JSystem/JUtility/JUTGamePad/stopPatternedRumbleAtThePeriod__Q210JUTGamePad7CRumbleFv.s"
}
#pragma pop
#endif
/* 802E199C-802E19D8 2DC2DC 003C+00 1/1 1/1 0/0 .text getGamePad__10JUTGamePadFi */
JUTGamePad* JUTGamePad::getGamePad(int padNo) {
+15 -18
View File
@@ -493,30 +493,27 @@ static const u16 halftofull[95] = {
/* 802DFDD8-802DFF60 2DA718 0188+00 2/2 0/0 0/0 .text getFontCode__10JUTResFontCFi */
#ifdef NONMATCHING
// still many issues
// regalloc
int JUTResFont::getFontCode(int param_0) const {
int ret = mInf1Ptr->width;
int ret = mInf1Ptr->defaultCode;
if ((getFontType() == 2) && (mMaxCode >= 0x8000U) && (param_0 >= 0x20) && (param_0 < 0x7FU)) {
param_0 = halftofull[param_0 - 32];
}
int j = 0;
for (int i = mMap1BlockNum; i > 0; j++, i--) {
if ((mpMapBlocks[j]->endCode <= param_0) && (param_0 <= mpMapBlocks[j]->numEntries)) {
ResFONT::MAP1* temp_r4 = mpMapBlocks[j];
if (temp_r4->startCode == 0) {
ret = param_0 - temp_r4->endCode;
for (int i = 0; i < mMap1BlockNum; i++) {
if ((mpMapBlocks[i]->startCode <= param_0) && (param_0 <= mpMapBlocks[i]->endCode)) {
if (mpMapBlocks[i]->mappingMethod == 0) {
ret = param_0 - mpMapBlocks[i]->endCode;
break;
} else if (temp_r4->startCode == 2) {
ret = *(&mpMapBlocks[j]->mLeading + ((param_0 - mpMapBlocks[j]->endCode)));
} else if (mpMapBlocks[i]->mappingMethod == 2) {
ret = *(&mpMapBlocks[i]->mLeading + ((param_0 - mpMapBlocks[i]->endCode)));
break;
} else if (temp_r4->startCode == 3) {
u16* leading_temp = &temp_r4->mLeading;
} else if (mpMapBlocks[i]->mappingMethod == 3) {
u16* leading_temp = &mpMapBlocks[i]->mLeading;
int phi_r5 = 0;
int phi_r6_2 = temp_r4->numEntries - 1;
int phi_r6_2 = mpMapBlocks[i]->numEntries - 1;
while (phi_r6_2 >= phi_r5) {
u32 temp_r3 = phi_r6_2 + phi_r5;
int temp_r7 = (int)((temp_r3 >> 0x1FU) + phi_r6_2 + phi_r5) >> 1;
int temp_r7 = (phi_r6_2 + phi_r5) / 2;
if (param_0 < leading_temp[temp_r7 * 2]) {
phi_r6_2 = temp_r7 - 1;
@@ -531,10 +528,10 @@ int JUTResFont::getFontCode(int param_0) const {
ret = leading_temp[temp_r7 * 2 + 1];
break;
}
} else if (temp_r4->startCode == 1) {
} else if (mpMapBlocks[i]->mappingMethod == 1) {
u16* phi_r5_2 = NULL;
if (temp_r4->numEntries == 1) {
phi_r5_2 = &temp_r4->mLeading;
if (mpMapBlocks[i]->numEntries == 1) {
phi_r5_2 = &mpMapBlocks[i]->mLeading;
}
ret = convertSjis(param_0, phi_r5_2);
break;
+45 -36
View File
@@ -5,7 +5,9 @@
#include "JSystem/JUtility/JUTResource.h"
#include "JSystem/JKernel/JKRFileLoader.h"
#include "dol2asm.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JSupport/JSUInputStream.h"
#include "MSL_C/MSL_Common/Src/string.h"
#include "dolphin/types.h"
//
@@ -16,57 +18,64 @@
// Forward References:
//
extern "C" void getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive();
extern "C" void getResource__15JUTResReferenceFPCvUlP10JKRArchive();
extern "C" void getResource__15JUTResReferenceFUlP10JKRArchive();
//
// External References:
//
SECTION_INIT void memcpy();
extern "C" void getGlbResource__13JKRFileLoaderFPCc();
extern "C" void getGlbResource__13JKRFileLoaderFPCcP13JKRFileLoader();
extern "C" void getGlbResource__10JKRArchiveFUlPCcP10JKRArchive();
extern "C" void read__14JSUInputStreamFPvl();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* 802DE078-802DE120 2D89B8 00A8+00 0/0 1/1 0/0 .text
* getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void* JUTResReference::getResource(JSUInputStream* param_0, u32 param_1, JKRArchive* param_2) {
nofralloc
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive.s"
void *JUTResReference::getResource(JSUInputStream *stream, u32 resType, JKRArchive *archive) {
stream->read(&mType, 1);
stream->read(&mNameLength, 1);
stream->read(&mName, mNameLength);
if (mType == RESTYPE_Unk2 || mType == RESTYPE_Unk3 || mType == RESTYPE_Unk4)
{
mName[mNameLength] = 0;
}
return getResource(resType, archive);
}
#pragma pop
/* 802DE120-802DE1BC 2D8A60 009C+00 0/0 2/2 0/0 .text
* getResource__15JUTResReferenceFPCvUlP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void* JUTResReference::getResource(void const* param_0, u32 param_1, JKRArchive* param_2) {
nofralloc
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFPCvUlP10JKRArchive.s"
void *JUTResReference::getResource(const void *data, u32 resType, JKRArchive *archive) {
mType = *(u8*)data;
mNameLength = *((u8*)data + 1);
if (mNameLength != 0) {
memcpy(&mName, &((u8 *)data)[2], mNameLength);
}
if (mType == RESTYPE_Unk2 || mType == RESTYPE_Unk3 || mType == RESTYPE_Unk4) {
mName[mNameLength] = 0;
}
return getResource(resType, archive);
}
#pragma pop
/* 802DE1BC-802DE234 2D8AFC 0078+00 2/2 0/0 0/0 .text
* getResource__15JUTResReferenceFUlP10JKRArchive */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void* JUTResReference::getResource(u32 param_0, JKRArchive* param_1) {
nofralloc
#include "asm/JSystem/JUtility/JUTResource/getResource__15JUTResReferenceFUlP10JKRArchive.s"
void *JUTResReference::getResource(u32 resType, JKRArchive *archive) {
void *res = NULL;
switch (mType) {
case RESTYPE_Unk1:
break;
case RESTYPE_Unk2:
res = JKRArchive::getGlbResource(resType, mName, archive);
break;
case RESTYPE_Unk3:
res = JKRFileLoader::getGlbResource(mName, archive);
break;
case RESTYPE_Unk4:
res = JKRFileLoader::getGlbResource(mName);
break;
}
return res;
}
#pragma pop
+73 -89
View File
@@ -5,7 +5,6 @@
#include "JSystem/JUtility/JUTTexture.h"
#include "JSystem/JUtility/JUTPalette.h"
#include "dol2asm.h"
#include "dolphin/gx/GX.h"
#include "dolphin/types.h"
@@ -13,28 +12,10 @@
// Forward References:
//
extern "C" void __dt__10JUTTextureFv();
extern "C" void storeTIMG__10JUTTextureFPC7ResTIMGUc();
extern "C" void storeTIMG__10JUTTextureFPC7ResTIMGP10JUTPalette();
extern "C" void storeTIMG__10JUTTextureFPC7ResTIMGP10JUTPalette7_GXTlut();
extern "C" void attachPalette__10JUTTextureFP10JUTPalette();
extern "C" void init__10JUTTextureFv();
extern "C" void initTexObj__10JUTTextureFv();
extern "C" void initTexObj__10JUTTextureF7_GXTlut();
extern "C" void load__10JUTTextureF11_GXTexMapID();
//
// External References:
//
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void __dla__FPv();
extern "C" void storeTLUT__10JUTPaletteF7_GXTlut10_GXTlutFmt15JUTTransparencyUsPv();
extern "C" void load__10JUTPaletteFv();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
//
// Declarations:
//
@@ -50,7 +31,6 @@ JUTTexture::~JUTTexture() {
}
/* 802DE2A8-802DE44C 2D8BE8 01A4+00 0/0 18/18 0/0 .text storeTIMG__10JUTTextureFPC7ResTIMGUc */
#ifdef NONMATCHING
void JUTTexture::storeTIMG(ResTIMG const* param_0, u8 param_1) {
_GXTlut tlut;
@@ -72,41 +52,29 @@ void JUTTexture::storeTIMG(ResTIMG const* param_0, u8 param_1) {
mMaxLOD = (s8)mTexInfo->maxLOD;
mLODBias = mTexInfo->LODBias;
ResTIMG* tmp = (ResTIMG*)mTexInfo;
if (mTexInfo->numColors == 0) {
initTexObj();
} else {
if (mTexInfo->numColors > 0x100) {
tlut = (_GXTlut)param_1;
tlut = (_GXTlut)((param_1 % 4) + GX_BIGTLUT0);
} else {
tlut = (_GXTlut)((param_1 & 3) + GX_BIGTLUT0);
tlut = (_GXTlut)param_1;
}
if (mEmbPalette == NULL || !getEmbPaletteDelFlag()) {
mEmbPalette = new JUTPalette(tlut, (_GXTlutFmt)tmp->colorFormat,
(JUTTransparency)tmp->alphaEnabled, tmp->numColors,
(void*)(tmp->format + tmp->paletteOffset));
mEmbPalette = new JUTPalette(tlut, (_GXTlutFmt)mTexInfo->colorFormat,
(JUTTransparency)mTexInfo->alphaEnabled, mTexInfo->numColors,
(void*)(&mTexInfo->format + mTexInfo->paletteOffset));
mFlags = mFlags & 1 | 2;
} else {
mEmbPalette->storeTLUT(tlut, (_GXTlutFmt)tmp->colorFormat,
(JUTTransparency)tmp->alphaEnabled, tmp->numColors,
(void*)(tmp->format + tmp->paletteOffset));
mEmbPalette->storeTLUT(tlut, (_GXTlutFmt)mTexInfo->colorFormat,
(JUTTransparency)mTexInfo->alphaEnabled, mTexInfo->numColors,
(void*)(&mTexInfo->format + mTexInfo->paletteOffset));
}
attachPalette(mEmbPalette);
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JUTTexture::storeTIMG(ResTIMG const* param_0, u8 param_1) {
nofralloc
#include "asm/JSystem/JUtility/JUTTexture/storeTIMG__10JUTTextureFPC7ResTIMGUc.s"
}
#pragma pop
#endif
/* 802DE44C-802DE480 2D8D8C 0034+00 0/0 6/6 0/0 .text
* storeTIMG__10JUTTextureFPC7ResTIMGP10JUTPalette */
@@ -123,14 +91,45 @@ void JUTTexture::storeTIMG(ResTIMG const* param_0, JUTPalette* param_1) {
/* 802DE480-802DE5B0 2D8DC0 0130+00 1/1 3/3 0/0 .text
* storeTIMG__10JUTTextureFPC7ResTIMGP10JUTPalette7_GXTlut */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JUTTexture::storeTIMG(ResTIMG const* param_0, JUTPalette* param_1, _GXTlut param_2) {
nofralloc
#include "asm/JSystem/JUtility/JUTTexture/storeTIMG__10JUTTextureFPC7ResTIMGP10JUTPalette7_GXTlut.s"
void JUTTexture::storeTIMG(ResTIMG const* param_0, JUTPalette* param_1, _GXTlut param_2) {
_GXTlut type;
if (param_0 == NULL) {
return;
}
mTexInfo = param_0;
mTexData = ((u8*)mTexInfo) + mTexInfo->imageOffset;
if (mTexInfo->imageOffset == 0) {
mTexData = ((u8*)mTexInfo) + sizeof(ResTIMG);
}
if (getEmbPaletteDelFlag()) {
delete mEmbPalette;
}
mEmbPalette = param_1;
setEmbPaletteDelFlag(false);
field_0x2c = NULL;
if (param_1 != NULL) {
mTlutName = param_2;
if (param_2 != param_1->getTlutName()) {
u8 format = param_1->getFormat();
u8 transperancy = param_1->getTransparency();
u16 numColors = param_1->getNumColors();
ResTLUT* colorTable = param_1->getColorTable();
param_1->storeTLUT(param_2, (_GXTlutFmt)format,
(JUTTransparency)transperancy,
numColors, colorTable);
}
}
mWrapS = mTexInfo->wrapS;
mWrapT = mTexInfo->wrapT;
mMinFilter = mTexInfo->minFilter;
mMagFilter = mTexInfo->magFilter;
mMinLOD = mTexInfo->minLOD;
mMaxLOD = mTexInfo->maxLOD;
mLODBias = mTexInfo->LODBias;
init();
}
#pragma pop
/* 802DE5B0-802DE608 2D8EF0 0058+00 1/1 7/7 0/0 .text attachPalette__10JUTTextureFP10JUTPalette */
void JUTTexture::attachPalette(JUTPalette* param_0) {
@@ -159,58 +158,43 @@ void JUTTexture::init() {
}
}
/* ############################################################################################## */
/* 80455FD8-80455FDC 0045D8 0004+00 2/2 0/0 0/0 .sdata2 @453 */
SECTION_SDATA2 static f32 lit_453 = 0.125f;
/* 80455FDC-80455FE0 0045DC 0004+00 2/2 0/0 0/0 .sdata2 @454 */
SECTION_SDATA2 static f32 lit_454 = 100.0f;
/* 80455FE0-80455FE8 0045E0 0008+00 2/2 0/0 0/0 .sdata2 @456 */
SECTION_SDATA2 static f64 lit_456 = 4503599627370496.0 /* cast u32 to float */;
/* 80455FE8-80455FF0 0045E8 0008+00 2/2 0/0 0/0 .sdata2 @459 */
SECTION_SDATA2 static f64 lit_459 = 4503601774854144.0 /* cast s32 to float */;
/* 802DE658-802DE744 2D8F98 00EC+00 2/2 0/0 0/0 .text initTexObj__10JUTTextureFv */
#ifdef NONMATCHING
void JUTTexture::initTexObj() {
int offset;
if (mTexInfo->mipmapEnabled) {
offset = mTexInfo->imageOffset;
GXBool mipmapEnabled;
if (mTexInfo->mipmapEnabled != 0) {
mipmapEnabled = 1;
} else {
offset = 0x20;
mipmapEnabled = 0;
}
GXInitTexObj(&mTexObj, &mTexInfo + offset, mTexInfo->width, mTexInfo->height,
(GXTexFmt)mTexInfo->format, (GXTexWrapMode)mTexInfo->wrapS,
(GXTexWrapMode)mTexInfo->wrapT, mTexInfo->mipmapEnabled);
GXInitTexObjLOD(&mTexObj, (GXTexFilter)mTexInfo->minFilter, (GXTexFilter)mTexInfo->magFilter,
mTexInfo->minLOD, mTexInfo->maxLOD, mTexInfo->LODBias, mTexInfo->biasClamp,
u8* image = ((u8*)mTexInfo);
image += (mTexInfo->imageOffset ? mTexInfo->imageOffset : 0x20);
GXInitTexObj(&mTexObj, image, mTexInfo->width, mTexInfo->height,
(GXTexFmt)mTexInfo->format, (GXTexWrapMode)mWrapS,
(GXTexWrapMode)mWrapT, mipmapEnabled);
GXInitTexObjLOD(&mTexObj, (GXTexFilter)mMinFilter, (GXTexFilter)mMagFilter,
mMinLOD / 8.0f, mMaxLOD / 8.0f, mLODBias / 100.0f, mTexInfo->biasClamp,
mTexInfo->doEdgeLOD, (GXAnisotropy)mTexInfo->maxAnisotropy);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JUTTexture::initTexObj() {
nofralloc
#include "asm/JSystem/JUtility/JUTTexture/initTexObj__10JUTTextureFv.s"
}
#pragma pop
#endif
/* 802DE744-802DE840 2D9084 00FC+00 2/2 0/0 0/0 .text initTexObj__10JUTTextureF7_GXTlut
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JUTTexture::initTexObj(_GXTlut param_0) {
nofralloc
#include "asm/JSystem/JUtility/JUTTexture/initTexObj__10JUTTextureF7_GXTlut.s"
void JUTTexture::initTexObj(_GXTlut param_0) {
GXBool mipmapEnabled;
if (mTexInfo->mipmapEnabled != 0) {
mipmapEnabled = 1;
} else {
mipmapEnabled = 0;
}
mTlutName = param_0;
u8* image = ((u8*)mTexInfo);
image += (mTexInfo->imageOffset ? mTexInfo->imageOffset : 0x20);
GXInitTexObjCI(&mTexObj, image, mTexInfo->width, mTexInfo->height,
(GXCITexFmt)mTexInfo->format, (GXTexWrapMode)mWrapS,
(GXTexWrapMode)mWrapT, mipmapEnabled, param_0);
GXInitTexObjLOD(&mTexObj, (GXTexFilter)mMinFilter, (GXTexFilter)mMagFilter,
mMinLOD / 8.0f, mMaxLOD / 8.0f, mLODBias / 100.0f, mTexInfo->biasClamp,
mTexInfo->doEdgeLOD, (GXAnisotropy)mTexInfo->maxAnisotropy);
}
#pragma pop
/* 802DE840-802DE890 2D9180 0050+00 0/0 14/14 0/0 .text load__10JUTTextureF11_GXTexMapID
*/
+42
View File
@@ -5,7 +5,9 @@
#include "rel/d/a/e/d_a_e_ym/d_a_e_ym.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "SSystem/SComponent/c_math.h"
#include "d/a/d_a_player.h"
#include "d/d_path.h"
#include "d/d_procname.h"
#include "dol2asm.h"
@@ -851,6 +853,25 @@ COMPILER_STRIP_GATE(0x808159F0, &lit_4215);
#pragma pop
/* 80808884-808089DC 000844 0158+00 8/8 0/0 0/0 .text setElecEffect1__8daE_YM_cFv */
// matches with literals
#ifdef NONMATCHING
void daE_YM_c::setElecEffect1() {
f32 fVar3 = (field_0x68c * 10.0f) / 6.0f;
cXyz cStack_2c(fVar3, fVar3, fVar3);
MtxP iVar5;
if (mFlyType == true) {
iVar5 = field_0x5b4->getModel()->i_getAnmMtx(8);
} else {
iVar5 = field_0x5b4->getModel()->i_getAnmMtx(0);
}
cXyz cStack_38(iVar5[0][3], iVar5[1][3], iVar5[2][3]);
field_0xad8 = dComIfGp_particle_set(field_0xad8, 0x8393, &cStack_38, &mTevStr, &shape_angle, &cStack_2c,
0xff, 0, 0xffffffff, 0, 0, 0);
field_0xadc = dComIfGp_particle_set(field_0xadc, 0x8394, &cStack_38, &mTevStr, &shape_angle, &cStack_2c,
0xff, 0, 0xffffffff, 0, 0, 0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -859,8 +880,28 @@ asm void daE_YM_c::setElecEffect1() {
#include "asm/rel/d/a/e/d_a_e_ym/d_a_e_ym/setElecEffect1__8daE_YM_cFv.s"
}
#pragma pop
#endif
/* 808089DC-80808B3C 00099C 0160+00 9/9 0/0 0/0 .text setElecEffect2__8daE_YM_cFv */
// Matches with literals
#ifdef NONMATCHING
void daE_YM_c::setElecEffect2() {
f32 fVar3 = (field_0x68c * 10.0f) / 6.0f;
cXyz cStack_2c(fVar3, fVar3, fVar3);
MtxP iVar5;
if (mFlyType == true) {
iVar5 = field_0x5b4->getModel()->i_getAnmMtx(8);
} else {
iVar5 = field_0x5b4->getModel()->i_getAnmMtx(0);
}
cXyz cStack_38(iVar5[0][3], iVar5[1][3], iVar5[2][3]);
setElecEffect1();
field_0xae0 = dComIfGp_particle_set(field_0xae0, 0x8395, &cStack_38, &mTevStr, &shape_angle, &cStack_2c,
0xff, 0, 0xffffffff, 0, 0, 0);
field_0xae4 = dComIfGp_particle_set(field_0xae4, 0x8396, &cStack_38, &mTevStr, &shape_angle, &cStack_2c,
0xff, 0, 0xffffffff, 0, 0, 0);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -869,6 +910,7 @@ asm void daE_YM_c::setElecEffect2() {
#include "asm/rel/d/a/e/d_a_e_ym/d_a_e_ym/setElecEffect2__8daE_YM_cFv.s"
}
#pragma pop
#endif
/* 80808B3C-80808E34 000AFC 02F8+00 1/1 0/0 0/0 .text setFireEffect__8daE_YM_cFv */
#pragma push