diff --git a/asm/JAudio2/JASTrack.s b/asm/JAudio2/JASTrack.s index 62f83b9a4d..246d24a19a 100644 --- a/asm/JAudio2/JASTrack.s +++ b/asm/JAudio2/JASTrack.s @@ -2219,7 +2219,7 @@ lbl_80292FD8: /* 80292FF4 0028FF34 38 61 00 10 */ addi r3, r1, 0x10 /* 80292FF8 0028FF38 7F C4 F3 78 */ mr r4, r30 /* 80292FFC 0028FF3C 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80293000 0028FF40 48 04 9B A9 */ bl JGadget_NS_TNodeLinkList_NS_Insert +/* 80293000 0028FF40 48 04 9B A9 */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode lbl_80293004: /* 80293004 0028FF44 83 E1 00 2C */ lwz r31, 0x2c(r1) /* 80293008 0028FF48 83 C1 00 28 */ lwz r30, 0x28(r1) @@ -2557,7 +2557,7 @@ JASTrack_NS_TList_NS_dtor: /* 80293478 002903B8 41 82 00 20 */ beq lbl_80293498 /* 8029347C 002903BC 41 82 00 0C */ beq lbl_80293488 /* 80293480 002903C0 38 80 00 00 */ li r4, 0 -/* 80293484 002903C4 48 04 95 99 */ bl JGadget_NS_TNodeLinkList_NS_dtor +/* 80293484 002903C4 48 04 95 99 */ bl __dt__Q27JGadget13TNodeLinkListFv lbl_80293488: /* 80293488 002903C8 7F E0 07 35 */ extsh. r0, r31 /* 8029348C 002903CC 40 81 00 0C */ ble lbl_80293498 diff --git a/asm/JGadget/binary.s b/asm/JGadget/binary.s index b669d88283..2cf6e6907e 100644 --- a/asm/JGadget/binary.s +++ b/asm/JGadget/binary.s @@ -34,8 +34,8 @@ lbl_802DC8C0: /* 802DC8C0 002D9800 38 21 00 10 */ addi r1, r1, 0x10 /* 802DC8C4 002D9804 4E 80 00 20 */ blr -.global JGadget_NS_binary_NS_TParse_header_block_NS_dtor -JGadget_NS_binary_NS_TParse_header_block_NS_dtor: +.global __dt__Q37JGadget6binary19TParse_header_blockFv +__dt__Q37JGadget6binary19TParse_header_blockFv: /* 802DC8C8 002D9808 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802DC8CC 002D980C 7C 08 02 A6 */ mflr r0 /* 802DC8D0 002D9810 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/asm/JGadget/linklist.s b/asm/JGadget/linklist.s index c6e64b35fd..39ab60791e 100644 --- a/asm/JGadget/linklist.s +++ b/asm/JGadget/linklist.s @@ -2,26 +2,6 @@ .section .text, "ax" # 802dca1c - -.global JGadget_NS_TNodeLinkList_NS_dtor -JGadget_NS_TNodeLinkList_NS_dtor: -/* 802DCA1C 002D995C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802DCA20 002D9960 7C 08 02 A6 */ mflr r0 -/* 802DCA24 002D9964 90 01 00 14 */ stw r0, 0x14(r1) -/* 802DCA28 002D9968 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802DCA2C 002D996C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802DCA30 002D9970 41 82 00 10 */ beq lbl_802DCA40 -/* 802DCA34 002D9974 7C 80 07 35 */ extsh. r0, r4 -/* 802DCA38 002D9978 40 81 00 08 */ ble lbl_802DCA40 -/* 802DCA3C 002D997C 4B FF 23 01 */ bl __dl__FPv -lbl_802DCA40: -/* 802DCA40 002D9980 7F E3 FB 78 */ mr r3, r31 -/* 802DCA44 002D9984 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802DCA48 002D9988 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802DCA4C 002D998C 7C 08 03 A6 */ mtlr r0 -/* 802DCA50 002D9990 38 21 00 10 */ addi r1, r1, 0x10 -/* 802DCA54 002D9994 4E 80 00 20 */ blr - .global JGadget_NS_TNodeLinkList_NS_erase JGadget_NS_TNodeLinkList_NS_erase: /* 802DCA58 002D9998 94 21 FF E0 */ stwu r1, -0x20(r1) @@ -110,7 +90,7 @@ lbl_802DCB60: /* 802DCB80 002D9AC0 7F A4 EB 78 */ mr r4, r29 /* 802DCB84 002D9AC4 38 A1 00 10 */ addi r5, r1, 0x10 /* 802DCB88 002D9AC8 7F E6 FB 78 */ mr r6, r31 -/* 802DCB8C 002D9ACC 48 00 00 1D */ bl JGadget_NS_TNodeLinkList_NS_Insert +/* 802DCB8C 002D9ACC 48 00 00 1D */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode lbl_802DCB90: /* 802DCB90 002D9AD0 39 61 00 40 */ addi r11, r1, 0x40 /* 802DCB94 002D9AD4 48 08 56 95 */ bl _restgpr_29 @@ -119,8 +99,8 @@ lbl_802DCB90: /* 802DCBA0 002D9AE0 38 21 00 40 */ addi r1, r1, 0x40 /* 802DCBA4 002D9AE4 4E 80 00 20 */ blr -.global JGadget_NS_TNodeLinkList_NS_Insert -JGadget_NS_TNodeLinkList_NS_Insert: +.global Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode +Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode: /* 802DCBA8 002D9AE8 80 A5 00 00 */ lwz r5, 0(r5) /* 802DCBAC 002D9AEC 80 E5 00 04 */ lwz r7, 4(r5) /* 802DCBB0 002D9AF0 90 A6 00 00 */ stw r5, 0(r6) @@ -195,7 +175,7 @@ lbl_802DCC8C: /* 802DCCA0 002D9BE0 40 82 FF A8 */ bne lbl_802DCC48 /* 802DCCA4 002D9BE4 38 61 00 30 */ addi r3, r1, 0x30 /* 802DCCA8 002D9BE8 38 80 FF FF */ li r4, -1 -/* 802DCCAC 002D9BEC 4B FF FD 71 */ bl JGadget_NS_TNodeLinkList_NS_dtor +/* 802DCCAC 002D9BEC 4B FF FD 71 */ bl __dt__Q27JGadget13TNodeLinkListFv /* 802DCCB0 002D9BF0 39 61 00 50 */ addi r11, r1, 0x50 /* 802DCCB4 002D9BF4 48 08 55 71 */ bl _restgpr_28 /* 802DCCB8 002D9BF8 80 01 00 54 */ lwz r0, 0x54(r1) diff --git a/asm/JMessage/resource.s b/asm/JMessage/resource.s index 18dd2d0dcd..2d338289ed 100644 --- a/asm/JMessage/resource.s +++ b/asm/JMessage/resource.s @@ -189,7 +189,7 @@ JMessage_NS_TResourceContainer_NS_TCResource_NS_dtor: /* 802A8F30 002A5E70 90 1E 00 0C */ stw r0, 0xc(r30) /* 802A8F34 002A5E74 41 82 00 0C */ beq lbl_802A8F40 /* 802A8F38 002A5E78 38 80 00 00 */ li r4, 0 -/* 802A8F3C 002A5E7C 48 03 3A E1 */ bl JGadget_NS_TNodeLinkList_NS_dtor +/* 802A8F3C 002A5E7C 48 03 3A E1 */ bl __dt__Q27JGadget13TNodeLinkListFv lbl_802A8F40: /* 802A8F40 002A5E80 7F E0 07 35 */ extsh. r0, r31 /* 802A8F44 002A5E84 40 81 00 0C */ ble lbl_802A8F50 @@ -361,7 +361,7 @@ JMessage_NS_TParse: /* 802A917C 002A60BC 38 04 9C 94 */ addi r0, r4, lbl_803C9C94@l /* 802A9180 002A60C0 90 1E 00 00 */ stw r0, 0(r30) /* 802A9184 002A60C4 38 80 00 00 */ li r4, 0 -/* 802A9188 002A60C8 48 03 37 41 */ bl JGadget_NS_binary_NS_TParse_header_block_NS_dtor +/* 802A9188 002A60C8 48 03 37 41 */ bl __dt__Q37JGadget6binary19TParse_header_blockFv /* 802A918C 002A60CC 7F E0 07 35 */ extsh. r0, r31 /* 802A9190 002A60D0 40 81 00 0C */ ble lbl_802A919C /* 802A9194 002A60D4 7F C3 F3 78 */ mr r3, r30 @@ -451,7 +451,7 @@ lbl_802A92A8: /* 802A92C0 002A6200 38 61 00 10 */ addi r3, r1, 0x10 /* 802A92C4 002A6204 7F A4 EB 78 */ mr r4, r29 /* 802A92C8 002A6208 38 A1 00 14 */ addi r5, r1, 0x14 -/* 802A92CC 002A620C 48 03 38 DD */ bl JGadget_NS_TNodeLinkList_NS_Insert +/* 802A92CC 002A620C 48 03 38 DD */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode /* 802A92D0 002A6210 80 7F 00 08 */ lwz r3, 8(r31) /* 802A92D4 002A6214 93 C3 00 08 */ stw r30, 8(r3) /* 802A92D8 002A6218 38 60 00 01 */ li r3, 1 diff --git a/asm/JStudio/ctb.s b/asm/JStudio/ctb.s index a9333e90b8..9577451acf 100644 --- a/asm/JStudio/ctb.s +++ b/asm/JStudio/ctb.s @@ -86,7 +86,7 @@ JStudio_NS_ctb_NS_TControl_NS_dtor: /* 80281024 0027DF64 41 82 00 10 */ beq lbl_80281034 /* 80281028 0027DF68 38 7E 00 08 */ addi r3, r30, 8 /* 8028102C 0027DF6C 38 80 00 00 */ li r4, 0 -/* 80281030 0027DF70 48 05 B9 ED */ bl JGadget_NS_TNodeLinkList_NS_dtor +/* 80281030 0027DF70 48 05 B9 ED */ bl __dt__Q27JGadget13TNodeLinkListFv lbl_80281034: /* 80281034 0027DF74 7F E0 07 35 */ extsh. r0, r31 /* 80281038 0027DF78 40 81 00 0C */ ble lbl_80281044 @@ -117,7 +117,7 @@ JStudio_NS_ctb_NS_TControl_NS_appendObject: /* 8028108C 0027DFCC 38 61 00 10 */ addi r3, r1, 0x10 /* 80281090 0027DFD0 38 85 00 08 */ addi r4, r5, 8 /* 80281094 0027DFD4 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80281098 0027DFD8 48 05 BB 11 */ bl JGadget_NS_TNodeLinkList_NS_Insert +/* 80281098 0027DFD8 48 05 BB 11 */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode /* 8028109C 0027DFDC 80 01 00 24 */ lwz r0, 0x24(r1) /* 802810A0 0027DFE0 7C 08 03 A6 */ mtlr r0 /* 802810A4 0027DFE4 38 21 00 20 */ addi r1, r1, 0x20 @@ -352,7 +352,7 @@ JStudio_NS_ctb_NS_TParse_NS_dtor: /* 802813A0 0027E2E0 38 04 48 78 */ addi r0, r4, lbl_803C4878@l /* 802813A4 0027E2E4 90 1E 00 00 */ stw r0, 0(r30) /* 802813A8 0027E2E8 38 80 00 00 */ li r4, 0 -/* 802813AC 0027E2EC 48 05 B5 1D */ bl JGadget_NS_binary_NS_TParse_header_block_NS_dtor +/* 802813AC 0027E2EC 48 05 B5 1D */ bl __dt__Q37JGadget6binary19TParse_header_blockFv /* 802813B0 0027E2F0 7F E0 07 35 */ extsh. r0, r31 /* 802813B4 0027E2F4 40 81 00 0C */ ble lbl_802813C0 /* 802813B8 0027E2F8 7F C3 F3 78 */ mr r3, r30 diff --git a/asm/JStudio/fvb.s b/asm/JStudio/fvb.s index f38f9d5656..d13ae64696 100644 --- a/asm/JStudio/fvb.s +++ b/asm/JStudio/fvb.s @@ -520,7 +520,7 @@ JStudio_NS_fvb_NS_TControl_NS_dtor: /* 802846C8 00281608 41 82 00 10 */ beq lbl_802846D8 /* 802846CC 0028160C 38 7E 00 08 */ addi r3, r30, 8 /* 802846D0 00281610 38 80 00 00 */ li r4, 0 -/* 802846D4 00281614 48 05 83 49 */ bl JGadget_NS_TNodeLinkList_NS_dtor +/* 802846D4 00281614 48 05 83 49 */ bl __dt__Q27JGadget13TNodeLinkListFv lbl_802846D8: /* 802846D8 00281618 7F E0 07 35 */ extsh. r0, r31 /* 802846DC 0028161C 40 81 00 0C */ ble lbl_802846E8 @@ -551,7 +551,7 @@ JStudio_NS_fvb_NS_TControl_NS_appendObject: /* 80284730 00281670 38 61 00 10 */ addi r3, r1, 0x10 /* 80284734 00281674 38 85 00 08 */ addi r4, r5, 8 /* 80284738 00281678 38 A1 00 14 */ addi r5, r1, 0x14 -/* 8028473C 0028167C 48 05 84 6D */ bl JGadget_NS_TNodeLinkList_NS_Insert +/* 8028473C 0028167C 48 05 84 6D */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode /* 80284740 00281680 80 01 00 24 */ lwz r0, 0x24(r1) /* 80284744 00281684 7C 08 03 A6 */ mtlr r0 /* 80284748 00281688 38 21 00 20 */ addi r1, r1, 0x20 @@ -852,7 +852,7 @@ JStudio_NS_fvb_NS_TParse_NS_dtor: /* 80284B20 00281A60 38 04 4A 1C */ addi r0, r4, lbl_803C4A1C@l /* 80284B24 00281A64 90 1E 00 00 */ stw r0, 0(r30) /* 80284B28 00281A68 38 80 00 00 */ li r4, 0 -/* 80284B2C 00281A6C 48 05 7D 9D */ bl JGadget_NS_binary_NS_TParse_header_block_NS_dtor +/* 80284B2C 00281A6C 48 05 7D 9D */ bl __dt__Q37JGadget6binary19TParse_header_blockFv /* 80284B30 00281A70 7F E0 07 35 */ extsh. r0, r31 /* 80284B34 00281A74 40 81 00 0C */ ble lbl_80284B40 /* 80284B38 00281A78 7F C3 F3 78 */ mr r3, r30 diff --git a/asm/JStudio/jstudio-control.s b/asm/JStudio/jstudio-control.s index 927153718a..7e0c5cd056 100644 --- a/asm/JStudio/jstudio-control.s +++ b/asm/JStudio/jstudio-control.s @@ -10,7 +10,7 @@ JStudio_NS_TControl: /* 8028511C 0028205C 90 01 00 24 */ stw r0, 0x24(r1) /* 80285120 00282060 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80285124 00282064 7C 7F 1B 78 */ mr r31, r3 -/* 80285128 00282068 48 00 3F 8D */ bl JStudio_NS_stb_NS_TControl +/* 80285128 00282068 48 00 3F 8D */ bl __ct__Q37JStudio3stb8TControlFv /* 8028512C 0028206C 3C 60 80 3C */ lis r3, lbl_803C4AF4@ha /* 80285130 00282070 38 03 4A F4 */ addi r0, r3, lbl_803C4AF4@l /* 80285134 00282074 90 1F 00 00 */ stw r0, 0(r31) @@ -62,7 +62,7 @@ JStudio_NS_TControl: /* 802851EC 0028212C 4B FF F4 AD */ bl JStudio_NS_fvb_NS_TControl_NS_dtor /* 802851F0 00282130 7F C3 F3 78 */ mr r3, r30 /* 802851F4 00282134 38 80 00 00 */ li r4, 0 -/* 802851F8 00282138 48 00 3F 9D */ bl JStudio_NS_stb_NS_TControl_NS_dtor +/* 802851F8 00282138 48 00 3F 9D */ bl __dt__Q37JStudio3stb8TControlFv /* 802851FC 0028213C 7F E0 07 35 */ extsh. r0, r31 /* 80285200 00282140 40 81 00 0C */ ble lbl_8028520C /* 80285204 00282144 7F C3 F3 78 */ mr r3, r30 @@ -292,11 +292,11 @@ lbl_802854B8: /* 80285518 00282458 41 82 00 10 */ beq lbl_80285528 /* 8028551C 0028245C 38 7E 00 04 */ addi r3, r30, 4 /* 80285520 00282460 38 80 00 00 */ li r4, 0 -/* 80285524 00282464 48 05 74 F9 */ bl JGadget_NS_TNodeLinkList_NS_dtor +/* 80285524 00282464 48 05 74 F9 */ bl __dt__Q27JGadget13TNodeLinkListFv lbl_80285528: /* 80285528 00282468 7F C3 F3 78 */ mr r3, r30 /* 8028552C 0028246C 38 80 00 00 */ li r4, 0 -/* 80285530 00282470 48 00 40 85 */ bl JStudio_NS_stb_NS_TFactory_NS_dtor +/* 80285530 00282470 48 00 40 85 */ bl __dt__Q37JStudio3stb8TFactoryFv /* 80285534 00282474 7F E0 07 35 */ extsh. r0, r31 /* 80285538 00282478 40 81 00 0C */ ble lbl_80285544 /* 8028553C 0028247C 7F C3 F3 78 */ mr r3, r30 @@ -326,7 +326,7 @@ JStudio_NS_TFactory_NS_appendCreateObject: /* 8028558C 002824CC 38 61 00 10 */ addi r3, r1, 0x10 /* 80285590 002824D0 38 85 00 04 */ addi r4, r5, 4 /* 80285594 002824D4 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80285598 002824D8 48 05 76 11 */ bl JGadget_NS_TNodeLinkList_NS_Insert +/* 80285598 002824D8 48 05 76 11 */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode /* 8028559C 002824DC 80 01 00 24 */ lwz r0, 0x24(r1) /* 802855A0 002824E0 7C 08 03 A6 */ mtlr r0 /* 802855A4 002824E4 38 21 00 20 */ addi r1, r1, 0x20 @@ -390,7 +390,7 @@ JStudio_NS_TParse: /* 80285674 002825B4 90 01 00 14 */ stw r0, 0x14(r1) /* 80285678 002825B8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8028567C 002825BC 7C 7F 1B 78 */ mr r31, r3 -/* 80285680 002825C0 48 00 3F C1 */ bl JStudio_NS_stb_NS_TParse +/* 80285680 002825C0 48 00 3F C1 */ bl __ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl /* 80285684 002825C4 3C 60 80 3C */ lis r3, lbl_803C4AC0@ha /* 80285688 002825C8 38 03 4A C0 */ addi r0, r3, lbl_803C4AC0@l /* 8028568C 002825CC 90 1F 00 00 */ stw r0, 0(r31) @@ -415,7 +415,7 @@ JStudio_NS_TParse_NS_dtor: /* 802856CC 0028260C 38 04 4A C0 */ addi r0, r4, lbl_803C4AC0@l /* 802856D0 00282610 90 1E 00 00 */ stw r0, 0(r30) /* 802856D4 00282614 38 80 00 00 */ li r4, 0 -/* 802856D8 00282618 48 00 3F 89 */ bl JStudio_NS_stb_NS_TParse_NS_dtor +/* 802856D8 00282618 48 00 3F 89 */ bl __dt__Q37JStudio3stb6TParseFv /* 802856DC 0028261C 7F E0 07 35 */ extsh. r0, r31 /* 802856E0 00282620 40 81 00 0C */ ble lbl_802856EC /* 802856E4 00282624 7F C3 F3 78 */ mr r3, r30 @@ -510,7 +510,7 @@ lbl_80285828: /* 80285828 00282768 48 00 00 C9 */ bl JStudio_NS_TParse_NS_parseBlock_block_ctb_ /* 8028582C 0028276C 48 00 00 08 */ b lbl_80285834 lbl_80285830: -/* 80285830 00282770 48 00 3F B9 */ bl JStudio_NS_stb_NS_TParse_NS_parseBlock_block +/* 80285830 00282770 48 00 3F B9 */ bl parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl lbl_80285834: /* 80285834 00282774 80 01 00 14 */ lwz r0, 0x14(r1) /* 80285838 00282778 7C 08 03 A6 */ mtlr r0 diff --git a/asm/JStudio/jstudio-object.s b/asm/JStudio/jstudio-object.s index 3a33155a4e..9b93a9d17f 100644 --- a/asm/JStudio/jstudio-object.s +++ b/asm/JStudio/jstudio-object.s @@ -700,7 +700,7 @@ JStudio_NS_TObject_NS_dtor: lbl_802866FC: /* 802866FC 0028363C 7F C3 F3 78 */ mr r3, r30 /* 80286700 00283640 38 80 00 00 */ li r4, 0 -/* 80286704 00283644 48 00 24 2D */ bl JStudio_NS_stb_NS_TObject_NS_dtor +/* 80286704 00283644 48 00 24 2D */ bl __dt__Q37JStudio3stb7TObjectFv /* 80286708 00283648 7F E0 07 35 */ extsh. r0, r31 /* 8028670C 0028364C 40 81 00 0C */ ble lbl_80286718 /* 80286710 00283650 7F C3 F3 78 */ mr r3, r30 @@ -806,7 +806,7 @@ JStudio_NS_TObject: /* 80286874 002837B4 93 C1 00 08 */ stw r30, 8(r1) /* 80286878 002837B8 7C 7E 1B 78 */ mr r30, r3 /* 8028687C 002837BC 7C BF 2B 78 */ mr r31, r5 -/* 80286880 002837C0 48 00 22 41 */ bl JStudio_NS_stb_NS_TObject_X1_ +/* 80286880 002837C0 48 00 22 41 */ bl __ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object /* 80286884 002837C4 3C 60 80 3C */ lis r3, lbl_803C55F0@ha /* 80286888 002837C8 38 03 55 F0 */ addi r0, r3, lbl_803C55F0@l /* 8028688C 002837CC 90 1E 00 08 */ stw r0, 8(r30) diff --git a/asm/JStudio/stb.s b/asm/JStudio/stb.s deleted file mode 100644 index 298cd01acb..0000000000 --- a/asm/JStudio/stb.s +++ /dev/null @@ -1,1125 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80288a78 - - -.global JStudio_NS_stb_NS_TObject -JStudio_NS_stb_NS_TObject: -/* 80288A78 002859B8 90 A3 00 00 */ stw r5, 0(r3) -/* 80288A7C 002859BC 90 C3 00 04 */ stw r6, 4(r3) -/* 80288A80 002859C0 3C A0 80 3C */ lis r5, lbl_803C5700@ha -/* 80288A84 002859C4 38 05 57 00 */ addi r0, r5, lbl_803C5700@l -/* 80288A88 002859C8 90 03 00 08 */ stw r0, 8(r3) -/* 80288A8C 002859CC 38 00 00 00 */ li r0, 0 -/* 80288A90 002859D0 90 03 00 0C */ stw r0, 0xc(r3) -/* 80288A94 002859D4 90 03 00 10 */ stw r0, 0x10(r3) -/* 80288A98 002859D8 90 03 00 14 */ stw r0, 0x14(r3) -/* 80288A9C 002859DC 90 83 00 18 */ stw r4, 0x18(r3) -/* 80288AA0 002859E0 B0 03 00 1C */ sth r0, 0x1c(r3) -/* 80288AA4 002859E4 98 03 00 1E */ stb r0, 0x1e(r3) -/* 80288AA8 002859E8 90 03 00 20 */ stw r0, 0x20(r3) -/* 80288AAC 002859EC 90 03 00 24 */ stw r0, 0x24(r3) -/* 80288AB0 002859F0 90 03 00 28 */ stw r0, 0x28(r3) -/* 80288AB4 002859F4 90 03 00 2C */ stw r0, 0x2c(r3) -/* 80288AB8 002859F8 90 03 00 30 */ stw r0, 0x30(r3) -/* 80288ABC 002859FC 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_X1_ -JStudio_NS_stb_NS_TObject_X1_: -/* 80288AC0 00285A00 80 C4 00 00 */ lwz r6, 0(r4) -/* 80288AC4 00285A04 A0 06 00 0A */ lhz r0, 0xa(r6) -/* 80288AC8 00285A08 38 86 00 0C */ addi r4, r6, 0xc -/* 80288ACC 00285A0C 90 83 00 00 */ stw r4, 0(r3) -/* 80288AD0 00285A10 90 03 00 04 */ stw r0, 4(r3) -/* 80288AD4 00285A14 3C 80 80 3C */ lis r4, lbl_803C5700@ha -/* 80288AD8 00285A18 38 04 57 00 */ addi r0, r4, lbl_803C5700@l -/* 80288ADC 00285A1C 90 03 00 08 */ stw r0, 8(r3) -/* 80288AE0 00285A20 38 A0 00 00 */ li r5, 0 -/* 80288AE4 00285A24 90 A3 00 0C */ stw r5, 0xc(r3) -/* 80288AE8 00285A28 90 A3 00 10 */ stw r5, 0x10(r3) -/* 80288AEC 00285A2C 90 A3 00 14 */ stw r5, 0x14(r3) -/* 80288AF0 00285A30 80 06 00 04 */ lwz r0, 4(r6) -/* 80288AF4 00285A34 90 03 00 18 */ stw r0, 0x18(r3) -/* 80288AF8 00285A38 A0 06 00 08 */ lhz r0, 8(r6) -/* 80288AFC 00285A3C B0 03 00 1C */ sth r0, 0x1c(r3) -/* 80288B00 00285A40 98 A3 00 1E */ stb r5, 0x1e(r3) -/* 80288B04 00285A44 90 A3 00 20 */ stw r5, 0x20(r3) -/* 80288B08 00285A48 90 A3 00 24 */ stw r5, 0x24(r3) -/* 80288B0C 00285A4C A0 86 00 0A */ lhz r4, 0xa(r6) -/* 80288B10 00285A50 38 04 00 03 */ addi r0, r4, 3 -/* 80288B14 00285A54 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d -/* 80288B18 00285A58 38 04 00 0C */ addi r0, r4, 0xc -/* 80288B1C 00285A5C 7C 06 02 14 */ add r0, r6, r0 -/* 80288B20 00285A60 90 03 00 28 */ stw r0, 0x28(r3) -/* 80288B24 00285A64 90 A3 00 2C */ stw r5, 0x2c(r3) -/* 80288B28 00285A68 90 A3 00 30 */ stw r5, 0x30(r3) -/* 80288B2C 00285A6C 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_NS_dtor -JStudio_NS_stb_NS_TObject_NS_dtor: -/* 80288B30 00285A70 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80288B34 00285A74 7C 08 02 A6 */ mflr r0 -/* 80288B38 00285A78 90 01 00 14 */ stw r0, 0x14(r1) -/* 80288B3C 00285A7C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80288B40 00285A80 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80288B44 00285A84 41 82 00 1C */ beq lbl_80288B60 -/* 80288B48 00285A88 3C A0 80 3C */ lis r5, lbl_803C5700@ha -/* 80288B4C 00285A8C 38 05 57 00 */ addi r0, r5, lbl_803C5700@l -/* 80288B50 00285A90 90 1F 00 08 */ stw r0, 8(r31) -/* 80288B54 00285A94 7C 80 07 35 */ extsh. r0, r4 -/* 80288B58 00285A98 40 81 00 08 */ ble lbl_80288B60 -/* 80288B5C 00285A9C 48 04 61 E1 */ bl __dl__FPv -lbl_80288B60: -/* 80288B60 00285AA0 7F E3 FB 78 */ mr r3, r31 -/* 80288B64 00285AA4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80288B68 00285AA8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80288B6C 00285AAC 7C 08 03 A6 */ mtlr r0 -/* 80288B70 00285AB0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80288B74 00285AB4 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_NS_setFlag_operation -JStudio_NS_stb_NS_TObject_NS_setFlag_operation: -/* 80288B78 00285AB8 54 80 06 3E */ clrlwi r0, r4, 0x18 -/* 80288B7C 00285ABC 2C 00 00 02 */ cmpwi r0, 2 -/* 80288B80 00285AC0 41 82 00 30 */ beq lbl_80288BB0 -/* 80288B84 00285AC4 40 80 00 10 */ bge lbl_80288B94 -/* 80288B88 00285AC8 2C 00 00 01 */ cmpwi r0, 1 -/* 80288B8C 00285ACC 40 80 00 14 */ bge lbl_80288BA0 -/* 80288B90 00285AD0 4E 80 00 20 */ blr -lbl_80288B94: -/* 80288B94 00285AD4 2C 00 00 04 */ cmpwi r0, 4 -/* 80288B98 00285AD8 4C 80 00 20 */ bgelr -/* 80288B9C 00285ADC 48 00 00 24 */ b lbl_80288BC0 -lbl_80288BA0: -/* 80288BA0 00285AE0 A0 03 00 1C */ lhz r0, 0x1c(r3) -/* 80288BA4 00285AE4 7C 00 2B 78 */ or r0, r0, r5 -/* 80288BA8 00285AE8 B0 03 00 1C */ sth r0, 0x1c(r3) -/* 80288BAC 00285AEC 4E 80 00 20 */ blr -lbl_80288BB0: -/* 80288BB0 00285AF0 A0 03 00 1C */ lhz r0, 0x1c(r3) -/* 80288BB4 00285AF4 7C 00 28 38 */ and r0, r0, r5 -/* 80288BB8 00285AF8 B0 03 00 1C */ sth r0, 0x1c(r3) -/* 80288BBC 00285AFC 4E 80 00 20 */ blr -lbl_80288BC0: -/* 80288BC0 00285B00 A0 03 00 1C */ lhz r0, 0x1c(r3) -/* 80288BC4 00285B04 7C 00 2A 78 */ xor r0, r0, r5 -/* 80288BC8 00285B08 B0 03 00 1C */ sth r0, 0x1c(r3) -/* 80288BCC 00285B0C 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_NS_reset -JStudio_NS_stb_NS_TObject_NS_reset: -/* 80288BD0 00285B10 38 00 00 00 */ li r0, 0 -/* 80288BD4 00285B14 98 03 00 1E */ stb r0, 0x1e(r3) -/* 80288BD8 00285B18 90 03 00 30 */ stw r0, 0x30(r3) -/* 80288BDC 00285B1C 90 83 00 28 */ stw r4, 0x28(r3) -/* 80288BE0 00285B20 90 03 00 2C */ stw r0, 0x2c(r3) -/* 80288BE4 00285B24 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_NS_forward -JStudio_NS_stb_NS_TObject_NS_forward: -/* 80288BE8 00285B28 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80288BEC 00285B2C 7C 08 02 A6 */ mflr r0 -/* 80288BF0 00285B30 90 01 00 24 */ stw r0, 0x24(r1) -/* 80288BF4 00285B34 39 61 00 20 */ addi r11, r1, 0x20 -/* 80288BF8 00285B38 48 0D 95 E5 */ bl _savegpr_29 -/* 80288BFC 00285B3C 7C 7E 1B 78 */ mr r30, r3 -/* 80288C00 00285B40 7C 9F 23 78 */ mr r31, r4 -/* 80288C04 00285B44 3B A0 00 00 */ li r29, 0 -lbl_80288C08: -/* 80288C08 00285B48 A0 1E 00 1C */ lhz r0, 0x1c(r30) -/* 80288C0C 00285B4C 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10 -/* 80288C10 00285B50 41 82 00 60 */ beq lbl_80288C70 -/* 80288C14 00285B54 80 1E 00 30 */ lwz r0, 0x30(r30) -/* 80288C18 00285B58 2C 00 00 04 */ cmpwi r0, 4 -/* 80288C1C 00285B5C 41 82 00 24 */ beq lbl_80288C40 -/* 80288C20 00285B60 40 80 00 14 */ bge lbl_80288C34 -/* 80288C24 00285B64 2C 00 00 02 */ cmpwi r0, 2 -/* 80288C28 00285B68 41 82 00 18 */ beq lbl_80288C40 -/* 80288C2C 00285B6C 40 80 00 3C */ bge lbl_80288C68 -/* 80288C30 00285B70 48 00 00 38 */ b lbl_80288C68 -lbl_80288C34: -/* 80288C34 00285B74 2C 00 00 08 */ cmpwi r0, 8 -/* 80288C38 00285B78 41 82 00 30 */ beq lbl_80288C68 -/* 80288C3C 00285B7C 48 00 00 2C */ b lbl_80288C68 -lbl_80288C40: -/* 80288C40 00285B80 38 00 00 08 */ li r0, 8 -/* 80288C44 00285B84 90 1E 00 30 */ stw r0, 0x30(r30) -/* 80288C48 00285B88 88 1E 00 1E */ lbz r0, 0x1e(r30) -/* 80288C4C 00285B8C 28 00 00 00 */ cmplwi r0, 0 -/* 80288C50 00285B90 41 82 00 18 */ beq lbl_80288C68 -/* 80288C54 00285B94 7F C3 F3 78 */ mr r3, r30 -/* 80288C58 00285B98 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288C5C 00285B9C 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80288C60 00285BA0 7D 89 03 A6 */ mtctr r12 -/* 80288C64 00285BA4 4E 80 04 21 */ bctrl -lbl_80288C68: -/* 80288C68 00285BA8 38 60 00 01 */ li r3, 1 -/* 80288C6C 00285BAC 48 00 01 94 */ b lbl_80288E00 -lbl_80288C70: -/* 80288C70 00285BB0 80 1E 00 30 */ lwz r0, 0x30(r30) -/* 80288C74 00285BB4 2C 00 00 08 */ cmpwi r0, 8 -/* 80288C78 00285BB8 40 82 00 20 */ bne lbl_80288C98 -/* 80288C7C 00285BBC 7F C3 F3 78 */ mr r3, r30 -/* 80288C80 00285BC0 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288C84 00285BC4 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 80288C88 00285BC8 7D 89 03 A6 */ mtctr r12 -/* 80288C8C 00285BCC 4E 80 04 21 */ bctrl -/* 80288C90 00285BD0 38 00 00 02 */ li r0, 2 -/* 80288C94 00285BD4 90 1E 00 30 */ stw r0, 0x30(r30) -lbl_80288C98: -/* 80288C98 00285BD8 80 7E 00 14 */ lwz r3, 0x14(r30) -/* 80288C9C 00285BDC 28 03 00 00 */ cmplwi r3, 0 -/* 80288CA0 00285BE0 41 82 00 10 */ beq lbl_80288CB0 -/* 80288CA4 00285BE4 80 03 00 54 */ lwz r0, 0x54(r3) -/* 80288CA8 00285BE8 2C 00 00 00 */ cmpwi r0, 0 -/* 80288CAC 00285BEC 41 81 00 10 */ bgt lbl_80288CBC -lbl_80288CB0: -/* 80288CB0 00285BF0 80 1E 00 20 */ lwz r0, 0x20(r30) -/* 80288CB4 00285BF4 2C 00 00 00 */ cmpwi r0, 0 -/* 80288CB8 00285BF8 40 81 00 38 */ ble lbl_80288CF0 -lbl_80288CBC: -/* 80288CBC 00285BFC 88 1E 00 1E */ lbz r0, 0x1e(r30) -/* 80288CC0 00285C00 28 00 00 00 */ cmplwi r0, 0 -/* 80288CC4 00285C04 41 82 00 24 */ beq lbl_80288CE8 -/* 80288CC8 00285C08 38 00 00 04 */ li r0, 4 -/* 80288CCC 00285C0C 90 1E 00 30 */ stw r0, 0x30(r30) -/* 80288CD0 00285C10 7F C3 F3 78 */ mr r3, r30 -/* 80288CD4 00285C14 7F E4 FB 78 */ mr r4, r31 -/* 80288CD8 00285C18 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288CDC 00285C1C 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 80288CE0 00285C20 7D 89 03 A6 */ mtctr r12 -/* 80288CE4 00285C24 4E 80 04 21 */ bctrl -lbl_80288CE8: -/* 80288CE8 00285C28 38 60 00 01 */ li r3, 1 -/* 80288CEC 00285C2C 48 00 01 14 */ b lbl_80288E00 -lbl_80288CF0: -/* 80288CF0 00285C30 80 1E 00 28 */ lwz r0, 0x28(r30) -/* 80288CF4 00285C34 90 1E 00 24 */ stw r0, 0x24(r30) -/* 80288CF8 00285C38 28 00 00 00 */ cmplwi r0, 0 -/* 80288CFC 00285C3C 40 82 00 5C */ bne lbl_80288D58 -/* 80288D00 00285C40 88 1E 00 1E */ lbz r0, 0x1e(r30) -/* 80288D04 00285C44 28 00 00 00 */ cmplwi r0, 0 -/* 80288D08 00285C48 41 82 00 48 */ beq lbl_80288D50 -/* 80288D0C 00285C4C 57 A0 06 3F */ clrlwi. r0, r29, 0x18 -/* 80288D10 00285C50 40 82 00 1C */ bne lbl_80288D2C -/* 80288D14 00285C54 7F C3 F3 78 */ mr r3, r30 -/* 80288D18 00285C58 38 80 00 00 */ li r4, 0 -/* 80288D1C 00285C5C 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288D20 00285C60 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 80288D24 00285C64 7D 89 03 A6 */ mtctr r12 -/* 80288D28 00285C68 4E 80 04 21 */ bctrl -lbl_80288D2C: -/* 80288D2C 00285C6C 38 00 00 00 */ li r0, 0 -/* 80288D30 00285C70 98 1E 00 1E */ stb r0, 0x1e(r30) -/* 80288D34 00285C74 38 00 00 01 */ li r0, 1 -/* 80288D38 00285C78 90 1E 00 30 */ stw r0, 0x30(r30) -/* 80288D3C 00285C7C 7F C3 F3 78 */ mr r3, r30 -/* 80288D40 00285C80 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288D44 00285C84 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 80288D48 00285C88 7D 89 03 A6 */ mtctr r12 -/* 80288D4C 00285C8C 4E 80 04 21 */ bctrl -lbl_80288D50: -/* 80288D50 00285C90 38 60 00 00 */ li r3, 0 -/* 80288D54 00285C94 48 00 00 AC */ b lbl_80288E00 -lbl_80288D58: -/* 80288D58 00285C98 88 1E 00 1E */ lbz r0, 0x1e(r30) -/* 80288D5C 00285C9C 28 00 00 00 */ cmplwi r0, 0 -/* 80288D60 00285CA0 40 82 00 20 */ bne lbl_80288D80 -/* 80288D64 00285CA4 38 00 00 01 */ li r0, 1 -/* 80288D68 00285CA8 98 1E 00 1E */ stb r0, 0x1e(r30) -/* 80288D6C 00285CAC 7F C3 F3 78 */ mr r3, r30 -/* 80288D70 00285CB0 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288D74 00285CB4 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 80288D78 00285CB8 7D 89 03 A6 */ mtctr r12 -/* 80288D7C 00285CBC 4E 80 04 21 */ bctrl -lbl_80288D80: -/* 80288D80 00285CC0 38 00 00 02 */ li r0, 2 -/* 80288D84 00285CC4 90 1E 00 30 */ stw r0, 0x30(r30) -/* 80288D88 00285CC8 80 1E 00 2C */ lwz r0, 0x2c(r30) -/* 80288D8C 00285CCC 28 00 00 00 */ cmplwi r0, 0 -/* 80288D90 00285CD0 40 82 00 18 */ bne lbl_80288DA8 -/* 80288D94 00285CD4 7F C3 F3 78 */ mr r3, r30 -/* 80288D98 00285CD8 48 00 00 95 */ bl JStudio_NS_stb_NS_TObject_NS_process_sequence_ -/* 80288D9C 00285CDC 80 1E 00 2C */ lwz r0, 0x2c(r30) -/* 80288DA0 00285CE0 28 00 00 00 */ cmplwi r0, 0 -/* 80288DA4 00285CE4 41 82 FE 64 */ beq lbl_80288C08 -lbl_80288DA8: -/* 80288DA8 00285CE8 3B A0 00 01 */ li r29, 1 -/* 80288DAC 00285CEC 80 9E 00 2C */ lwz r4, 0x2c(r30) -/* 80288DB0 00285CF0 7C 1F 20 40 */ cmplw r31, r4 -/* 80288DB4 00285CF4 41 80 00 28 */ blt lbl_80288DDC -/* 80288DB8 00285CF8 7F E4 F8 50 */ subf r31, r4, r31 -/* 80288DBC 00285CFC 38 00 00 00 */ li r0, 0 -/* 80288DC0 00285D00 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 80288DC4 00285D04 7F C3 F3 78 */ mr r3, r30 -/* 80288DC8 00285D08 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288DCC 00285D0C 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 80288DD0 00285D10 7D 89 03 A6 */ mtctr r12 -/* 80288DD4 00285D14 4E 80 04 21 */ bctrl -/* 80288DD8 00285D18 4B FF FF 18 */ b lbl_80288CF0 -lbl_80288DDC: -/* 80288DDC 00285D1C 7C 1F 20 50 */ subf r0, r31, r4 -/* 80288DE0 00285D20 90 1E 00 2C */ stw r0, 0x2c(r30) -/* 80288DE4 00285D24 7F C3 F3 78 */ mr r3, r30 -/* 80288DE8 00285D28 7F E4 FB 78 */ mr r4, r31 -/* 80288DEC 00285D2C 81 9E 00 08 */ lwz r12, 8(r30) -/* 80288DF0 00285D30 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 80288DF4 00285D34 7D 89 03 A6 */ mtctr r12 -/* 80288DF8 00285D38 4E 80 04 21 */ bctrl -/* 80288DFC 00285D3C 38 60 00 01 */ li r3, 1 -lbl_80288E00: -/* 80288E00 00285D40 39 61 00 20 */ addi r11, r1, 0x20 -/* 80288E04 00285D44 48 0D 94 25 */ bl _restgpr_29 -/* 80288E08 00285D48 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80288E0C 00285D4C 7C 08 03 A6 */ mtlr r0 -/* 80288E10 00285D50 38 21 00 20 */ addi r1, r1, 0x20 -/* 80288E14 00285D54 4E 80 00 20 */ blr -/* 80288E18 00285D58 4E 80 00 20 */ blr -/* 80288E1C 00285D5C 4E 80 00 20 */ blr -/* 80288E20 00285D60 4E 80 00 20 */ blr -/* 80288E24 00285D64 4E 80 00 20 */ blr -/* 80288E28 00285D68 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_NS_process_sequence_ -JStudio_NS_stb_NS_TObject_NS_process_sequence_: -/* 80288E2C 00285D6C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80288E30 00285D70 7C 08 02 A6 */ mflr r0 -/* 80288E34 00285D74 90 01 00 44 */ stw r0, 0x44(r1) -/* 80288E38 00285D78 93 E1 00 3C */ stw r31, 0x3c(r1) -/* 80288E3C 00285D7C 93 C1 00 38 */ stw r30, 0x38(r1) -/* 80288E40 00285D80 7C 7F 1B 78 */ mr r31, r3 -/* 80288E44 00285D84 80 03 00 24 */ lwz r0, 0x24(r3) -/* 80288E48 00285D88 90 01 00 0C */ stw r0, 0xc(r1) -/* 80288E4C 00285D8C 38 61 00 0C */ addi r3, r1, 0xc -/* 80288E50 00285D90 38 81 00 20 */ addi r4, r1, 0x20 -/* 80288E54 00285D94 48 00 0B 69 */ bl JStudio_NS_stb_NS_data_NS_TParse_TSequence_NS_getData -/* 80288E58 00285D98 88 01 00 20 */ lbz r0, 0x20(r1) -/* 80288E5C 00285D9C 80 A1 00 24 */ lwz r5, 0x24(r1) -/* 80288E60 00285DA0 80 61 00 28 */ lwz r3, 0x28(r1) -/* 80288E64 00285DA4 83 C1 00 2C */ lwz r30, 0x2c(r1) -/* 80288E68 00285DA8 93 DF 00 28 */ stw r30, 0x28(r31) -/* 80288E6C 00285DAC 2C 00 00 03 */ cmpwi r0, 3 -/* 80288E70 00285DB0 41 82 00 4C */ beq lbl_80288EBC -/* 80288E74 00285DB4 40 80 00 14 */ bge lbl_80288E88 -/* 80288E78 00285DB8 2C 00 00 01 */ cmpwi r0, 1 -/* 80288E7C 00285DBC 41 82 00 24 */ beq lbl_80288EA0 -/* 80288E80 00285DC0 40 80 00 34 */ bge lbl_80288EB4 -/* 80288E84 00285DC4 48 00 00 E4 */ b lbl_80288F68 -lbl_80288E88: -/* 80288E88 00285DC8 2C 00 00 80 */ cmpwi r0, 0x80 -/* 80288E8C 00285DCC 41 82 00 78 */ beq lbl_80288F04 -/* 80288E90 00285DD0 40 80 00 D8 */ bge lbl_80288F68 -/* 80288E94 00285DD4 2C 00 00 05 */ cmpwi r0, 5 -/* 80288E98 00285DD8 40 80 00 D0 */ bge lbl_80288F68 -/* 80288E9C 00285DDC 48 00 00 44 */ b lbl_80288EE0 -lbl_80288EA0: -/* 80288EA0 00285DE0 7F E3 FB 78 */ mr r3, r31 -/* 80288EA4 00285DE4 54 A4 86 3E */ rlwinm r4, r5, 0x10, 0x18, 0x1f -/* 80288EA8 00285DE8 54 A5 04 3E */ clrlwi r5, r5, 0x10 -/* 80288EAC 00285DEC 4B FF FC CD */ bl JStudio_NS_stb_NS_TObject_NS_setFlag_operation -/* 80288EB0 00285DF0 48 00 00 B8 */ b lbl_80288F68 -lbl_80288EB4: -/* 80288EB4 00285DF4 90 BF 00 2C */ stw r5, 0x2c(r31) -/* 80288EB8 00285DF8 48 00 00 B0 */ b lbl_80288F68 -lbl_80288EBC: -/* 80288EBC 00285DFC 7C A3 2B 78 */ mr r3, r5 -/* 80288EC0 00285E00 54 A0 02 11 */ rlwinm. r0, r5, 0, 8, 8 -/* 80288EC4 00285E04 41 82 00 0C */ beq lbl_80288ED0 -/* 80288EC8 00285E08 80 02 BA D0 */ lwz r0, lbl_804554D0-_SDA2_BASE_(r2) -/* 80288ECC 00285E0C 7C A3 03 78 */ or r3, r5, r0 -lbl_80288ED0: -/* 80288ED0 00285E10 80 1F 00 24 */ lwz r0, 0x24(r31) -/* 80288ED4 00285E14 7C 00 1A 14 */ add r0, r0, r3 -/* 80288ED8 00285E18 90 1F 00 28 */ stw r0, 0x28(r31) -/* 80288EDC 00285E1C 48 00 00 8C */ b lbl_80288F68 -lbl_80288EE0: -/* 80288EE0 00285E20 7C A3 2B 78 */ mr r3, r5 -/* 80288EE4 00285E24 54 A0 02 11 */ rlwinm. r0, r5, 0, 8, 8 -/* 80288EE8 00285E28 41 82 00 0C */ beq lbl_80288EF4 -/* 80288EEC 00285E2C 80 02 BA D0 */ lwz r0, lbl_804554D0-_SDA2_BASE_(r2) -/* 80288EF0 00285E30 7C A3 03 78 */ or r3, r5, r0 -lbl_80288EF4: -/* 80288EF4 00285E34 80 1F 00 20 */ lwz r0, 0x20(r31) -/* 80288EF8 00285E38 7C 00 1A 14 */ add r0, r0, r3 -/* 80288EFC 00285E3C 90 1F 00 20 */ stw r0, 0x20(r31) -/* 80288F00 00285E40 48 00 00 68 */ b lbl_80288F68 -lbl_80288F04: -/* 80288F04 00285E44 38 00 00 00 */ li r0, 0 -/* 80288F08 00285E48 90 01 00 08 */ stw r0, 8(r1) -/* 80288F0C 00285E4C 48 00 00 54 */ b lbl_80288F60 -lbl_80288F10: -/* 80288F10 00285E50 90 61 00 08 */ stw r3, 8(r1) -/* 80288F14 00285E54 38 61 00 08 */ addi r3, r1, 8 -/* 80288F18 00285E58 38 81 00 10 */ addi r4, r1, 0x10 -/* 80288F1C 00285E5C 48 00 0A ED */ bl JStudio_NS_stb_NS_data_NS_TParse_TParagraph_NS_getData -/* 80288F20 00285E60 80 81 00 10 */ lwz r4, 0x10(r1) -/* 80288F24 00285E64 28 04 00 FF */ cmplwi r4, 0xff -/* 80288F28 00285E68 41 81 00 18 */ bgt lbl_80288F40 -/* 80288F2C 00285E6C 7F E3 FB 78 */ mr r3, r31 -/* 80288F30 00285E70 80 A1 00 18 */ lwz r5, 0x18(r1) -/* 80288F34 00285E74 80 C1 00 14 */ lwz r6, 0x14(r1) -/* 80288F38 00285E78 48 00 00 49 */ bl JStudio_NS_stb_NS_TObject_NS_process_paragraph_reserved_ -/* 80288F3C 00285E7C 48 00 00 20 */ b lbl_80288F5C -lbl_80288F40: -/* 80288F40 00285E80 7F E3 FB 78 */ mr r3, r31 -/* 80288F44 00285E84 80 A1 00 18 */ lwz r5, 0x18(r1) -/* 80288F48 00285E88 80 C1 00 14 */ lwz r6, 0x14(r1) -/* 80288F4C 00285E8C 81 9F 00 08 */ lwz r12, 8(r31) -/* 80288F50 00285E90 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 80288F54 00285E94 7D 89 03 A6 */ mtctr r12 -/* 80288F58 00285E98 4E 80 04 21 */ bctrl -lbl_80288F5C: -/* 80288F5C 00285E9C 80 61 00 1C */ lwz r3, 0x1c(r1) -lbl_80288F60: -/* 80288F60 00285EA0 7C 03 F0 40 */ cmplw r3, r30 -/* 80288F64 00285EA4 41 80 FF AC */ blt lbl_80288F10 -lbl_80288F68: -/* 80288F68 00285EA8 83 E1 00 3C */ lwz r31, 0x3c(r1) -/* 80288F6C 00285EAC 83 C1 00 38 */ lwz r30, 0x38(r1) -/* 80288F70 00285EB0 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80288F74 00285EB4 7C 08 03 A6 */ mtlr r0 -/* 80288F78 00285EB8 38 21 00 40 */ addi r1, r1, 0x40 -/* 80288F7C 00285EBC 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_NS_process_paragraph_reserved_ -JStudio_NS_stb_NS_TObject_NS_process_paragraph_reserved_: -/* 80288F80 00285EC0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80288F84 00285EC4 7C 08 02 A6 */ mflr r0 -/* 80288F88 00285EC8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80288F8C 00285ECC 7C A8 2B 78 */ mr r8, r5 -/* 80288F90 00285ED0 7C C7 33 78 */ mr r7, r6 -/* 80288F94 00285ED4 2C 04 00 80 */ cmpwi r4, 0x80 -/* 80288F98 00285ED8 41 82 00 70 */ beq lbl_80289008 -/* 80288F9C 00285EDC 40 80 00 28 */ bge lbl_80288FC4 -/* 80288FA0 00285EE0 2C 04 00 02 */ cmpwi r4, 2 -/* 80288FA4 00285EE4 41 82 00 44 */ beq lbl_80288FE8 -/* 80288FA8 00285EE8 40 80 00 10 */ bge lbl_80288FB8 -/* 80288FAC 00285EEC 2C 04 00 01 */ cmpwi r4, 1 -/* 80288FB0 00285EF0 40 80 00 24 */ bge lbl_80288FD4 -/* 80288FB4 00285EF4 48 00 00 A4 */ b lbl_80289058 -lbl_80288FB8: -/* 80288FB8 00285EF8 2C 04 00 04 */ cmpwi r4, 4 -/* 80288FBC 00285EFC 40 80 00 9C */ bge lbl_80289058 -/* 80288FC0 00285F00 48 00 00 34 */ b lbl_80288FF4 -lbl_80288FC4: -/* 80288FC4 00285F04 2C 04 00 82 */ cmpwi r4, 0x82 -/* 80288FC8 00285F08 41 82 00 90 */ beq lbl_80289058 -/* 80288FCC 00285F0C 40 80 00 8C */ bge lbl_80289058 -/* 80288FD0 00285F10 48 00 00 58 */ b lbl_80289028 -lbl_80288FD4: -/* 80288FD4 00285F14 80 08 00 00 */ lwz r0, 0(r8) -/* 80288FD8 00285F18 54 04 86 3E */ rlwinm r4, r0, 0x10, 0x18, 0x1f -/* 80288FDC 00285F1C 54 05 04 3E */ clrlwi r5, r0, 0x10 -/* 80288FE0 00285F20 4B FF FB 99 */ bl JStudio_NS_stb_NS_TObject_NS_setFlag_operation -/* 80288FE4 00285F24 48 00 00 74 */ b lbl_80289058 -lbl_80288FE8: -/* 80288FE8 00285F28 80 08 00 00 */ lwz r0, 0(r8) -/* 80288FEC 00285F2C 90 03 00 2C */ stw r0, 0x2c(r3) -/* 80288FF0 00285F30 48 00 00 68 */ b lbl_80289058 -lbl_80288FF4: -/* 80288FF4 00285F34 80 83 00 24 */ lwz r4, 0x24(r3) -/* 80288FF8 00285F38 80 08 00 00 */ lwz r0, 0(r8) -/* 80288FFC 00285F3C 7C 04 02 14 */ add r0, r4, r0 -/* 80289000 00285F40 90 03 00 28 */ stw r0, 0x28(r3) -/* 80289004 00285F44 48 00 00 54 */ b lbl_80289058 -lbl_80289008: -/* 80289008 00285F48 38 80 00 00 */ li r4, 0 -/* 8028900C 00285F4C 38 A0 00 00 */ li r5, 0 -/* 80289010 00285F50 7D 06 43 78 */ mr r6, r8 -/* 80289014 00285F54 81 83 00 08 */ lwz r12, 8(r3) -/* 80289018 00285F58 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 8028901C 00285F5C 7D 89 03 A6 */ mtctr r12 -/* 80289020 00285F60 4E 80 04 21 */ bctrl -/* 80289024 00285F64 48 00 00 34 */ b lbl_80289058 -lbl_80289028: -/* 80289028 00285F68 A0 A8 00 02 */ lhz r5, 2(r8) -/* 8028902C 00285F6C 38 05 00 03 */ addi r0, r5, 3 -/* 80289030 00285F70 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d -/* 80289034 00285F74 38 C4 00 04 */ addi r6, r4, 4 -/* 80289038 00285F78 7C C8 32 14 */ add r6, r8, r6 -/* 8028903C 00285F7C 38 88 00 04 */ addi r4, r8, 4 -/* 80289040 00285F80 7C 08 30 50 */ subf r0, r8, r6 -/* 80289044 00285F84 7C E0 38 50 */ subf r7, r0, r7 -/* 80289048 00285F88 81 83 00 08 */ lwz r12, 8(r3) -/* 8028904C 00285F8C 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 80289050 00285F90 7D 89 03 A6 */ mtctr r12 -/* 80289054 00285F94 4E 80 04 21 */ bctrl -lbl_80289058: -/* 80289058 00285F98 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8028905C 00285F9C 7C 08 03 A6 */ mtlr r0 -/* 80289060 00285FA0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80289064 00285FA4 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TObject_control -JStudio_NS_stb_NS_TObject_control: -/* 80289068 00285FA8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8028906C 00285FAC 7C 08 02 A6 */ mflr r0 -/* 80289070 00285FB0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80289074 00285FB4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80289078 00285FB8 7C 7F 1B 78 */ mr r31, r3 -/* 8028907C 00285FBC 7C 80 23 78 */ mr r0, r4 -/* 80289080 00285FC0 7C A6 2B 78 */ mr r6, r5 -/* 80289084 00285FC4 38 80 FF FF */ li r4, -1 -/* 80289088 00285FC8 7C 05 03 78 */ mr r5, r0 -/* 8028908C 00285FCC 4B FF F9 ED */ bl JStudio_NS_stb_NS_TObject -/* 80289090 00285FD0 3C 60 80 3C */ lis r3, lbl_803C56E0@ha -/* 80289094 00285FD4 38 03 56 E0 */ addi r0, r3, lbl_803C56E0@l -/* 80289098 00285FD8 90 1F 00 08 */ stw r0, 8(r31) -/* 8028909C 00285FDC 7F E3 FB 78 */ mr r3, r31 -/* 802890A0 00285FE0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802890A4 00285FE4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802890A8 00285FE8 7C 08 03 A6 */ mtlr r0 -/* 802890AC 00285FEC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802890B0 00285FF0 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl -JStudio_NS_stb_NS_TControl: -/* 802890B4 00285FF4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802890B8 00285FF8 7C 08 02 A6 */ mflr r0 -/* 802890BC 00285FFC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802890C0 00286000 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802890C4 00286004 7C 7F 1B 78 */ mr r31, r3 -/* 802890C8 00286008 3C 60 80 3C */ lis r3, lbl_803C56D4@ha -/* 802890CC 0028600C 38 03 56 D4 */ addi r0, r3, lbl_803C56D4@l -/* 802890D0 00286010 90 1F 00 00 */ stw r0, 0(r31) -/* 802890D4 00286014 38 00 00 00 */ li r0, 0 -/* 802890D8 00286018 90 1F 00 04 */ stw r0, 4(r31) -/* 802890DC 0028601C 90 1F 00 08 */ stw r0, 8(r31) -/* 802890E0 00286020 90 1F 00 0C */ stw r0, 0xc(r31) -/* 802890E4 00286024 90 1F 00 14 */ stw r0, 0x14(r31) -/* 802890E8 00286028 90 1F 00 18 */ stw r0, 0x18(r31) -/* 802890EC 0028602C 90 1F 00 10 */ stw r0, 0x10(r31) -/* 802890F0 00286030 38 1F 00 14 */ addi r0, r31, 0x14 -/* 802890F4 00286034 90 1F 00 14 */ stw r0, 0x14(r31) -/* 802890F8 00286038 90 1F 00 18 */ stw r0, 0x18(r31) -/* 802890FC 0028603C 38 7F 00 20 */ addi r3, r31, 0x20 -/* 80289100 00286040 38 80 00 00 */ li r4, 0 -/* 80289104 00286044 38 A0 00 00 */ li r5, 0 -/* 80289108 00286048 4B FF FF 61 */ bl JStudio_NS_stb_NS_TObject_control -/* 8028910C 0028604C 38 00 00 00 */ li r0, 0 -/* 80289110 00286050 90 1F 00 54 */ stw r0, 0x54(r31) -/* 80289114 00286054 90 1F 00 1C */ stw r0, 0x1c(r31) -/* 80289118 00286058 93 FF 00 34 */ stw r31, 0x34(r31) -/* 8028911C 0028605C 7F E3 FB 78 */ mr r3, r31 -/* 80289120 00286060 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80289124 00286064 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80289128 00286068 7C 08 03 A6 */ mtlr r0 -/* 8028912C 0028606C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80289130 00286070 4E 80 00 20 */ blr -/* 80289134 00286074 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80289138 00286078 7C 08 02 A6 */ mflr r0 -/* 8028913C 0028607C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80289140 00286080 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80289144 00286084 93 C1 00 08 */ stw r30, 8(r1) -/* 80289148 00286088 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8028914C 0028608C 7C 9F 23 78 */ mr r31, r4 -/* 80289150 00286090 41 82 00 28 */ beq lbl_80289178 -/* 80289154 00286094 3C 80 80 3C */ lis r4, lbl_803C56E0@ha -/* 80289158 00286098 38 04 56 E0 */ addi r0, r4, lbl_803C56E0@l -/* 8028915C 0028609C 90 1E 00 08 */ stw r0, 8(r30) -/* 80289160 002860A0 38 80 00 00 */ li r4, 0 -/* 80289164 002860A4 4B FF F9 CD */ bl JStudio_NS_stb_NS_TObject_NS_dtor -/* 80289168 002860A8 7F E0 07 35 */ extsh. r0, r31 -/* 8028916C 002860AC 40 81 00 0C */ ble lbl_80289178 -/* 80289170 002860B0 7F C3 F3 78 */ mr r3, r30 -/* 80289174 002860B4 48 04 5B C9 */ bl __dl__FPv -lbl_80289178: -/* 80289178 002860B8 7F C3 F3 78 */ mr r3, r30 -/* 8028917C 002860BC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80289180 002860C0 83 C1 00 08 */ lwz r30, 8(r1) -/* 80289184 002860C4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80289188 002860C8 7C 08 03 A6 */ mtlr r0 -/* 8028918C 002860CC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80289190 002860D0 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_dtor -JStudio_NS_stb_NS_TControl_NS_dtor: -/* 80289194 002860D4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80289198 002860D8 7C 08 02 A6 */ mflr r0 -/* 8028919C 002860DC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802891A0 002860E0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802891A4 002860E4 93 C1 00 08 */ stw r30, 8(r1) -/* 802891A8 002860E8 7C 7E 1B 79 */ or. r30, r3, r3 -/* 802891AC 002860EC 7C 9F 23 78 */ mr r31, r4 -/* 802891B0 002860F0 41 82 00 5C */ beq lbl_8028920C -/* 802891B4 002860F4 3C 60 80 3C */ lis r3, lbl_803C56D4@ha -/* 802891B8 002860F8 38 03 56 D4 */ addi r0, r3, lbl_803C56D4@l -/* 802891BC 002860FC 90 1E 00 00 */ stw r0, 0(r30) -/* 802891C0 00286100 38 00 00 00 */ li r0, 0 -/* 802891C4 00286104 90 1E 00 34 */ stw r0, 0x34(r30) -/* 802891C8 00286108 34 1E 00 20 */ addic. r0, r30, 0x20 -/* 802891CC 0028610C 41 82 00 1C */ beq lbl_802891E8 -/* 802891D0 00286110 3C 60 80 3C */ lis r3, lbl_803C56E0@ha -/* 802891D4 00286114 38 03 56 E0 */ addi r0, r3, lbl_803C56E0@l -/* 802891D8 00286118 90 1E 00 28 */ stw r0, 0x28(r30) -/* 802891DC 0028611C 38 7E 00 20 */ addi r3, r30, 0x20 -/* 802891E0 00286120 38 80 00 00 */ li r4, 0 -/* 802891E4 00286124 4B FF F9 4D */ bl JStudio_NS_stb_NS_TObject_NS_dtor -lbl_802891E8: -/* 802891E8 00286128 34 1E 00 10 */ addic. r0, r30, 0x10 -/* 802891EC 0028612C 41 82 00 10 */ beq lbl_802891FC -/* 802891F0 00286130 38 7E 00 10 */ addi r3, r30, 0x10 -/* 802891F4 00286134 38 80 00 00 */ li r4, 0 -/* 802891F8 00286138 48 05 38 25 */ bl JGadget_NS_TNodeLinkList_NS_dtor -lbl_802891FC: -/* 802891FC 0028613C 7F E0 07 35 */ extsh. r0, r31 -/* 80289200 00286140 40 81 00 0C */ ble lbl_8028920C -/* 80289204 00286144 7F C3 F3 78 */ mr r3, r30 -/* 80289208 00286148 48 04 5B 35 */ bl __dl__FPv -lbl_8028920C: -/* 8028920C 0028614C 7F C3 F3 78 */ mr r3, r30 -/* 80289210 00286150 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80289214 00286154 83 C1 00 08 */ lwz r30, 8(r1) -/* 80289218 00286158 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8028921C 0028615C 7C 08 03 A6 */ mtlr r0 -/* 80289220 00286160 38 21 00 10 */ addi r1, r1, 0x10 -/* 80289224 00286164 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_appendObject -JStudio_NS_stb_NS_TControl_NS_appendObject: -/* 80289228 00286168 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8028922C 0028616C 7C 08 02 A6 */ mflr r0 -/* 80289230 00286170 90 01 00 24 */ stw r0, 0x24(r1) -/* 80289234 00286174 7C 65 1B 78 */ mr r5, r3 -/* 80289238 00286178 90 A4 00 14 */ stw r5, 0x14(r4) -/* 8028923C 0028617C 38 05 00 14 */ addi r0, r5, 0x14 -/* 80289240 00286180 90 01 00 0C */ stw r0, 0xc(r1) -/* 80289244 00286184 90 01 00 08 */ stw r0, 8(r1) -/* 80289248 00286188 90 01 00 1C */ stw r0, 0x1c(r1) -/* 8028924C 0028618C 90 01 00 18 */ stw r0, 0x18(r1) -/* 80289250 00286190 38 C4 00 0C */ addi r6, r4, 0xc -/* 80289254 00286194 90 01 00 14 */ stw r0, 0x14(r1) -/* 80289258 00286198 38 61 00 10 */ addi r3, r1, 0x10 -/* 8028925C 0028619C 38 85 00 10 */ addi r4, r5, 0x10 -/* 80289260 002861A0 38 A1 00 14 */ addi r5, r1, 0x14 -/* 80289264 002861A4 48 05 39 45 */ bl JGadget_NS_TNodeLinkList_NS_Insert -/* 80289268 002861A8 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8028926C 002861AC 7C 08 03 A6 */ mtlr r0 -/* 80289270 002861B0 38 21 00 20 */ addi r1, r1, 0x20 -/* 80289274 002861B4 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_removeObject -JStudio_NS_stb_NS_TControl_NS_removeObject: -/* 80289278 002861B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8028927C 002861BC 7C 08 02 A6 */ mflr r0 -/* 80289280 002861C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80289284 002861C4 7C 66 1B 78 */ mr r6, r3 -/* 80289288 002861C8 38 00 00 00 */ li r0, 0 -/* 8028928C 002861CC 90 04 00 14 */ stw r0, 0x14(r4) -/* 80289290 002861D0 38 A4 00 0C */ addi r5, r4, 0xc -/* 80289294 002861D4 38 61 00 08 */ addi r3, r1, 8 -/* 80289298 002861D8 38 86 00 10 */ addi r4, r6, 0x10 -/* 8028929C 002861DC 48 05 39 39 */ bl JGadget_NS_TNodeLinkList_NS_Erase -/* 802892A0 002861E0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802892A4 002861E4 7C 08 03 A6 */ mtlr r0 -/* 802892A8 002861E8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802892AC 002861EC 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_destroyObject -JStudio_NS_stb_NS_TControl_NS_destroyObject: -/* 802892B0 002861F0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802892B4 002861F4 7C 08 02 A6 */ mflr r0 -/* 802892B8 002861F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802892BC 002861FC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802892C0 00286200 93 C1 00 08 */ stw r30, 8(r1) -/* 802892C4 00286204 7C 7E 1B 78 */ mr r30, r3 -/* 802892C8 00286208 7C 9F 23 78 */ mr r31, r4 -/* 802892CC 0028620C 4B FF FF AD */ bl JStudio_NS_stb_NS_TControl_NS_removeObject -/* 802892D0 00286210 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 802892D4 00286214 7F E4 FB 78 */ mr r4, r31 -/* 802892D8 00286218 81 83 00 00 */ lwz r12, 0(r3) -/* 802892DC 0028621C 81 8C 00 10 */ lwz r12, 0x10(r12) -/* 802892E0 00286220 7D 89 03 A6 */ mtctr r12 -/* 802892E4 00286224 4E 80 04 21 */ bctrl -/* 802892E8 00286228 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802892EC 0028622C 83 C1 00 08 */ lwz r30, 8(r1) -/* 802892F0 00286230 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802892F4 00286234 7C 08 03 A6 */ mtlr r0 -/* 802892F8 00286238 38 21 00 10 */ addi r1, r1, 0x10 -/* 802892FC 0028623C 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_destroyObject_all -JStudio_NS_stb_NS_TControl_NS_destroyObject_all: -/* 80289300 00286240 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80289304 00286244 7C 08 02 A6 */ mflr r0 -/* 80289308 00286248 90 01 00 24 */ stw r0, 0x24(r1) -/* 8028930C 0028624C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 80289310 00286250 93 C1 00 18 */ stw r30, 0x18(r1) -/* 80289314 00286254 7C 7E 1B 78 */ mr r30, r3 -/* 80289318 00286258 3B FE 00 14 */ addi r31, r30, 0x14 -/* 8028931C 0028625C 93 E1 00 10 */ stw r31, 0x10(r1) -/* 80289320 00286260 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80289324 00286264 93 E1 00 14 */ stw r31, 0x14(r1) -/* 80289328 00286268 48 00 00 18 */ b lbl_80289340 -lbl_8028932C: -/* 8028932C 0028626C 80 7F 00 04 */ lwz r3, 4(r31) -/* 80289330 00286270 90 61 00 08 */ stw r3, 8(r1) -/* 80289334 00286274 38 83 FF F4 */ addi r4, r3, -12 -/* 80289338 00286278 7F C3 F3 78 */ mr r3, r30 -/* 8028933C 0028627C 4B FF FF 75 */ bl JStudio_NS_stb_NS_TControl_NS_destroyObject -lbl_80289340: -/* 80289340 00286280 80 1E 00 10 */ lwz r0, 0x10(r30) -/* 80289344 00286284 28 00 00 00 */ cmplwi r0, 0 -/* 80289348 00286288 40 82 FF E4 */ bne lbl_8028932C -/* 8028934C 0028628C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80289350 00286290 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 80289354 00286294 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80289358 00286298 7C 08 03 A6 */ mtlr r0 -/* 8028935C 0028629C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80289360 002862A0 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_getObject -JStudio_NS_stb_NS_TControl_NS_getObject: -/* 80289364 002862A4 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80289368 002862A8 7C 08 02 A6 */ mflr r0 -/* 8028936C 002862AC 90 01 00 54 */ stw r0, 0x54(r1) -/* 80289370 002862B0 80 C3 00 14 */ lwz r6, 0x14(r3) -/* 80289374 002862B4 90 C1 00 1C */ stw r6, 0x1c(r1) -/* 80289378 002862B8 90 C1 00 18 */ stw r6, 0x18(r1) -/* 8028937C 002862BC 90 C1 00 3C */ stw r6, 0x3c(r1) -/* 80289380 002862C0 38 03 00 14 */ addi r0, r3, 0x14 -/* 80289384 002862C4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80289388 002862C8 90 01 00 10 */ stw r0, 0x10(r1) -/* 8028938C 002862CC 90 01 00 38 */ stw r0, 0x38(r1) -/* 80289390 002862D0 90 81 00 40 */ stw r4, 0x40(r1) -/* 80289394 002862D4 90 A1 00 44 */ stw r5, 0x44(r1) -/* 80289398 002862D8 90 01 00 28 */ stw r0, 0x28(r1) -/* 8028939C 002862DC 90 C1 00 2C */ stw r6, 0x2c(r1) -/* 802893A0 002862E0 38 61 00 30 */ addi r3, r1, 0x30 -/* 802893A4 002862E4 38 81 00 2C */ addi r4, r1, 0x2c -/* 802893A8 002862E8 38 A1 00 28 */ addi r5, r1, 0x28 -/* 802893AC 002862EC 38 C1 00 40 */ addi r6, r1, 0x40 -/* 802893B0 002862F0 48 00 05 79 */ bl std_NS_find_if_X2_ -/* 802893B4 002862F4 80 61 00 30 */ lwz r3, 0x30(r1) -/* 802893B8 002862F8 90 61 00 34 */ stw r3, 0x34(r1) -/* 802893BC 002862FC 80 01 00 38 */ lwz r0, 0x38(r1) -/* 802893C0 00286300 90 01 00 24 */ stw r0, 0x24(r1) -/* 802893C4 00286304 90 61 00 20 */ stw r3, 0x20(r1) -/* 802893C8 00286308 90 01 00 0C */ stw r0, 0xc(r1) -/* 802893CC 0028630C 90 61 00 08 */ stw r3, 8(r1) -/* 802893D0 00286310 7C 03 00 50 */ subf r0, r3, r0 -/* 802893D4 00286314 7C 00 00 34 */ cntlzw r0, r0 -/* 802893D8 00286318 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f -/* 802893DC 0028631C 7C 00 00 34 */ cntlzw r0, r0 -/* 802893E0 00286320 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 802893E4 00286324 41 82 00 0C */ beq lbl_802893F0 -/* 802893E8 00286328 38 63 FF F4 */ addi r3, r3, -12 -/* 802893EC 0028632C 48 00 00 08 */ b lbl_802893F4 -lbl_802893F0: -/* 802893F0 00286330 38 60 00 00 */ li r3, 0 -lbl_802893F4: -/* 802893F4 00286334 80 01 00 54 */ lwz r0, 0x54(r1) -/* 802893F8 00286338 7C 08 03 A6 */ mtlr r0 -/* 802893FC 0028633C 38 21 00 50 */ addi r1, r1, 0x50 -/* 80289400 00286340 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_reset -JStudio_NS_stb_NS_TControl_NS_reset: -/* 80289404 00286344 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80289408 00286348 7C 08 02 A6 */ mflr r0 -/* 8028940C 0028634C 90 01 00 54 */ stw r0, 0x54(r1) -/* 80289410 00286350 93 E1 00 4C */ stw r31, 0x4c(r1) -/* 80289414 00286354 7C 7F 1B 78 */ mr r31, r3 -/* 80289418 00286358 38 00 00 00 */ li r0, 0 -/* 8028941C 0028635C 90 03 00 1C */ stw r0, 0x1c(r3) -/* 80289420 00286360 38 7F 00 20 */ addi r3, r31, 0x20 -/* 80289424 00286364 38 80 00 00 */ li r4, 0 -/* 80289428 00286368 4B FF F7 A9 */ bl JStudio_NS_stb_NS_TObject_NS_reset -/* 8028942C 0028636C 38 1F 00 14 */ addi r0, r31, 0x14 -/* 80289430 00286370 90 01 00 24 */ stw r0, 0x24(r1) -/* 80289434 00286374 90 01 00 20 */ stw r0, 0x20(r1) -/* 80289438 00286378 90 01 00 34 */ stw r0, 0x34(r1) -/* 8028943C 0028637C 90 01 00 30 */ stw r0, 0x30(r1) -/* 80289440 00286380 80 7F 00 14 */ lwz r3, 0x14(r31) -/* 80289444 00286384 90 61 00 1C */ stw r3, 0x1c(r1) -/* 80289448 00286388 90 61 00 18 */ stw r3, 0x18(r1) -/* 8028944C 0028638C 90 61 00 2C */ stw r3, 0x2c(r1) -/* 80289450 00286390 90 61 00 28 */ stw r3, 0x28(r1) -/* 80289454 00286394 90 61 00 38 */ stw r3, 0x38(r1) -/* 80289458 00286398 90 01 00 3C */ stw r0, 0x3c(r1) -/* 8028945C 0028639C 48 00 00 1C */ b lbl_80289478 -lbl_80289460: -/* 80289460 002863A0 80 81 00 38 */ lwz r4, 0x38(r1) -/* 80289464 002863A4 38 64 FF F4 */ addi r3, r4, -12 -/* 80289468 002863A8 80 04 00 00 */ lwz r0, 0(r4) -/* 8028946C 002863AC 90 01 00 38 */ stw r0, 0x38(r1) -/* 80289470 002863B0 38 80 00 00 */ li r4, 0 -/* 80289474 002863B4 4B FF F7 5D */ bl JStudio_NS_stb_NS_TObject_NS_reset -lbl_80289478: -/* 80289478 002863B8 80 61 00 3C */ lwz r3, 0x3c(r1) -/* 8028947C 002863BC 90 61 00 14 */ stw r3, 0x14(r1) -/* 80289480 002863C0 80 01 00 38 */ lwz r0, 0x38(r1) -/* 80289484 002863C4 90 01 00 10 */ stw r0, 0x10(r1) -/* 80289488 002863C8 90 61 00 0C */ stw r3, 0xc(r1) -/* 8028948C 002863CC 90 01 00 08 */ stw r0, 8(r1) -/* 80289490 002863D0 7C 00 18 50 */ subf r0, r0, r3 -/* 80289494 002863D4 7C 00 00 34 */ cntlzw r0, r0 -/* 80289498 002863D8 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 8028949C 002863DC 41 82 FF C4 */ beq lbl_80289460 -/* 802894A0 002863E0 83 E1 00 4C */ lwz r31, 0x4c(r1) -/* 802894A4 002863E4 80 01 00 54 */ lwz r0, 0x54(r1) -/* 802894A8 002863E8 7C 08 03 A6 */ mtlr r0 -/* 802894AC 002863EC 38 21 00 50 */ addi r1, r1, 0x50 -/* 802894B0 002863F0 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TControl_NS_forward -JStudio_NS_stb_NS_TControl_NS_forward: -/* 802894B4 002863F4 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 802894B8 002863F8 7C 08 02 A6 */ mflr r0 -/* 802894BC 002863FC 90 01 00 64 */ stw r0, 0x64(r1) -/* 802894C0 00286400 39 61 00 60 */ addi r11, r1, 0x60 -/* 802894C4 00286404 48 0D 8D 09 */ bl _savegpr_25 -/* 802894C8 00286408 7C 7B 1B 78 */ mr r27, r3 -/* 802894CC 0028640C 7C 9C 23 78 */ mr r28, r4 -/* 802894D0 00286410 80 03 00 40 */ lwz r0, 0x40(r3) -/* 802894D4 00286414 90 03 00 54 */ stw r0, 0x54(r3) -/* 802894D8 00286418 38 7B 00 20 */ addi r3, r27, 0x20 -/* 802894DC 0028641C 4B FF F7 0D */ bl JStudio_NS_stb_NS_TObject_NS_forward -/* 802894E0 00286420 7C 7F 1B 78 */ mr r31, r3 -/* 802894E4 00286424 3B C0 00 0F */ li r30, 0xf -/* 802894E8 00286428 3B A0 00 00 */ li r29, 0 -/* 802894EC 0028642C 38 1B 00 14 */ addi r0, r27, 0x14 -/* 802894F0 00286430 90 01 00 24 */ stw r0, 0x24(r1) -/* 802894F4 00286434 90 01 00 20 */ stw r0, 0x20(r1) -/* 802894F8 00286438 90 01 00 34 */ stw r0, 0x34(r1) -/* 802894FC 0028643C 90 01 00 30 */ stw r0, 0x30(r1) -/* 80289500 00286440 80 7B 00 14 */ lwz r3, 0x14(r27) -/* 80289504 00286444 90 61 00 1C */ stw r3, 0x1c(r1) -/* 80289508 00286448 90 61 00 18 */ stw r3, 0x18(r1) -/* 8028950C 0028644C 90 61 00 2C */ stw r3, 0x2c(r1) -/* 80289510 00286450 90 61 00 28 */ stw r3, 0x28(r1) -/* 80289514 00286454 90 61 00 38 */ stw r3, 0x38(r1) -/* 80289518 00286458 90 01 00 3C */ stw r0, 0x3c(r1) -/* 8028951C 0028645C 48 00 00 48 */ b lbl_80289564 -lbl_80289520: -/* 80289520 00286460 80 61 00 38 */ lwz r3, 0x38(r1) -/* 80289524 00286464 3B 23 FF F4 */ addi r25, r3, -12 -/* 80289528 00286468 80 03 00 00 */ lwz r0, 0(r3) -/* 8028952C 0028646C 90 01 00 38 */ stw r0, 0x38(r1) -/* 80289530 00286470 3B 40 00 00 */ li r26, 0 -/* 80289534 00286474 7F 23 CB 78 */ mr r3, r25 -/* 80289538 00286478 7F 84 E3 78 */ mr r4, r28 -/* 8028953C 0028647C 4B FF F6 AD */ bl JStudio_NS_stb_NS_TObject_NS_forward -/* 80289540 00286480 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80289544 00286484 40 82 00 0C */ bne lbl_80289550 -/* 80289548 00286488 57 E0 06 3F */ clrlwi. r0, r31, 0x18 -/* 8028954C 0028648C 41 82 00 08 */ beq lbl_80289554 -lbl_80289550: -/* 80289550 00286490 3B 40 00 01 */ li r26, 1 -lbl_80289554: -/* 80289554 00286494 7F 5F D3 78 */ mr r31, r26 -/* 80289558 00286498 80 19 00 30 */ lwz r0, 0x30(r25) -/* 8028955C 0028649C 7F DE 00 38 */ and r30, r30, r0 -/* 80289560 002864A0 7F BD 03 78 */ or r29, r29, r0 -lbl_80289564: -/* 80289564 002864A4 80 61 00 3C */ lwz r3, 0x3c(r1) -/* 80289568 002864A8 90 61 00 14 */ stw r3, 0x14(r1) -/* 8028956C 002864AC 80 01 00 38 */ lwz r0, 0x38(r1) -/* 80289570 002864B0 90 01 00 10 */ stw r0, 0x10(r1) -/* 80289574 002864B4 90 61 00 0C */ stw r3, 0xc(r1) -/* 80289578 002864B8 90 01 00 08 */ stw r0, 8(r1) -/* 8028957C 002864BC 7C 00 18 50 */ subf r0, r0, r3 -/* 80289580 002864C0 7C 00 00 34 */ cntlzw r0, r0 -/* 80289584 002864C4 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 80289588 002864C8 41 82 FF 98 */ beq lbl_80289520 -/* 8028958C 002864CC 57 A0 80 1E */ slwi r0, r29, 0x10 -/* 80289590 002864D0 7F C0 03 78 */ or r0, r30, r0 -/* 80289594 002864D4 90 1B 00 1C */ stw r0, 0x1c(r27) -/* 80289598 002864D8 7F E3 FB 78 */ mr r3, r31 -/* 8028959C 002864DC 39 61 00 60 */ addi r11, r1, 0x60 -/* 802895A0 002864E0 48 0D 8C 79 */ bl _restgpr_25 -/* 802895A4 002864E4 80 01 00 64 */ lwz r0, 0x64(r1) -/* 802895A8 002864E8 7C 08 03 A6 */ mtlr r0 -/* 802895AC 002864EC 38 21 00 60 */ addi r1, r1, 0x60 -/* 802895B0 002864F0 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TFactory_NS_dtor -JStudio_NS_stb_NS_TFactory_NS_dtor: -/* 802895B4 002864F4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802895B8 002864F8 7C 08 02 A6 */ mflr r0 -/* 802895BC 002864FC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802895C0 00286500 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802895C4 00286504 7C 7F 1B 79 */ or. r31, r3, r3 -/* 802895C8 00286508 41 82 00 1C */ beq lbl_802895E4 -/* 802895CC 0028650C 3C A0 80 3C */ lis r5, lbl_803C56C0@ha -/* 802895D0 00286510 38 05 56 C0 */ addi r0, r5, lbl_803C56C0@l -/* 802895D4 00286514 90 1F 00 00 */ stw r0, 0(r31) -/* 802895D8 00286518 7C 80 07 35 */ extsh. r0, r4 -/* 802895DC 0028651C 40 81 00 08 */ ble lbl_802895E4 -/* 802895E0 00286520 48 04 57 5D */ bl __dl__FPv -lbl_802895E4: -/* 802895E4 00286524 7F E3 FB 78 */ mr r3, r31 -/* 802895E8 00286528 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802895EC 0028652C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802895F0 00286530 7C 08 03 A6 */ mtlr r0 -/* 802895F4 00286534 38 21 00 10 */ addi r1, r1, 0x10 -/* 802895F8 00286538 4E 80 00 20 */ blr -/* 802895FC 0028653C 38 60 00 00 */ li r3, 0 -/* 80289600 00286540 4E 80 00 20 */ blr -/* 80289604 00286544 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80289608 00286548 7C 08 02 A6 */ mflr r0 -/* 8028960C 0028654C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80289610 00286550 28 04 00 00 */ cmplwi r4, 0 -/* 80289614 00286554 41 82 00 1C */ beq lbl_80289630 -/* 80289618 00286558 7C 83 23 78 */ mr r3, r4 -/* 8028961C 0028655C 38 80 00 01 */ li r4, 1 -/* 80289620 00286560 81 83 00 08 */ lwz r12, 8(r3) -/* 80289624 00286564 81 8C 00 08 */ lwz r12, 8(r12) -/* 80289628 00286568 7D 89 03 A6 */ mtctr r12 -/* 8028962C 0028656C 4E 80 04 21 */ bctrl -lbl_80289630: -/* 80289630 00286570 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80289634 00286574 7C 08 03 A6 */ mtlr r0 -/* 80289638 00286578 38 21 00 10 */ addi r1, r1, 0x10 -/* 8028963C 0028657C 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TParse -JStudio_NS_stb_NS_TParse: -/* 80289640 00286580 3C A0 80 3C */ lis r5, lbl_803C488C@ha -/* 80289644 00286584 38 05 48 8C */ addi r0, r5, lbl_803C488C@l -/* 80289648 00286588 90 03 00 00 */ stw r0, 0(r3) -/* 8028964C 0028658C 3C A0 80 3C */ lis r5, lbl_803C56A0@ha -/* 80289650 00286590 38 05 56 A0 */ addi r0, r5, lbl_803C56A0@l -/* 80289654 00286594 90 03 00 00 */ stw r0, 0(r3) -/* 80289658 00286598 90 83 00 04 */ stw r4, 4(r3) -/* 8028965C 0028659C 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TParse_NS_dtor -JStudio_NS_stb_NS_TParse_NS_dtor: -/* 80289660 002865A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80289664 002865A4 7C 08 02 A6 */ mflr r0 -/* 80289668 002865A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8028966C 002865AC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80289670 002865B0 93 C1 00 08 */ stw r30, 8(r1) -/* 80289674 002865B4 7C 7E 1B 79 */ or. r30, r3, r3 -/* 80289678 002865B8 7C 9F 23 78 */ mr r31, r4 -/* 8028967C 002865BC 41 82 00 28 */ beq lbl_802896A4 -/* 80289680 002865C0 3C 80 80 3C */ lis r4, lbl_803C56A0@ha -/* 80289684 002865C4 38 04 56 A0 */ addi r0, r4, lbl_803C56A0@l -/* 80289688 002865C8 90 1E 00 00 */ stw r0, 0(r30) -/* 8028968C 002865CC 38 80 00 00 */ li r4, 0 -/* 80289690 002865D0 48 05 32 39 */ bl JGadget_NS_binary_NS_TParse_header_block_NS_dtor -/* 80289694 002865D4 7F E0 07 35 */ extsh. r0, r31 -/* 80289698 002865D8 40 81 00 0C */ ble lbl_802896A4 -/* 8028969C 002865DC 7F C3 F3 78 */ mr r3, r30 -/* 802896A0 002865E0 48 04 56 9D */ bl __dl__FPv -lbl_802896A4: -/* 802896A4 002865E4 7F C3 F3 78 */ mr r3, r30 -/* 802896A8 002865E8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 802896AC 002865EC 83 C1 00 08 */ lwz r30, 8(r1) -/* 802896B0 002865F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802896B4 002865F4 7C 08 03 A6 */ mtlr r0 -/* 802896B8 002865F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 802896BC 002865FC 4E 80 00 20 */ blr -/* 802896C0 00286600 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802896C4 00286604 7C 08 02 A6 */ mflr r0 -/* 802896C8 00286608 90 01 00 24 */ stw r0, 0x24(r1) -/* 802896CC 0028660C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 802896D0 00286610 93 C1 00 18 */ stw r30, 0x18(r1) -/* 802896D4 00286614 7C 7E 1B 78 */ mr r30, r3 -/* 802896D8 00286618 7C DF 33 78 */ mr r31, r6 -/* 802896DC 0028661C 80 64 00 00 */ lwz r3, 0(r4) -/* 802896E0 00286620 90 61 00 08 */ stw r3, 8(r1) -/* 802896E4 00286624 38 03 00 20 */ addi r0, r3, 0x20 -/* 802896E8 00286628 90 04 00 00 */ stw r0, 0(r4) -/* 802896EC 0028662C 80 61 00 08 */ lwz r3, 8(r1) -/* 802896F0 00286630 80 03 00 0C */ lwz r0, 0xc(r3) -/* 802896F4 00286634 90 05 00 00 */ stw r0, 0(r5) -/* 802896F8 00286638 80 61 00 08 */ lwz r3, 8(r1) -/* 802896FC 0028663C 38 82 BA D8 */ addi r4, r2, lbl_804554D8-_SDA2_BASE_ -/* 80289700 00286640 38 A0 00 04 */ li r5, 4 -/* 80289704 00286644 48 0D C9 89 */ bl func_8036608C -/* 80289708 00286648 2C 03 00 00 */ cmpwi r3, 0 -/* 8028970C 0028664C 41 82 00 0C */ beq lbl_80289718 -/* 80289710 00286650 38 60 00 00 */ li r3, 0 -/* 80289714 00286654 48 00 00 60 */ b lbl_80289774 -lbl_80289718: -/* 80289718 00286658 80 61 00 08 */ lwz r3, 8(r1) -/* 8028971C 0028665C A0 03 00 04 */ lhz r0, 4(r3) -/* 80289720 00286660 28 00 FE FF */ cmplwi r0, 0xfeff -/* 80289724 00286664 41 82 00 0C */ beq lbl_80289730 -/* 80289728 00286668 38 60 00 00 */ li r3, 0 -/* 8028972C 0028666C 48 00 00 48 */ b lbl_80289774 -lbl_80289730: -/* 80289730 00286670 A0 03 00 06 */ lhz r0, 6(r3) -/* 80289734 00286674 28 00 00 01 */ cmplwi r0, 1 -/* 80289738 00286678 40 80 00 0C */ bge lbl_80289744 -/* 8028973C 0028667C 38 60 00 00 */ li r3, 0 -/* 80289740 00286680 48 00 00 34 */ b lbl_80289774 -lbl_80289744: -/* 80289744 00286684 54 00 04 3E */ clrlwi r0, r0, 0x10 -/* 80289748 00286688 28 00 00 03 */ cmplwi r0, 3 -/* 8028974C 0028668C 40 81 00 0C */ ble lbl_80289758 -/* 80289750 00286690 38 60 00 00 */ li r3, 0 -/* 80289754 00286694 48 00 00 20 */ b lbl_80289774 -lbl_80289758: -/* 80289758 00286698 7F C3 F3 78 */ mr r3, r30 -/* 8028975C 0028669C 38 81 00 08 */ addi r4, r1, 8 -/* 80289760 002866A0 7F E5 FB 78 */ mr r5, r31 -/* 80289764 002866A4 81 9E 00 00 */ lwz r12, 0(r30) -/* 80289768 002866A8 81 8C 00 14 */ lwz r12, 0x14(r12) -/* 8028976C 002866AC 7D 89 03 A6 */ mtctr r12 -/* 80289770 002866B0 4E 80 04 21 */ bctrl -lbl_80289774: -/* 80289774 002866B4 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 80289778 002866B8 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8028977C 002866BC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80289780 002866C0 7C 08 03 A6 */ mtlr r0 -/* 80289784 002866C4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80289788 002866C8 4E 80 00 20 */ blr -/* 8028978C 002866CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80289790 002866D0 7C 08 02 A6 */ mflr r0 -/* 80289794 002866D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80289798 002866D8 80 E4 00 00 */ lwz r7, 0(r4) -/* 8028979C 002866DC 90 E1 00 08 */ stw r7, 8(r1) -/* 802897A0 002866E0 80 07 00 00 */ lwz r0, 0(r7) -/* 802897A4 002866E4 7C 07 02 14 */ add r0, r7, r0 -/* 802897A8 002866E8 90 04 00 00 */ stw r0, 0(r4) -/* 802897AC 002866EC 80 81 00 08 */ lwz r4, 8(r1) -/* 802897B0 002866F0 80 04 00 00 */ lwz r0, 0(r4) -/* 802897B4 002866F4 90 05 00 00 */ stw r0, 0(r5) -/* 802897B8 002866F8 38 81 00 08 */ addi r4, r1, 8 -/* 802897BC 002866FC 7C C5 33 78 */ mr r5, r6 -/* 802897C0 00286700 81 83 00 00 */ lwz r12, 0(r3) -/* 802897C4 00286704 81 8C 00 18 */ lwz r12, 0x18(r12) -/* 802897C8 00286708 7D 89 03 A6 */ mtctr r12 -/* 802897CC 0028670C 4E 80 04 21 */ bctrl -/* 802897D0 00286710 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802897D4 00286714 7C 08 03 A6 */ mtlr r0 -/* 802897D8 00286718 38 21 00 10 */ addi r1, r1, 0x10 -/* 802897DC 0028671C 4E 80 00 20 */ blr -/* 802897E0 00286720 38 60 00 01 */ li r3, 1 -/* 802897E4 00286724 4E 80 00 20 */ blr - -.global JStudio_NS_stb_NS_TParse_NS_parseBlock_block -JStudio_NS_stb_NS_TParse_NS_parseBlock_block: -/* 802897E8 00286728 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802897EC 0028672C 7C 08 02 A6 */ mflr r0 -/* 802897F0 00286730 90 01 00 14 */ stw r0, 0x14(r1) -/* 802897F4 00286734 80 04 00 00 */ lwz r0, 0(r4) -/* 802897F8 00286738 90 01 00 08 */ stw r0, 8(r1) -/* 802897FC 0028673C 38 81 00 08 */ addi r4, r1, 8 -/* 80289800 00286740 81 83 00 00 */ lwz r12, 0(r3) -/* 80289804 00286744 81 8C 00 1C */ lwz r12, 0x1c(r12) -/* 80289808 00286748 7D 89 03 A6 */ mtctr r12 -/* 8028980C 0028674C 4E 80 04 21 */ bctrl -/* 80289810 00286750 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80289814 00286754 7C 08 03 A6 */ mtlr r0 -/* 80289818 00286758 38 21 00 10 */ addi r1, r1, 0x10 -/* 8028981C 0028675C 4E 80 00 20 */ blr -/* 80289820 00286760 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80289824 00286764 7C 08 02 A6 */ mflr r0 -/* 80289828 00286768 90 01 00 24 */ stw r0, 0x24(r1) -/* 8028982C 0028676C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80289830 00286770 48 0D 89 AD */ bl _savegpr_29 -/* 80289834 00286774 7C 9D 23 78 */ mr r29, r4 -/* 80289838 00286778 7C BE 2B 78 */ mr r30, r5 -/* 8028983C 0028677C 83 E3 00 04 */ lwz r31, 4(r3) -/* 80289840 00286780 80 A4 00 00 */ lwz r5, 0(r4) -/* 80289844 00286784 80 65 00 04 */ lwz r3, 4(r5) -/* 80289848 00286788 3C 03 00 01 */ addis r0, r3, 1 -/* 8028984C 0028678C 28 00 FF FF */ cmplwi r0, 0xffff -/* 80289850 00286790 40 82 00 28 */ bne lbl_80289878 -/* 80289854 00286794 38 7F 00 20 */ addi r3, r31, 0x20 -/* 80289858 00286798 A0 85 00 0A */ lhz r4, 0xa(r5) -/* 8028985C 0028679C 38 04 00 03 */ addi r0, r4, 3 -/* 80289860 002867A0 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d -/* 80289864 002867A4 38 84 00 0C */ addi r4, r4, 0xc -/* 80289868 002867A8 7C 85 22 14 */ add r4, r5, r4 -/* 8028986C 002867AC 4B FF F3 65 */ bl JStudio_NS_stb_NS_TObject_NS_reset -/* 80289870 002867B0 38 60 00 01 */ li r3, 1 -/* 80289874 002867B4 48 00 00 9C */ b lbl_80289910 -lbl_80289878: -/* 80289878 002867B8 57 C0 06 F7 */ rlwinm. r0, r30, 0, 0x1b, 0x1b -/* 8028987C 002867BC 41 82 00 40 */ beq lbl_802898BC -/* 80289880 002867C0 7F E3 FB 78 */ mr r3, r31 -/* 80289884 002867C4 38 85 00 0C */ addi r4, r5, 0xc -/* 80289888 002867C8 A0 A5 00 0A */ lhz r5, 0xa(r5) -/* 8028988C 002867CC 4B FF FA D9 */ bl JStudio_NS_stb_NS_TControl_NS_getObject -/* 80289890 002867D0 28 03 00 00 */ cmplwi r3, 0 -/* 80289894 002867D4 41 82 00 28 */ beq lbl_802898BC -/* 80289898 002867D8 80 BD 00 00 */ lwz r5, 0(r29) -/* 8028989C 002867DC A0 85 00 0A */ lhz r4, 0xa(r5) -/* 802898A0 002867E0 38 04 00 03 */ addi r0, r4, 3 -/* 802898A4 002867E4 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d -/* 802898A8 002867E8 38 84 00 0C */ addi r4, r4, 0xc -/* 802898AC 002867EC 7C 85 22 14 */ add r4, r5, r4 -/* 802898B0 002867F0 4B FF F3 21 */ bl JStudio_NS_stb_NS_TObject_NS_reset -/* 802898B4 002867F4 38 60 00 01 */ li r3, 1 -/* 802898B8 002867F8 48 00 00 58 */ b lbl_80289910 -lbl_802898BC: -/* 802898BC 002867FC 57 C0 06 B5 */ rlwinm. r0, r30, 0, 0x1a, 0x1a -/* 802898C0 00286800 41 82 00 0C */ beq lbl_802898CC -/* 802898C4 00286804 38 60 00 01 */ li r3, 1 -/* 802898C8 00286808 48 00 00 48 */ b lbl_80289910 -lbl_802898CC: -/* 802898CC 0028680C 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 802898D0 00286810 28 03 00 00 */ cmplwi r3, 0 -/* 802898D4 00286814 40 82 00 0C */ bne lbl_802898E0 -/* 802898D8 00286818 38 60 00 00 */ li r3, 0 -/* 802898DC 0028681C 48 00 00 34 */ b lbl_80289910 -lbl_802898E0: -/* 802898E0 00286820 7F A4 EB 78 */ mr r4, r29 -/* 802898E4 00286824 81 83 00 00 */ lwz r12, 0(r3) -/* 802898E8 00286828 81 8C 00 0C */ lwz r12, 0xc(r12) -/* 802898EC 0028682C 7D 89 03 A6 */ mtctr r12 -/* 802898F0 00286830 4E 80 04 21 */ bctrl -/* 802898F4 00286834 7C 64 1B 79 */ or. r4, r3, r3 -/* 802898F8 00286838 40 82 00 0C */ bne lbl_80289904 -/* 802898FC 0028683C 57 C3 D7 FE */ rlwinm r3, r30, 0x1a, 0x1f, 0x1f -/* 80289900 00286840 48 00 00 10 */ b lbl_80289910 -lbl_80289904: -/* 80289904 00286844 7F E3 FB 78 */ mr r3, r31 -/* 80289908 00286848 4B FF F9 21 */ bl JStudio_NS_stb_NS_TControl_NS_appendObject -/* 8028990C 0028684C 38 60 00 01 */ li r3, 1 -lbl_80289910: -/* 80289910 00286850 39 61 00 20 */ addi r11, r1, 0x20 -/* 80289914 00286854 48 0D 89 15 */ bl _restgpr_29 -/* 80289918 00286858 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8028991C 0028685C 7C 08 03 A6 */ mtlr r0 -/* 80289920 00286860 38 21 00 20 */ addi r1, r1, 0x20 -/* 80289924 00286864 4E 80 00 20 */ blr - -.global std_NS_find_if_X2_ -std_NS_find_if_X2_: -/* 80289928 00286868 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8028992C 0028686C 7C 08 02 A6 */ mflr r0 -/* 80289930 00286870 90 01 00 34 */ stw r0, 0x34(r1) -/* 80289934 00286874 39 61 00 30 */ addi r11, r1, 0x30 -/* 80289938 00286878 48 0D 88 A1 */ bl _savegpr_28 -/* 8028993C 0028687C 7C 7C 1B 78 */ mr r28, r3 -/* 80289940 00286880 7C 9D 23 78 */ mr r29, r4 -/* 80289944 00286884 7C BE 2B 78 */ mr r30, r5 -/* 80289948 00286888 7C DF 33 78 */ mr r31, r6 -/* 8028994C 0028688C 48 00 00 10 */ b lbl_8028995C -lbl_80289950: -/* 80289950 00286890 80 7D 00 00 */ lwz r3, 0(r29) -/* 80289954 00286894 80 03 00 00 */ lwz r0, 0(r3) -/* 80289958 00286898 90 1D 00 00 */ stw r0, 0(r29) -lbl_8028995C: -/* 8028995C 0028689C 80 7E 00 00 */ lwz r3, 0(r30) -/* 80289960 002868A0 90 61 00 14 */ stw r3, 0x14(r1) -/* 80289964 002868A4 80 1D 00 00 */ lwz r0, 0(r29) -/* 80289968 002868A8 90 01 00 10 */ stw r0, 0x10(r1) -/* 8028996C 002868AC 90 61 00 0C */ stw r3, 0xc(r1) -/* 80289970 002868B0 90 01 00 08 */ stw r0, 8(r1) -/* 80289974 002868B4 7C 00 18 50 */ subf r0, r0, r3 -/* 80289978 002868B8 7C 00 00 34 */ cntlzw r0, r0 -/* 8028997C 002868BC 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f -/* 80289980 002868C0 40 82 00 1C */ bne lbl_8028999C -/* 80289984 002868C4 80 7D 00 00 */ lwz r3, 0(r29) -/* 80289988 002868C8 38 63 FF F4 */ addi r3, r3, -12 -/* 8028998C 002868CC 7F E4 FB 78 */ mr r4, r31 -/* 80289990 002868D0 4B FF EF F9 */ bl JStudio_NS_object_NS_TIDData_NS_isEqual -/* 80289994 002868D4 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80289998 002868D8 41 82 FF B8 */ beq lbl_80289950 -lbl_8028999C: -/* 8028999C 002868DC 80 1D 00 00 */ lwz r0, 0(r29) -/* 802899A0 002868E0 90 1C 00 00 */ stw r0, 0(r28) -/* 802899A4 002868E4 39 61 00 30 */ addi r11, r1, 0x30 -/* 802899A8 002868E8 48 0D 88 7D */ bl _restgpr_28 -/* 802899AC 002868EC 80 01 00 34 */ lwz r0, 0x34(r1) -/* 802899B0 002868F0 7C 08 03 A6 */ mtlr r0 -/* 802899B4 002868F4 38 21 00 30 */ addi r1, r1, 0x30 -/* 802899B8 002868F8 4E 80 00 20 */ blr - diff --git a/asm/JUtility/JUTConsole.s b/asm/JUtility/JUTConsole.s index 58dc194b47..dc9338b830 100644 --- a/asm/JUtility/JUTConsole.s +++ b/asm/JUtility/JUTConsole.s @@ -1086,7 +1086,7 @@ JUTConsoleManager_NS_appendConsole: /* 802E8278 002E51B8 38 61 00 10 */ addi r3, r1, 0x10 /* 802E827C 002E51BC 7F C4 F3 78 */ mr r4, r30 /* 802E8280 002E51C0 38 A1 00 14 */ addi r5, r1, 0x14 -/* 802E8284 002E51C4 4B FF 49 25 */ bl JGadget_NS_TNodeLinkList_NS_Insert +/* 802E8284 002E51C4 4B FF 49 25 */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode /* 802E8288 002E51C8 80 1E 00 0C */ lwz r0, 0xc(r30) /* 802E828C 002E51CC 28 00 00 00 */ cmplwi r0, 0 /* 802E8290 002E51D0 40 82 00 08 */ bne lbl_802E8298 diff --git a/asm/d/d_demo.s b/asm/d/d_demo.s index c947f3677c..6b6da0e2b9 100644 --- a/asm/d/d_demo.s +++ b/asm/d/d_demo.s @@ -2127,7 +2127,7 @@ dDemo_c_NS_start: /* 80039B8C 00036ACC 7C 9D 23 78 */ mr r29, r4 /* 80039B90 00036AD0 FF E0 08 90 */ fmr f31, f1 /* 80039B94 00036AD4 80 6D 88 84 */ lwz r3, lbl_80450E04-_SDA_BASE_(r13) -/* 80039B98 00036AD8 48 24 F8 6D */ bl JStudio_NS_stb_NS_TControl_NS_reset +/* 80039B98 00036AD8 48 24 F8 6D */ bl reset__Q37JStudio3stb8TControlFv /* 80039B9C 00036ADC 38 61 00 0C */ addi r3, r1, 0xc /* 80039BA0 00036AE0 80 8D 88 84 */ lwz r4, lbl_80450E04-_SDA_BASE_(r13) /* 80039BA4 00036AE4 48 24 BA C9 */ bl JStudio_NS_TParse @@ -2158,7 +2158,7 @@ lbl_80039BEC: lbl_80039C04: /* 80039C04 00036B44 80 6D 88 84 */ lwz r3, lbl_80450E04-_SDA_BASE_(r13) /* 80039C08 00036B48 38 80 00 00 */ li r4, 0 -/* 80039C0C 00036B4C 48 24 F8 A9 */ bl JStudio_NS_stb_NS_TControl_NS_forward +/* 80039C0C 00036B4C 48 24 F8 A9 */ bl forward__Q37JStudio3stb8TControlFUl /* 80039C10 00036B50 93 AD 88 AC */ stw r29, lbl_80450E2C-_SDA_BASE_(r13) /* 80039C14 00036B54 28 1D 00 00 */ cmplwi r29, 0 /* 80039C18 00036B58 41 82 00 98 */ beq lbl_80039CB0 @@ -2229,7 +2229,7 @@ dDemo_c_NS_end: /* 80039D04 00036C44 93 E1 00 0C */ stw r31, 0xc(r1) /* 80039D08 00036C48 83 ED 88 84 */ lwz r31, lbl_80450E04-_SDA_BASE_(r13) /* 80039D0C 00036C4C 7F E3 FB 78 */ mr r3, r31 -/* 80039D10 00036C50 48 24 F5 F1 */ bl JStudio_NS_stb_NS_TControl_NS_destroyObject_all +/* 80039D10 00036C50 48 24 F5 F1 */ bl destroyObject_all__Q37JStudio3stb8TControlFv /* 80039D14 00036C54 38 7F 00 60 */ addi r3, r31, 0x60 /* 80039D18 00036C58 48 24 AA B9 */ bl JStudio_NS_fvb_NS_TControl_NS_destroyObject_all /* 80039D1C 00036C5C 38 7F 00 74 */ addi r3, r31, 0x74 @@ -2253,7 +2253,7 @@ dDemo_c_NS_branch: /* 80039D58 00036C98 93 E1 00 0C */ stw r31, 0xc(r1) /* 80039D5C 00036C9C 83 ED 88 84 */ lwz r31, lbl_80450E04-_SDA_BASE_(r13) /* 80039D60 00036CA0 7F E3 FB 78 */ mr r3, r31 -/* 80039D64 00036CA4 48 24 F5 9D */ bl JStudio_NS_stb_NS_TControl_NS_destroyObject_all +/* 80039D64 00036CA4 48 24 F5 9D */ bl destroyObject_all__Q37JStudio3stb8TControlFv /* 80039D68 00036CA8 38 7F 00 60 */ addi r3, r31, 0x60 /* 80039D6C 00036CAC 48 24 AA 65 */ bl JStudio_NS_fvb_NS_TControl_NS_destroyObject_all /* 80039D70 00036CB0 38 7F 00 74 */ addi r3, r31, 0x74 @@ -2303,7 +2303,7 @@ lbl_80039DE8: lbl_80039E0C: /* 80039E0C 00036D4C 80 6D 88 84 */ lwz r3, lbl_80450E04-_SDA_BASE_(r13) /* 80039E10 00036D50 38 80 00 01 */ li r4, 1 -/* 80039E14 00036D54 48 24 F6 A1 */ bl JStudio_NS_stb_NS_TControl_NS_forward +/* 80039E14 00036D54 48 24 F6 A1 */ bl forward__Q37JStudio3stb8TControlFUl /* 80039E18 00036D58 54 60 06 3F */ clrlwi. r0, r3, 0x18 /* 80039E1C 00036D5C 41 82 00 30 */ beq lbl_80039E4C /* 80039E20 00036D60 80 6D 88 A8 */ lwz r3, lbl_80450E28-_SDA_BASE_(r13) diff --git a/include/JSystem/JGadget/binary.h b/include/JSystem/JGadget/binary.h new file mode 100644 index 0000000000..cec6523e1a --- /dev/null +++ b/include/JSystem/JGadget/binary.h @@ -0,0 +1,37 @@ +#ifndef JSYSTEM_JGADGET_BINARY_H +#define JSYSTEM_JGADGET_BINARY_H + +#include "dolphin/types.h" + +namespace JGadget { +namespace binary { + +inline u32 align_roundUp(u32 arg0, u32 uAlign) { + return (arg0 + uAlign - 1) & ~(uAlign - 1); +} + +struct TParseData { + TParseData(const void* pContent) : raw(pContent) {} + + const void* getRaw() const { return raw; } + + const void* raw; +}; + +template +struct TParseData_aligned : public TParseData { + TParseData_aligned(const void* pContent) : TParseData(pContent) {} +}; + +// Base for header and/or block parsing +struct TParse_header_block { + virtual ~TParse_header_block(); + + virtual int parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 arg2) = 0; + virtual int parseBlock_next(const void** ppData_inout, u32* puData_out, u32 arg2) = 0; +}; + +} // namespace binary +} // namespace JGadget + +#endif diff --git a/include/JSystem/JGadget/linklist.h b/include/JSystem/JGadget/linklist.h new file mode 100644 index 0000000000..9984a3adc9 --- /dev/null +++ b/include/JSystem/JGadget/linklist.h @@ -0,0 +1,59 @@ +#ifndef JSYSTEM_JGADGET_LINKLIST_H +#define JSYSTEM_JGADGET_LINKLIST_H + +#include "dolphin/types.h" + +namespace JGadget { + +struct TLinkListNode { + TLinkListNode() : pNext_(NULL), pPrev_(NULL) {} + + TLinkListNode* getPrev() const { return pPrev_; } + + TLinkListNode* pNext_; + TLinkListNode* pPrev_; +}; + +struct TNodeLinkList { + struct iterator { + iterator() {} + iterator(TLinkListNode* p) { node = p; } + + TLinkListNode* node; + }; + + TNodeLinkList() { Initialize_(); } + ~TNodeLinkList(); + + void Initialize_() { + iter.node = NULL; + oNode_.pNext_ = &oNode_; + oNode_.pPrev_ = &oNode_; + } + + void Insert(iterator iter, TLinkListNode* node); + + iterator end() { return iterator(oNode_.pNext_); } + + iterator iter; + TLinkListNode oNode_; +}; + +// Currently non matching, but its a rough idea +template +struct TLinkList : TNodeLinkList { + TLinkListNode* Element_toNode(T* p) { return &static_cast(p)->mNode; } + + iterator end() { return ((TNodeLinkList*)this)->end(); } + + iterator Insert(iterator pIt, T* p) { + ((TNodeLinkList*)this)->Insert(pIt, Element_toNode(p)); + return iterator(iter.node); + } + + void Push_back(T* p) { Insert(end(), p); }; +}; + +} // namespace JGadget + +#endif diff --git a/include/JSystem/JStudio/asm/appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s b/include/JSystem/JStudio/asm/appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s new file mode 100644 index 0000000000..cfb56ef0c3 --- /dev/null +++ b/include/JSystem/JStudio/asm/appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s @@ -0,0 +1,20 @@ +/* 80289228 00286168 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 8028922C 0028616C 7C 08 02 A6 */ mflr r0 +/* 80289230 00286170 90 01 00 24 */ stw r0, 0x24(r1) +/* 80289234 00286174 7C 65 1B 78 */ mr r5, r3 +/* 80289238 00286178 90 A4 00 14 */ stw r5, 0x14(r4) +/* 8028923C 0028617C 38 05 00 14 */ addi r0, r5, 0x14 +/* 80289240 00286180 90 01 00 0C */ stw r0, 0xc(r1) +/* 80289244 00286184 90 01 00 08 */ stw r0, 8(r1) +/* 80289248 00286188 90 01 00 1C */ stw r0, 0x1c(r1) +/* 8028924C 0028618C 90 01 00 18 */ stw r0, 0x18(r1) +/* 80289250 00286190 38 C4 00 0C */ addi r6, r4, 0xc +/* 80289254 00286194 90 01 00 14 */ stw r0, 0x14(r1) +/* 80289258 00286198 38 61 00 10 */ addi r3, r1, 0x10 +/* 8028925C 0028619C 38 85 00 10 */ addi r4, r5, 0x10 +/* 80289260 002861A0 38 A1 00 14 */ addi r5, r1, 0x14 +/* 80289264 002861A4 48 05 39 45 */ bl Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode +/* 80289268 002861A8 80 01 00 24 */ lwz r0, 0x24(r1) +/* 8028926C 002861AC 7C 08 03 A6 */ mtlr r0 +/* 80289270 002861B0 38 21 00 20 */ addi r1, r1, 0x20 +/* 80289274 002861B4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/destroyObject_all__Q37JStudio3stb8TControlFv.s b/include/JSystem/JStudio/asm/destroyObject_all__Q37JStudio3stb8TControlFv.s new file mode 100644 index 0000000000..d53ca8af61 --- /dev/null +++ b/include/JSystem/JStudio/asm/destroyObject_all__Q37JStudio3stb8TControlFv.s @@ -0,0 +1,27 @@ +/* 80289300 00286240 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80289304 00286244 7C 08 02 A6 */ mflr r0 +/* 80289308 00286248 90 01 00 24 */ stw r0, 0x24(r1) +/* 8028930C 0028624C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 80289310 00286250 93 C1 00 18 */ stw r30, 0x18(r1) +/* 80289314 00286254 7C 7E 1B 78 */ mr r30, r3 +/* 80289318 00286258 3B FE 00 14 */ addi r31, r30, 0x14 +/* 8028931C 0028625C 93 E1 00 10 */ stw r31, 0x10(r1) +/* 80289320 00286260 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80289324 00286264 93 E1 00 14 */ stw r31, 0x14(r1) +/* 80289328 00286268 48 00 00 18 */ b lbl_80289340 +lbl_8028932C: +/* 8028932C 0028626C 80 7F 00 04 */ lwz r3, 4(r31) +/* 80289330 00286270 90 61 00 08 */ stw r3, 8(r1) +/* 80289334 00286274 38 83 FF F4 */ addi r4, r3, -12 +/* 80289338 00286278 7F C3 F3 78 */ mr r3, r30 +/* 8028933C 0028627C 4B FF FF 75 */ bl destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject +lbl_80289340: +/* 80289340 00286280 80 1E 00 10 */ lwz r0, 0x10(r30) +/* 80289344 00286284 28 00 00 00 */ cmplwi r0, 0 +/* 80289348 00286288 40 82 FF E4 */ bne lbl_8028932C +/* 8028934C 0028628C 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80289350 00286290 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 80289354 00286294 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80289358 00286298 7C 08 03 A6 */ mtlr r0 +/* 8028935C 0028629C 38 21 00 20 */ addi r1, r1, 0x20 +/* 80289360 002862A0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/forward__Q37JStudio3stb7TObjectFUl.s b/include/JSystem/JStudio/asm/forward__Q37JStudio3stb7TObjectFUl.s new file mode 100644 index 0000000000..ae8c302ee6 --- /dev/null +++ b/include/JSystem/JStudio/asm/forward__Q37JStudio3stb7TObjectFUl.s @@ -0,0 +1,157 @@ +/* 80288BE8 00285B28 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 80288BEC 00285B2C 7C 08 02 A6 */ mflr r0 +/* 80288BF0 00285B30 90 01 00 24 */ stw r0, 0x24(r1) +/* 80288BF4 00285B34 39 61 00 20 */ addi r11, r1, 0x20 +/* 80288BF8 00285B38 48 0D 95 E5 */ bl _savegpr_29 +/* 80288BFC 00285B3C 7C 7E 1B 78 */ mr r30, r3 +/* 80288C00 00285B40 7C 9F 23 78 */ mr r31, r4 +/* 80288C04 00285B44 3B A0 00 00 */ li r29, 0 +lbl_80288C08: +/* 80288C08 00285B48 A0 1E 00 1C */ lhz r0, 0x1c(r30) +/* 80288C0C 00285B4C 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10 +/* 80288C10 00285B50 41 82 00 60 */ beq lbl_80288C70 +/* 80288C14 00285B54 80 1E 00 30 */ lwz r0, 0x30(r30) +/* 80288C18 00285B58 2C 00 00 04 */ cmpwi r0, 4 +/* 80288C1C 00285B5C 41 82 00 24 */ beq lbl_80288C40 +/* 80288C20 00285B60 40 80 00 14 */ bge lbl_80288C34 +/* 80288C24 00285B64 2C 00 00 02 */ cmpwi r0, 2 +/* 80288C28 00285B68 41 82 00 18 */ beq lbl_80288C40 +/* 80288C2C 00285B6C 40 80 00 3C */ bge lbl_80288C68 +/* 80288C30 00285B70 48 00 00 38 */ b lbl_80288C68 +lbl_80288C34: +/* 80288C34 00285B74 2C 00 00 08 */ cmpwi r0, 8 +/* 80288C38 00285B78 41 82 00 30 */ beq lbl_80288C68 +/* 80288C3C 00285B7C 48 00 00 2C */ b lbl_80288C68 +lbl_80288C40: +/* 80288C40 00285B80 38 00 00 08 */ li r0, 8 +/* 80288C44 00285B84 90 1E 00 30 */ stw r0, 0x30(r30) +/* 80288C48 00285B88 88 1E 00 1E */ lbz r0, 0x1e(r30) +/* 80288C4C 00285B8C 28 00 00 00 */ cmplwi r0, 0 +/* 80288C50 00285B90 41 82 00 18 */ beq lbl_80288C68 +/* 80288C54 00285B94 7F C3 F3 78 */ mr r3, r30 +/* 80288C58 00285B98 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288C5C 00285B9C 81 8C 00 10 */ lwz r12, 0x10(r12) +/* 80288C60 00285BA0 7D 89 03 A6 */ mtctr r12 +/* 80288C64 00285BA4 4E 80 04 21 */ bctrl +lbl_80288C68: +/* 80288C68 00285BA8 38 60 00 01 */ li r3, 1 +/* 80288C6C 00285BAC 48 00 01 94 */ b lbl_80288E00 +lbl_80288C70: +/* 80288C70 00285BB0 80 1E 00 30 */ lwz r0, 0x30(r30) +/* 80288C74 00285BB4 2C 00 00 08 */ cmpwi r0, 8 +/* 80288C78 00285BB8 40 82 00 20 */ bne lbl_80288C98 +/* 80288C7C 00285BBC 7F C3 F3 78 */ mr r3, r30 +/* 80288C80 00285BC0 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288C84 00285BC4 81 8C 00 0C */ lwz r12, 0xc(r12) +/* 80288C88 00285BC8 7D 89 03 A6 */ mtctr r12 +/* 80288C8C 00285BCC 4E 80 04 21 */ bctrl +/* 80288C90 00285BD0 38 00 00 02 */ li r0, 2 +/* 80288C94 00285BD4 90 1E 00 30 */ stw r0, 0x30(r30) +lbl_80288C98: +/* 80288C98 00285BD8 80 7E 00 14 */ lwz r3, 0x14(r30) +/* 80288C9C 00285BDC 28 03 00 00 */ cmplwi r3, 0 +/* 80288CA0 00285BE0 41 82 00 10 */ beq lbl_80288CB0 +/* 80288CA4 00285BE4 80 03 00 54 */ lwz r0, 0x54(r3) +/* 80288CA8 00285BE8 2C 00 00 00 */ cmpwi r0, 0 +/* 80288CAC 00285BEC 41 81 00 10 */ bgt lbl_80288CBC +lbl_80288CB0: +/* 80288CB0 00285BF0 80 1E 00 20 */ lwz r0, 0x20(r30) +/* 80288CB4 00285BF4 2C 00 00 00 */ cmpwi r0, 0 +/* 80288CB8 00285BF8 40 81 00 38 */ ble lbl_80288CF0 +lbl_80288CBC: +/* 80288CBC 00285BFC 88 1E 00 1E */ lbz r0, 0x1e(r30) +/* 80288CC0 00285C00 28 00 00 00 */ cmplwi r0, 0 +/* 80288CC4 00285C04 41 82 00 24 */ beq lbl_80288CE8 +/* 80288CC8 00285C08 38 00 00 04 */ li r0, 4 +/* 80288CCC 00285C0C 90 1E 00 30 */ stw r0, 0x30(r30) +/* 80288CD0 00285C10 7F C3 F3 78 */ mr r3, r30 +/* 80288CD4 00285C14 7F E4 FB 78 */ mr r4, r31 +/* 80288CD8 00285C18 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288CDC 00285C1C 81 8C 00 18 */ lwz r12, 0x18(r12) +/* 80288CE0 00285C20 7D 89 03 A6 */ mtctr r12 +/* 80288CE4 00285C24 4E 80 04 21 */ bctrl +lbl_80288CE8: +/* 80288CE8 00285C28 38 60 00 01 */ li r3, 1 +/* 80288CEC 00285C2C 48 00 01 14 */ b lbl_80288E00 +lbl_80288CF0: +/* 80288CF0 00285C30 80 1E 00 28 */ lwz r0, 0x28(r30) +/* 80288CF4 00285C34 90 1E 00 24 */ stw r0, 0x24(r30) +/* 80288CF8 00285C38 28 00 00 00 */ cmplwi r0, 0 +/* 80288CFC 00285C3C 40 82 00 5C */ bne lbl_80288D58 +/* 80288D00 00285C40 88 1E 00 1E */ lbz r0, 0x1e(r30) +/* 80288D04 00285C44 28 00 00 00 */ cmplwi r0, 0 +/* 80288D08 00285C48 41 82 00 48 */ beq lbl_80288D50 +/* 80288D0C 00285C4C 57 A0 06 3F */ clrlwi. r0, r29, 0x18 +/* 80288D10 00285C50 40 82 00 1C */ bne lbl_80288D2C +/* 80288D14 00285C54 7F C3 F3 78 */ mr r3, r30 +/* 80288D18 00285C58 38 80 00 00 */ li r4, 0 +/* 80288D1C 00285C5C 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288D20 00285C60 81 8C 00 18 */ lwz r12, 0x18(r12) +/* 80288D24 00285C64 7D 89 03 A6 */ mtctr r12 +/* 80288D28 00285C68 4E 80 04 21 */ bctrl +lbl_80288D2C: +/* 80288D2C 00285C6C 38 00 00 00 */ li r0, 0 +/* 80288D30 00285C70 98 1E 00 1E */ stb r0, 0x1e(r30) +/* 80288D34 00285C74 38 00 00 01 */ li r0, 1 +/* 80288D38 00285C78 90 1E 00 30 */ stw r0, 0x30(r30) +/* 80288D3C 00285C7C 7F C3 F3 78 */ mr r3, r30 +/* 80288D40 00285C80 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288D44 00285C84 81 8C 00 10 */ lwz r12, 0x10(r12) +/* 80288D48 00285C88 7D 89 03 A6 */ mtctr r12 +/* 80288D4C 00285C8C 4E 80 04 21 */ bctrl +lbl_80288D50: +/* 80288D50 00285C90 38 60 00 00 */ li r3, 0 +/* 80288D54 00285C94 48 00 00 AC */ b lbl_80288E00 +lbl_80288D58: +/* 80288D58 00285C98 88 1E 00 1E */ lbz r0, 0x1e(r30) +/* 80288D5C 00285C9C 28 00 00 00 */ cmplwi r0, 0 +/* 80288D60 00285CA0 40 82 00 20 */ bne lbl_80288D80 +/* 80288D64 00285CA4 38 00 00 01 */ li r0, 1 +/* 80288D68 00285CA8 98 1E 00 1E */ stb r0, 0x1e(r30) +/* 80288D6C 00285CAC 7F C3 F3 78 */ mr r3, r30 +/* 80288D70 00285CB0 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288D74 00285CB4 81 8C 00 0C */ lwz r12, 0xc(r12) +/* 80288D78 00285CB8 7D 89 03 A6 */ mtctr r12 +/* 80288D7C 00285CBC 4E 80 04 21 */ bctrl +lbl_80288D80: +/* 80288D80 00285CC0 38 00 00 02 */ li r0, 2 +/* 80288D84 00285CC4 90 1E 00 30 */ stw r0, 0x30(r30) +/* 80288D88 00285CC8 80 1E 00 2C */ lwz r0, 0x2c(r30) +/* 80288D8C 00285CCC 28 00 00 00 */ cmplwi r0, 0 +/* 80288D90 00285CD0 40 82 00 18 */ bne lbl_80288DA8 +/* 80288D94 00285CD4 7F C3 F3 78 */ mr r3, r30 +/* 80288D98 00285CD8 48 00 00 95 */ bl process_sequence___Q37JStudio3stb7TObjectFv +/* 80288D9C 00285CDC 80 1E 00 2C */ lwz r0, 0x2c(r30) +/* 80288DA0 00285CE0 28 00 00 00 */ cmplwi r0, 0 +/* 80288DA4 00285CE4 41 82 FE 64 */ beq lbl_80288C08 +lbl_80288DA8: +/* 80288DA8 00285CE8 3B A0 00 01 */ li r29, 1 +/* 80288DAC 00285CEC 80 9E 00 2C */ lwz r4, 0x2c(r30) +/* 80288DB0 00285CF0 7C 1F 20 40 */ cmplw r31, r4 +/* 80288DB4 00285CF4 41 80 00 28 */ blt lbl_80288DDC +/* 80288DB8 00285CF8 7F E4 F8 50 */ subf r31, r4, r31 +/* 80288DBC 00285CFC 38 00 00 00 */ li r0, 0 +/* 80288DC0 00285D00 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 80288DC4 00285D04 7F C3 F3 78 */ mr r3, r30 +/* 80288DC8 00285D08 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288DCC 00285D0C 81 8C 00 18 */ lwz r12, 0x18(r12) +/* 80288DD0 00285D10 7D 89 03 A6 */ mtctr r12 +/* 80288DD4 00285D14 4E 80 04 21 */ bctrl +/* 80288DD8 00285D18 4B FF FF 18 */ b lbl_80288CF0 +lbl_80288DDC: +/* 80288DDC 00285D1C 7C 1F 20 50 */ subf r0, r31, r4 +/* 80288DE0 00285D20 90 1E 00 2C */ stw r0, 0x2c(r30) +/* 80288DE4 00285D24 7F C3 F3 78 */ mr r3, r30 +/* 80288DE8 00285D28 7F E4 FB 78 */ mr r4, r31 +/* 80288DEC 00285D2C 81 9E 00 08 */ lwz r12, 8(r30) +/* 80288DF0 00285D30 81 8C 00 18 */ lwz r12, 0x18(r12) +/* 80288DF4 00285D34 7D 89 03 A6 */ mtctr r12 +/* 80288DF8 00285D38 4E 80 04 21 */ bctrl +/* 80288DFC 00285D3C 38 60 00 01 */ li r3, 1 +lbl_80288E00: +/* 80288E00 00285D40 39 61 00 20 */ addi r11, r1, 0x20 +/* 80288E04 00285D44 48 0D 94 25 */ bl _restgpr_29 +/* 80288E08 00285D48 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80288E0C 00285D4C 7C 08 03 A6 */ mtlr r0 +/* 80288E10 00285D50 38 21 00 20 */ addi r1, r1, 0x20 +/* 80288E14 00285D54 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/forward__Q37JStudio3stb8TControlFUl.s b/include/JSystem/JStudio/asm/forward__Q37JStudio3stb8TControlFUl.s new file mode 100644 index 0000000000..cc86d1990d --- /dev/null +++ b/include/JSystem/JStudio/asm/forward__Q37JStudio3stb8TControlFUl.s @@ -0,0 +1,68 @@ +/* 802894B4 002863F4 94 21 FF A0 */ stwu r1, -0x60(r1) +/* 802894B8 002863F8 7C 08 02 A6 */ mflr r0 +/* 802894BC 002863FC 90 01 00 64 */ stw r0, 0x64(r1) +/* 802894C0 00286400 39 61 00 60 */ addi r11, r1, 0x60 +/* 802894C4 00286404 48 0D 8D 09 */ bl _savegpr_25 +/* 802894C8 00286408 7C 7B 1B 78 */ mr r27, r3 +/* 802894CC 0028640C 7C 9C 23 78 */ mr r28, r4 +/* 802894D0 00286410 80 03 00 40 */ lwz r0, 0x40(r3) +/* 802894D4 00286414 90 03 00 54 */ stw r0, 0x54(r3) +/* 802894D8 00286418 38 7B 00 20 */ addi r3, r27, 0x20 +/* 802894DC 0028641C 4B FF F7 0D */ bl forward__Q37JStudio3stb7TObjectFUl +/* 802894E0 00286420 7C 7F 1B 78 */ mr r31, r3 +/* 802894E4 00286424 3B C0 00 0F */ li r30, 0xf +/* 802894E8 00286428 3B A0 00 00 */ li r29, 0 +/* 802894EC 0028642C 38 1B 00 14 */ addi r0, r27, 0x14 +/* 802894F0 00286430 90 01 00 24 */ stw r0, 0x24(r1) +/* 802894F4 00286434 90 01 00 20 */ stw r0, 0x20(r1) +/* 802894F8 00286438 90 01 00 34 */ stw r0, 0x34(r1) +/* 802894FC 0028643C 90 01 00 30 */ stw r0, 0x30(r1) +/* 80289500 00286440 80 7B 00 14 */ lwz r3, 0x14(r27) +/* 80289504 00286444 90 61 00 1C */ stw r3, 0x1c(r1) +/* 80289508 00286448 90 61 00 18 */ stw r3, 0x18(r1) +/* 8028950C 0028644C 90 61 00 2C */ stw r3, 0x2c(r1) +/* 80289510 00286450 90 61 00 28 */ stw r3, 0x28(r1) +/* 80289514 00286454 90 61 00 38 */ stw r3, 0x38(r1) +/* 80289518 00286458 90 01 00 3C */ stw r0, 0x3c(r1) +/* 8028951C 0028645C 48 00 00 48 */ b lbl_80289564 +lbl_80289520: +/* 80289520 00286460 80 61 00 38 */ lwz r3, 0x38(r1) +/* 80289524 00286464 3B 23 FF F4 */ addi r25, r3, -12 +/* 80289528 00286468 80 03 00 00 */ lwz r0, 0(r3) +/* 8028952C 0028646C 90 01 00 38 */ stw r0, 0x38(r1) +/* 80289530 00286470 3B 40 00 00 */ li r26, 0 +/* 80289534 00286474 7F 23 CB 78 */ mr r3, r25 +/* 80289538 00286478 7F 84 E3 78 */ mr r4, r28 +/* 8028953C 0028647C 4B FF F6 AD */ bl forward__Q37JStudio3stb7TObjectFUl +/* 80289540 00286480 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 80289544 00286484 40 82 00 0C */ bne lbl_80289550 +/* 80289548 00286488 57 E0 06 3F */ clrlwi. r0, r31, 0x18 +/* 8028954C 0028648C 41 82 00 08 */ beq lbl_80289554 +lbl_80289550: +/* 80289550 00286490 3B 40 00 01 */ li r26, 1 +lbl_80289554: +/* 80289554 00286494 7F 5F D3 78 */ mr r31, r26 +/* 80289558 00286498 80 19 00 30 */ lwz r0, 0x30(r25) +/* 8028955C 0028649C 7F DE 00 38 */ and r30, r30, r0 +/* 80289560 002864A0 7F BD 03 78 */ or r29, r29, r0 +lbl_80289564: +/* 80289564 002864A4 80 61 00 3C */ lwz r3, 0x3c(r1) +/* 80289568 002864A8 90 61 00 14 */ stw r3, 0x14(r1) +/* 8028956C 002864AC 80 01 00 38 */ lwz r0, 0x38(r1) +/* 80289570 002864B0 90 01 00 10 */ stw r0, 0x10(r1) +/* 80289574 002864B4 90 61 00 0C */ stw r3, 0xc(r1) +/* 80289578 002864B8 90 01 00 08 */ stw r0, 8(r1) +/* 8028957C 002864BC 7C 00 18 50 */ subf r0, r0, r3 +/* 80289580 002864C0 7C 00 00 34 */ cntlzw r0, r0 +/* 80289584 002864C4 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f +/* 80289588 002864C8 41 82 FF 98 */ beq lbl_80289520 +/* 8028958C 002864CC 57 A0 80 1E */ slwi r0, r29, 0x10 +/* 80289590 002864D0 7F C0 03 78 */ or r0, r30, r0 +/* 80289594 002864D4 90 1B 00 1C */ stw r0, 0x1c(r27) +/* 80289598 002864D8 7F E3 FB 78 */ mr r3, r31 +/* 8028959C 002864DC 39 61 00 60 */ addi r11, r1, 0x60 +/* 802895A0 002864E0 48 0D 8C 79 */ bl _restgpr_25 +/* 802895A4 002864E4 80 01 00 64 */ lwz r0, 0x64(r1) +/* 802895A8 002864E8 7C 08 03 A6 */ mtlr r0 +/* 802895AC 002864EC 38 21 00 60 */ addi r1, r1, 0x60 +/* 802895B0 002864F0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/getObject__Q37JStudio3stb8TControlFPCvUl.s b/include/JSystem/JStudio/asm/getObject__Q37JStudio3stb8TControlFPCvUl.s new file mode 100644 index 0000000000..8244b35f80 --- /dev/null +++ b/include/JSystem/JStudio/asm/getObject__Q37JStudio3stb8TControlFPCvUl.s @@ -0,0 +1,42 @@ +/* 80289364 002862A4 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 80289368 002862A8 7C 08 02 A6 */ mflr r0 +/* 8028936C 002862AC 90 01 00 54 */ stw r0, 0x54(r1) +/* 80289370 002862B0 80 C3 00 14 */ lwz r6, 0x14(r3) +/* 80289374 002862B4 90 C1 00 1C */ stw r6, 0x1c(r1) +/* 80289378 002862B8 90 C1 00 18 */ stw r6, 0x18(r1) +/* 8028937C 002862BC 90 C1 00 3C */ stw r6, 0x3c(r1) +/* 80289380 002862C0 38 03 00 14 */ addi r0, r3, 0x14 +/* 80289384 002862C4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80289388 002862C8 90 01 00 10 */ stw r0, 0x10(r1) +/* 8028938C 002862CC 90 01 00 38 */ stw r0, 0x38(r1) +/* 80289390 002862D0 90 81 00 40 */ stw r4, 0x40(r1) +/* 80289394 002862D4 90 A1 00 44 */ stw r5, 0x44(r1) +/* 80289398 002862D8 90 01 00 28 */ stw r0, 0x28(r1) +/* 8028939C 002862DC 90 C1 00 2C */ stw r6, 0x2c(r1) +/* 802893A0 002862E0 38 61 00 30 */ addi r3, r1, 0x30 +/* 802893A4 002862E4 38 81 00 2C */ addi r4, r1, 0x2c +/* 802893A8 002862E8 38 A1 00 28 */ addi r5, r1, 0x28 +/* 802893AC 002862EC 38 C1 00 40 */ addi r6, r1, 0x40 +/* 802893B0 002862F0 48 00 05 79 */ bl std_NS_find_if_X2_ +/* 802893B4 002862F4 80 61 00 30 */ lwz r3, 0x30(r1) +/* 802893B8 002862F8 90 61 00 34 */ stw r3, 0x34(r1) +/* 802893BC 002862FC 80 01 00 38 */ lwz r0, 0x38(r1) +/* 802893C0 00286300 90 01 00 24 */ stw r0, 0x24(r1) +/* 802893C4 00286304 90 61 00 20 */ stw r3, 0x20(r1) +/* 802893C8 00286308 90 01 00 0C */ stw r0, 0xc(r1) +/* 802893CC 0028630C 90 61 00 08 */ stw r3, 8(r1) +/* 802893D0 00286310 7C 03 00 50 */ subf r0, r3, r0 +/* 802893D4 00286314 7C 00 00 34 */ cntlzw r0, r0 +/* 802893D8 00286318 54 00 DE 3E */ rlwinm r0, r0, 0x1b, 0x18, 0x1f +/* 802893DC 0028631C 7C 00 00 34 */ cntlzw r0, r0 +/* 802893E0 00286320 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f +/* 802893E4 00286324 41 82 00 0C */ beq lbl_802893F0 +/* 802893E8 00286328 38 63 FF F4 */ addi r3, r3, -12 +/* 802893EC 0028632C 48 00 00 08 */ b lbl_802893F4 +lbl_802893F0: +/* 802893F0 00286330 38 60 00 00 */ li r3, 0 +lbl_802893F4: +/* 802893F4 00286334 80 01 00 54 */ lwz r0, 0x54(r1) +/* 802893F8 00286338 7C 08 03 A6 */ mtlr r0 +/* 802893FC 0028633C 38 21 00 50 */ addi r1, r1, 0x50 +/* 80289400 00286340 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl.s b/include/JSystem/JStudio/asm/parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl.s new file mode 100644 index 0000000000..30676ca7ff --- /dev/null +++ b/include/JSystem/JStudio/asm/parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl.s @@ -0,0 +1,21 @@ +/* 8028978C 002866CC 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80289790 002866D0 7C 08 02 A6 */ mflr r0 +/* 80289794 002866D4 90 01 00 14 */ stw r0, 0x14(r1) +/* 80289798 002866D8 80 E4 00 00 */ lwz r7, 0(r4) +/* 8028979C 002866DC 90 E1 00 08 */ stw r7, 8(r1) +/* 802897A0 002866E0 80 07 00 00 */ lwz r0, 0(r7) +/* 802897A4 002866E4 7C 07 02 14 */ add r0, r7, r0 +/* 802897A8 002866E8 90 04 00 00 */ stw r0, 0(r4) +/* 802897AC 002866EC 80 81 00 08 */ lwz r4, 8(r1) +/* 802897B0 002866F0 80 04 00 00 */ lwz r0, 0(r4) +/* 802897B4 002866F4 90 05 00 00 */ stw r0, 0(r5) +/* 802897B8 002866F8 38 81 00 08 */ addi r4, r1, 8 +/* 802897BC 002866FC 7C C5 33 78 */ mr r5, r6 +/* 802897C0 00286700 81 83 00 00 */ lwz r12, 0(r3) +/* 802897C4 00286704 81 8C 00 18 */ lwz r12, 0x18(r12) +/* 802897C8 00286708 7D 89 03 A6 */ mtctr r12 +/* 802897CC 0028670C 4E 80 04 21 */ bctrl +/* 802897D0 00286710 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802897D4 00286714 7C 08 03 A6 */ mtlr r0 +/* 802897D8 00286718 38 21 00 10 */ addi r1, r1, 0x10 +/* 802897DC 0028671C 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl.s b/include/JSystem/JStudio/asm/parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl.s new file mode 100644 index 0000000000..033db01d9b --- /dev/null +++ b/include/JSystem/JStudio/asm/parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl.s @@ -0,0 +1,56 @@ +/* 802896C0 00286600 94 21 FF E0 */ stwu r1, -0x20(r1) +/* 802896C4 00286604 7C 08 02 A6 */ mflr r0 +/* 802896C8 00286608 90 01 00 24 */ stw r0, 0x24(r1) +/* 802896CC 0028660C 93 E1 00 1C */ stw r31, 0x1c(r1) +/* 802896D0 00286610 93 C1 00 18 */ stw r30, 0x18(r1) +/* 802896D4 00286614 7C 7E 1B 78 */ mr r30, r3 +/* 802896D8 00286618 7C DF 33 78 */ mr r31, r6 +/* 802896DC 0028661C 80 64 00 00 */ lwz r3, 0(r4) +/* 802896E0 00286620 90 61 00 08 */ stw r3, 8(r1) +/* 802896E4 00286624 38 03 00 20 */ addi r0, r3, 0x20 +/* 802896E8 00286628 90 04 00 00 */ stw r0, 0(r4) +/* 802896EC 0028662C 80 61 00 08 */ lwz r3, 8(r1) +/* 802896F0 00286630 80 03 00 0C */ lwz r0, 0xc(r3) +/* 802896F4 00286634 90 05 00 00 */ stw r0, 0(r5) +/* 802896F8 00286638 80 61 00 08 */ lwz r3, 8(r1) +/* 802896FC 0028663C 38 82 BA D8 */ addi r4, r2, 0x804554D8 - 0x80459A00 /*SDA HACK; original: lbl_804554D8-_SDA2_BASE_*/ +/* 80289700 00286640 38 A0 00 04 */ li r5, 4 +/* 80289704 00286644 48 0D C9 89 */ bl func_8036608C +/* 80289708 00286648 2C 03 00 00 */ cmpwi r3, 0 +/* 8028970C 0028664C 41 82 00 0C */ beq lbl_80289718 +/* 80289710 00286650 38 60 00 00 */ li r3, 0 +/* 80289714 00286654 48 00 00 60 */ b lbl_80289774 +lbl_80289718: +/* 80289718 00286658 80 61 00 08 */ lwz r3, 8(r1) +/* 8028971C 0028665C A0 03 00 04 */ lhz r0, 4(r3) +/* 80289720 00286660 28 00 FE FF */ cmplwi r0, 0xfeff +/* 80289724 00286664 41 82 00 0C */ beq lbl_80289730 +/* 80289728 00286668 38 60 00 00 */ li r3, 0 +/* 8028972C 0028666C 48 00 00 48 */ b lbl_80289774 +lbl_80289730: +/* 80289730 00286670 A0 03 00 06 */ lhz r0, 6(r3) +/* 80289734 00286674 28 00 00 01 */ cmplwi r0, 1 +/* 80289738 00286678 40 80 00 0C */ bge lbl_80289744 +/* 8028973C 0028667C 38 60 00 00 */ li r3, 0 +/* 80289740 00286680 48 00 00 34 */ b lbl_80289774 +lbl_80289744: +/* 80289744 00286684 54 00 04 3E */ clrlwi r0, r0, 0x10 +/* 80289748 00286688 28 00 00 03 */ cmplwi r0, 3 +/* 8028974C 0028668C 40 81 00 0C */ ble lbl_80289758 +/* 80289750 00286690 38 60 00 00 */ li r3, 0 +/* 80289754 00286694 48 00 00 20 */ b lbl_80289774 +lbl_80289758: +/* 80289758 00286698 7F C3 F3 78 */ mr r3, r30 +/* 8028975C 0028669C 38 81 00 08 */ addi r4, r1, 8 +/* 80289760 002866A0 7F E5 FB 78 */ mr r5, r31 +/* 80289764 002866A4 81 9E 00 00 */ lwz r12, 0(r30) +/* 80289768 002866A8 81 8C 00 14 */ lwz r12, 0x14(r12) +/* 8028976C 002866AC 7D 89 03 A6 */ mtctr r12 +/* 80289770 002866B0 4E 80 04 21 */ bctrl +lbl_80289774: +/* 80289774 002866B4 83 E1 00 1C */ lwz r31, 0x1c(r1) +/* 80289778 002866B8 83 C1 00 18 */ lwz r30, 0x18(r1) +/* 8028977C 002866BC 80 01 00 24 */ lwz r0, 0x24(r1) +/* 80289780 002866C0 7C 08 03 A6 */ mtlr r0 +/* 80289784 002866C4 38 21 00 20 */ addi r1, r1, 0x20 +/* 80289788 002866C8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl.s b/include/JSystem/JStudio/asm/process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl.s new file mode 100644 index 0000000000..ed4c9a0e07 --- /dev/null +++ b/include/JSystem/JStudio/asm/process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl.s @@ -0,0 +1,66 @@ +/* 80288F80 00285EC0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80288F84 00285EC4 7C 08 02 A6 */ mflr r0 +/* 80288F88 00285EC8 90 01 00 14 */ stw r0, 0x14(r1) +/* 80288F8C 00285ECC 7C A8 2B 78 */ mr r8, r5 +/* 80288F90 00285ED0 7C C7 33 78 */ mr r7, r6 +/* 80288F94 00285ED4 2C 04 00 80 */ cmpwi r4, 0x80 +/* 80288F98 00285ED8 41 82 00 70 */ beq lbl_80289008 +/* 80288F9C 00285EDC 40 80 00 28 */ bge lbl_80288FC4 +/* 80288FA0 00285EE0 2C 04 00 02 */ cmpwi r4, 2 +/* 80288FA4 00285EE4 41 82 00 44 */ beq lbl_80288FE8 +/* 80288FA8 00285EE8 40 80 00 10 */ bge lbl_80288FB8 +/* 80288FAC 00285EEC 2C 04 00 01 */ cmpwi r4, 1 +/* 80288FB0 00285EF0 40 80 00 24 */ bge lbl_80288FD4 +/* 80288FB4 00285EF4 48 00 00 A4 */ b lbl_80289058 +lbl_80288FB8: +/* 80288FB8 00285EF8 2C 04 00 04 */ cmpwi r4, 4 +/* 80288FBC 00285EFC 40 80 00 9C */ bge lbl_80289058 +/* 80288FC0 00285F00 48 00 00 34 */ b lbl_80288FF4 +lbl_80288FC4: +/* 80288FC4 00285F04 2C 04 00 82 */ cmpwi r4, 0x82 +/* 80288FC8 00285F08 41 82 00 90 */ beq lbl_80289058 +/* 80288FCC 00285F0C 40 80 00 8C */ bge lbl_80289058 +/* 80288FD0 00285F10 48 00 00 58 */ b lbl_80289028 +lbl_80288FD4: +/* 80288FD4 00285F14 80 08 00 00 */ lwz r0, 0(r8) +/* 80288FD8 00285F18 54 04 86 3E */ rlwinm r4, r0, 0x10, 0x18, 0x1f +/* 80288FDC 00285F1C 54 05 04 3E */ clrlwi r5, r0, 0x10 +/* 80288FE0 00285F20 4B FF FB 99 */ bl setFlag_operation__Q37JStudio3stb7TObjectFUci +/* 80288FE4 00285F24 48 00 00 74 */ b lbl_80289058 +lbl_80288FE8: +/* 80288FE8 00285F28 80 08 00 00 */ lwz r0, 0(r8) +/* 80288FEC 00285F2C 90 03 00 2C */ stw r0, 0x2c(r3) +/* 80288FF0 00285F30 48 00 00 68 */ b lbl_80289058 +lbl_80288FF4: +/* 80288FF4 00285F34 80 83 00 24 */ lwz r4, 0x24(r3) +/* 80288FF8 00285F38 80 08 00 00 */ lwz r0, 0(r8) +/* 80288FFC 00285F3C 7C 04 02 14 */ add r0, r4, r0 +/* 80289000 00285F40 90 03 00 28 */ stw r0, 0x28(r3) +/* 80289004 00285F44 48 00 00 54 */ b lbl_80289058 +lbl_80289008: +/* 80289008 00285F48 38 80 00 00 */ li r4, 0 +/* 8028900C 00285F4C 38 A0 00 00 */ li r5, 0 +/* 80289010 00285F50 7D 06 43 78 */ mr r6, r8 +/* 80289014 00285F54 81 83 00 08 */ lwz r12, 8(r3) +/* 80289018 00285F58 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 8028901C 00285F5C 7D 89 03 A6 */ mtctr r12 +/* 80289020 00285F60 4E 80 04 21 */ bctrl +/* 80289024 00285F64 48 00 00 34 */ b lbl_80289058 +lbl_80289028: +/* 80289028 00285F68 A0 A8 00 02 */ lhz r5, 2(r8) +/* 8028902C 00285F6C 38 05 00 03 */ addi r0, r5, 3 +/* 80289030 00285F70 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d +/* 80289034 00285F74 38 C4 00 04 */ addi r6, r4, 4 +/* 80289038 00285F78 7C C8 32 14 */ add r6, r8, r6 +/* 8028903C 00285F7C 38 88 00 04 */ addi r4, r8, 4 +/* 80289040 00285F80 7C 08 30 50 */ subf r0, r8, r6 +/* 80289044 00285F84 7C E0 38 50 */ subf r7, r0, r7 +/* 80289048 00285F88 81 83 00 08 */ lwz r12, 8(r3) +/* 8028904C 00285F8C 81 8C 00 1C */ lwz r12, 0x1c(r12) +/* 80289050 00285F90 7D 89 03 A6 */ mtctr r12 +/* 80289054 00285F94 4E 80 04 21 */ bctrl +lbl_80289058: +/* 80289058 00285F98 80 01 00 14 */ lwz r0, 0x14(r1) +/* 8028905C 00285F9C 7C 08 03 A6 */ mtlr r0 +/* 80289060 00285FA0 38 21 00 10 */ addi r1, r1, 0x10 +/* 80289064 00285FA4 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/process_sequence___Q37JStudio3stb7TObjectFv.s b/include/JSystem/JStudio/asm/process_sequence___Q37JStudio3stb7TObjectFv.s new file mode 100644 index 0000000000..705d09cf36 --- /dev/null +++ b/include/JSystem/JStudio/asm/process_sequence___Q37JStudio3stb7TObjectFv.s @@ -0,0 +1,98 @@ +/* 80288E2C 00285D6C 94 21 FF C0 */ stwu r1, -0x40(r1) +/* 80288E30 00285D70 7C 08 02 A6 */ mflr r0 +/* 80288E34 00285D74 90 01 00 44 */ stw r0, 0x44(r1) +/* 80288E38 00285D78 93 E1 00 3C */ stw r31, 0x3c(r1) +/* 80288E3C 00285D7C 93 C1 00 38 */ stw r30, 0x38(r1) +/* 80288E40 00285D80 7C 7F 1B 78 */ mr r31, r3 +/* 80288E44 00285D84 80 03 00 24 */ lwz r0, 0x24(r3) +/* 80288E48 00285D88 90 01 00 0C */ stw r0, 0xc(r1) +/* 80288E4C 00285D8C 38 61 00 0C */ addi r3, r1, 0xc +/* 80288E50 00285D90 38 81 00 20 */ addi r4, r1, 0x20 +/* 80288E54 00285D94 48 00 0B 69 */ bl JStudio_NS_stb_NS_data_NS_TParse_TSequence_NS_getData +/* 80288E58 00285D98 88 01 00 20 */ lbz r0, 0x20(r1) +/* 80288E5C 00285D9C 80 A1 00 24 */ lwz r5, 0x24(r1) +/* 80288E60 00285DA0 80 61 00 28 */ lwz r3, 0x28(r1) +/* 80288E64 00285DA4 83 C1 00 2C */ lwz r30, 0x2c(r1) +/* 80288E68 00285DA8 93 DF 00 28 */ stw r30, 0x28(r31) +/* 80288E6C 00285DAC 2C 00 00 03 */ cmpwi r0, 3 +/* 80288E70 00285DB0 41 82 00 4C */ beq lbl_80288EBC +/* 80288E74 00285DB4 40 80 00 14 */ bge lbl_80288E88 +/* 80288E78 00285DB8 2C 00 00 01 */ cmpwi r0, 1 +/* 80288E7C 00285DBC 41 82 00 24 */ beq lbl_80288EA0 +/* 80288E80 00285DC0 40 80 00 34 */ bge lbl_80288EB4 +/* 80288E84 00285DC4 48 00 00 E4 */ b lbl_80288F68 +lbl_80288E88: +/* 80288E88 00285DC8 2C 00 00 80 */ cmpwi r0, 0x80 +/* 80288E8C 00285DCC 41 82 00 78 */ beq lbl_80288F04 +/* 80288E90 00285DD0 40 80 00 D8 */ bge lbl_80288F68 +/* 80288E94 00285DD4 2C 00 00 05 */ cmpwi r0, 5 +/* 80288E98 00285DD8 40 80 00 D0 */ bge lbl_80288F68 +/* 80288E9C 00285DDC 48 00 00 44 */ b lbl_80288EE0 +lbl_80288EA0: +/* 80288EA0 00285DE0 7F E3 FB 78 */ mr r3, r31 +/* 80288EA4 00285DE4 54 A4 86 3E */ rlwinm r4, r5, 0x10, 0x18, 0x1f +/* 80288EA8 00285DE8 54 A5 04 3E */ clrlwi r5, r5, 0x10 +/* 80288EAC 00285DEC 4B FF FC CD */ bl setFlag_operation__Q37JStudio3stb7TObjectFUci +/* 80288EB0 00285DF0 48 00 00 B8 */ b lbl_80288F68 +lbl_80288EB4: +/* 80288EB4 00285DF4 90 BF 00 2C */ stw r5, 0x2c(r31) +/* 80288EB8 00285DF8 48 00 00 B0 */ b lbl_80288F68 +lbl_80288EBC: +/* 80288EBC 00285DFC 7C A3 2B 78 */ mr r3, r5 +/* 80288EC0 00285E00 54 A0 02 11 */ rlwinm. r0, r5, 0, 8, 8 +/* 80288EC4 00285E04 41 82 00 0C */ beq lbl_80288ED0 +/* 80288EC8 00285E08 80 02 BA D0 */ lwz r0, lbl_804554D0-_SDA2_BASE_(r2) +/* 80288ECC 00285E0C 7C A3 03 78 */ or r3, r5, r0 +lbl_80288ED0: +/* 80288ED0 00285E10 80 1F 00 24 */ lwz r0, 0x24(r31) +/* 80288ED4 00285E14 7C 00 1A 14 */ add r0, r0, r3 +/* 80288ED8 00285E18 90 1F 00 28 */ stw r0, 0x28(r31) +/* 80288EDC 00285E1C 48 00 00 8C */ b lbl_80288F68 +lbl_80288EE0: +/* 80288EE0 00285E20 7C A3 2B 78 */ mr r3, r5 +/* 80288EE4 00285E24 54 A0 02 11 */ rlwinm. r0, r5, 0, 8, 8 +/* 80288EE8 00285E28 41 82 00 0C */ beq lbl_80288EF4 +/* 80288EEC 00285E2C 80 02 BA D0 */ lwz r0, lbl_804554D0-_SDA2_BASE_(r2) +/* 80288EF0 00285E30 7C A3 03 78 */ or r3, r5, r0 +lbl_80288EF4: +/* 80288EF4 00285E34 80 1F 00 20 */ lwz r0, 0x20(r31) +/* 80288EF8 00285E38 7C 00 1A 14 */ add r0, r0, r3 +/* 80288EFC 00285E3C 90 1F 00 20 */ stw r0, 0x20(r31) +/* 80288F00 00285E40 48 00 00 68 */ b lbl_80288F68 +lbl_80288F04: +/* 80288F04 00285E44 38 00 00 00 */ li r0, 0 +/* 80288F08 00285E48 90 01 00 08 */ stw r0, 8(r1) +/* 80288F0C 00285E4C 48 00 00 54 */ b lbl_80288F60 +lbl_80288F10: +/* 80288F10 00285E50 90 61 00 08 */ stw r3, 8(r1) +/* 80288F14 00285E54 38 61 00 08 */ addi r3, r1, 8 +/* 80288F18 00285E58 38 81 00 10 */ addi r4, r1, 0x10 +/* 80288F1C 00285E5C 48 00 0A ED */ bl JStudio_NS_stb_NS_data_NS_TParse_TParagraph_NS_getData +/* 80288F20 00285E60 80 81 00 10 */ lwz r4, 0x10(r1) +/* 80288F24 00285E64 28 04 00 FF */ cmplwi r4, 0xff +/* 80288F28 00285E68 41 81 00 18 */ bgt lbl_80288F40 +/* 80288F2C 00285E6C 7F E3 FB 78 */ mr r3, r31 +/* 80288F30 00285E70 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 80288F34 00285E74 80 C1 00 14 */ lwz r6, 0x14(r1) +/* 80288F38 00285E78 48 00 00 49 */ bl process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl +/* 80288F3C 00285E7C 48 00 00 20 */ b lbl_80288F5C +lbl_80288F40: +/* 80288F40 00285E80 7F E3 FB 78 */ mr r3, r31 +/* 80288F44 00285E84 80 A1 00 18 */ lwz r5, 0x18(r1) +/* 80288F48 00285E88 80 C1 00 14 */ lwz r6, 0x14(r1) +/* 80288F4C 00285E8C 81 9F 00 08 */ lwz r12, 8(r31) +/* 80288F50 00285E90 81 8C 00 14 */ lwz r12, 0x14(r12) +/* 80288F54 00285E94 7D 89 03 A6 */ mtctr r12 +/* 80288F58 00285E98 4E 80 04 21 */ bctrl +lbl_80288F5C: +/* 80288F5C 00285E9C 80 61 00 1C */ lwz r3, 0x1c(r1) +lbl_80288F60: +/* 80288F60 00285EA0 7C 03 F0 40 */ cmplw r3, r30 +/* 80288F64 00285EA4 41 80 FF AC */ blt lbl_80288F10 +lbl_80288F68: +/* 80288F68 00285EA8 83 E1 00 3C */ lwz r31, 0x3c(r1) +/* 80288F6C 00285EAC 83 C1 00 38 */ lwz r30, 0x38(r1) +/* 80288F70 00285EB0 80 01 00 44 */ lwz r0, 0x44(r1) +/* 80288F74 00285EB4 7C 08 03 A6 */ mtlr r0 +/* 80288F78 00285EB8 38 21 00 40 */ addi r1, r1, 0x40 +/* 80288F7C 00285EBC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s b/include/JSystem/JStudio/asm/removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s new file mode 100644 index 0000000000..f91264e26c --- /dev/null +++ b/include/JSystem/JStudio/asm/removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s @@ -0,0 +1,14 @@ +/* 80289278 002861B8 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 8028927C 002861BC 7C 08 02 A6 */ mflr r0 +/* 80289280 002861C0 90 01 00 14 */ stw r0, 0x14(r1) +/* 80289284 002861C4 7C 66 1B 78 */ mr r6, r3 +/* 80289288 002861C8 38 00 00 00 */ li r0, 0 +/* 8028928C 002861CC 90 04 00 14 */ stw r0, 0x14(r4) +/* 80289290 002861D0 38 A4 00 0C */ addi r5, r4, 0xc +/* 80289294 002861D4 38 61 00 08 */ addi r3, r1, 8 +/* 80289298 002861D8 38 86 00 10 */ addi r4, r6, 0x10 +/* 8028929C 002861DC 48 05 39 39 */ bl JGadget_NS_TNodeLinkList_NS_Erase +/* 802892A0 002861E0 80 01 00 14 */ lwz r0, 0x14(r1) +/* 802892A4 002861E4 7C 08 03 A6 */ mtlr r0 +/* 802892A8 002861E8 38 21 00 10 */ addi r1, r1, 0x10 +/* 802892AC 002861EC 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/reset__Q37JStudio3stb8TControlFv.s b/include/JSystem/JStudio/asm/reset__Q37JStudio3stb8TControlFv.s new file mode 100644 index 0000000000..499810fcab --- /dev/null +++ b/include/JSystem/JStudio/asm/reset__Q37JStudio3stb8TControlFv.s @@ -0,0 +1,46 @@ +/* 80289404 00286344 94 21 FF B0 */ stwu r1, -0x50(r1) +/* 80289408 00286348 7C 08 02 A6 */ mflr r0 +/* 8028940C 0028634C 90 01 00 54 */ stw r0, 0x54(r1) +/* 80289410 00286350 93 E1 00 4C */ stw r31, 0x4c(r1) +/* 80289414 00286354 7C 7F 1B 78 */ mr r31, r3 +/* 80289418 00286358 38 00 00 00 */ li r0, 0 +/* 8028941C 0028635C 90 03 00 1C */ stw r0, 0x1c(r3) +/* 80289420 00286360 38 7F 00 20 */ addi r3, r31, 0x20 +/* 80289424 00286364 38 80 00 00 */ li r4, 0 +/* 80289428 00286368 4B FF F7 A9 */ bl reset__Q37JStudio3stb7TObjectFPCv +/* 8028942C 0028636C 38 1F 00 14 */ addi r0, r31, 0x14 +/* 80289430 00286370 90 01 00 24 */ stw r0, 0x24(r1) +/* 80289434 00286374 90 01 00 20 */ stw r0, 0x20(r1) +/* 80289438 00286378 90 01 00 34 */ stw r0, 0x34(r1) +/* 8028943C 0028637C 90 01 00 30 */ stw r0, 0x30(r1) +/* 80289440 00286380 80 7F 00 14 */ lwz r3, 0x14(r31) +/* 80289444 00286384 90 61 00 1C */ stw r3, 0x1c(r1) +/* 80289448 00286388 90 61 00 18 */ stw r3, 0x18(r1) +/* 8028944C 0028638C 90 61 00 2C */ stw r3, 0x2c(r1) +/* 80289450 00286390 90 61 00 28 */ stw r3, 0x28(r1) +/* 80289454 00286394 90 61 00 38 */ stw r3, 0x38(r1) +/* 80289458 00286398 90 01 00 3C */ stw r0, 0x3c(r1) +/* 8028945C 0028639C 48 00 00 1C */ b lbl_80289478 +lbl_80289460: +/* 80289460 002863A0 80 81 00 38 */ lwz r4, 0x38(r1) +/* 80289464 002863A4 38 64 FF F4 */ addi r3, r4, -12 +/* 80289468 002863A8 80 04 00 00 */ lwz r0, 0(r4) +/* 8028946C 002863AC 90 01 00 38 */ stw r0, 0x38(r1) +/* 80289470 002863B0 38 80 00 00 */ li r4, 0 +/* 80289474 002863B4 4B FF F7 5D */ bl reset__Q37JStudio3stb7TObjectFPCv +lbl_80289478: +/* 80289478 002863B8 80 61 00 3C */ lwz r3, 0x3c(r1) +/* 8028947C 002863BC 90 61 00 14 */ stw r3, 0x14(r1) +/* 80289480 002863C0 80 01 00 38 */ lwz r0, 0x38(r1) +/* 80289484 002863C4 90 01 00 10 */ stw r0, 0x10(r1) +/* 80289488 002863C8 90 61 00 0C */ stw r3, 0xc(r1) +/* 8028948C 002863CC 90 01 00 08 */ stw r0, 8(r1) +/* 80289490 002863D0 7C 00 18 50 */ subf r0, r0, r3 +/* 80289494 002863D4 7C 00 00 34 */ cntlzw r0, r0 +/* 80289498 002863D8 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f +/* 8028949C 002863DC 41 82 FF C4 */ beq lbl_80289460 +/* 802894A0 002863E0 83 E1 00 4C */ lwz r31, 0x4c(r1) +/* 802894A4 002863E4 80 01 00 54 */ lwz r0, 0x54(r1) +/* 802894A8 002863E8 7C 08 03 A6 */ mtlr r0 +/* 802894AC 002863EC 38 21 00 50 */ addi r1, r1, 0x50 +/* 802894B0 002863F0 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/asm/std_NS_find_if_X2_.s b/include/JSystem/JStudio/asm/std_NS_find_if_X2_.s new file mode 100644 index 0000000000..c2379fe411 --- /dev/null +++ b/include/JSystem/JStudio/asm/std_NS_find_if_X2_.s @@ -0,0 +1,40 @@ +/* 80289928 00286868 94 21 FF D0 */ stwu r1, -0x30(r1) +/* 8028992C 0028686C 7C 08 02 A6 */ mflr r0 +/* 80289930 00286870 90 01 00 34 */ stw r0, 0x34(r1) +/* 80289934 00286874 39 61 00 30 */ addi r11, r1, 0x30 +/* 80289938 00286878 48 0D 88 A1 */ bl _savegpr_28 +/* 8028993C 0028687C 7C 7C 1B 78 */ mr r28, r3 +/* 80289940 00286880 7C 9D 23 78 */ mr r29, r4 +/* 80289944 00286884 7C BE 2B 78 */ mr r30, r5 +/* 80289948 00286888 7C DF 33 78 */ mr r31, r6 +/* 8028994C 0028688C 48 00 00 10 */ b lbl_8028995C +lbl_80289950: +/* 80289950 00286890 80 7D 00 00 */ lwz r3, 0(r29) +/* 80289954 00286894 80 03 00 00 */ lwz r0, 0(r3) +/* 80289958 00286898 90 1D 00 00 */ stw r0, 0(r29) +lbl_8028995C: +/* 8028995C 0028689C 80 7E 00 00 */ lwz r3, 0(r30) +/* 80289960 002868A0 90 61 00 14 */ stw r3, 0x14(r1) +/* 80289964 002868A4 80 1D 00 00 */ lwz r0, 0(r29) +/* 80289968 002868A8 90 01 00 10 */ stw r0, 0x10(r1) +/* 8028996C 002868AC 90 61 00 0C */ stw r3, 0xc(r1) +/* 80289970 002868B0 90 01 00 08 */ stw r0, 8(r1) +/* 80289974 002868B4 7C 00 18 50 */ subf r0, r0, r3 +/* 80289978 002868B8 7C 00 00 34 */ cntlzw r0, r0 +/* 8028997C 002868BC 54 00 DE 3F */ rlwinm. r0, r0, 0x1b, 0x18, 0x1f +/* 80289980 002868C0 40 82 00 1C */ bne lbl_8028999C +/* 80289984 002868C4 80 7D 00 00 */ lwz r3, 0(r29) +/* 80289988 002868C8 38 63 FF F4 */ addi r3, r3, -12 +/* 8028998C 002868CC 7F E4 FB 78 */ mr r4, r31 +/* 80289990 002868D0 4B FF EF F9 */ bl JStudio_NS_object_NS_TIDData_NS_isEqual +/* 80289994 002868D4 54 60 06 3F */ clrlwi. r0, r3, 0x18 +/* 80289998 002868D8 41 82 FF B8 */ beq lbl_80289950 +lbl_8028999C: +/* 8028999C 002868DC 80 1D 00 00 */ lwz r0, 0(r29) +/* 802899A0 002868E0 90 1C 00 00 */ stw r0, 0(r28) +/* 802899A4 002868E4 39 61 00 30 */ addi r11, r1, 0x30 +/* 802899A8 002868E8 48 0D 88 7D */ bl _restgpr_28 +/* 802899AC 002868EC 80 01 00 34 */ lwz r0, 0x34(r1) +/* 802899B0 002868F0 7C 08 03 A6 */ mtlr r0 +/* 802899B4 002868F4 38 21 00 30 */ addi r1, r1, 0x30 +/* 802899B8 002868F8 4E 80 00 20 */ blr \ No newline at end of file diff --git a/include/JSystem/JStudio/stb.h b/include/JSystem/JStudio/stb.h new file mode 100644 index 0000000000..047bc9710d --- /dev/null +++ b/include/JSystem/JStudio/stb.h @@ -0,0 +1,247 @@ +#ifndef JSYSTEM_OBJECTID_H +#define JSYSTEM_OBJECTID_H + +#include "JSystem/JGadget/binary.h" +#include "JSystem/JGadget/linklist.h" +#include "global.h" + +using namespace JGadget::binary; + +namespace JStudio { +namespace stb { + +class TControl; + +static const int STATUS_STILL = 0; +static const int STATUS_UNK1 = 1; +static const int STATUS_WAIT = 2; +static const int STATUS_SUSPEND = 4; +static const int STATUS_INACTIVE = 8; + +namespace data { + +static const int BLOCK_SOUND = 'JSND'; +static const int BLOCK_ACTOR = 'JACT'; +static const int BLOCK_AMBIENTLIGHT = 'JABL'; +static const int BLOCK_CAMERA = 'JCMR'; +static const int BLOCK_FOG = 'JFOG'; +static const int BLOCK_LIGHT = 'JLIT'; +static const int BLOCK_MESSAGE = 'JMSG'; +static const int BLOCK_PARTICLE = 'JPTC'; +static const int BLOCK_NONE = -1; + +struct THeader { + struct Target { + /* 0x00 */ char name[8]; // "jstudio" + /* 0x08 */ u16 _8[3]; + /* 0x0e */ u16 target_version; // 0-1 = obselete, 2-7 = OK + }; + + /* 0x00 */ char signature[4]; + /* 0x04 */ u16 byte_order; + /* 0x06 */ u16 version; + /* 0x08 */ u32 _8; + /* 0x0c */ u32 block_number; + /* 0x10 */ Target target; + /* 0x20 */ u8 content; +}; + +struct TBlock { + /* 0x0 */ u32 size; + /* 0x4 */ u32 type; // actually a char[4] - JMSG, JSND, JACT, ... +}; + +struct TBlock_object : TBlock { + /* 0x8 */ u16 flag; + /* 0xa */ u16 id_size; + /* 0xc */ u8 id[0]; // unique identifier + ///* ??? */ u8 content[0]; +}; + +// Parses a THeader +struct TParse_THeader : TParseData_aligned<4> { + TParse_THeader(const void* p) : TParseData_aligned<4>(p) {} + + // inlines + const THeader* get() const { return (THeader*)getRaw(); } + const void* getContent() const { return &((THeader*)getRaw())->content; } + + const char* get_signature() const { return get()->signature; } + u16 get_byteOrder() const { return get()->byte_order; } + u16 get_version() const { return get()->version; } + u32 get_blockNumber() const { return get()->block_number; } +}; + +struct TParse_TBlock : public TParseData_aligned<4> { + TParse_TBlock(const void* content) : TParseData_aligned<4>(content) {} + + const TBlock* get() const { return (TBlock*)getRaw(); } + + u32 get_size() const { return get()->size; } + u32 get_type() const { return get()->type; } +}; + +// Parses a TObject ("demo object") +struct TParse_TBlock_object : public TParse_TBlock { + TParse_TBlock_object(const void* content) : TParse_TBlock(content) {} + + const TBlock_object* get() const { return (TBlock_object*)getRaw(); } + const void* getContent() const { // id is arbitrary size + return ((TBlock_object*)getRaw())->id + align_roundUp(get_IDSize(), 4); + } + + u16 get_flag() const { return get()->flag; } + u16 get_IDSize() const { return get()->id_size; } + const void* get_ID() const { return get()->id; } +}; + +struct TParse_TParagraph_dataID : public TParseData_aligned<4> { + TParse_TParagraph_dataID(const void* pContent) : TParseData_aligned<4>(pContent) {} +}; + +} // namespace data + +// Delegates handling of STB file blocks +class TParse : public TParse_header_block { +public: + TParse(TControl* control); + virtual ~TParse(); + + // virtuals + virtual int parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 arg3); + virtual int parseBlock_next(const void** ppData_inout, u32* puData_out, u32 arg3); + virtual int parseHeader(const data::TParse_THeader& header, u32 arg2); + virtual bool parseBlock_block(const data::TParse_TBlock& referBlock, u32 arg2); + virtual bool parseBlock_object(const data::TParse_TBlock_object& referObject, u32 arg2); + + // inlines + TControl* getControl() const { return pControl; } + +private: + TControl* pControl; +}; + +struct TIDData { + TIDData(const void* arg1, u32 arg2) : _0(arg1), _4(arg2) {} + + const void* _0; + u32 _4; +}; + +struct TObject_ID : public TIDData { + TObject_ID(const void* arg1, u32 arg2) : TIDData(arg1, arg2) {} +}; + +class TObject : public TObject_ID { +public: + TObject(u32 arg1, const void* arg2, u32 arg3); + explicit TObject(const data::TParse_TBlock_object& object); + virtual ~TObject(); + + // virtuals + virtual void do_begin(); + virtual void do_end(); + virtual void do_paragraph(u32 arg1, const void* arg2, u32 arg3); + virtual void do_wait(u32 arg1); + virtual void do_data(const void* arg1, u32 arg2, const void* arg3, u32 arg4); + + void on_begin() { do_begin(); } + void on_end() { do_end(); } + void on_paragraph(u32 arg1, const void* arg2, u32 arg3) { do_paragraph(arg1, arg2, arg3); } + void on_wait(u32 arg1) { do_wait(arg1); } + void on_data(const void* arg1, u32 arg2, const void* arg3, u32 arg4) { + do_data(arg1, arg2, arg3, arg4); + } + + // member functions + void setFlag_operation(u8 op, int val); + void reset(const void* arg1); + int forward(u32 arg1); + void process_sequence_(); + void process_paragraph_reserved_(u32 arg1, const void* pContent, u32 arg3); + + // inlines + TControl* getControl() const { return pControl; } + void setControl(TControl* control) { pControl = control; } + + int getSuspend() const { return _20; } + bool isSuspended() const { return getSuspend() == 0; } + + const void* getSequence() const { return _24; } + void setSequence_(const void* arg1) { _24 = arg1; } + const void* getSequence_offset(s32 i_no) const { return &((u32*)getSequence())[i_no]; } + + const void* getSequence_next() const { return _28; } + void setSequence_next(const void* seq) { _24 = seq; } + + u32 getWait() const { return u32Wait_; } + void setWait(u32 wait) { u32Wait_ = wait; } + + u32 getStatus() const { return mStatus; } + void setStatus_(u32 status) { mStatus = status; } + +private: + /* 0x10 */ JGadget::TLinkListNode mNode; + /* 0x14 */ TControl* pControl; + /* 0x18 */ u32 _18; + /* 0x1c */ u16 mFlag; + /* 0x1e */ u8 bSequence_; + /* 0x20 */ u32 _20; // "second per frame"? + /* 0x24 */ const void* _24; + /* 0x28 */ const void* _28; + /* 0x2c */ u32 u32Wait_; + /* 0x30 */ u32 mStatus; +}; + +// Creates and deletes TObjects from parsed input +class TFactory { +public: + TFactory(); + virtual ~TFactory(); + + virtual TObject* create(const data::TParse_TBlock_object& p); + virtual void destroy(TObject* p); +}; + +class TObject_control : public TObject { +public: + TObject_control(const void* arg1, u32 arg2); + ~TObject_control() {} +}; + +// Manages TObjects +class TControl { +public: + TControl(); + virtual ~TControl(); + + // member functions + TObject* getObject(const void* arg1, u32 arg2); + void appendObject(TObject* p); + void removeObject(TObject* p); + void destroyObject(TObject* p); + void destroyObject_all(); + void reset(); + void forward(u32 arg1); + + // inlines + void setStatus_(u32 status) { mStatus = status; } + void resetStatus_() { setStatus_(0); } + bool isSuspended() const { return _54 == 0; } + TFactory* getFactory() const { return pFactory; } + TObject_control& referObject_control() { return mObject_control; } + +private: + /* 0x04 */ u32 _4; + /* 0x08 */ u32 _8; + /* 0x0c */ TFactory* pFactory; + /* 0x10 */ JGadget::TLinkList mObjectContainer; + /* 0x1c */ u32 mStatus; + /* 0x20 */ TObject_control mObject_control; + /* 0x54 */ u32 _54; // "second per frame"? +}; + +} // namespace stb +} // namespace JStudio + +#endif diff --git a/include/functions.h b/include/functions.h index 776efaa544..755474c9e4 100644 --- a/include/functions.h +++ b/include/functions.h @@ -4558,7 +4558,7 @@ void dKyr_shstar_init(void); void HOUSI_EFF_NS_dtor(void); void dKyr_mud_draw(void); void dKy_get_dayofweek(void); -void func_8036608C(void); +int func_8036608C(const void*, const void*, u32); void dKyr_snow_move(void); void func_8005703C(void); void dComIfG_getStageRes(void); diff --git a/ldscript.lcf b/ldscript.lcf index 9bd387494b..be26bab054 100644 --- a/ldscript.lcf +++ b/ldscript.lcf @@ -758,6 +758,18 @@ SECTIONS { "__dt__7JKRFileFv" = 0x802D7B90; } FORCEACTIVE { + parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl + parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl + parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl + parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl + destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject + create__Q37JStudio3stb8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object + __dt__Q37JStudio3stb15TObject_controlFv + do_begin__Q37JStudio3stb7TObjectFv + do_end__Q37JStudio3stb7TObjectFv + do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl + do_wait__Q37JStudio3stb7TObjectFUl + do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz getValueStick__10CSTControlFv getAngleStick__10CSTControlFv diff --git a/libs/JSystem/JGadget/linklist.cpp b/libs/JSystem/JGadget/linklist.cpp index 4bf93c8658..155faff1f3 100644 --- a/libs/JSystem/JGadget/linklist.cpp +++ b/libs/JSystem/JGadget/linklist.cpp @@ -1 +1,7 @@ -// ok +#include "JSystem/JGadget/linklist.h" + +namespace JGadget { + +TNodeLinkList::~TNodeLinkList() {} + +} // namespace JGadget diff --git a/libs/JSystem/JStudio/stb.cpp b/libs/JSystem/JStudio/stb.cpp index 4bf93c8658..4c1931a40c 100644 --- a/libs/JSystem/JStudio/stb.cpp +++ b/libs/JSystem/JStudio/stb.cpp @@ -1 +1,350 @@ -// ok +#include "JSystem/JStudio/stb.h" + +extern "C" { +extern void process_sequence___Q37JStudio3stb7TObjectFv(); +extern void process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl(); +extern void JStudio_NS_stb_NS_data_NS_TParse_TParagraph_NS_getData(); +extern void setFlag_operation__Q37JStudio3stb7TObjectFUci(); +extern void JStudio_NS_stb_NS_data_NS_TParse_TSequence_NS_getData(); +extern void JGadget_NS_TNodeLinkList_NS_Erase(); +extern void +Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode(); +extern void destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject(); +extern void std_NS_find_if_X2_(); +extern void reset__Q37JStudio3stb7TObjectFPCv(); +extern void forward__Q37JStudio3stb7TObjectFUl(); +extern void JStudio_NS_object_NS_TIDData_NS_isEqual(); +} + +extern u8 lbl_804554D0; // 0xFF +extern const char** lbl_804554D8; // "STB"\0 + +namespace JStudio { +namespace stb { + +TObject::TObject(u32 arg1, const void* arg2, u32 arg3) + : TObject_ID(arg2, arg3), pControl(NULL), _18(arg1), mFlag(0), bSequence_(0), _20(0), _24(NULL), + _28(NULL), u32Wait_(0), mStatus(0) {} + +TObject::TObject(const data::TParse_TBlock_object& object) + : TObject_ID(object.get_ID(), object.get_IDSize()), pControl(NULL), _18(object.get_type()), + mFlag(object.get_flag()), bSequence_(0), _20(0), _24(0), _28(object.getContent()), + u32Wait_(0), mStatus(0) {} + +TObject::~TObject() {} + +void TObject::setFlag_operation(u8 op, int val) { + switch (op) { + case 1: + mFlag |= val; + break; + case 2: + mFlag &= val; + break; + case 3: + mFlag ^= val; + break; + } +} + +void TObject::reset(const void* arg1) { + bSequence_ = 0; + mStatus = 0; + _28 = arg1; + u32Wait_ = 0; +} + +#ifdef NONMATCHING // control flow reordering +int TObject::forward(u32 arg1) { + bool temp = false; + + while (true) { + if ((mFlag & 0x8000)) { + switch (getStatus()) { + case STATUS_SUSPEND: + case STATUS_WAIT: + setStatus_(STATUS_INACTIVE); + + if (bSequence_ != 0) + on_end(); + + break; + case STATUS_STILL: + case STATUS_UNK1: + case STATUS_INACTIVE: + default: + break; + } + return 1; + } + + if (getStatus() == STATUS_INACTIVE) { + do_begin(); + setStatus_(STATUS_WAIT); + } + + TControl* control = getControl(); + if (control != NULL && !control->isSuspended() && !isSuspended()) { + if (bSequence_ != 0) { + setStatus_(STATUS_SUSPEND); + on_wait(arg1); + } + return 1; + } + + while (true) { + const void* next = getSequence_next(); + setSequence_(next); + + if (next == NULL) { + if (bSequence_ != 0) { + if (!temp) + on_wait(0); + + bSequence_ = 0; + setStatus_(STATUS_UNK1); + on_end(); + } + return 0; + } + + if (bSequence_ == 0) { + bSequence_ = 1; + on_begin(); + } + + setStatus_(STATUS_WAIT); + + if (u32Wait_ == 0) { + process_sequence_(); + + if (u32Wait_ == 0) + break; + } + + temp = true; + u32 wait = u32Wait_; + + if (arg1 > wait) { + u32Wait_ = wait - arg1; + on_wait(arg1); + } else { + arg1 -= wait; + u32Wait_ = 0; + on_wait(wait); + return 1; + } + } + } +} +#else +asm int TObject::forward(u32 arg1) { + nofralloc +#include "JSystem/JStudio/asm/forward__Q37JStudio3stb7TObjectFUl.s" +} +#endif + +// virtuals +void TObject::do_begin() {} +void TObject::do_end() {} +void TObject::do_paragraph(u32 arg1, const void* arg2, u32 arg3) {} +void TObject::do_wait(u32 arg1) {} +void TObject::do_data(const void* arg1, u32 arg2, const void* arg3, u32 arg4) {} + +asm void TObject::process_sequence_() { + nofralloc +#include "JSystem/JStudio/asm/process_sequence___Q37JStudio3stb7TObjectFv.s" +} + +#ifdef NONMATCHING // really not sure whats going on here +void TObject::process_paragraph_reserved_(u32 arg1, const void* pContent, u32 uSize) { + switch (arg1) { + case 0x1: + setFlag_operation(*(u32*)pContent >> 16, *(u32*)pContent & 0xFFFF); + break; + case 0x2: + setWait(*(u32*)pContent); + break; + case 0x3: + setSequence_next(getSequence_offset(*(s32*)pContent)); + break; + case 0x80: + on_data(NULL, 0, pContent, uSize); + break; + case 0x81: + data::TParse_TParagraph_dataID dataID(pContent); + on_data(dataID.get_ID(), dataID.get_IDSize(), dataID.get_content(), + uSize - (u32)dataID.get_content() - (u32)(void*)dataID.getRaw()); + break; + } +} +#else +asm void TObject::process_paragraph_reserved_(u32 arg1, const void* pContent, u32 uSize) { + nofralloc +#include "JSystem/JStudio/asm/process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl.s" +} +#endif + +TObject_control::TObject_control(const void* arg1, u32 arg2) : TObject(-1, arg1, arg2) {} + +TControl::TControl() : _4(0), _8(0), pFactory(NULL), mObject_control(NULL, 0), _54(0) { + resetStatus_(); + mObject_control.setControl(this); +} + +// TObject_control::TObject_control() definition gets inlined here + +TControl::~TControl() { + mObject_control.setControl(NULL); +} + +#ifdef NONMATCHING // Push_back is a rabbit hole of inlining +void TControl::appendObject(TObject* p) { + p->setControl(this); + mObjectContainer.Push_back(p); +} +#else +asm void TControl::appendObject(TObject* p) { + nofralloc +#include "JSystem/JStudio/asm/appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s" +} +#endif + +asm void TControl::removeObject(TObject* p) { + nofralloc +#include "JSystem/JStudio/asm/removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s" +} + +void TControl::destroyObject(TObject* p) { + removeObject(p); + pFactory->destroy(p); +} + +asm void TControl::destroyObject_all() { + nofralloc +#include "JSystem/JStudio/asm/destroyObject_all__Q37JStudio3stb8TControlFv.s" +} + +asm TObject* TControl::getObject(const void* arg1, u32 arg2) { + nofralloc +#include "JSystem/JStudio/asm/getObject__Q37JStudio3stb8TControlFPCvUl.s" +} + +asm void TControl::reset() { + nofralloc +#include "JSystem/JStudio/asm/reset__Q37JStudio3stb8TControlFv.s" +} + +// clang format why +asm void TControl::forward(u32 arg1){nofralloc +#include "JSystem/JStudio/asm/forward__Q37JStudio3stb8TControlFUl.s" +} + +TFactory::~TFactory() { +} + +TObject* TFactory::create(const data::TParse_TBlock_object&) { + return NULL; +} + +void TFactory::destroy(TObject* p) { + delete p; +} + +TParse::TParse(TControl* pControl) : pControl(pControl) {} + +TParse::~TParse() {} + +#ifdef NONMATCHING // Close but is missing a temp or something +int TParse::parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 arg3) { + const void* pData = *ppData_inout; + const data::TParse_THeader& header(pData); + + *ppData_inout = header.getContent(); + *puBlock_out = header.get_blockNumber(); + + if (func_8036608C(header.get_signature(), lbl_804554D8, 4) != 0) + return 0; + + if (header.get_byteOrder() != 0xFEFF) + return 0; + + u16 version = header.get_version(); + + if (version <= 1) + return 0; + else if (version >= 3) + return 0; + + return parseHeader(header, arg3); +} +#else +asm int TParse::parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 arg3) { + nofralloc +#include "JSystem/JStudio/asm/parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl.s" +} +#endif + +asm int TParse::parseBlock_next(const void** ppData_inout, u32* puData_out, u32 arg3) { + nofralloc +#include "JSystem/JStudio/asm/parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl.s" +} + +int TParse::parseHeader(const data::TParse_THeader& header, u32 arg2) { + return 1; +} + +bool TParse::parseBlock_block(const data::TParse_TBlock& ppBlock, u32 arg2) { + return parseBlock_object(ppBlock.get(), arg2); +} + +bool TParse::parseBlock_object(const data::TParse_TBlock_object& ppObject, u32 arg2) { + TControl* pControl = getControl(); + + if (ppObject.get_type() == data::BLOCK_NONE) { + TObject_control& ref = pControl->referObject_control(); + + ref.reset(ppObject.getContent()); + return true; + } + + if (arg2 & 0x10) { + TObject* p = pControl->getObject(ppObject.get_ID(), ppObject.get_IDSize()); + + if (p != NULL) { + p->reset(ppObject.getContent()); + return true; + } + } + + if ((arg2 & 0x20)) + return true; + + TFactory* pFactory = pControl->getFactory(); + + if (pFactory == NULL) + return false; + + TObject* p = pFactory->create(ppObject); + + if (p == NULL) { + if (arg2 & 0x40) + return true; + + return false; + } + + pControl->appendObject(p); + + return true; +} + +} // namespace stb +} // namespace JStudio + +extern "C" { +asm void std_NS_find_if_X2_() { + nofralloc +#include "JSystem/JStudio/asm/std_NS_find_if_X2_.s" +} +} diff --git a/obj_files.mk b/obj_files.mk index 94bb84056f..a0667a0a32 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -311,7 +311,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/JStudio/jstudio-math.o \ $(BUILD_DIR)/asm/JStudio/jstudio-object.o \ $(BUILD_DIR)/asm/JStudio/object-id.o \ - $(BUILD_DIR)/asm/JStudio/stb.o \ + $(BUILD_DIR)/libs/JSystem/JStudio/stb.o \ $(BUILD_DIR)/asm/JStudio/stb-data-parse.o \ $(BUILD_DIR)/asm/JStudio_JStage/control.o \ $(BUILD_DIR)/asm/JStudio_JStage/object.o \ @@ -464,6 +464,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/JSupport/JSUMemoryStream.o \ $(BUILD_DIR)/asm/JSupport/JSUFileStream.o \ $(BUILD_DIR)/asm/JGadget/binary.o \ + $(BUILD_DIR)/libs/JSystem/JGadget/linklist.o \ $(BUILD_DIR)/asm/JGadget/linklist.o \ $(BUILD_DIR)/asm/JGadget/std-vector.o \ $(BUILD_DIR)/asm/JUtility/JUTCacheFont.o \