Link GXDisplayList.c

This commit is contained in:
HeartPiece 2023-09-25 03:16:52 +10:00
parent 4404740aef
commit 6bb6ca9855
7 changed files with 30 additions and 84 deletions

View File

@ -1,35 +0,0 @@
.include "macros.inc"
.section .text, "ax" # 0x800056C0 - 0x80472F00
.fn GXCallDisplayList, global
/* 800E93D8 000E6318 7C 08 02 A6 */ mflr r0
/* 800E93DC 000E631C 90 01 00 04 */ stw r0, 4(r1)
/* 800E93E0 000E6320 94 21 FF E8 */ stwu r1, -0x18(r1)
/* 800E93E4 000E6324 93 E1 00 14 */ stw r31, 0x14(r1)
/* 800E93E8 000E6328 3B E4 00 00 */ addi r31, r4, 0
/* 800E93EC 000E632C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 800E93F0 000E6330 3B C3 00 00 */ addi r30, r3, 0
/* 800E93F4 000E6334 80 A2 92 90 */ lwz r5, __GXData@sda21(r2)
/* 800E93F8 000E6338 80 05 05 AC */ lwz r0, 0x5ac(r5)
/* 800E93FC 000E633C 28 00 00 00 */ cmplwi r0, 0
/* 800E9400 000E6340 41 82 00 08 */ beq .L_800E9408
/* 800E9404 000E6344 4B FF C5 05 */ bl __GXSetDirtyState
.L_800E9408:
/* 800E9408 000E6348 80 62 92 90 */ lwz r3, __GXData@sda21(r2)
/* 800E940C 000E634C 80 03 00 00 */ lwz r0, 0(r3)
/* 800E9410 000E6350 28 00 00 00 */ cmplwi r0, 0
/* 800E9414 000E6354 40 82 00 08 */ bne .L_800E941C
/* 800E9418 000E6358 4B FF C6 41 */ bl __GXSendFlushPrim
.L_800E941C:
/* 800E941C 000E635C 38 00 00 40 */ li r0, 0x40
/* 800E9420 000E6360 3C 60 CC 01 */ lis r3, 0xCC008000@ha
/* 800E9424 000E6364 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
/* 800E9428 000E6368 93 C3 80 00 */ stw r30, 0xCC008000@l(r3)
/* 800E942C 000E636C 93 E3 80 00 */ stw r31, 0xCC008000@l(r3)
/* 800E9430 000E6370 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800E9434 000E6374 83 E1 00 14 */ lwz r31, 0x14(r1)
/* 800E9438 000E6378 83 C1 00 10 */ lwz r30, 0x10(r1)
/* 800E943C 000E637C 38 21 00 18 */ addi r1, r1, 0x18
/* 800E9440 000E6380 7C 08 03 A6 */ mtlr r0
/* 800E9444 000E6384 4E 80 00 20 */ blr
.endfn GXCallDisplayList

View File

@ -710,7 +710,7 @@ LIBS = [
["Dolphin/gx/GXBump", True],
"Dolphin/gx/GXTev",
"Dolphin/gx/GXPixel",
"Dolphin/gx/GXDisplayList",
["Dolphin/gx/GXDisplayList", True],
"Dolphin/gx/GXTransform",
"Dolphin/gx/GXPerf",
],

View File

