From ef83f23200053412de66b3c31f22f41dfa8d5fbc Mon Sep 17 00:00:00 2001 From: fgsfds Date: Fri, 1 Dec 2023 19:35:04 +0100 Subject: [PATCH] port: fix sun aspect ratio --- src/game/sky.c | 13 +++++++++++++ src/include/constants.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/src/game/sky.c b/src/game/sky.c index 026878d0e..e46110911 100644 --- a/src/game/sky.c +++ b/src/game/sky.c @@ -15,6 +15,7 @@ #include "data.h" #include "types.h" #ifndef PLATFORM_N64 +#include "video.h" #include "game/gfxmemory.h" #include "game/game_13c510.h" #include "game/player.h" @@ -2717,6 +2718,10 @@ Gfx *skyRenderSuns(Gfx *gdl, bool xray) sp12c[0] = radius * 0.50f * xscale; sp12c[1] = radius * 0.50f; +#ifndef PLATFORM_N64 + sp12c[0] *= SCREEN_ASPECT / videoGetAspect(); +#endif + func0f0b2150(&gdl, sp134, sp12c, g_TexLightGlareConfigs[5].width, g_TexLightGlareConfigs[5].height, 0, 1, 1, 1, 0, 1); gDPPipeSync(gdl++); @@ -2808,6 +2813,10 @@ Gfx *skyRenderFlare(Gfx *gdl, f32 x, f32 y, f32 intensityfrac, f32 size, s32 fla sp174[1] = f2 * 0.5f; sp174[0] = f2 * 0.5f * scale; +#ifndef PLATFORM_N64 + sp174[0] *= SCREEN_ASPECT / videoGetAspect(); +#endif + func0f0b2150(&gdl, sp17c, sp174, g_TexLightGlareConfigs[6].width, g_TexLightGlareConfigs[6].height, 0, 1, 1, 1, 0, 1); // Render the other artifacts @@ -2865,6 +2874,10 @@ Gfx *skyRenderFlare(Gfx *gdl, f32 x, f32 y, f32 intensityfrac, f32 size, s32 fla sp174[1] = tmp * 0.5f; sp174[0] = tmp * 0.5f * scale; +#ifndef PLATFORM_N64 + sp174[0] *= SCREEN_ASPECT / videoGetAspect(); +#endif + func0f0b2150(&gdl, sp17c, sp174, g_TexLightGlareConfigs[1].width, g_TexLightGlareConfigs[1].height, 0, 0, 0, 0, 0, 1); } diff --git a/src/include/constants.h b/src/include/constants.h index d4a102751..943f172d3 100644 --- a/src/include/constants.h +++ b/src/include/constants.h @@ -3653,6 +3653,8 @@ #define SCREEN_HEIGHT_HI 220 #endif +#define SCREEN_ASPECT ((f32)SCREEN_WIDTH_LO / (f32)SCREEN_HEIGHT_LO) + #define SCREENRATIO_NORMAL 0 #define SCREENRATIO_16_9 1