diff --git a/src/engine/fox_bg.c b/src/engine/fox_bg.c index 870a9699..9f971faf 100644 --- a/src/engine/fox_bg.c +++ b/src/engine/fox_bg.c @@ -110,7 +110,7 @@ f32 sGroundPositions360z[4] = { }; // Declare global variables for screen dimensions -float gCurrentScreenWidth = 320.0f * 3; // Default width +float gCurrentScreenWidth = 320.0f * 5; // Default width float gCurrentScreenHeight = 240.0f * 3; // Default height // Custom floating-point modulo function (replaces fmodf) @@ -258,12 +258,15 @@ void Background_DrawStarfield(void) { vx = (zCos * bx) + (zSin * by) + currentScreenWidth / 2.0f; vy = (-zSin * bx) + (zCos * by) + currentScreenHeight / 2.0f; - float thirdWidth = currentScreenWidth / 3; - float thirdHeight = currentScreenHeight / 3; + float originalWidth = currentScreenWidth / 5; + float originalAspect = originalWidth / (currentScreenHeight / 3); + float renderMaskWidth = originalWidth * (OTRGetAspectRatio() / originalAspect); + float marginX = (currentScreenWidth - renderMaskWidth) / 2; + float renderMaskHeight = currentScreenHeight / 3; // Check if the star is within the visible screen area with margin - if (vx >= (thirdWidth - STAR_MARGIN) && vx <= ((thirdWidth * 2) + STAR_MARGIN) && - vy >= (thirdHeight - STAR_MARGIN) && vy <= ((thirdHeight * 2) + STAR_MARGIN)) { + if (vx >= (marginX - STAR_MARGIN) && vx <= (marginX + renderMaskWidth + STAR_MARGIN) && + vy >= (renderMaskHeight - STAR_MARGIN) && vy <= ((renderMaskHeight * 2) + STAR_MARGIN)) { FrameInterpolation_RecordOpenChild("Starfield", i); FrameInterpolation_RecordMarker(__FILE__, __LINE__); diff --git a/src/port/Engine.cpp b/src/port/Engine.cpp index 57ca68ff..99e1cf2a 100644 --- a/src/port/Engine.cpp +++ b/src/port/Engine.cpp @@ -588,4 +588,12 @@ extern "C" void* GameEngine_Malloc(size_t size) { memset(static_cast(MemoryPool.memory) + MemoryPool.length, 0, MemoryPool.length - chunk); SPDLOG_INFO("Memory pool resized from {} to {}", MemoryPool.length - chunk, MemoryPool.length); return GameEngine_Malloc(size); +} + +extern "C" float GetWindowWidth() { + return Ship::Context::GetInstance()->GetWindow()->GetWidth(); +} + +extern "C" float GetWindowHeight() { + return Ship::Context::GetInstance()->GetWindow()->GetHeight(); } \ No newline at end of file