@ -19,17 +19,15 @@
### <section id="Dolphin">Dolphin</section>
| File | Size (bytes) | File | Size (bytes) |
| ---- | ---- | ---- | ---- |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/targsupp.c">TRK_MINNOW_DOLPHIN/targsupp.c</a> | 326 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXDisplayList.c">gx/GXDisplayList.c</a> | 583 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/Runtime/__init_cpp_exceptions.cpp">Runtime/__init_cpp_exceptions.cpp</a> | 684 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/Runtime/global_destructor_chain.c">Runtime/global_destructor_chain.c</a> | 965 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/mtx/mtxvec.c">mtx/mtxvec.c</a> | 3122 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/mslsupp.c">TRK_MINNOW_DOLPHIN/mslsupp.c</a> | 4555 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/CircleBuffer.c">TRK_MINNOW_DOLPHIN/CircleBuffer.c</a> | 4715 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/serpoll.c">TRK_MINNOW_DOLPHIN/serpoll.c</a> | 4793 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c">TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c</a> | 5554 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/mtx/mtx44.c">mtx/mtx44.c</a> | 5987 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/os/OSReboot.c">os/OSReboot.c</a> | 6397 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXGeometry.c">gx/GXGeometry.c</a> | 6983 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c">TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c</a> | 10320 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/exi/EXIUart.c">exi/EXIUart.c</a> | 10329 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/dolphin_trk.c">TRK_MINNOW_DOLPHIN/dolphin_trk.c</a> | 11230 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/support.c">TRK_MINNOW_DOLPHIN/support.c</a> | 12046 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXTransform.c">gx/GXTransform.c</a> | 12379 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXLight.c">gx/GXLight.c</a> | 14151 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXTev.c">gx/GXTev.c</a> | 14624 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXPixel.c">gx/GXPixel.c</a> | 15806 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXPerf.c">gx/GXPerf.c</a> | 17304 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/targsupp.c">TRK_MINNOW_DOLPHIN/targsupp.c</a> | 326 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/Runtime/__init_cpp_exceptions.cpp">Runtime/__init_cpp_exceptions.cpp</a> | 684 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/Runtime/global_destructor_chain.c">Runtime/global_destructor_chain.c</a> | 965 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/mtx/mtxvec.c">mtx/mtxvec.c</a> | 3122 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/mslsupp.c">TRK_MINNOW_DOLPHIN/mslsupp.c</a> | 4555 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/CircleBuffer.c">TRK_MINNOW_DOLPHIN/CircleBuffer.c</a> | 4715 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/serpoll.c">TRK_MINNOW_DOLPHIN/serpoll.c</a> | 4793 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c">TRK_MINNOW_DOLPHIN/mpc_7xx_603e.c</a> | 5554 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/mtx/mtx44.c">mtx/mtx44.c</a> | 5987 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/os/OSReboot.c">os/OSReboot.c</a> | 6397 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXGeometry.c">gx/GXGeometry.c</a> | 6983 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c">TRK_MINNOW_DOLPHIN/dolphin_trk_glue.c</a> | 10320 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/exi/EXIUart.c">exi/EXIUart.c</a> | 10329 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/dolphin_trk.c">TRK_MINNOW_DOLPHIN/dolphin_trk.c</a> | 11230 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/TRK_MINNOW_DOLPHIN/support.c">TRK_MINNOW_DOLPHIN/support.c</a> | 12046 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXTransform.c">gx/GXTransform.c</a> | 12379 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXLight.c">gx/GXLight.c</a> | 14151 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/Dolphin/gx/GXTev.c">gx/GXTev.c</a> | 14624 |
### <section id="JSystem">JSystem</section>
| File | Size (bytes) | File | Size (bytes) |
@ -90,7 +88,7 @@
| ---- | ---- | ---- | ---- |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiTeki.cpp">aiTeki.cpp</a> | 5858 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/pelletNumber.cpp">pelletNumber.cpp</a> | 6199 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/gamePelletList.cpp">gamePelletList.cpp</a> | 8282 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/mapMgrTraceMove.cpp">mapMgrTraceMove.cpp</a> | 9030 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/cellIterator.cpp">cellIterator.cpp</a> | 9434 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemHole.cpp">itemHole.cpp</a> | 11716 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/cellIterator.cpp">cellIterator.cpp</a> | 9434 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemHole.cpp">itemHole.cpp</a> | 11712 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/itemBigFountain.cpp">itemBigFountain.cpp</a> | 12679 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiRescue.cpp">aiRescue.cpp</a> | 13908 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/texCaster.cpp">texCaster.cpp</a> | 13913 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/aiBreakGate.cpp">aiBreakGate.cpp</a> | 13918 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/flockMgr.cpp">flockMgr.cpp</a> | 14542 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/plugProjectKandoU/naviWhistle.cpp">naviWhistle.cpp</a> | 16714 |

View File

