summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
authorcadmic <cadmic24@gmail.com>2024-09-11 03:07:25 -0700
committerGitHub <noreply@github.com>2024-09-11 12:07:25 +0200
commitfd7b92dac81a93945683c24782e03269925890bb (patch)
treec28b384809d24ad7d1c6bb64c9080f33d3f73b74 /src/code
parent76d97ac18acc37a73b4ae627f2f84fe2bae44fd6 (diff)
[ntsc-1.2] Match remaining functions (#2182)
* Match remaining ntsc-1.2 functions * "fake" -> "Fake match?"
Diffstat (limited to 'src/code')
-rw-r--r--src/code/PreRender.c21
-rw-r--r--src/code/gfxprint.c48
-rw-r--r--src/code/z_kankyo.c6
3 files changed, 55 insertions, 20 deletions
diff --git a/src/code/PreRender.c b/src/code/PreRender.c
index aedc0d07a..441dddade 100644
--- a/src/code/PreRender.c
+++ b/src/code/PreRender.c
@@ -80,7 +80,9 @@ void PreRender_CopyImage(PreRender* this, Gfx** gfxP, void* img, void* imgDst) {
s32 lrt;
// Make sure that we don't load past the end of the source image
- nRows = MIN(rowsRemaining, nRows);
+ if (nRows > rowsRemaining) {
+ nRows = rowsRemaining;
+ }
// Determine the upper and lower bounds of the rect to draw
ult = curRow;
@@ -215,7 +217,9 @@ void func_800C170C(PreRender* this, Gfx** gfxP, void* buf, void* bufSave, u32 r,
s32 lrt;
// Make sure that we don't load past the end of the source image
- nRows = MIN(rowsRemaining, nRows);
+ if (nRows > rowsRemaining) {
+ nRows = rowsRemaining;
+ }
// Determine the upper and lower bounds of the rect to draw
ult = curRow;
@@ -457,15 +461,16 @@ void func_800C213C(PreRender* this, Gfx** gfxP) {
curRow = 0;
while (rowsRemaining > 0) {
s32 uls = 0;
+ s32 ult = curRow;
s32 lrs = this->width - 1;
- s32 ult;
s32 lrt;
// Make sure that we don't load past the end of the source image
- nRows = MIN(rowsRemaining, nRows);
+ if (nRows > rowsRemaining) {
+ nRows = rowsRemaining;
+ }
- // Determine the upper and lower bounds of the rect to draw
- ult = curRow;
+ // Determine the lower bound of the rect to draw
lrt = curRow + nRows - 1;
// Load the frame buffer line
@@ -473,11 +478,15 @@ void func_800C213C(PreRender* this, Gfx** gfxP) {
this->height, uls, ult, lrs, lrt, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP,
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
+ rtile = rtile; // Fake match?
+
// Load the coverage line
gDPLoadMultiTile(gfx++, this->cvgSave, 0x0160, rtile, G_IM_FMT_I, G_IM_SIZ_8b, this->width, this->height,
uls, ult, lrs, lrt, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
+ rtile = rtile; // Fake match?
+
// Draw a texture for which the rgb channels come from the framebuffer and the alpha channel comes from
// coverage, modulated by env color
gSPTextureRectangle(gfx++, uls << 2, ult << 2, (lrs + 1) << 2, (lrt + 1) << 2, G_TX_RENDERTILE, uls << 5,
diff --git a/src/code/gfxprint.c b/src/code/gfxprint.c
index dd80bcfd1..db586a851 100644
--- a/src/code/gfxprint.c
+++ b/src/code/gfxprint.c
@@ -132,9 +132,17 @@ static u8 sDefaultSpecialFlags;
#endif
void GfxPrint_Setup(GfxPrint* this) {
- s32 width = 16;
- s32 height = 256;
+ s32 width;
+ s32 height;
s32 i;
+ s32 pal;
+ s32 cm;
+ s32 masks;
+ s32 maskt;
+ s32 shift;
+ s32 line;
+ s32 tmem = 0;
+ s32 fmt = G_IM_FMT_CI;
gDPPipeSync(this->dList++);
gDPSetOtherMode(this->dList++,
@@ -142,27 +150,41 @@ void GfxPrint_Setup(GfxPrint* this) {
G_TD_CLAMP | G_TP_NONE | G_CYC_1CYCLE | G_PM_NPRIMITIVE,
G_AC_NONE | G_ZS_PRIM | G_RM_XLU_SURF | G_RM_XLU_SURF2);
gDPSetCombineMode(this->dList++, G_CC_DECALRGBA, G_CC_DECALRGBA);
- gDPLoadTextureBlock_4b(this->dList++, sGfxPrintFontData, G_IM_FMT_CI, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
+
+ width = 16;
+ height = 256;
+ cm = G_TX_NOMIRROR | G_TX_WRAP;
+ masks = G_TX_NOMASK;
+ maskt = G_TX_NOMASK;
+ shift = G_TX_NOLOD;
+
+ gDPLoadMultiBlock_4b(this->dList++, sGfxPrintFontData, 0, G_TX_RENDERTILE, G_IM_FMT_CI, width, height, 0, cm, cm,
+ masks, maskt, shift, shift);
gDPLoadTLUT(this->dList++, 64, 0x100, sGfxPrintFontTLUT);
for (i = 1; i < 4; i++) {
- gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK,
- G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOLOD);
- gDPSetTileSize(this->dList++, i * 2, 0, 0, 15 << 2, 255 << 2);
+ gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2, i, cm, maskt, shift, cm, masks, shift);
+ gDPSetTileSize(this->dList++, i * 2, 0 << 2, 0 << 2, (width - 1) << 2, (height - 1) << 2);
}
gDPSetColor(this->dList++, G_SETPRIMCOLOR, this->color.rgba);
- gDPLoadMultiTile_4b(this->dList++, sGfxPrintRainbowData, 0, 1, G_IM_FMT_CI, 2, 8, 0, 0, 1, 7, 4,
- G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 1, 3, G_TX_NOLOD, G_TX_NOLOD);
-
+ width = 2;
+ height = 8;
+ cm = G_TX_NOMIRROR | G_TX_WRAP;
+ masks = 1;
+ maskt = 3;
+ shift = G_TX_NOLOD;
+ pal = 4;
+ line = 1;
+
+ gDPLoadMultiTile_4b(this->dList++, sGfxPrintRainbowData, 0, 1, G_IM_FMT_CI, width, height, 0, 0, width - 1,
+ height - 1, pal, cm, cm, masks, maskt, shift, shift);
gDPLoadTLUT(this->dList++, 16, 0x140, sGfxPrintRainbowTLUT);
for (i = 1; i < 4; i++) {
- gDPSetTile(this->dList++, G_IM_FMT_CI, G_IM_SIZ_4b, 1, 0, i * 2 + 1, 4, G_TX_NOMIRROR | G_TX_WRAP, 3,
- G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 1, G_TX_NOLOD);
- gDPSetTileSize(this->dList++, i * 2 + 1, 0, 0, 1 << 2, 7 << 2);
+ gDPSetTile(this->dList++, fmt, G_IM_SIZ_4b, line, tmem, i * 2 + 1, pal, cm, maskt, shift, cm, masks, shift);
+ gDPSetTileSize(this->dList++, i * 2 + 1, 0 << 2, 0 << 2, (width - 1) << 2, (height - 1) << 2);
}
}
diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c
index ea5bf9672..52be77e44 100644
--- a/src/code/z_kankyo.c
+++ b/src/code/z_kankyo.c
@@ -1577,7 +1577,9 @@ void Environment_DrawLensFlare(PlayState* play, EnvironmentContext* envCtx, View
sqrtf((SQ(lookDirX) + SQ(lookDirY) + SQ(lookDirZ)) * (SQ(posDirX) + SQ(posDirY) + SQ(posDirZ)));
lensFlareAlphaScaleTarget = cosAngle * 3.5f;
- lensFlareAlphaScaleTarget = CLAMP_MAX(lensFlareAlphaScaleTarget, 1.0f);
+ if (lensFlareAlphaScaleTarget > 1.0f) {
+ lensFlareAlphaScaleTarget = 1.0f;
+ }
if (!isSun) {
lensFlareAlphaScaleTarget = cosAngle;
@@ -1625,7 +1627,9 @@ void Environment_DrawLensFlare(PlayState* play, EnvironmentContext* envCtx, View
alpha *= 1.0f - fogInfluence;
+#if !PLATFORM_N64
if (1) {}
+#endif
if (!(isOffScreen ^ 0)) {
Math_SmoothStepToF(&envCtx->lensFlareAlphaScale, lensFlareAlphaScaleTarget, 0.5f, 0.05f, 0.001f);