summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2024-12-31 09:50:21 -0700
committerGitHub <noreply@github.com>2024-12-31 09:50:21 -0700
commit1101dcafb08a1f17b06306ff44a9d869ffeb7862 (patch)
treee63c623057b555fedd3d017b5d6c34d12de31098 /include
parent7e6aba50a2a2fa80db153ad154f5ae77cc344650 (diff)
parent7ee714e4e93609a5dbf1dc648df0ce504e3d7284 (diff)
Merge pull request #133 from MegaMech/next
Fix loadtile, Impl more OObjects
Diffstat (limited to 'include')
-rw-r--r--include/defines.h8
-rw-r--r--include/mk64.h35
-rw-r--r--include/objects.h2
3 files changed, 42 insertions, 3 deletions
diff --git a/include/defines.h b/include/defines.h
index 11394a6c2..e4ee8c41c 100644
--- a/include/defines.h
+++ b/include/defines.h
@@ -352,6 +352,11 @@ enum DIRECTION {
#define BALLOON_STATUS_DEPARTING 2
/**
+ * Number of podiums in podium ceremony
+ */
+#define NUM_PODIUMS 3
+
+/**
* @brief Max representable time, 100 minutes measured in centiseconds
*/
#define MAX_TIME 0x927C0
@@ -397,7 +402,6 @@ enum DIRECTION {
#define COLOR_LAVA GPACK_RGB888(0x34, 0x00, 0x00)
#define COLOR_BLACK GPACK_RGB888(0, 0, 0)
-#endif // DEFINES_H
/**
*
@@ -410,3 +414,5 @@ enum DIRECTION {
#define FACING_Y_AXIS 0x4000
#define FACING_X_AXIS 0x8000
#define FACING_Z_AXIS 0x2000
+
+#endif // DEFINES_H \ No newline at end of file
diff --git a/include/mk64.h b/include/mk64.h
index 97d5ffb84..86eb1ff9a 100644
--- a/include/mk64.h
+++ b/include/mk64.h
@@ -104,7 +104,7 @@ enum SURFACE_TYPE {
/* 0x10 */ ROPE_BRIDGE, // Bowser's Castle bridge 2, DK Jungle bridge
/* 0x11 */ WOOD_BRIDGE, // Frappe Snowland bridge, Bowser's Castle bridge 1,3, Yoshi Valley bridge 2
/* 0xFC */ BOOST_RAMP_WOOD = 0xFC, // DK Jungle
- /* 0xFD */ OUT_OF_BOUNDS, // DK Jungle river island
+ /* 0xFD */ OUT_OF_BOUNDS, // DK Jungle river island oob / out of bounds
/* 0xFE */ BOOST_RAMP_ASPHALT, // Royal Raceway
/* 0xFF */ RAMP // Koopa Troopa beach
};
@@ -138,6 +138,39 @@ void gSPDisplayListOffset(Gfx* pkt, Gfx* dl, int offset);
void gSPVertex(Gfx* pkt, uintptr_t v, int n, int v0);
void gSPInvalidateTexCache(Gfx* pkt, uintptr_t texAddr);
+// Dumb hack to fix load tile size on higher than native resolutions
+#define gMKLoadTextureTile(pkt, timg, fmt, siz, width, height, uls, ult, lrs, lrt, pal, cms, cmt, masks, maskt, \
+ shifts, shiftt) \
+ _DW({ \
+ gDPSetTextureImage(pkt, fmt, siz, width, timg); \
+ gDPSetTile(pkt, fmt, siz, (((((lrs) - (uls) + 1) * siz##_TILE_BYTES) + 7) >> 3), 0, G_TX_LOADTILE, 0, cmt, \
+ maskt, shiftt, cms, masks, shifts); \
+ gDPLoadSync(pkt); \
+ gDPLoadTile(pkt, G_TX_LOADTILE, (uls) << G_TEXTURE_IMAGE_FRAC, (ult) << G_TEXTURE_IMAGE_FRAC, \
+ (lrs) << G_TEXTURE_IMAGE_FRAC, (lrt + 2) << G_TEXTURE_IMAGE_FRAC); \
+ gDPPipeSync(pkt); \
+ gDPSetTile(pkt, fmt, siz, (((((lrs) - (uls) + 1) * siz##_LINE_BYTES) + 7) >> 3), 0, G_TX_RENDERTILE, pal, cmt, \
+ maskt, shiftt, cms, masks, shifts); \
+ gDPSetTileSize(pkt, G_TX_RENDERTILE, (uls) << G_TEXTURE_IMAGE_FRAC, (ult) << G_TEXTURE_IMAGE_FRAC, \
+ (lrs) << G_TEXTURE_IMAGE_FRAC, (lrt) << G_TEXTURE_IMAGE_FRAC); \
+ })
+
+#define gMKLoadTextureTile_4b(pkt, timg, fmt, width, height, uls, ult, lrs, lrt, pal, cms, cmt, masks, maskt, shifts, \
+ shiftt) \
+ _DW({ \
+ gDPSetTextureImage(pkt, fmt, G_IM_SIZ_8b, ((width) >> 1), timg); \
+ gDPSetTile(pkt, fmt, G_IM_SIZ_8b, (((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, G_TX_LOADTILE, 0, cmt, maskt, \
+ shiftt, cms, masks, shifts); \
+ gDPLoadSync(pkt); \
+ gDPLoadTile(pkt, G_TX_LOADTILE, (uls) << (G_TEXTURE_IMAGE_FRAC - 1), (ult) << (G_TEXTURE_IMAGE_FRAC), \
+ (lrs) << (G_TEXTURE_IMAGE_FRAC - 1), (lrt + 2) << (G_TEXTURE_IMAGE_FRAC)); \
+ gDPPipeSync(pkt); \
+ gDPSetTile(pkt, fmt, G_IM_SIZ_4b, (((((lrs) - (uls) + 1) >> 1) + 7) >> 3), 0, G_TX_RENDERTILE, pal, cmt, \
+ maskt, shiftt, cms, masks, shifts); \
+ gDPSetTileSize(pkt, G_TX_RENDERTILE, (uls) << G_TEXTURE_IMAGE_FRAC, (ult) << G_TEXTURE_IMAGE_FRAC, \
+ (lrs) << G_TEXTURE_IMAGE_FRAC, (lrt) << G_TEXTURE_IMAGE_FRAC); \
+ })
+
#ifdef __cplusplus
}
#endif
diff --git a/include/objects.h b/include/objects.h
index d4da8cd95..fecc902a3 100644
--- a/include/objects.h
+++ b/include/objects.h
@@ -223,7 +223,7 @@ typedef struct {
/* 0x6 */ u16 rot;
} YVFlagPoleSpawn; // size = 0x8;
-extern YVFlagPoleSpawn D_800E5DF4[];
+extern YVFlagPoleSpawn gFlagpoleSpawns[];
#define NUM_CRABS 0xA