@ -52,7 +52,10 @@ typedef union _ControlRegister {
// size: 0x5B0
// Wish we could steal names from SMG1 decomp, but GXData is bigger there.
typedef struct _GXData {
u16 _000[2]; // _000
union {
s16 s[2];
u32 w;
} _000; // _000
u8 _004[4]; // _004
ControlRegister controlRegister; // _008
u32 _00C; // _00C, probably CPStatus
@ -204,7 +207,7 @@ static inline void GXSetWasteFlags()
{
GXData* data = __GXData;
data->_5AC |= 0x3;
data->_000[1] = 0;
data->_000.s[1] = 0;
}
////////////////////////////////////////////

View File

@ -24,9 +24,9 @@ void GXSetTevIndirect(GXTevStageID tevStage, GXIndTexStageID texStage, GXIndTexF
GX_BITFIELD_SET(field, 11, 1, addPrev);
GX_BITFIELD_SET(field, 0, 8, stage);
GXWGFifo.u8 = 0x61;
GXWGFifo.s32 = field;
__GXData->_000[1] = 0;
GXWGFifo.u8 = 0x61;
GXWGFifo.s32 = field;
__GXData->_000.s[1] = 0;
}
/*
@ -89,7 +89,7 @@ void GXSetIndTexMtx(GXIndTexMtxID id, const Mtx23 mtx, s8 scale_exp)
GXWGFifo.u8 = 0x61;
GXWGFifo.s32 = field;
__GXData->_000[1] = 0;
__GXData->_000.s[1] = 0;
}
/*
@ -136,7 +136,7 @@ void GXSetIndTexCoordScale(GXIndTexStageID stage, GXIndTexScale scaleS, GXIndTex
break;
}
__GXData->_000[1] = 0;
__GXData->_000.s[1] = 0;
}
/*
@ -237,9 +237,9 @@ void __GXSetIndirectMask(u32 mask)
{
GXData* data = __GXData;
GX_BITFIELD_SET(data->_124, 24, 8, mask);
GXWGFifo.u8 = 0x61;
GXWGFifo.s32 = data->_124;
data->_000[1] = 0;
GXWGFifo.u8 = 0x61;
GXWGFifo.s32 = data->_124;
data->_000.s[1] = 0;
}
/*
@ -249,7 +249,7 @@ void __GXSetIndirectMask(u32 mask)
*/
void __GXFlushTextureState()
{
GXWGFifo.u8 = 0x61;
GXWGFifo.s32 = __GXData->_124;
__GXData->_000[1] = 0;
GXWGFifo.u8 = 0x61;
GXWGFifo.s32 = __GXData->_124;
__GXData->_000.s[1] = 0;
}

View File

@ -1,25 +1,5 @@
#include "Dolphin/gx.h"
/*
* --INFO--
* Address: ........
* Size: 0000CC
*/
void GXBeginDisplayList(void* dl, u32 dlSize)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: ........
* Size: 0000C4
*/
u32 GXEndDisplayList(void)
{
// UNUSED FUNCTION
}
/*
* --INFO--
* Address: 800E93D8
@ -30,10 +10,10 @@ void GXCallDisplayList(void* dl, u32 byteCnt)
if (__GXData->_5AC != 0) {
__GXSetDirtyState();
}
if (__GXData->_000[0] == 0) {
if (__GXData->_000.w == 0) {
__GXSendFlushPrim();
}
GXWGFifo.u8 = 0x40;
GXWGFifo.u32 = dl;
GXWGFifo.u32 = (u32)dl;
GXWGFifo.u32 = byteCnt;
}

View File

@ -10,7 +10,7 @@ GX_FILES:=\
$(BUILD_DIR)/src/Dolphin/gx/GXBump.o\
$(BUILD_DIR)/asm/Dolphin/gx/GXTev.o\
$(BUILD_DIR)/asm/Dolphin/gx/GXPixel.o\
$(BUILD_DIR)/asm/Dolphin/gx/GXDisplayList.o\
$(BUILD_DIR)/src/Dolphin/gx/GXDisplayList.o\
$(BUILD_DIR)/asm/Dolphin/gx/GXTransform.o\
$(BUILD_DIR)/asm/Dolphin/gx/GXPerf.o\