From 59cc857f2a817333e5c084d4cec7fe78eb010b29 Mon Sep 17 00:00:00 2001 From: Unnunu Date: Thu, 10 Apr 2025 19:22:34 +0300 Subject: [PATCH] matched func_80078190 and render_rain_overlay (#506) * matched func_80078190 * renamed the function * match render_rain_overlay * update score * update symbol files * use DKR_TRIANGLE --- README.md | 16 +-- include/structs.h | 2 + src/rcp_dkr.c | 126 ++++++++------------ src/rcp_dkr.h | 3 +- src/weather.c | 165 ++++++++++++++------------- src/weather.h | 12 +- ver/symbols/symbol_addrs.jpn.v79.txt | 4 +- ver/symbols/symbol_addrs.pal.v77.txt | 4 +- ver/symbols/symbol_addrs.pal.v80.txt | 4 +- ver/symbols/symbol_addrs.us.v77.txt | 4 +- ver/symbols/symbol_addrs.us.v80.txt | 4 +- 11 files changed, 161 insertions(+), 183 deletions(-) diff --git a/README.md b/README.md index ebbcff37..b09f28d9 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the All versions are supported, and the US 1.0 version (SHA1 = 0cb115d8716dbbc2922fda38e533b9fe63bb9670) of the game is the default if not specified. -As of April 9, 2025, this is our current score: +As of April 10, 2025, this is our current score: -    Decomp progress: 78.38% +    Decomp progress: 78.72%     Documentation progress: 49.86% @@ -117,20 +117,20 @@ s32 is_drumstick_unlocked(void) { ``` -As of April 9, 2025, this is our current score: +As of April 10, 2025, this is our current score: ``` ==================================================================== ADVENTURE ONE (ASM -> C Decompilation) - -------------- 78.38% Complete (80.98% NON_MATCHING) --------------- - # Decompiled functions: 1844 - # GLOBAL_ASM remaining: 107 + -------------- 78.72% Complete (81.31% NON_MATCHING) --------------- + # Decompiled functions: 1846 + # GLOBAL_ASM remaining: 105 # NON_MATCHING functions: 13 - # NON_EQUIVALENT WIP functions: 35 + # NON_EQUIVALENT WIP functions: 33 --------------------------- Game Status ---------------------------- Balloons: 37/47, Keys: 4/4, Trophies: 3/5 T.T. Amulets: 4/4, Wizpig Amulets: 3/4 -------------------------------------------------------------------- - We are collecting silver coins in Boulder Canyon. (6/8 silver coins) + We are collecting silver coins in Boulder Canyon. (8/8 silver coins) ==================================================================== ADVENTURE TWO (Cleanup & Documentation) ------------------------- 49.86% Complete -------------------------- diff --git a/include/structs.h b/include/structs.h index daf81024..01643867 100644 --- a/include/structs.h +++ b/include/structs.h @@ -575,6 +575,8 @@ typedef struct TexCoords { #define BACKFACE_CULL 0x00 #define BACKFACE_DRAW 0x40 +#define DKR_TRIANGLE(flags, ind0, ind1, ind2) ((flags << 24) | (ind0 << 16) | (ind1 << 8) | (ind2 << 0)) + /* Size: 0x10 bytes */ typedef struct Triangle { union { diff --git a/src/rcp_dkr.c b/src/rcp_dkr.c index af969061..68db7489 100644 --- a/src/rcp_dkr.c +++ b/src/rcp_dkr.c @@ -434,7 +434,7 @@ void bgdraw_render(Gfx **dList, MatrixS **mtx, s32 drawBG) { if (gChequerBGEnabled) { bgdraw_chequer(dList); // Unused } else if (gTexBGTex1) { - func_80078190(dList); + bgdraw_texture(dList); } else if (gBGDrawFunc.ptr != NULL) { gBGDrawFunc.function(dList, mtx); } else { @@ -454,7 +454,7 @@ void bgdraw_render(Gfx **dList, MatrixS **mtx, s32 drawBG) { if (gChequerBGEnabled) { bgdraw_chequer(dList); // Unused } else if (gTexBGTex1) { - func_80078190(dList); + bgdraw_texture(dList); } else if (gBGDrawFunc.ptr != NULL) { gBGDrawFunc.function(dList, mtx); } else { @@ -508,117 +508,85 @@ void bgdraw_texture_init(TextureHeader *tex1, TextureHeader *tex2, u32 shiftX) { gTexBGShiftX = shiftX * 4; } -// bgdraw_texture -#ifdef NON_EQUIVALENT /** * Seems to render the background screen after a race finishes while you're at the menu deciding what to do next. * https://i.imgur.com/MHbUD2a.png is an example. The left is correct, and the right is incorrect rendering. * Official Name: rcpMosaicClear - */ -void func_80078190(Gfx **dList) { - s32 texture1And2UpperHeight; +*/ +void bgdraw_texture(Gfx **dList) { + s32 widthAndHeight; + // The following variables use the (30.2) fixed-point format + s32 sumTextureHeights; s32 videoHeight; s32 videoWidth; - s32 upperVideoWidth; - s32 upperVideoHeight; - s32 texture1UpperWidth; - s32 texture1UpperHeight; - // s32 texture2UpperHeight; - s32 widthAndHeight; - s32 yPos; - s32 var_s3; - s32 uly; // the y-coordinate of upper-left corner of rectangle (10.2, 0.0~1023.75) - s32 ulx; // the y-coordinate of upper-left corner of rectangle (10.2, 0.0~1023.75) - s32 lry; // the y-coordinate of lower-right corner of rectangle (10.2, 0.0~1023.75) - s32 lrx; // the x-coordinate of lower-right corner of rectangle (10.2, 0.0~1023.75) - s32 t; // the texture coordinate t of upper-left corner of rectangle (s10.5) - s32 s; // the texture coordinate s of upper-left corner of rectangle (s10.5) + s32 texWidth; + s32 texHeight; + s32 xOffset; + s32 uly; + s32 ulx; widthAndHeight = fb_size(); videoWidth = GET_VIDEO_WIDTH(widthAndHeight); - videoHeight = GET_VIDEO_HEIGHT(widthAndHeight); + videoHeight = GET_VIDEO_HEIGHT(widthAndHeight) & 0xFFFF; gSPDisplayList((*dList)++, dRaceFinishBackgroundSettings); if (gTexBGTex2 == NULL) { + // Fill the background with a single texture gDkrDmaDisplayList((*dList)++, OS_PHYSICAL_TO_K0(gTexBGTex1->cmd), gTexBGTex1->numberOfCommands); - upperVideoWidth = videoWidth << 2; - upperVideoHeight = videoHeight << 2; - texture1UpperWidth = gTexBGTex1->width << 2; - texture1UpperHeight = gTexBGTex1->height << 2; - var_s3 = 0; - for (yPos = 0; yPos < upperVideoHeight; yPos += texture1UpperHeight) { - uly = yPos; - lry = yPos + texture1UpperHeight; - ulx = -var_s3; - while (ulx < upperVideoWidth) { - lrx = ulx + texture1UpperWidth; - s = 0; - t = 0; + videoWidth <<= 2; + videoHeight <<= 2; + texWidth = gTexBGTex1->width << 2; + texHeight = gTexBGTex1->height << 2; + for (xOffset = 0, uly = 0; uly < videoHeight; uly += texHeight) { + for (ulx = -xOffset; ulx < videoWidth; ulx += texWidth) { if (ulx < 0) { - s = -(ulx << 3); - gSPTextureRectangle((*dList)++, 0, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); + gSPTextureRectangle((*dList)++, 0, uly, ulx + texWidth, uly + texHeight, G_TX_RENDERTILE, -(ulx << 3), 0, 1024, 1024); } else { - gSPTextureRectangle((*dList)++, ulx, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); + gSPTextureRectangle((*dList)++, ulx, uly, ulx + texWidth, uly + texHeight, G_TX_RENDERTILE, 0, 0, 1024, 1024); } - ulx = lrx; } - var_s3 = (var_s3 + gTexBGShiftX) & (texture1UpperWidth - 1); + xOffset = (xOffset + gTexBGShiftX) & (texWidth - 1); } } else { + // The screen is filled with alternating horizontal stripes of two textures gDkrDmaDisplayList((*dList)++, OS_PHYSICAL_TO_K0(gTexBGTex1->cmd), gTexBGTex1->numberOfCommands); - upperVideoWidth = videoWidth << 2; - upperVideoHeight = videoHeight << 2; - texture1UpperWidth = gTexBGTex1->width << 2; - texture1UpperHeight = gTexBGTex1->height << 2; - // texture2UpperHeight = gTexBGTex2->height << 2; - texture1And2UpperHeight = (gTexBGTex2->height << 2) + texture1UpperHeight; - var_s3 = 0; - for (yPos = 0; yPos < upperVideoHeight; yPos += texture1And2UpperHeight) { - uly = yPos; - lry = yPos + texture1UpperHeight; - ulx = -var_s3; - while (ulx < upperVideoWidth) { - lrx = ulx + texture1UpperWidth; - s = 0; - t = 0; + videoWidth <<= 2; + videoHeight <<= 2; + uly = 0; + texWidth = gTexBGTex1->width << 2; + texHeight = gTexBGTex1->height << 2; + sumTextureHeights = (gTexBGTex2->height << 2) + texHeight; + for (xOffset = 0; uly < videoHeight; uly += sumTextureHeights) { + for (ulx = -xOffset; ulx < videoWidth; ulx += texWidth) { if (ulx < 0) { - s = -(ulx << 3); - gSPTextureRectangle((*dList)++, 0, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); + gSPTextureRectangle((*dList)++, 0, uly, ulx + texWidth, uly + texHeight, G_TX_RENDERTILE, -(ulx << 3), 0, 1024, 1024); } else { - gSPTextureRectangle((*dList)++, ulx, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); + gSPTextureRectangle((*dList)++, ulx, uly, ulx + texWidth, uly + texHeight, G_TX_RENDERTILE, 0, 0, 1024, 1024); } - ulx = lrx; } - var_s3 = (var_s3 + gTexBGShiftX) & (texture1UpperWidth - 1); + xOffset = (xOffset + gTexBGShiftX) & (texWidth - 1); } + gDkrDmaDisplayList((*dList)++, OS_PHYSICAL_TO_K0(gTexBGTex2->cmd), gTexBGTex2->numberOfCommands); - upperVideoWidth <<= 2; - upperVideoHeight <<= 2; - var_s3 = 0; - for (yPos = texture1UpperHeight; yPos < upperVideoHeight; yPos += texture1And2UpperHeight) { - uly = yPos; - lry = yPos + texture1And2UpperHeight; - ulx = -var_s3; - while (ulx < upperVideoWidth) { - lrx = ulx + texture1UpperWidth; - s = 0; - t = 0; + // Width and height are mistakenly multiplied by 4 again, but it doesn't cause any issues + videoWidth <<= 2; + videoHeight <<= 2; + + uly = texHeight; + texHeight = gTexBGTex2->height << 2; + for (xOffset = 0; uly < videoHeight; uly += sumTextureHeights) { + for (ulx = -xOffset; ulx < videoWidth; ulx += texWidth) { if (ulx < 0) { - s = -(ulx << 3); - gSPTextureRectangle((*dList)++, 0, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); + gSPTextureRectangle((*dList)++, 0, uly, ulx + texWidth, uly + texHeight, G_TX_RENDERTILE, -(ulx << 3), 0, 1024, 1024); } else { - gSPTextureRectangle((*dList)++, ulx, uly, lrx, lry, G_TX_RENDERTILE, s, t, 1024, 1024); + gSPTextureRectangle((*dList)++, ulx, uly, ulx + texWidth, uly + texHeight, G_TX_RENDERTILE, 0, 0, 1024, 1024); } - ulx = lrx; } - var_s3 = (var_s3 + gTexBGShiftX) & (texture1UpperWidth - 1); + xOffset = (xOffset + gTexBGShiftX) & (texWidth - 1); } } gDPPipeSync((*dList)++); } -#else -#pragma GLOBAL_ASM("asm/nonmatchings/rcp_dkr/func_80078190.s") -#endif /** * Enables the chequer background and sets up its properties. diff --git a/src/rcp_dkr.h b/src/rcp_dkr.h index 00b2db03..d28095fc 100644 --- a/src/rcp_dkr.h +++ b/src/rcp_dkr.h @@ -71,6 +71,7 @@ void rdp_init(Gfx **dList); void rsp_init(Gfx **dList); void gfxtask_init(OSSched *sc); void bgdraw_texture_init(TextureHeader *tex1, TextureHeader *tex2, u32 shiftX); +void bgdraw_texture(Gfx **dList); s32 gfxtask_run_xbus(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg); void gfxtask_run_fifo(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg); void texrect_draw(Gfx **dList, DrawTexture *element, s32 xPos, s32 yPos, u8 red, u8 green, u8 blue, @@ -80,7 +81,5 @@ void bgdraw_render(Gfx **dList, MatrixS **mtx, s32 drawBG); void bgdraw_set_func(void *func); void texrect_draw_scaled(Gfx **dList, DrawTexture *element, f32 xPos, f32 yPos, f32 xScale, f32 yScale, u32 colour, s32 flags); -//Non Matching -void func_80078190(Gfx **dList); #endif diff --git a/src/weather.c b/src/weather.c index f3955e45..f930429c 100644 --- a/src/weather.c +++ b/src/weather.c @@ -70,14 +70,12 @@ LensFlareData gLensPreset3[5] = { { 3, { { { 255, 128, 255, 128 } } }, 0.5f, -64 Object *gLensFlare = NULL; s32 gLensFlareOff = TRUE; s32 gLensFlareOverrideObjs = 0; -f32 D_800E2A8C = -200.0f; -f32 D_800E2A90 = 200.0f; -f32 D_800E2A94 = 200.0f; -f32 D_800E2A98 = 200.0f; -f32 D_800E2A9C = 200.0f; -f32 D_800E2AA0 = -200.0f; -f32 D_800E2AA4 = -200.0f; -f32 D_800E2AA8 = -200.0f; +Vec2f gRainQuad[4] = { + { -200.0f, 200.0f }, + { 200.0f, 200.0f }, + { 200.0f, -200.0f }, + { -200.0f, -200.0f } +}; Vertex gRainVertices[16] = { { 0, 0, 0, 255, 255, 255, 255 }, { 0, 0, 0, 255, 255, 255, 255 }, { 0, 0, 0, 255, 255, 255, 255 }, @@ -1073,77 +1071,88 @@ void rain_sound(UNUSED s32 updateRate) { } } -#ifdef NON_EQUIVALENT -void render_rain_overlay(RainGfxData *arg0, s32 arg1) { - f32 zSins; - Triangle *sp64; - f32 zCoss; - s32 altVertical; - s32 altHorizontal; - s32 opacity; - s32 horizontal; +void render_rain_overlay(RainGfxData *rainGfx, s32 time) { + s32 u0; + s32 v0; s32 vertical; - s32 temp_t9; - s32 temp_v1; + s32 horizontal; + s32 maskU; + s32 maskV; + s32 opacity; + s32 i; + f32 zSin; + f32 zCos; + int unused; + int unused2; TextureHeader *tex; - Vertex *verts; - Triangle *tris; - - tex = arg0->tex; - if (tex != NULL) { - horizontal = tex->width << 5; - vertical = tex->height << 5; - temp_v1 = (horizontal * 2) - 1; - temp_t9 = ((vertical * 2) - 1) & 0xFFFFFFFFFFFFFFFF; - arg0->unk0 = (normalise_time(arg0->unk8 * arg1) + arg0->unk0) & temp_v1; - arg0->unk2 = (normalise_time(arg0->unkA * arg1) + arg0->unk2) & temp_t9; - horizontal = (arg0->unk4 * horizontal) >> 8; - opacity = (arg0->opacity * (((gRainOpacity >> 2) * gLightningFrequency) >> 14)) >> 16; - if (opacity > 0) { - altVertical = arg0->unk2; - vertical = ((arg0->unk6 * vertical) >> 8) + arg0->unk2; - altHorizontal = - (arg0->unk0 + ((horizontal * 6 * gWeatherCamera->trans.rotation.y_rotation) >> 16)) & temp_v1; - horizontal += altHorizontal; - zSins = sins_f(gWeatherCamera->trans.rotation.z_rotation); - zCoss = coss_f(gWeatherCamera->trans.rotation.z_rotation); - verts = &gRainVertices[gRainVertexFlip]; - verts[0].x = ((D_800E2A8C * zCoss) - (D_800E2A9C * zSins)); - verts[0].y = ((D_800E2A8C * zSins) + (D_800E2A9C * zCoss)); - verts[1].x = ((D_800E2A9C * zCoss) - (D_800E2A9C * zSins)); - verts[1].y = ((D_800E2A9C * zSins) + (D_800E2A9C * zCoss)); - verts[2].x = ((D_800E2A9C * zCoss) - (D_800E2AA8 * zSins)); - verts[2].y = ((D_800E2A9C * zSins) + (D_800E2AA8 * zCoss)); - verts[3].x = ((D_800E2AA8 * zCoss) - (D_800E2AA8 * zSins)); - verts[3].y = ((D_800E2AA8 * zSins) + (D_800E2AA8 * zCoss)); - tris = gCurrWeatherTriList; - tris[0].vertices = (0x40 << 24) | (0 << 16) | (1 << 8) | 2; - tris[0].uv0.u = altHorizontal; - tris[0].uv0.v = altVertical; - tris[0].uv1.u = horizontal; - tris[0].uv1.v = altVertical; - tris[0].uv2.u = horizontal; - tris[0].uv2.v = vertical; - tris[1].vertices = (0x40 << 24) | (2 << 16) | (3 << 8) | 0; - tris[1].uv0.u = horizontal; - tris[1].uv0.v = vertical; - tris[1].uv1.u = altHorizontal; - tris[1].uv1.v = vertical; - tris[1].uv2.u = altHorizontal; - tris[1].uv2.v = altVertical; - sp64 = tris + 0x20; - func_8007F594(&gCurrWeatherDisplayList, 0, - COLOUR_RGBA32(arg0->primitiveRed, arg0->primitiveGreen, arg0->primitiveBlue, opacity), - COLOUR_RGBA32(arg0->environmentRed, arg0->environmentGreen, arg0->environmentBlue, 0)); - gDkrDmaDisplayList(gCurrWeatherDisplayList++, OS_PHYSICAL_TO_K0(tex->cmd), tex->numberOfCommands); - gSPVertexDKR(gCurrWeatherDisplayList++, OS_PHYSICAL_TO_K0(&gRainVertices[gRainVertexFlip]), 4, 0); - gSPPolygon(gCurrWeatherDisplayList++, OS_PHYSICAL_TO_K0(gCurrWeatherTriList), 2, 1); - gDPPipeSync(gCurrWeatherDisplayList++); - gRainVertexFlip = (gRainVertexFlip + 4) & 0xF; - gCurrWeatherTriList = sp64; - } + Gfx *curDL; + Triangle *tri; + + if (rainGfx->tex == NULL) { + return; } + tex = rainGfx->tex; + + horizontal = tex->width << 5; + vertical = tex->height << 5; + maskU = (horizontal * 2) - 1; + maskV = (vertical * 2) - 1; + + rainGfx->offsetU = (normalise_time(rainGfx->scrollSpeedU * time) + rainGfx->offsetU) & maskU; + rainGfx->offsetV = (normalise_time(rainGfx->scrollSpeedV * time) + rainGfx->offsetV) & maskV; + + horizontal = (rainGfx->scaleU * horizontal) >> 8; + vertical = (rainGfx->scaleV * vertical) >> 8; + + opacity = ((gRainOpacity >> 2) * gLightningFrequency) >> 14; + opacity = (opacity * rainGfx->opacity) >> 16; + if (opacity <= 0) { + return; + } + + u0 = (rainGfx->offsetU + ((horizontal * 6 * gWeatherCamera->trans.rotation.x) >> 0x10)) & maskU; + v0 = rainGfx->offsetV; + + horizontal += u0; + vertical += v0; + + zSin = sins_f(gWeatherCamera->trans.rotation.z); + zCos = coss_f(gWeatherCamera->trans.rotation.z); + + for (i = 0; i < ARRAY_COUNT(gRainQuad); i++) { + gRainVertices[gRainVertexFlip + i].x = gRainQuad[i].x * zCos - gRainQuad[i].y * zSin; + gRainVertices[gRainVertexFlip + i].y = gRainQuad[i].y * zCos + gRainQuad[i].x * zSin; + } + + curDL = gCurrWeatherDisplayList; + tri = gCurrWeatherTriList; + + tri->vertices = DKR_TRIANGLE(BACKFACE_DRAW, 0, 1, 2); + tri->uv0.u = u0; + tri->uv0.v = v0; + tri->uv1.u = horizontal; + tri->uv1.v = v0; + tri->uv2.u = horizontal; + tri->uv2.v = vertical; + tri++; + + tri->vertices = DKR_TRIANGLE(BACKFACE_DRAW, 2, 3, 0); + tri->uv0.u = horizontal; + tri->uv0.v = vertical; + tri->uv1.u = u0; + tri->uv1.v = vertical; + tri->uv2.u = u0; + tri->uv2.v = v0; + tri++; + + func_8007F594(&curDL, 0, + COLOUR_RGBA32(rainGfx->primitiveRed, rainGfx->primitiveGreen, rainGfx->primitiveBlue, opacity), + COLOUR_RGBA32(rainGfx->environmentRed, rainGfx->environmentGreen, rainGfx->environmentBlue, 0)); + gDkrDmaDisplayList(curDL++, OS_PHYSICAL_TO_K0(tex->cmd), tex->numberOfCommands); + gSPVertexDKR(curDL++, OS_PHYSICAL_TO_K0(gRainVertices + gRainVertexFlip), 4, 0); + gSPPolygon(curDL++, OS_PHYSICAL_TO_K0(gCurrWeatherTriList), 2, 1); + gDPPipeSync(curDL++); + gRainVertexFlip = (gRainVertexFlip + 4) & 0xF; + gCurrWeatherDisplayList = curDL; + gCurrWeatherTriList = tri; } -#else -#pragma GLOBAL_ASM("asm/nonmatchings/weather/render_rain_overlay.s") -#endif diff --git a/src/weather.h b/src/weather.h index d46891d7..b391c3b5 100644 --- a/src/weather.h +++ b/src/weather.h @@ -48,12 +48,12 @@ typedef struct RainPosData { /* Size: 0x18 Bytes */ typedef struct RainGfxData { - s16 unk0; //tri - u? - s16 unk2; //tri - v? - s16 unk4; - s16 unk6; - s16 unk8; - s16 unkA; + s16 offsetU; + s16 offsetV; + s16 scaleU; + s16 scaleV; + s16 scrollSpeedU; + s16 scrollSpeedV; TextureHeader *tex; u8 primitiveRed; u8 primitiveGreen; diff --git a/ver/symbols/symbol_addrs.jpn.v79.txt b/ver/symbols/symbol_addrs.jpn.v79.txt index 57bd1401..955ab4c0 100644 --- a/ver/symbols/symbol_addrs.jpn.v79.txt +++ b/ver/symbols/symbol_addrs.jpn.v79.txt @@ -1218,7 +1218,7 @@ rdp_init = 0x80078364; rsp_init = 0x800783EC; gfxtask_init = 0x80078410; bgdraw_texture_init = 0x80078480; -func_80078190 = 0x800784A0; +bgdraw_texture = 0x800784A0; bgdraw_chequer_on = 0x80078A88; bgdraw_chequer_off = 0x80078B00; bgdraw_chequer = 0x80078B0C; @@ -2781,7 +2781,7 @@ gLensPreset3 = 0x800E4520; gLensFlare = 0x800E4570; gLensFlareOff = 0x800E4574; gLensFlareOverrideObjs = 0x800E4578; -D_800E2A8C = 0x800E457C; +gRainQuad = 0x800E457C; D_800E2A90 = 0x800E4580; D_800E2A94 = 0x800E4584; D_800E2A98 = 0x800E4588; diff --git a/ver/symbols/symbol_addrs.pal.v77.txt b/ver/symbols/symbol_addrs.pal.v77.txt index d060bb74..684b24ce 100644 --- a/ver/symbols/symbol_addrs.pal.v77.txt +++ b/ver/symbols/symbol_addrs.pal.v77.txt @@ -1214,7 +1214,7 @@ rdp_init = 0x80078054; rsp_init = 0x800780DC; gfxtask_init = 0x80078100; bgdraw_texture_init = 0x80078170; -func_80078190 = 0x80078190; +bgdraw_texture = 0x80078190; bgdraw_chequer_on = 0x80078778; bgdraw_chequer_off = 0x800787F0; bgdraw_chequer = 0x800787FC; @@ -2623,7 +2623,7 @@ gLensPreset3 = 0x800E2AC0; gLensFlare = 0x800E2B10; gLensFlareOff = 0x800E2B14; gLensFlareOverrideObjs = 0x800E2B18; -D_800E2A8C = 0x800E2B1C; +gRainQuad = 0x800E2B1C; D_800E2A90 = 0x800E2B20; D_800E2A94 = 0x800E2B24; D_800E2A98 = 0x800E2B28; diff --git a/ver/symbols/symbol_addrs.pal.v80.txt b/ver/symbols/symbol_addrs.pal.v80.txt index a5cfedd0..d51329ef 100644 --- a/ver/symbols/symbol_addrs.pal.v80.txt +++ b/ver/symbols/symbol_addrs.pal.v80.txt @@ -1145,7 +1145,7 @@ rdp_init = 0x800784A4; rsp_init = 0x8007852C; gfxtask_init = 0x80078550; bgdraw_texture_init = 0x800785C0; -func_80078190 = 0x800785E0; +bgdraw_texture = 0x800785E0; bgdraw_chequer_on = 0x80078BC8; bgdraw_chequer_off = 0x80078C40; bgdraw_chequer = 0x80078C4C; @@ -2552,7 +2552,7 @@ gLensPreset3 = 0x800E3050; gLensFlare = 0x800E30A0; gLensFlareOff = 0x800E30A4; gLensFlareOverrideObjs = 0x800E30A8; -D_800E2A8C = 0x800E30AC; +gRainQuad = 0x800E30AC; D_800E2A90 = 0x800E30B0; D_800E2A94 = 0x800E30B4; D_800E2A98 = 0x800E30B8; diff --git a/ver/symbols/symbol_addrs.us.v77.txt b/ver/symbols/symbol_addrs.us.v77.txt index 2f95b4a6..2a37245d 100644 --- a/ver/symbols/symbol_addrs.us.v77.txt +++ b/ver/symbols/symbol_addrs.us.v77.txt @@ -1214,7 +1214,7 @@ rdp_init = 0x80078054; rsp_init = 0x800780DC; gfxtask_init = 0x80078100; bgdraw_texture_init = 0x80078170; -func_80078190 = 0x80078190; +bgdraw_texture = 0x80078190; bgdraw_chequer_on = 0x80078778; bgdraw_chequer_off = 0x800787F0; bgdraw_chequer = 0x800787FC; @@ -2772,7 +2772,7 @@ gLensPreset3 = 0x800E2A30; gLensFlare = 0x800E2A80; gLensFlareOff = 0x800E2A84; gLensFlareOverrideObjs = 0x800E2A88; -D_800E2A8C = 0x800E2A8C; +gRainQuad = 0x800E2A8C; D_800E2A90 = 0x800E2A90; D_800E2A94 = 0x800E2A94; D_800E2A98 = 0x800E2A98; diff --git a/ver/symbols/symbol_addrs.us.v80.txt b/ver/symbols/symbol_addrs.us.v80.txt index 993768e6..1b7ebb65 100644 --- a/ver/symbols/symbol_addrs.us.v80.txt +++ b/ver/symbols/symbol_addrs.us.v80.txt @@ -1145,7 +1145,7 @@ rdp_init = 0x800784A4; rsp_init = 0x8007852C; gfxtask_init = 0x80078550; bgdraw_texture_init = 0x800785C0; -func_80078190 = 0x800785E0; +bgdraw_texture = 0x800785E0; bgdraw_chequer_on = 0x80078BC8; bgdraw_chequer_off = 0x80078C40; bgdraw_chequer = 0x80078C4C; @@ -2549,7 +2549,7 @@ gLensPreset3 = 0x800E2FC0; gLensFlare = 0x800E3010; gLensFlareOff = 0x800E3014; gLensFlareOverrideObjs = 0x800E3018; -D_800E2A8C = 0x800E301C; +gRainQuad = 0x800E301C; D_800E2A90 = 0x800E3020; D_800E2A94 = 0x800E3024; D_800E2A98 = 0x800E3028;